diff --git a/javax/create-javax-recipes.sh b/javax/create-javax-recipes.sh
index 926e56e..8292437 100755
--- a/javax/create-javax-recipes.sh
+++ b/javax/create-javax-recipes.sh
@@ -6,16 +6,16 @@
 
 # Edit these as needed
 GIDS=(
-jakarta.activation
+jakarta.websocket
 )
 ARTIDS=(
-jakarta.activation-api
+jakarta.websocket-api
 )
 VERSION=(
-'2.0.0-RC3'
+'2.0.0'
 )
 BSNS=(
-jakarta.activation
+jakarta.websocket
 )
 
 for (( i=0; i< ${#ARTIDS[@]}; i++ )); do
diff --git a/javax/jakarta.websocket_2.0.0/.project b/javax/jakarta.websocket_2.0.0/.project
new file mode 100644
index 0000000..cbf2c18
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>jakarta.websocket_2.0.0</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+	</buildSpec>
+	<natures>
+	</natures>
+</projectDescription>
diff --git a/javax/jakarta.websocket_2.0.0/osgi.bnd b/javax/jakarta.websocket_2.0.0/osgi.bnd
new file mode 100644
index 0000000..c0aa4e2
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/osgi.bnd
@@ -0,0 +1,12 @@
+package-version=${version;===;${Bundle-Version}}
+jakarta.websocket-client-api-version-range=${range;[===,+);2.0.0}jakarta.websocket-client-api-version=${version;===;2.0.0}
+
+Export-Package: \
+ !about.html,!about_files, \
+ *.internal.*;x-internal:=true;version="${package-version}", \
+ *.implementation.*;x-internal:=true;version="${package-version}", \
+ *.impl.*;x-internal:=true;version="${package-version}", \
+ *;version="${package-version}"
+
+Import-Package: \
+ *
diff --git a/javax/jakarta.websocket_2.0.0/pom.xml b/javax/jakarta.websocket_2.0.0/pom.xml
new file mode 100644
index 0000000..b0e6da0
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/pom.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.eclipse.orbit.bundles</groupId>
+    <artifactId>javax-parent</artifactId>
+    <version>1.0.0-SNAPSHOT</version>
+  </parent>
+  <artifactId>jakarta.websocket</artifactId>
+  <version>2.0.0-SNAPSHOT</version>
+  <packaging>eclipse-bundle-recipe</packaging>
+  <name>Jakarta WebSocket - Server API</name>
+  <dependencies>
+    <dependency>
+      <groupId>jakarta.websocket</groupId>
+      <artifactId>jakarta.websocket-api</artifactId>
+      <version>2.0.0</version>
+    </dependency>
+  </dependencies>
+</project>
diff --git a/javax/jakarta.websocket_2.0.0/src/eclipse/ip_log.xml b/javax/jakarta.websocket_2.0.0/src/eclipse/ip_log.xml
new file mode 100644
index 0000000..b555864
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/src/eclipse/ip_log.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ip_log version="1.0">
+  <project id="jakarta.websocket" version="2.0.0" status="done">
+    <info>
+      <name>Jakarta WebSocket - Server API</name>
+      <repository>scm:git:git.eclipse.org:/gitroot/orbit/recipes.git</repository>
+      <location>javax-parent/jakarta.websocket</location>
+    </info>
+    <contact>
+      <name>Aurélien Pupier</name>
+      <email>apupier@redhat.com</email>
+      <company>Red Hat</company>
+    </contact>
+    <legal>
+      <ipzilla bug_id="22020"/>
+      <license>
+        <name>Eclipse Public License</name>
+        <reference>http://www.eclipse.org/legal/epl-v10.html</reference>
+      </license>
+      <package>jakarta.websocket-api-2.0.0.jar</package>
+    </legal>
+  </project>
+</ip_log>
\ No newline at end of file
diff --git a/javax/jakarta.websocket_2.0.0/src/main/resources/OSGI-INF/l10n/bundle.properties b/javax/jakarta.websocket_2.0.0/src/main/resources/OSGI-INF/l10n/bundle.properties
new file mode 100644
index 0000000..95865ff
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/src/main/resources/OSGI-INF/l10n/bundle.properties
@@ -0,0 +1,3 @@
+# Bundle Localization
+bundleName = Jakarta WebSocket - Server API
+bundleVendor = Eclipse Orbit
diff --git a/javax/jakarta.websocket_2.0.0/src/main/resources/about.html b/javax/jakarta.websocket_2.0.0/src/main/resources/about.html
new file mode 100644
index 0000000..a6ce3bf
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/src/main/resources/about.html
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>December 30, 2020</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 2.0 (&quot;EPL&quot;).  A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content.  Check the Redistributor's license that was
+provided with the Content.  If no such license exists, contact the Redistributor.  Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org/">http://www.eclipse.org</a>.</p>
+
+<h3>Third Party Content</h3>
+<p>The Content includes items that have been sourced from third parties as set out below. If you
+did not receive this Content directly from the Eclipse Foundation, the following is provided
+for informational purposes only, and you should look to the Redistributor's license for
+terms and conditions of use.</p>
+
+<h4>Jakarta WebSocket - Server API</h4>
+
+<p>The plug-in includes software developed by <a href="https://www.eclipse.org" target="_blank">Eclipse Foundation</a> as part of the Jakarta WebSocket - Server API project.</p>
+
+<p>Jakarta WebSocket - Server API is provided to you under the terms and conditions of the <a href="https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt" target="_blank">Eclipse Public License v. 2.0</a> (<a href="about_files/ECLIPSE_PUBLIC_LICENSE_V._2.0.txt" target="_blank">ECLIPSE_PUBLIC_LICENSE_V._2.0.txt</a>) and <a href="https://www.gnu.org/software/classpath/license.html" target="_blank">GNU General Public License, version 2 with the GNU Classpath Exception</a> (<a href="about_files/GNU_GENERAL_PUBLIC_LICENSE__VERSION_2_WITH_THE_GNU_CLASSPATH_EXCEPTION.html" target="_blank">GNU_GENERAL_PUBLIC_LICENSE__VERSION_2_WITH_THE_GNU_CLASSPATH_EXCEPTION.html</a>) licenses.</p>
+
+<p>Jakarta WebSocket - Server API including its source is available from <a href="https://projects.eclipse.org/projects/ee4j.websocket" target="_blank">projects.eclipse.org/projects/ee4j.websocket</a>. Bugs or feature requests can be made in the project issue tracking system at <a href="https://github.com/eclipse-ee4j/websocket-api/issues" target="_blank">github.com/eclipse-ee4j/websocket-api/issues</a>. The following mailing list can be used to communicate with the project communities: WebSocket dev mailing list &lt;websocket-dev@eclipse.org&gt; (<a href="https://dev.eclipse.org/mhonarc/lists/websocket-dev" target="_blank">archive</a>).</p>
+
+
+</body>
+</html>
diff --git a/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/ECLIPSE_PUBLIC_LICENSE_V._2.0.txt b/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/ECLIPSE_PUBLIC_LICENSE_V._2.0.txt
new file mode 100644
index 0000000..e23ece2
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/ECLIPSE_PUBLIC_LICENSE_V._2.0.txt
@@ -0,0 +1,277 @@
+Eclipse Public License - v 2.0
+
+    THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+    PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+    OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+  a) in the case of the initial Contributor, the initial content
+     Distributed under this Agreement, and
+
+  b) in the case of each subsequent Contributor:
+     i) changes to the Program, and
+     ii) additions to the Program;
+  where such changes and/or additions to the Program originate from
+  and are Distributed by that particular Contributor. A Contribution
+  "originates" from a Contributor if it was added to the Program by
+  such Contributor itself or anyone acting on such Contributor's behalf.
+  Contributions do not include changes or additions to the Program that
+  are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+  a) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free copyright
+  license to reproduce, prepare Derivative Works of, publicly display,
+  publicly perform, Distribute and sublicense the Contribution of such
+  Contributor, if any, and such Derivative Works.
+
+  b) Subject to the terms of this Agreement, each Contributor hereby
+  grants Recipient a non-exclusive, worldwide, royalty-free patent
+  license under Licensed Patents to make, use, sell, offer to sell,
+  import and otherwise transfer the Contribution of such Contributor,
+  if any, in Source Code or other form. This patent license shall
+  apply to the combination of the Contribution and the Program if, at
+  the time the Contribution is added by the Contributor, such addition
+  of the Contribution causes such combination to be covered by the
+  Licensed Patents. The patent license shall not apply to any other
+  combinations which include the Contribution. No hardware per se is
+  licensed hereunder.
+
+  c) Recipient understands that although each Contributor grants the
+  licenses to its Contributions set forth herein, no assurances are
+  provided by any Contributor that the Program does not infringe the
+  patent or other intellectual property rights of any other entity.
+  Each Contributor disclaims any liability to Recipient for claims
+  brought by any other entity based on infringement of intellectual
+  property rights or otherwise. As a condition to exercising the
+  rights and licenses granted hereunder, each Recipient hereby
+  assumes sole responsibility to secure any other intellectual
+  property rights needed, if any. For example, if a third party
+  patent license is required to allow Recipient to Distribute the
+  Program, it is Recipient's responsibility to acquire that license
+  before distributing the Program.
+
+  d) Each Contributor represents that to its knowledge it has
+  sufficient copyright rights in its Contribution, if any, to grant
+  the copyright license set forth in this Agreement.
+
+  e) Notwithstanding the terms of any Secondary License, no
+  Contributor makes additional grants to any Recipient (other than
+  those set forth in this Agreement) as a result of such Recipient's
+  receipt of the Program under the terms of a Secondary License
+  (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+  a) the Program must also be made available as Source Code, in
+  accordance with section 3.2, and the Contributor must accompany
+  the Program with a statement that the Source Code for the Program
+  is available under this Agreement, and informs Recipients how to
+  obtain it in a reasonable manner on or through a medium customarily
+  used for software exchange; and
+
+  b) the Contributor may Distribute the Program under a license
+  different than this Agreement, provided that such license:
+     i) effectively disclaims on behalf of all other Contributors all
+     warranties and conditions, express and implied, including
+     warranties or conditions of title and non-infringement, and
+     implied warranties or conditions of merchantability and fitness
+     for a particular purpose;
+
+     ii) effectively excludes on behalf of all other Contributors all
+     liability for damages, including direct, indirect, special,
+     incidental and consequential damages, such as lost profits;
+
+     iii) does not attempt to limit or alter the recipients' rights
+     in the Source Code under section 3.2; and
+
+     iv) requires any subsequent distribution of the Program by any
+     party to be under a license that satisfies the requirements
+     of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+  a) it must be made available under this Agreement, or if the
+  Program (i) is combined with other material in a separate file or
+  files made available under a Secondary License, and (ii) the initial
+  Contributor attached to the Source Code the notice described in
+  Exhibit A of this Agreement, then the Program may be made available
+  under the terms of such Secondary Licenses, and
+
+  b) a copy of this Agreement must be included with each copy of
+  the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following 
+Secondary Licenses when the conditions for such availability set forth 
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+  Simply including a copy of this Agreement, including this Exhibit A
+  is not sufficient to license the Source Code under Secondary Licenses.
+
+  If it is not possible or desirable to put the notice in a particular
+  file, then You may include the notice in a location (such as a LICENSE
+  file in a relevant directory) where a recipient would be likely to
+  look for such a notice.
+
+  You may add additional accurate notices of copyright ownership.
\ No newline at end of file
diff --git a/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/GNU_GENERAL_PUBLIC_LICENSE__VERSION_2_WITH_THE_GNU_CLASSPATH_EXCEPTION.html b/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/GNU_GENERAL_PUBLIC_LICENSE__VERSION_2_WITH_THE_GNU_CLASSPATH_EXCEPTION.html
new file mode 100644
index 0000000..921ac44
--- /dev/null
+++ b/javax/jakarta.websocket_2.0.0/src/main/resources/about_files/GNU_GENERAL_PUBLIC_LICENSE__VERSION_2_WITH_THE_GNU_CLASSPATH_EXCEPTION.html
@@ -0,0 +1,242 @@
+<html>
+<head>
+	<base href="/software/classpath/">
+	<title>GNU Classpath License - GNU Project - Free Software Foundation (FSF)</title>
+      <LINK REV="made" HREF="mailto:webmasters@www.gnu.org">
+      <LINK REL="stylesheet" TYPE="text/css" HREF="/software/classpath/savannah.css">
+</head>
+<body>
+<table border="0" summary="">
+<tr>
+<td>
+<applet code="Animation.class" CODEBASE="/graphics" WIDTH="130" HEIGHT="86">
+  <param name="base-name" value="drop">
+  <param name="extension" value="jpg">
+  <param name="num-images" value="15">
+  <param name="image-sequence" value="1..10,9,7,5,3,1">
+  <param name="frame-delay" value="30">
+  <param name="inner-loop-repeat" value="2">
+  <param name="loop-delay" value="10000">
+  <param name="outer-loop-repeat" value="0">
+  <a href="/graphics/drop-1.jpg">
+    <img src="/graphics/drop-1.jpg" alt=" [image of the evil water droplet] "
+    width="130" height="86" border="0">&#32;(jpeg 3k)
+  </a>
+</applet>
+</td><td>
+<div align="center">
+<!--img src="logo5.jpg"-->
+<h1>GNU Classpath</h1>
+</div>
+</td>
+</tr>
+<tr>
+<td class="menutable" valign="top">
+<br><span class="menutitle">Classpath</span><br>
+<span class="menuitem">
+<a href="home.html">Home</a>
+</span><br>
+<!--
+<span class="menuitem">
+<a href="home.html#status">Status</a>
+</span><br>
+<span class="menuitem">
+<a href="home.html#roadmap">Roadmap</a>
+</span><br>
+-->
+<span class="menuitem">
+<a href="license.html">License</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/project/memberlist.php?group_id=85">Team</a>
+</span><br>
+<span class="menuitem">
+<a href="downloads/downloads.html">Download</a>
+</span><br>
+<span class="menuitem">
+<a href="faq/faq.html">FAQ</a>
+</span><br>
+<span class="menuitem">
+<a href="home.html#news">News</a>
+</span><br>
+<span class="menuitem">
+<a href="events/events.html">Events</a>
+</span><br>
+<span class="menuitem">
+<a href="http://planet.classpath.org/">Planet Classpath</a>
+</span><br>
+<span class="menuitem">
+<a href="http://developer.classpath.org/mediation/">Classpath Wiki</a>
+</span><br>
+<br><span class="menutitle">Success Stories</span><br>
+<span class="menuitem">
+<a href="stories.html#jvm">JVMs</a>
+</span><br>
+<span class="menuitem">
+<a href="stories.html#research">Research</a>
+</span><br>
+<br><span class="menutitle">Savannah</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/projects/classpath/">Project Home</a>
+</span><br>
+<span class="menuitem">
+<a href="bugs.html">Bug Reports</a>
+</span><br>
+<!--
+<span class="menuitem">
+<a href="http://savannah.gnu.org/support/?group=classpath">Support</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/patch/?group=classpath">Patches</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/pm/?group=classpath">Tasks</a>
+</span><br>
+-->
+<span class="menuitem">
+<a href="http://savannah.gnu.org/mail/?group=classpath">Mailing Lists</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/news/?group=classpath">News</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.gnu.org/cvs/?group=classpath">CVS</a>
+</span><br>
+<br><span class="menutitle">Development</span><br>
+<span class="menuitem">
+<a href="http://developer.classpath.org/mediation/ClasspathOpenTasks">Tasks</a>
+</span><br>
+<span class="menuitem">
+<a href="docs/docs.html">Docs</a>
+</span><br>
+<span class="menuitem">
+<a href="benchmarks.html#testing">Testing</a>
+</span><br>
+<span class="menuitem">
+<a href="benchmarks.html#benchmarks">Benchmarks</a>
+</span><br>
+<br><span class="menutitle">Classpath Projects</span><br>
+<span class="menuitem">
+<a href="inetlib.html">Inetlib</a>
+</span><br>
+<span class="menuitem">
+<a href="cp-tools/">Classpath Tools</a>
+</span><br>
+<br><span class="menutitle">External Tools</span><br>
+<span class="menuitem">
+<a href="external.html#packages">External Packages</a>
+</span><br>
+<span class="menuitem">
+<a href="/software/classpathx/">ClasspathX</a>
+</span><br>
+<span class="menuitem">
+<a href="http://fmj-sf.net/">Free Media Project</a>
+</span><br>
+<span class="menuitem">
+<a href="http://sources.redhat.com/mauve/">Mauve</a>
+</span><br>
+<span class="menuitem">
+<a href="http://savannah.nongnu.org/projects/jessie/">Jessie</a>
+</span><br>
+<span class="menuitem">
+<a href="external.html#jalopy">Jalopy</a>
+</span><br>
+</td>
+<td valign="top">
+<table class="boxtable" summary="">
+<tr><td class="boxtitle"><a name="license">Classpath::License</a></td><tr>
+<tr><td class="boxitem">
+<en>
+<p>
+Classpath is distributed under the terms of the
+<a href="/copyleft/gpl.html">GNU General Public License</a>
+ with
+the following clarification and special exception.
+</p>
+<p>
+<blockquote>
+<p>
+<code>
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+</code>
+</p>
+<p>
+<code>
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+</code>
+</p>
+</blockquote>
+</p>
+<p>
+As such, it can be used to run, create and distribute a large class of
+applications and applets. When GNU Classpath is used unmodified as the
+core class library for a virtual machine, compiler for the java languge,
+or for a program written in the java programming language it does not
+affect the licensing for distributing those programs directly.
+</p>
+</en>
+</td><tr>
+<tr><td class="boxtitle"><a name="documentation">Classpath::Documentation Redistribution Policy</a></td><tr>
+<tr><td class="boxitem">
+GNU Documentation is unique because of our attitude towards it. We
+believe the reader should be free to copy and redistribute it, just
+like our software. Originally, all our documentation was released under
+a short
+<a href="/licenses/licenses.html#WhatIsCopyleft">Copyleft</a>
+license, or under the
+<a href="/licenses/licenses.html#GPL">GNU General Public License (GPL)</a>
+ itself; in 2001 the
+<a href="/licenses/licenses.html#FDL">Free Documentation License (FDL)</a>
+ was created to
+address certain needs that were not met by licenses originally designed
+for software.
+</td><tr>
+</table>
+</td>
+</tr>
+<tr>
+<td colspan="2">
+<BR><BR>
+<HR>
+<en>
+Return to <A HREF="/home.html">GNU's home page</A>.
+<P>
+Please send FSF &amp; GNU inquiries &amp; questions to
+<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
+There are also <A HREF="http://www.fsf.org/about/contact.html">other ways to
+contact</A> the FSF.
+<P>
+Please send comments on these web pages to
+<A HREF="mailto:webmasters@www.gnu.org"><EM>webmasters@www.gnu.org</EM></A>,
+send other questions to
+<A HREF="mailto:gnu@gnu.org"><EM>gnu@gnu.org</EM></A>.
+<P>
+Copyright &copy; 1999-2006 Free Software Foundation, Inc.,
+51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+<P>
+Verbatim copying and distribution of this entire article is
+permitted in any medium, provided this notice is preserved.<P>
+Updated:
+</en>
+$Date: 2018/04/02 11:18:23 $ $Author: th_g $
+<!--
+Sun Jul 6 23:39:21 2008
+-->
+<HR>
+</td>
+</tr>
+</table>
+</body>
diff --git a/javax/pom.xml b/javax/pom.xml
index e214f0c..3c6bb49 100644
--- a/javax/pom.xml
+++ b/javax/pom.xml
@@ -25,6 +25,7 @@
     <module>javax.annotation_1.3.5</module>
     <module>javax.validation_1.1.0</module>
     <module>jakarta.xml.bind_2.3.3</module>
+    <module>jakarta.websocket_2.0.0</module>
     <module>javax.ws.rs_2.1.6</module>
   </modules>
 
diff --git a/releng/aggregationfeature/feature.xml b/releng/aggregationfeature/feature.xml
index b8cee0c..8376143 100644
--- a/releng/aggregationfeature/feature.xml
+++ b/releng/aggregationfeature/feature.xml
@@ -404,6 +404,7 @@
   <plugin id="javax.activation" version="2.0.0.qualifier" />
   <plugin id="javax.annotation" version="1.3.5.qualifier" />
   <plugin id="javax.validation" version="1.1.0.qualifier" />
+  <plugin id="jakarta.websocket" version="2.0.0.qualifier" />
   <plugin id="javax.ws.rs" version="2.1.6.qualifier" />
 
   <!-- jaxb -->
