#1314: Introduce new org.eclipse.persistence.jpars.server artifact (#1316)

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/bundles/eclipselink/pom.xml b/bundles/eclipselink/pom.xml
index 278e5c0..6d2711f 100644
--- a/bundles/eclipselink/pom.xml
+++ b/bundles/eclipselink/pom.xml
@@ -272,7 +272,7 @@
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.jpars</artifactId>
+            <artifactId>org.eclipse.persistence.jpars.server</artifactId>
             <scope>provided</scope>
         </dependency>
         <dependency>
@@ -302,14 +302,6 @@
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.jpars</artifactId>
-            <classifier>javadoc</classifier>
-            <scope>provided</scope>
-            <!-- ### fix me -->
-            <version>${project.version}</version>
-        </dependency>
     </dependencies>
 
     <build>
@@ -385,6 +377,7 @@
                                 org.eclipse.persistence.dbws,
                                 org.eclipse.persistence.jpa,
                                 org.eclipse.persistence.jpa.jpql,
+                                org.eclipse.persistence.jpars.server,
                                 org.eclipse.persistence.moxy,
                                 org.eclipse.persistence.moxy.utils.xjc,
                                 org.eclipse.persistence.oracle,
@@ -425,6 +418,7 @@
                                 org.eclipse.persistence.dbws,
                                 org.eclipse.persistence.jpa,
                                 org.eclipse.persistence.jpa.jpql,
+                                org.eclipse.persistence.jpars.server,
                                 org.eclipse.persistence.moxy,
                                 org.eclipse.persistence.moxy.utils.xjc,
                                 org.eclipse.persistence.oracle,
diff --git a/bundles/eclipselink/src/main/java/module-info.java b/bundles/eclipselink/src/main/java/module-info.java
index ca15309..39ff2c2 100644
--- a/bundles/eclipselink/src/main/java/module-info.java
+++ b/bundles/eclipselink/src/main/java/module-info.java
@@ -184,19 +184,14 @@
     exports org.eclipse.persistence.dbws;
     exports org.eclipse.persistence.jpa.rs;
     exports org.eclipse.persistence.jpa.rs.annotations;
-    exports org.eclipse.persistence.jpa.rs.eventlistener;
     exports org.eclipse.persistence.jpa.rs.exceptions;
     exports org.eclipse.persistence.jpa.rs.features;
     exports org.eclipse.persistence.jpa.rs.features.core.selflinks;
     exports org.eclipse.persistence.jpa.rs.features.fieldsfiltering;
     exports org.eclipse.persistence.jpa.rs.features.paging;
-    exports org.eclipse.persistence.jpa.rs.logging;
     exports org.eclipse.persistence.jpa.rs.resources;
     exports org.eclipse.persistence.jpa.rs.resources.common;
-    exports org.eclipse.persistence.jpa.rs.util;
     exports org.eclipse.persistence.jpa.rs.util.list;
-    exports org.eclipse.persistence.jpa.rs.util.metadatasources;
-    exports org.eclipse.persistence.jpa.rs.util.xmladapters;
 
     //exported through EclipseLink PUBLIC API
     exports org.eclipse.persistence.internal.cache;
@@ -219,7 +214,7 @@
     exports org.eclipse.persistence.internal.jpa.deployment;
     exports org.eclipse.persistence.internal.jpa.metadata.xml;
     exports org.eclipse.persistence.internal.jpa.rs.metadata.model;
-    exports org.eclipse.persistence.internal.jpa.rs.weaving;
+    exports org.eclipse.persistence.internal.jpa.rs.metadata.model.v2;
     exports org.eclipse.persistence.internal.libraries.asm;
     exports org.eclipse.persistence.internal.localization;
     exports org.eclipse.persistence.internal.oxm;
@@ -288,6 +283,8 @@
     exports org.eclipse.persistence.internal.sessions.factories.model.transport.naming;
     exports org.eclipse.persistence.internal.xr.sxf;
 
+    uses org.eclipse.persistence.jpa.rs.PersistenceContextFactoryProvider;
+
     provides jakarta.persistence.spi.PersistenceProvider with org.eclipse.persistence.jpa.PersistenceProvider;
     provides jakarta.xml.bind.JAXBContextFactory with org.eclipse.persistence.jaxb.XMLBindingContextFactory;
     provides com.sun.tools.xjc.Plugin with org.eclipse.persistence.jaxb.plugins.BeanValidationPlugin;
diff --git a/bundles/others/pom.xml b/bundles/others/pom.xml
index 9d30662..17ed878 100644
--- a/bundles/others/pom.xml
+++ b/bundles/others/pom.xml
@@ -36,7 +36,6 @@
 
         <!--Javadoc properties-->
         <javadoc.prefixTitle>EclipseLink ${release.version}</javadoc.prefixTitle>
-        <javadoc.jpars.prefixTitle>EclipseLink JPA-RS ${release.version}</javadoc.jpars.prefixTitle>
         <javadoc.nosql.prefixTitle>EclipseLink NoSQL ${release.version}</javadoc.nosql.prefixTitle>
         <javadoc.postfixTitle>API Reference</javadoc.postfixTitle>
     </properties>
@@ -96,6 +95,10 @@
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
             <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
         </dependency>
         <dependency>
@@ -373,14 +376,6 @@
 
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.jpars</artifactId>
-            <classifier>javadoc</classifier>
-            <scope>provided</scope>
-            <!-- ### fix me -->
-            <version>${project.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eclipse.persistence</groupId>
             <artifactId>org.eclipse.persistence.sdo</artifactId>
             <classifier>javadoc</classifier>
             <scope>provided</scope>
@@ -462,6 +457,7 @@
                                 <dependencySourceInclude>org.eclipse.persistence:org.eclipse.persistence.nosql</dependencySourceInclude>
                                 <dependencySourceInclude>org.eclipse.persistence:org.eclipse.persistence.oracle.nosql</dependencySourceInclude>
                                 <dependencySourceInclude>org.eclipse.persistence:org.eclipse.persistence.jpars</dependencySourceInclude>
+                                <dependencySourceInclude>org.eclipse.persistence:org.eclipse.persistence.jpars.server</dependencySourceInclude>
                             </dependencySourceIncludes>
                             <excludePackageNames>org.eclipse.persistence.internal.*</excludePackageNames>
                             <sourceFileExcludes>
@@ -526,7 +522,7 @@
                         </configuration>
                     </execution>
                     <execution>
-                        <id>sdo-jpars-javadoc.jar</id>
+                        <id>sdo-javadoc.jar</id>
                         <phase>prepare-package</phase>
                         <goals>
                             <goal>copy-dependencies</goal>
@@ -537,7 +533,6 @@
                             <includeScope>provided</includeScope>
                             <classifier>javadoc</classifier>
                             <includeArtifactIds>
-                                org.eclipse.persistence.jpars,
                                 org.eclipse.persistence.sdo
                             </includeArtifactIds>
                             <stripVersion>true</stripVersion>
diff --git a/bundles/p2site/pom.xml b/bundles/p2site/pom.xml
index 6e22dcb..6a6f6ff 100644
--- a/bundles/p2site/pom.xml
+++ b/bundles/p2site/pom.xml
@@ -71,6 +71,10 @@
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
             <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
         </dependency>
         <dependency>
@@ -316,6 +320,11 @@
         </dependency>
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
             <artifactId>org.eclipse.persistence.dbws</artifactId>
             <classifier>sources</classifier>
         </dependency>
@@ -409,7 +418,7 @@
                                     <providerName>${project.groupId}</providerName>
                                     <description>EclipseLink DBWS provides a Java-based, declarative Web Service solution for accessing relational databases.</description>
                                     <copyright>\
-                                        Copyright (c) 1998, 2020 Oracle and others. All rights reserved.\n\
+                                        Copyright (c) 1998, 2021 Oracle and others. All rights reserved.\n\
                                         This program and the accompanying materials are made available under the\n\
                                         terms of the Eclipse Public License v. 2.0 which is available at\n\
                                         http://www.eclipse.org/legal/epl-2.0,\n\
diff --git a/dbws/org.eclipse.persistence.dbws/pom.xml b/dbws/org.eclipse.persistence.dbws/pom.xml
index 666f637..f3e503c 100644
--- a/dbws/org.eclipse.persistence.dbws/pom.xml
+++ b/dbws/org.eclipse.persistence.dbws/pom.xml
@@ -32,7 +32,7 @@
 
     <properties>
         <!-- disable warnings for exports for now -->
-        <comp.xlint>-Xlint:all,-serial,-exports</comp.xlint>
+        <comp.xlint>-Xlint:all</comp.xlint>
         <test-skip-dbws>${skipTests}</test-skip-dbws>
     </properties>
 
@@ -64,12 +64,6 @@
             <optional>true</optional>
         </dependency>
         <dependency>
-            <groupId>jakarta.ws.rs</groupId>
-            <artifactId>jakarta.ws.rs-api</artifactId>
-            <scope>provided</scope>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
             <groupId>jakarta.xml.bind</groupId>
             <artifactId>jakarta.xml.bind-api</artifactId>
             <scope>provided</scope>
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/module-info.java b/dbws/org.eclipse.persistence.dbws/src/main/java/module-info.java
index 32c5efe..c60d8fc 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/module-info.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/module-info.java
@@ -17,13 +17,12 @@
 
     requires jakarta.activation;
     requires jakarta.mail;
-    requires jakarta.persistence;
-    requires static jakarta.ws.rs;
+    requires transitive jakarta.persistence;
     requires jakarta.xml.bind;
-    requires static jakarta.xml.soap;
-    requires static jakarta.xml.ws;
+    requires jakarta.xml.soap;
+    requires jakarta.xml.ws;
 
-    requires static jakarta.servlet; //AM
+    requires jakarta.servlet; //AM
 
     requires org.eclipse.persistence.asm;
     requires org.eclipse.persistence.jpa;
@@ -31,32 +30,14 @@
     requires transitive org.eclipse.persistence.moxy;
 
     exports org.eclipse.persistence.dbws;
-    exports org.eclipse.persistence.jpa.rs;
-    exports org.eclipse.persistence.jpa.rs.annotations;
-    exports org.eclipse.persistence.jpa.rs.eventlistener;
-    exports org.eclipse.persistence.jpa.rs.exceptions;
-    exports org.eclipse.persistence.jpa.rs.features;
-    exports org.eclipse.persistence.jpa.rs.features.core.selflinks;
-    exports org.eclipse.persistence.jpa.rs.features.fieldsfiltering;
-    exports org.eclipse.persistence.jpa.rs.features.paging;
-    exports org.eclipse.persistence.jpa.rs.logging;
-    exports org.eclipse.persistence.jpa.rs.resources;
-    exports org.eclipse.persistence.jpa.rs.resources.common;
-    exports org.eclipse.persistence.jpa.rs.util;
-    exports org.eclipse.persistence.jpa.rs.util.list;
-    exports org.eclipse.persistence.jpa.rs.util.metadatasources;
-    exports org.eclipse.persistence.jpa.rs.util.xmladapters;
 
     //exported through DBWS PUBLIC API
-    exports org.eclipse.persistence.internal.jpa.rs.metadata.model;
-    exports org.eclipse.persistence.internal.jpa.rs.weaving;
     exports org.eclipse.persistence.internal.xr;
 
-    //exported through DBWS INTERNAL API
+    //exported DEV
     exports org.eclipse.persistence.internal.xr.sxf;
 
     //INTERNAL ONLY exports
     exports org.eclipse.persistence.internal.dbws to org.eclipse.persistence.dbws.builder;
 
-    uses org.eclipse.persistence.jpa.rs.PersistenceContextFactoryProvider;
 }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/dbws/DBWSModelProject.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/dbws/DBWSModelProject.java
index 24b79b6..4f14a28 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/dbws/DBWSModelProject.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/dbws/DBWSModelProject.java
@@ -308,7 +308,8 @@
         descriptor.getInheritancePolicy().setClassIndicatorField(isColl);
         descriptor.getInheritancePolicy().setClassExtractor(new ClassExtractor() {
             @Override
-            public Class<?> extractClassFromRow(DataRecord dataRecord, Session session) {
+            @SuppressWarnings({"unchecked"})
+            public <T> Class<T> extractClassFromRow(DataRecord dataRecord, Session session) {
                 Class<?> clz = Result.class;
                 UnmarshalRecord uRecord = (UnmarshalRecord) dataRecord;
                 Attributes attrs = uRecord.getAttributes();
@@ -324,7 +325,7 @@
                         }
                     }
                 }
-                return clz;
+                return (Class<T>) clz;
             }
         });
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/dbws/SOAPResponseWriter.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/dbws/SOAPResponseWriter.java
index 4b237f8..1680fd3 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/dbws/SOAPResponseWriter.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/dbws/SOAPResponseWriter.java
@@ -206,7 +206,9 @@
         XMLDescriptor descriptor = resultDescriptors.get(op.getName());
         SOAPResponse response = null;
         try {
-            response = (SOAPResponse) descriptor.getJavaClass().getConstructor().newInstance();
+            @SuppressWarnings({"unchecked"})
+            Class<? extends SOAPResponse> cls = descriptor.getJavaClass();
+            response = cls.getConstructor().newInstance();
         } catch (ReflectiveOperationException ie) {
             throw new SOAPException(ie);
         }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/JPQLQueryHandler.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/JPQLQueryHandler.java
index ecc1f2b..af128c9 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/JPQLQueryHandler.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/JPQLQueryHandler.java
@@ -32,6 +32,12 @@
 
     protected String jpqlString;
 
+    /**
+     * Default constructor.
+     */
+    public JPQLQueryHandler() {
+    }
+
     public String getJpqlString() {
         return jpqlString;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/ProjectHelper.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/ProjectHelper.java
index 2ebf6a1..1db37d2 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/ProjectHelper.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/ProjectHelper.java
@@ -15,22 +15,20 @@
 package org.eclipse.persistence.internal.xr;
 
 //javase imports
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Set;
 
-//java eXtension imports
-
-//EclipseLink imports
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.internal.databaseaccess.Platform;
 import org.eclipse.persistence.internal.helper.ConversionManager;
 import org.eclipse.persistence.internal.indirection.BasicIndirectionPolicy;
-import org.eclipse.persistence.internal.xr.XRDynamicEntity;
 import org.eclipse.persistence.mappings.DatabaseMapping;
 import org.eclipse.persistence.mappings.ForeignReferenceMapping;
 import org.eclipse.persistence.sessions.Login;
 import org.eclipse.persistence.sessions.Project;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Set;
+
 import static org.eclipse.persistence.internal.xr.XRDynamicClassLoader.COLLECTION_WRAPPER_SUFFIX;
 
 /**
@@ -41,20 +39,25 @@
  * This API only supports EclipseLink 1.x format deployment XML
  */
 
-@SuppressWarnings({"rawtypes"})
-public class ProjectHelper {
+public final class ProjectHelper {
+
+    private ProjectHelper() {
+        // no instance please
+    }
+
     /**
      * INTERNAL: Fix the given EclipseLink OR and OX projects so that the
      * descriptors for all generated sub-classes of XRDynamicEntity have the correct
      * AttributeAccessors.
      */
     public static void fixOROXAccessors(Project orProject, Project oxProject) {
-        for (Iterator i = orProject.getDescriptors().values().iterator(); i.hasNext();) {
-            ClassDescriptor desc = (ClassDescriptor)i.next();
-            Class clz = desc.getJavaClass();
-            if (!XRDynamicEntity.class.isAssignableFrom(clz)) {
+        for (Iterator<ClassDescriptor> i = orProject.getDescriptors().values().iterator(); i.hasNext();) {
+            ClassDescriptor desc = i.next();
+            if (!XRDynamicEntity.class.isAssignableFrom(desc.getJavaClass())) {
                 continue;
             }
+            @SuppressWarnings({"unchecked"})
+            Class<? extends XRDynamicEntity> clz = (Class<? extends XRDynamicEntity>) desc.getJavaClass();
             ClassDescriptor xdesc = null;
             if (oxProject != null) {
                 xdesc = oxProject.getDescriptorForAlias(desc.getAlias());
@@ -62,7 +65,7 @@
             XRDynamicPropertiesManager xrDPM = null;
             if (!clz.getName().endsWith(COLLECTION_WRAPPER_SUFFIX)) {
                 try {
-                    XRDynamicEntity newInstance = (XRDynamicEntity)clz.getConstructor().newInstance();
+                    XRDynamicEntity newInstance = clz.getConstructor().newInstance();
                     xrDPM = newInstance.fetchPropertiesManager();
                 }
                 catch (Exception e) {
@@ -70,8 +73,8 @@
                 }
             }
             Set<String> propertiesNameSet = new HashSet<>();
-            for (Iterator j = desc.getMappings().iterator(); j.hasNext();) {
-                DatabaseMapping dm = (DatabaseMapping)j.next();
+            for (Iterator<DatabaseMapping> j = desc.getMappings().iterator(); j.hasNext();) {
+                DatabaseMapping dm = j.next();
                 String attributeName = dm.getAttributeName();
                 DatabaseMapping xdm = null;
                 if (xdesc != null) {
@@ -112,12 +115,12 @@
                 }
             }
         }
-        if (cl != null && cl instanceof XRDynamicClassLoader) {
+        if (cl instanceof XRDynamicClassLoader) {
             XRDynamicClassLoader xrdecl = (XRDynamicClassLoader)cl;
             xrdecl.dontGenerateSubclasses();
         }
         if (oxProject != null) {
-        cl = null;
+            cl = null;
             login = oxProject.getDatasourceLogin();
             if (login != null) {
                 Platform platform = login.getDatasourcePlatform();
@@ -128,8 +131,8 @@
                     }
                 }
             }
-            if (cl != null && cl instanceof XRDynamicClassLoader) {
-                XRDynamicClassLoader xrdecl = (XRDynamicClassLoader)cl;
+            if (cl instanceof XRDynamicClassLoader) {
+                XRDynamicClassLoader xrdecl = (XRDynamicClassLoader) cl;
                 xrdecl.dontGenerateSubclasses();
             }
         }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QNameTransformer.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QNameTransformer.java
index 0fa0877..c511e4b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QNameTransformer.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QNameTransformer.java
@@ -16,8 +16,6 @@
 package org.eclipse.persistence.internal.xr;
 
 //javase imports
-import static javax.xml.XMLConstants.DEFAULT_NS_PREFIX;
-import static javax.xml.XMLConstants.NULL_NS_URI;
 import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
 import static org.eclipse.persistence.internal.oxm.Constants.ANY;
 import static org.eclipse.persistence.internal.oxm.Constants.ANY_QNAME;
@@ -117,7 +115,7 @@
 
   AbstractTransformationMapping transformationMapping;
   private transient NamespaceResolver namespaceResolver;
-  private String xPath;
+  private final String xPath;
 
   public QNameTransformer(String xPath) {
       super();
@@ -139,7 +137,6 @@
       if (null == value) {
           return null;
       }
-      QName qName = null;
       int index = value.lastIndexOf(COLON);
       if (index > -1) {
           String prefix = value.substring(0, index);
@@ -147,24 +144,15 @@
           String namespaceURI = ((XMLRecord) dataRecord).resolveNamespacePrefix(prefix);
           // check for W3C_XML_SCHEMA_NS_URI - return TL_OX pre-built QName's
           if (W3C_XML_SCHEMA_NS_URI.equals(namespaceURI)) {
-              qName = SCHEMA_QNAMES.get(localName);
+              QName qName = SCHEMA_QNAMES.get(localName);
               if (qName == null) { // unknown W3C_XML_SCHEMA_NS_URI type ?
-                  qName = new QName(W3C_XML_SCHEMA_NS_URI, localName,
-                      prefix == null ? DEFAULT_NS_PREFIX : prefix);
+                  return new QName(W3C_XML_SCHEMA_NS_URI, localName, prefix);
               }
           }
-          else {
-              qName = new QName(namespaceURI == null ? NULL_NS_URI : namespaceURI, localName,
-                  prefix == null ? DEFAULT_NS_PREFIX : prefix);
-          }
-          return qName;
+          return new QName(namespaceURI, localName, prefix);
       }
-      else {
-          String namespaceURI = ((XMLRecord) dataRecord)
-              .resolveNamespacePrefix(DEFAULT_NAMESPACE_PREFIX);
-          qName = new QName(namespaceURI, value);
-      }
-      return qName;
+      String namespaceURI = ((XMLRecord) dataRecord).resolveNamespacePrefix(DEFAULT_NAMESPACE_PREFIX);
+      return new QName(namespaceURI, value);
   }
 
   @Override
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryOperation.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryOperation.java
index 3f6f556..40ed955 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryOperation.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryOperation.java
@@ -106,7 +106,6 @@
  * @author Mike Norman - michael.norman@oracle.com
  * @since EclipseLink 1.x
  */
-@SuppressWarnings({"serial", "unchecked"/*, "rawtypes"*/})
 public class QueryOperation extends Operation {
     public static final String ORACLEOPAQUE_STR = "oracle.sql.OPAQUE";
     private static final String IORACLEOPAQUE_STR = "oracle.jdbc.OracleOpaque";
@@ -203,7 +202,7 @@
 
     // Made static final for performance reasons.
     private static final class DataHandlerInstantiationPolicy extends InstantiationPolicy {
-        private String mimeType;
+        private final String mimeType;
         public DataHandlerInstantiationPolicy(String mimeType) {
             super();
             this.mimeType = mimeType;
@@ -368,6 +367,7 @@
      * @see  Operation
      */
     @Override
+    @SuppressWarnings({"unchecked"})
     public Object invoke(XRServiceAdapter xrService, Invocation invocation) {
         DatabaseQuery query = queryHandler.getDatabaseQuery();
 
@@ -525,6 +525,7 @@
         }
     }
 
+    @SuppressWarnings({"unchecked"})
     public Object createSimpleXMLFormat(XRServiceAdapter xrService, Object value) {
         XMLRoot xmlRoot = new XMLRoot();
         SimpleXMLFormat simpleXMLFormat = result.getSimpleXMLFormat();
@@ -643,16 +644,16 @@
                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                                 oracleOPAQUE = AccessController.doPrivileged(new PrivilegedClassForName<>(IORACLEOPAQUE_STR, true, this.getClass().getClassLoader()));
                                 xmlTypeFactoryClass = AccessController.doPrivileged(new PrivilegedClassForName<>(XMLTYPEFACTORY_STR, true, this.getClass().getClassLoader()));
-                                xmlTypeFactoryConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(xmlTypeFactoryClass, new Class[0], true));
+                                xmlTypeFactoryConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(xmlTypeFactoryClass, new Class<?>[0], true));
                                 xmlTypeFactory = AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(xmlTypeFactoryConstructor, new Object[0]));
-                                getStringMethod = AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class[] {oracleOPAQUE}));
-                                fieldValue = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getStringMethod, fieldValue, new Object[] {}));
+                                getStringMethod = AccessController.doPrivileged(new PrivilegedGetDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class<?>[] {oracleOPAQUE}));
+                                fieldValue = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getStringMethod, xmlTypeFactory, new Object[] {fieldValue}));
                             } else {
                                 oracleOPAQUE = PrivilegedAccessHelper.getClassForName(IORACLEOPAQUE_STR, false, this.getClass().getClassLoader());
                                 xmlTypeFactoryClass = PrivilegedAccessHelper.getClassForName(XMLTYPEFACTORY_STR, true, this.getClass().getClassLoader());
-                                xmlTypeFactoryConstructor = PrivilegedAccessHelper.getConstructorFor(xmlTypeFactoryClass, new Class[0], true);
+                                xmlTypeFactoryConstructor = PrivilegedAccessHelper.getConstructorFor(xmlTypeFactoryClass, new Class<?>[0], true);
                                 xmlTypeFactory = PrivilegedAccessHelper.invokeConstructor(xmlTypeFactoryConstructor, new Object[0]);
-                                getStringMethod = PrivilegedAccessHelper.getDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class[] {oracleOPAQUE});
+                                getStringMethod = PrivilegedAccessHelper.getDeclaredMethod(xmlTypeFactoryClass, GETSTRING_METHOD, new Class<?>[] {oracleOPAQUE});
                                 fieldValue = PrivilegedAccessHelper.invokeMethod(getStringMethod, xmlTypeFactory, new Object[] {fieldValue});
                             }
                         } catch (ReflectiveOperationException | PrivilegedActionException e) {
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/Util.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/Util.java
index 9942856..4c4afab 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/Util.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/Util.java
@@ -79,8 +79,7 @@
  * @author Mike Norman - michael.norman@oracle.com
  * @since EclipseLink 1.x
  */
-@SuppressWarnings("serial")
-public class Util {
+public final class Util {
     public static final XMLPlatform XML_PLATFORM = XMLPlatformFactory.getInstance().getXMLPlatform();
     public static final Document TEMP_DOC = XML_PLATFORM.createDocument();
     public static final int OPAQUE = 2007;
@@ -113,6 +112,10 @@
     public static final char COLON_CHAR = ':';
     public static final char SLASH_CHAR = '/';
 
+    private Util() {
+        // no instance please
+    }
+
     /**
      * Convert a SQL name to a valid XML name. Because not all characters that
      * are valid in a SQL name is valid in an XML name, they need to be escaped
@@ -139,7 +142,7 @@
             xmlName.append("_x003A_");
         }
         // escape _ of _x to _x005F_
-        else if ((length >= 2) && name.substring(0, 2).equals("_x")) {
+        else if ((length >= 2) && name.startsWith("_x")) {
             xmlName.append("_x005F_");
         }
         // check to see if it is a valid first character
@@ -192,7 +195,7 @@
      */
     public static String xmlToSqlName(String name) {
 
-        String sqlName = "";
+        StringBuilder sqlName = new StringBuilder();
         int length = name.length();
         boolean unescapeMode = false;
         String hexString = null;
@@ -208,30 +211,28 @@
                 } else if (c == '_') {
                     // done with escape mode
                     unescapeMode = false;
-                    if (hexString != null) {
-                        int i;
-                        int len;
-                        if ((len = hexString.length()) > 4) {
-                            char i1 = (char) (Integer.parseInt(hexString.substring(0, len - 4), 16));
-                            char i2 = (char) (Integer.parseInt(hexString.substring(len - 4), 16));
-                            sqlName += i1;
-                            sqlName += i2;
-                        } else {
-                            try {
-                                i = Integer.parseInt(hexString, 16);
-                                if (i != 0xffff) {
-                                    sqlName += (char) i;
-                                }
-                            } catch (NumberFormatException nfe) {
-                                throw new RuntimeException(nfe);
+                    int i;
+                    int len;
+                    if ((len = hexString.length()) > 4) {
+                        char i1 = (char) (Integer.parseInt(hexString.substring(0, len - 4), 16));
+                        char i2 = (char) (Integer.parseInt(hexString.substring(len - 4), 16));
+                        sqlName.append(i1);
+                        sqlName.append(i2);
+                    } else {
+                        try {
+                            i = Integer.parseInt(hexString, 16);
+                            if (i != 0xffff) {
+                                sqlName.append((char) i);
                             }
+                        } catch (NumberFormatException nfe) {
+                            throw new RuntimeException(nfe);
                         }
                     }
                 } else {
                     // invalid char in escape sequence! write everything into
                     // sqlName as is, or we could throw an exception here
                     // in the future
-                    sqlName += ("_x" + hexString + c);
+                    sqlName.append("_x").append(hexString).append(c);
                     unescapeMode = false;
                 }
             } else {
@@ -243,11 +244,11 @@
                     x++;
                 } else {
                     // just copy src char to destination
-                    sqlName += c;
+                    sqlName.append(c);
                 }
             }
         }
-        return sqlName;
+        return sqlName.toString();
     }
 
     public static String hexEscape(char c) {
@@ -319,38 +320,34 @@
                 || ((c >= 0xAC00) && (c <= 0xD7A3)) || ((c >= 0x0E47) && (c <= 0x0E4E)))
                 res = true;
             else {
-                if ((c == 0x02FF) || (c == 0x0346) || (c == 0x0362) || (c == 0x0487)
-                    || (c == 0x05A2) || (c == 0x05BA) || (c == 0x05BE) || (c == 0x05C0)
-                    || (c == 0x05C3) || (c == 0x0653) || (c == 0x06B8) || (c == 0x06B9)
-                    || (c == 0x06E9) || (c == 0x06EE) || (c == 0x0904) || (c == 0x093B)
-                    || (c == 0x094E) || (c == 0x0955) || (c == 0x0964) || (c == 0x0984)
-                    || (c == 0x09C5) || (c == 0x09C9) || (c == 0x09CE) || (c == 0x09D8)
-                    || (c == 0x09E4) || (c == 0x0A03) || (c == 0x0A3D) || (c == 0x0A46)
-                    || (c == 0x0A49) || (c == 0x0A4E) || (c == 0x0A80) || (c == 0x0A84)
-                    || (c == 0x0ABB) || (c == 0x0AC6) || (c == 0x0ACA) || (c == 0x0ACE)
-                    || (c == 0x0B04) || (c == 0x0B3B) || (c == 0x0B44) || (c == 0x0B4A)
-                    || (c == 0x0B4E) || (c == 0x0B58) || (c == 0x0B84) || (c == 0x0BC3)
-                    || (c == 0x0BC9) || (c == 0x0BD6) || (c == 0x0C0D) || (c == 0x0C45)
-                    || (c == 0x0C49) || (c == 0x0C54) || (c == 0x0C81) || (c == 0x0C84)
-                    || (c == 0x0CC5) || (c == 0x0CC9) || (c == 0x0CD4) || (c == 0x0CD7)
-                    || (c == 0x0D04) || (c == 0x0D45) || (c == 0x0D49) || (c == 0x0D4E)
-                    || (c == 0x0D58) || (c == 0x0E3F) || (c == 0x0E3B) || (c == 0x0E4F)
-                    || (c == 0x0EBA) || (c == 0x0EBE) || (c == 0x0ECE) || (c == 0x0F1A)
-                    || (c == 0x0F36) || (c == 0x0F38) || (c == 0x0F3B) || (c == 0x0F3A)
-                    || (c == 0x0F70) || (c == 0x0F85) || (c == 0x0F8C) || (c == 0x0F96)
-                    || (c == 0x0F98) || (c == 0x0FB0) || (c == 0x0FB8) || (c == 0x0FBA)
-                    || (c == 0x20DD) || (c == 0x20E2) || (c == 0x3030) || (c == 0x309B)
-                    || (c == 0x066A) || (c == 0x06FA) || (c == 0x0970) || (c == 0x09F2)
-                    || (c == 0x0AF0) || (c == 0x0B70) || (c == 0x0C65) || (c == 0x0CE5)
-                    || (c == 0x0CF0) || (c == 0x0D70) || (c == 0x0E5A) || (c == 0x0EDA)
-                    || (c == 0x0F2A) || (c == 0x02D2) || (c == 0x03FE) || (c == 0x065F)
-                    || (c == 0x0E5C) || (c == 0x0C04))
-                    res = false;
-                else {
-                    // Character.isLetter(c) || Character.isDigit(c) || '-' || '-' || '.'
-                    // is known to be true at this point
-                    res = true;
-                }
+                // Character.isLetter(c) || Character.isDigit(c) || '-' || '-' || '.'
+                // is known to be true at this point
+                res = (c != 0x02FF) && (c != 0x0346) && (c != 0x0362) && (c != 0x0487)
+                        && (c != 0x05A2) && (c != 0x05BA) && (c != 0x05BE) && (c != 0x05C0)
+                        && (c != 0x05C3) && (c != 0x0653) && (c != 0x06B8) && (c != 0x06B9)
+                        && (c != 0x06E9) && (c != 0x06EE) && (c != 0x0904) && (c != 0x093B)
+                        && (c != 0x094E) && (c != 0x0955) && (c != 0x0964) && (c != 0x0984)
+                        && (c != 0x09C5) && (c != 0x09C9) && (c != 0x09CE) && (c != 0x09D8)
+                        && (c != 0x09E4) && (c != 0x0A03) && (c != 0x0A3D) && (c != 0x0A46)
+                        && (c != 0x0A49) && (c != 0x0A4E) && (c != 0x0A80) && (c != 0x0A84)
+                        && (c != 0x0ABB) && (c != 0x0AC6) && (c != 0x0ACA) && (c != 0x0ACE)
+                        && (c != 0x0B04) && (c != 0x0B3B) && (c != 0x0B44) && (c != 0x0B4A)
+                        && (c != 0x0B4E) && (c != 0x0B58) && (c != 0x0B84) && (c != 0x0BC3)
+                        && (c != 0x0BC9) && (c != 0x0BD6) && (c != 0x0C0D) && (c != 0x0C45)
+                        && (c != 0x0C49) && (c != 0x0C54) && (c != 0x0C81) && (c != 0x0C84)
+                        && (c != 0x0CC5) && (c != 0x0CC9) && (c != 0x0CD4) && (c != 0x0CD7)
+                        && (c != 0x0D04) && (c != 0x0D45) && (c != 0x0D49) && (c != 0x0D4E)
+                        && (c != 0x0D58) && (c != 0x0E3F) && (c != 0x0E3B) && (c != 0x0E4F)
+                        && (c != 0x0EBA) && (c != 0x0EBE) && (c != 0x0ECE) && (c != 0x0F1A)
+                        && (c != 0x0F36) && (c != 0x0F38) && (c != 0x0F3B) && (c != 0x0F3A)
+                        && (c != 0x0F70) && (c != 0x0F85) && (c != 0x0F8C) && (c != 0x0F96)
+                        && (c != 0x0F98) && (c != 0x0FB0) && (c != 0x0FB8) && (c != 0x0FBA)
+                        && (c != 0x20DD) && (c != 0x20E2) && (c != 0x3030) && (c != 0x309B)
+                        && (c != 0x066A) && (c != 0x06FA) && (c != 0x0970) && (c != 0x09F2)
+                        && (c != 0x0AF0) && (c != 0x0B70) && (c != 0x0C65) && (c != 0x0CE5)
+                        && (c != 0x0CF0) && (c != 0x0D70) && (c != 0x0E5A) && (c != 0x0EDA)
+                        && (c != 0x0F2A) && (c != 0x02D2) && (c != 0x03FE) && (c != 0x065F)
+                        && (c != 0x0E5C) && (c != 0x0C04);
             }
         }
         return res;
@@ -381,25 +378,21 @@
                 || ((c >= 0xAC00) && (c <= 0xD7A3)))
                 res = true;
             else {
-                if ((c == 0x1101) || (c == 0x1104) || (c == 0x1108) || (c == 0x110A)
-                    || (c == 0x110D) || (c == 0x113B) || (c == 0x1141) || (c == 0x114D)
-                    || (c == 0x114F) || (c == 0x1151) || (c == 0x1156) || (c == 0x1162)
-                    || (c == 0x1164) || (c == 0x1166) || (c == 0x116B) || (c == 0x116F)
-                    || (c == 0x1174) || (c == 0x119F) || (c == 0x11AC) || (c == 0x11B6)
-                    || (c == 0x11B9) || (c == 0x11BB) || (c == 0x11C3) || (c == 0x11F1)
-                    || (c == 0x0132) || (c == 0x0133) || (c == 0x013F) || (c == 0x0140)
-                    || (c == 0x0149) || (c == 0x017F) || (c == 0x01C4) || (c == 0x01CC)
-                    || (c == 0x01F1) || (c == 0x01F3) || (c == 0x0E46) || (c == 0x113F)
-                    || (c == 0x01F6) || (c == 0x01F9) || (c == 0x0230) || (c == 0x03D7)
-                    || (c == 0x03DD) || (c == 0x03E1) || (c == 0x040D) || (c == 0x0450)
-                    || (c == 0x045D) || (c == 0x04EC) || (c == 0x04ED) || (c == 0x06B8)
-                    || (c == 0x06BF) || (c == 0x06CF) || (c == 0x0E2F) || (c == 0x0EAF)
-                    || (c == 0x0F6A) || (c == 0x4CFF) || (c == 0x212F) || (c == 0x0587)) {
-                    res = false;
-                } else {
-                    //Character.isLetter(c) || c == '_' is known to be true here
-                    res = true;
-                }
+                //Character.isLetter(c) || c == '_' is known to be true here
+                res = (c != 0x1101) && (c != 0x1104) && (c != 0x1108) && (c != 0x110A)
+                        && (c != 0x110D) && (c != 0x113B) && (c != 0x1141) && (c != 0x114D)
+                        && (c != 0x114F) && (c != 0x1151) && (c != 0x1156) && (c != 0x1162)
+                        && (c != 0x1164) && (c != 0x1166) && (c != 0x116B) && (c != 0x116F)
+                        && (c != 0x1174) && (c != 0x119F) && (c != 0x11AC) && (c != 0x11B6)
+                        && (c != 0x11B9) && (c != 0x11BB) && (c != 0x11C3) && (c != 0x11F1)
+                        && (c != 0x0132) && (c != 0x0133) && (c != 0x013F) && (c != 0x0140)
+                        && (c != 0x0149) && (c != 0x017F) && (c != 0x01C4) && (c != 0x01CC)
+                        && (c != 0x01F1) && (c != 0x01F3) && (c != 0x0E46) && (c != 0x113F)
+                        && (c != 0x01F6) && (c != 0x01F9) && (c != 0x0230) && (c != 0x03D7)
+                        && (c != 0x03DD) && (c != 0x03E1) && (c != 0x040D) && (c != 0x0450)
+                        && (c != 0x045D) && (c != 0x04EC) && (c != 0x04ED) && (c != 0x06B8)
+                        && (c != 0x06BF) && (c != 0x06CF) && (c != 0x0E2F) && (c != 0x0EAF)
+                        && (c != 0x0F6A) && (c != 0x4CFF) && (c != 0x212F) && (c != 0x0587);
             }
         }
         return res;
@@ -408,7 +401,7 @@
     /**
      * Char type table
      */
-    static final int chartype[] = new int[256];
+    static final int[] chartype = new int[256];
     static final int FWHITESPACE = 1;
     static final int FDIGIT = 2;
     static final int FLETTER = 4;
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRDynamicEntityVHAccessor.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRDynamicEntityVHAccessor.java
index f827eb7..f9eda45 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRDynamicEntityVHAccessor.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRDynamicEntityVHAccessor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,7 +35,6 @@
  * @since EclipseLink 1.x
  */
 
-@SuppressWarnings("serial")
 public class XRDynamicEntityVHAccessor extends XRDynamicEntityAccessor {
 
     public XRDynamicEntityVHAccessor(DatabaseMapping mapping) {
@@ -48,12 +47,13 @@
         PropertyWrapper wrapper = propertiesMap.get(attributeName);
         Object v = null;
         if (wrapper.isSet()) {
-            v = ((ValueHolderInterface)wrapper.getValue()).getValue();
+            v = ((ValueHolderInterface<?>)wrapper.getValue()).getValue();
         }
         return v;
     }
 
     @Override
+    @SuppressWarnings({"rawtypes", "unchecked"})
     public void setAttributeValueInObject(Object entity, Object value) throws DescriptorException {
         Map<String, PropertyWrapper> propertiesMap = ((XRDynamicEntity)entity).getPropertiesMap();
         PropertyWrapper wrapper = propertiesMap.get(attributeName);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRFieldInfo.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRFieldInfo.java
index 84155eb..04d4dd4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRFieldInfo.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRFieldInfo.java
@@ -19,7 +19,7 @@
 
 import org.eclipse.persistence.exceptions.DynamicException;
 
-public class XRFieldInfo {
+class XRFieldInfo {
 
     protected HashMap<String, Index> fieldInfo = new HashMap<>();
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRSessionsFactory.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRSessionsFactory.java
index a0594d3..a6be5c0 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRSessionsFactory.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XRSessionsFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -46,7 +46,12 @@
     static Pattern matchDBWSOxProject =
         Pattern.compile(/*DBWS_OX_XML*/"eclipselink-db.s-ox.xml", Pattern.CASE_INSENSITIVE);
 
-    @SuppressWarnings("unchecked")
+    /**
+     * Default constructor.
+     */
+    public XRSessionsFactory() {
+    }
+
     @Override
     protected Project loadProjectConfig(ProjectConfig projectConfig) {
         Project project = null;
@@ -56,7 +61,7 @@
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     project = (Project)AccessController.doPrivileged(
-                        new PrivilegedNewInstanceFromClass(m_classLoader.loadClass(projectString)));
+                        new PrivilegedNewInstanceFromClass<>(m_classLoader.loadClass(projectString)));
                 }else{
                     project = (Project)PrivilegedAccessHelper.newInstanceFromClass(
                         m_classLoader.loadClass(projectString));
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XmlBindingsModel.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XmlBindingsModel.java
index 0ea4c57..8044d6d 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XmlBindingsModel.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/XmlBindingsModel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -33,6 +33,12 @@
     public List<XmlBindings> bindingsList;
 
     /**
+     * Default constructor.
+     */
+    public XmlBindingsModel() {
+    }
+
+    /**
      * Return the list of XmlBindings
      */
     public List<XmlBindings> getBindingsList() {
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormat.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormat.java
index ccf9cbf..ad0c147 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormat.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormat.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -31,6 +31,12 @@
     private String simpleXMLFormatTag;
     private String xmlTag;
 
+    /**
+     * Default constructor.
+     */
+    public SimpleXMLFormat() {
+    }
+
     public String getSimpleXMLFormatTag() {
         return simpleXMLFormatTag;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormatProject.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormatProject.java
index 80e0b29..aa60df5 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormatProject.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/sxf/SimpleXMLFormatProject.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -33,9 +33,9 @@
 import org.eclipse.persistence.oxm.schema.XMLSchemaURLReference;
 import org.eclipse.persistence.sessions.Project;
 
-@SuppressWarnings("serial")
 public class SimpleXMLFormatProject extends Project {
 
+    private static final long serialVersionUID = 3830217546821842428L;
     private transient NamespaceResolver ns;
 
     public SimpleXMLFormatProject() {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/module-info.java b/foundation/org.eclipse.persistence.core/src/main/java/module-info.java
index 03cf1d1..980655b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/module-info.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/module-info.java
@@ -183,6 +183,7 @@
             org.eclipse.persistence.dbws,
             org.eclipse.persistence.jpa,
             org.eclipse.persistence.jpa.modelgen,
+            org.eclipse.persistence.jpars.server,
             org.eclipse.persistence.moxy,
             org.eclipse.persistence.oracle,
             org.eclipse.persistence.sdo;
diff --git a/jpa/org.eclipse.persistence.jpars.server/pom.xml b/jpa/org.eclipse.persistence.jpars.server/pom.xml
new file mode 100644
index 0000000..096850a
--- /dev/null
+++ b/jpa/org.eclipse.persistence.jpars.server/pom.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+
+    This program and the accompanying materials are made available under the
+    terms of the Eclipse Public License v. 2.0 which is available at
+    http://www.eclipse.org/legal/epl-2.0,
+    or the Eclipse Distribution License v. 1.0 which is available at
+    http://www.eclipse.org/org/documents/edl-v10.php.
+
+    SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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>
+
+    <name>EclipseLink JPA-RS Server</name>
+    <groupId>org.eclipse.persistence</groupId>
+    <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>org.eclipse.persistence</groupId>
+        <artifactId>org.eclipse.persistence.parent</artifactId>
+        <version>4.0.0-SNAPSHOT</version>
+        <relativePath>../../pom.xml</relativePath>
+    </parent>
+
+    <properties>
+        <!-- disable warnings for exports for now -->
+        <comp.xlint>-Xlint:all</comp.xlint>
+        <test-skip-dbws>${skipTests}</test-skip-dbws>
+    </properties>
+
+    <dependencies>
+        <!--Other modules-->
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.jpa</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.eclipse.persistence</groupId>
+            <artifactId>org.eclipse.persistence.moxy</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.ws.rs</groupId>
+            <artifactId>jakarta.ws.rs-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.xml.bind</groupId>
+            <artifactId>jakarta.xml.bind-api</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <!--Test dependencies-->
+        <!--Test framework-->
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <!--JDBC driver (test dependency)-->
+        <dependency>
+            <groupId>${db.driver.groupId}</groupId>
+            <artifactId>${db.driver.artifactId}</artifactId>
+            <version>${db.driver.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <id>bundle-manifest</id>
+                        <goals>
+                            <goal>manifest</goal>
+                        </goals>
+                        <configuration>
+                            <instructions>
+                                <Export-Package>
+                                    org.eclipse.persistence.internal.jpa.rs.metadata.model,
+                                    org.eclipse.persistence.internal.jpa.rs.metadata.model.v2,
+                                    !org.eclipse.persistence.jpa.rs.eventlistener,
+                                    !org.eclipse.persistence.jpa.rs.logging,
+                                    !org.eclipse.persistence.jpa.rs.util.metadatasources,
+                                    !org.eclipse.persistence.jpa.rs.util.xmladapters,
+                                    *
+                                </Export-Package>
+                                <Import-Package>
+                                    org.eclipse.persistence.internal.libraries.asm*;version="${version;==;${@}}",
+                                    *
+                                </Import-Package>
+                            </instructions>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/jpa/org.eclipse.persistence.jpars.server/src/main/java/module-info.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/module-info.java
new file mode 100644
index 0000000..6783956
--- /dev/null
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/module-info.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2021 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0,
+ * or the Eclipse Distribution License v. 1.0 which is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+ */
+
+module org.eclipse.persistence.jpars.server {
+
+    requires java.desktop;
+    requires java.naming;
+
+    requires transitive jakarta.persistence;
+    requires transitive jakarta.ws.rs;
+    requires jakarta.xml.bind;
+
+    requires org.eclipse.persistence.asm;
+    requires org.eclipse.persistence.jpa;
+    requires org.eclipse.persistence.jpa.jpql;
+    requires transitive org.eclipse.persistence.moxy;
+
+    exports org.eclipse.persistence.jpa.rs;
+    exports org.eclipse.persistence.jpa.rs.annotations;
+    exports org.eclipse.persistence.jpa.rs.exceptions;
+    exports org.eclipse.persistence.jpa.rs.features;
+    exports org.eclipse.persistence.jpa.rs.features.core.selflinks;
+    exports org.eclipse.persistence.jpa.rs.features.fieldsfiltering;
+    exports org.eclipse.persistence.jpa.rs.features.paging;
+    exports org.eclipse.persistence.jpa.rs.resources;
+    exports org.eclipse.persistence.jpa.rs.resources.common;
+    exports org.eclipse.persistence.jpa.rs.util.list;
+
+    //exported through PUBLIC API (for XML Binding)
+    exports org.eclipse.persistence.internal.jpa.rs.metadata.model;
+    exports org.eclipse.persistence.internal.jpa.rs.metadata.model.v2;
+
+    uses org.eclipse.persistence.jpa.rs.PersistenceContextFactoryProvider;
+}
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java
index 9a56e23..73e0bcc 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Attribute.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java
similarity index 87%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java
index d26adf3..ad354ce 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/CollectionWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -28,6 +28,12 @@
 
     private List<LinkV2> links;
 
+    /**
+     * Default constructor.
+     */
+    public CollectionWrapper() {
+    }
+
     public Collection<T> getItems() {
         return items;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java
index a0c3d6f..b6e9a48 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Descriptor.java
@@ -30,6 +30,12 @@
     protected List<Attribute> attributes = new ArrayList<>();
     protected List<Query> queries = new ArrayList<>();
 
+    /**
+     * Default constructor.
+     */
+    public Descriptor() {
+    }
+
     public String getName() {
         return name;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java
index 6218c44..1219c6d 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/ItemLinks.java
@@ -28,6 +28,12 @@
     private List<LinkV2> links;
 
     /**
+     * Default constructor.
+     */
+    public ItemLinks() {
+    }
+
+    /**
      * Returns a list of all links.
      *
      * @return a list of links.
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java
index 0aa7f35..532271a 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Link.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -21,6 +21,9 @@
     private String method;
     private String href;
 
+    /**
+     * Default constructor.
+     */
     public Link() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java
index db813fc..5f4fdf5 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkTemplate.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -25,6 +25,9 @@
     private String method;
     private String href;
 
+    /**
+     * Default constructor.
+     */
     public LinkTemplate() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java
index f6e347d..7ee1ab4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/LinkV2.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,6 +35,9 @@
     @XmlAttribute
     private String mediaType;
 
+    /**
+     * Default constructor.
+     */
     public LinkV2() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java
similarity index 87%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java
index ddcfee2..3f1b80a 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Parameter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -22,6 +22,12 @@
     private String value = null;
     private String typeName = null;
 
+    /**
+     * Default constructor.
+     */
+    public Parameter() {
+    }
+
     public String getValue() {
         return value;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java
index 19e7be3..08b1f9c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/PersistenceUnit.java
@@ -27,6 +27,12 @@
     protected String persistenceUnitName = null;
     protected List<Link> types = new ArrayList<>();
 
+    /**
+     * Default constructor.
+     */
+    public PersistenceUnit() {
+    }
+
     public String getPersistenceUnitName() {
         return persistenceUnitName;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java
index df03b20..e471119 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/Query.java
@@ -28,6 +28,9 @@
     protected LinkTemplate linkTemplate;
     protected List<String> returnTypes = new ArrayList<>();
 
+    /**
+     * Default constructor.
+     */
     public Query() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java
index 5683ddb..06daac4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/SessionBeanCall.java
@@ -29,6 +29,12 @@
     private String context = null;
     private List<Parameter> parameters = new ArrayList<>();
 
+    /**
+     * Default constructor.
+     */
+    public SessionBeanCall() {
+    }
+
     public String getContext() {
         return context;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java
index e08220c..d1d2ff9 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ContextsCatalog.java
@@ -31,6 +31,12 @@
     /** A list of contexts **/
     private List<Resource> items;
 
+    /**
+     * Default constructor.
+     */
+    public ContextsCatalog() {
+    }
+
     public List<Resource> getItems() {
         return items;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java
index ae1b97d..e39238c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/MetadataCatalog.java
@@ -36,6 +36,12 @@
     /** Links **/
     private List<LinkV2> links;
 
+    /**
+     * Default constructor.
+     */
+    public MetadataCatalog() {
+    }
+
     public List<Resource> getItems() {
         return items;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java
index 43a7b42..47afb08 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Property.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -33,6 +33,9 @@
     @XmlElement
     private Property items;
 
+    /**
+     * Default constructor.
+     */
     public Property() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java
index 2310ebb..20528d6 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Reference.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -30,6 +30,9 @@
     @XmlElement(name = "$ref")
     private String ref;
 
+    /**
+     * Default constructor.
+     */
     public Reference() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java
similarity index 90%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java
index 70aaf6d..43fdae4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/Resource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -36,6 +36,12 @@
     /** Links to this resource **/
     private List<LinkV2> links;
 
+    /**
+     * Default constructor.
+     */
+    public Resource() {
+    }
+
     public String getName() {
         return name;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java
index ea427d2..7223b67 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/metadata/model/v2/ResourceSchema.java
@@ -58,6 +58,12 @@
     /** Links **/
     private List<LinkV2> links;
 
+    /**
+     * Default constructor.
+     */
+    public ResourceSchema() {
+    }
+
     public String getSchema() {
         return schema;
     }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/CollectionProxyClassWriter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/CollectionProxyClassWriter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/CollectionProxyClassWriter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/CollectionProxyClassWriter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java
index 8674a49..b63633a 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/PersistenceWeavedRest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java
index d7b807c..a34c49c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RelationshipInfo.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestAdapterClassWriter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestAdapterClassWriter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestAdapterClassWriter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestAdapterClassWriter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestCollectionAdapterClassWriter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestCollectionAdapterClassWriter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestCollectionAdapterClassWriter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestCollectionAdapterClassWriter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestDynamicClassWriter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestDynamicClassWriter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestDynamicClassWriter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestDynamicClassWriter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestReferenceAdapterV2ClassWriter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestReferenceAdapterV2ClassWriter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestReferenceAdapterV2ClassWriter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/internal/jpa/rs/weaving/RestReferenceAdapterV2ClassWriter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java
similarity index 88%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java
index 96a5cce..3ad48e2 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/DataStorage.java
@@ -17,10 +17,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
-public class DataStorage {
+public final class DataStorage {
     // key names in the data storage
     public static final String REQUEST_ID = "requestId";
 
+    private DataStorage() {
+        // no instance please
+    }
+
     private final static InheritableThreadLocal<Map<String, Object>> storage = new InheritableThreadLocal<Map<String, Object>>() {
         @Override
         protected Map<String, Object> initialValue() {
@@ -58,11 +62,9 @@
      * Destroy.
      */
     public static void destroy() {
-        if (storage != null) {
-            if (storage.get() != null) {
-                storage.get().clear();
-            }
-            storage.remove();
+        if (storage.get() != null) {
+            storage.get().clear();
         }
+        storage.remove();
     }
 }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/DynamicRestClassLoader.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/DynamicRestClassLoader.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/DynamicRestClassLoader.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/DynamicRestClassLoader.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java
index 738708b..41d4320 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/MatrixParameters.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java
index 9c16bd8..fc4007b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContext.java
@@ -82,7 +82,6 @@
 import org.eclipse.persistence.jaxb.ObjectGraph;
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory;
-import org.eclipse.persistence.jaxb.metadata.MetadataSource;
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.jpa.PersistenceProvider;
 import org.eclipse.persistence.jpa.dynamic.JPADynamicHelper;
@@ -154,7 +153,7 @@
 
     private SessionLog sessionLog = null;
 
-    protected TransactionWrapper transaction = null;
+    private TransactionWrapper transaction = null;
 
     private Boolean weavingEnabled = null;
 
@@ -180,7 +179,7 @@
      * @param emf the emf
      * @param defaultURI the default uri
      */
-    public PersistenceContext(String emfName, EntityManagerFactoryImpl emf, URI defaultURI) {
+    public PersistenceContext(String emfName, EntityManagerFactory emf, URI defaultURI) {
         super();
         init(emfName, emf, defaultURI, ServiceVersion.VERSION_2_0);
     }
@@ -193,16 +192,16 @@
      * @param defaultURI the default uri
      * @param version REST service version
      */
-    public PersistenceContext(String emfName, EntityManagerFactoryImpl emf, URI defaultURI, ServiceVersion version) {
+    public PersistenceContext(String emfName, EntityManagerFactory emf, URI defaultURI, ServiceVersion version) {
         super();
         init(emfName, emf, defaultURI, version);
     }
 
-    private void init(String emfName, EntityManagerFactoryImpl emf, URI defaultURI, ServiceVersion version) {
+    private void init(String emfName, EntityManagerFactory emf, URI defaultURI, ServiceVersion version) {
         this.emf = emf;
         this.name = emfName;
         this.baseURI = defaultURI;
-        this.sessionLog = emf.getServerSession().getSessionLog();
+        this.sessionLog = JpaHelper.getDatabaseSession(emf).getSessionLog();
 
         if (version != null) {
             this.version = version;
@@ -217,7 +216,7 @@
         }
 
         try {
-            this.jaxbContext = createDynamicJAXBContext(emf.getDatabaseSession());
+            this.jaxbContext = createDynamicJAXBContext(JpaHelper.getServerSession(emf));
         } catch (JAXBException | IOException jaxbe) {
             JPARSLogger.exception(getSessionLog(), "exception_creating_jaxb_context", new Object[] { emfName, jaxbe.toString() }, jaxbe);
             emf.close();
@@ -261,7 +260,7 @@
      * that creates the same mappings in JAXB is created.  These MetadataSources are used to constuct the JAXContext
      * that is used for JSON and XML translation.
      */
-    protected void addDynamicXMLMetadataSources(List<Object> metadataSources, AbstractSession session) {
+    protected void addDynamicXMLMetadataSources(List<Object> metadataSources, Session session) {
         Set<String> packages = new HashSet<>();
         for (Class<?> descriptorClass : session.getDescriptors().keySet()) {
             String packageName = "";
@@ -302,7 +301,7 @@
     /**
      * Create a JAXBContext based on the EntityManagerFactory for this PersistenceContext.
      */
-    protected JAXBContext createDynamicJAXBContext(AbstractSession session) throws JAXBException, IOException {
+    protected JAXBContext createDynamicJAXBContext(Session session) throws JAXBException, IOException {
         final ServiceVersion cachedContextVersion = (ServiceVersion) session.getProperty(SESSION_VERSION_PROPERTY);
         final JAXBContext cachedContext = (JAXBContext) session.getProperty(JAXBContext.class.getName());
         if (cachedContext != null && cachedContextVersion != null && cachedContextVersion == version) {
@@ -323,10 +322,10 @@
      * A part of the facade over the JPA API.
      * Create an EntityManagerFactory using the given PersistenceUnitInfo and properties.
      */
-    protected EntityManagerFactoryImpl createEntityManagerFactory(PersistenceUnitInfo info, Map<String, ?> properties) {
+    protected EntityManagerFactory createEntityManagerFactory(PersistenceUnitInfo info, Map<String, ?> properties) {
         PersistenceProvider provider = new PersistenceProvider();
         EntityManagerFactory emf = provider.createContainerEntityManagerFactory(info, properties);
-        return (EntityManagerFactoryImpl) emf;
+        return emf;
     }
 
     /**
@@ -341,8 +340,7 @@
      * Build the set of properties used to create the JAXBContext based on the EntityManagerFactory that
      * this PersistenceContext wraps
      */
-    @SuppressWarnings({"rawtypes" })
-    protected Map<String, Object> createJAXBProperties(AbstractSession session) throws IOException {
+    protected Map<String, Object> createJAXBProperties(Session session) throws IOException {
         Map<String, Object> properties = new HashMap<>(1);
         List<Object> metadataLocations = new ArrayList<>();
 
@@ -356,16 +354,14 @@
         Object passedOXMLocations = emf.getProperties().get(JAXBContextProperties.OXM_METADATA_SOURCE);
         if (passedOXMLocations != null) {
             if (passedOXMLocations instanceof Collection) {
-                metadataLocations.addAll((Collection) passedOXMLocations);
+                metadataLocations.addAll((Collection<?>) passedOXMLocations);
             } else {
                 metadataLocations.add(passedOXMLocations);
             }
         }
 
         // Add static metadata sources specific to current version
-        for (MetadataSource metadataSource : getSupportedFeatureSet().getMetadataSources()) {
-            metadataLocations.add(metadataSource);
-        }
+        metadataLocations.addAll(getSupportedFeatureSet().getMetadataSources());
 
         properties.put(JAXBContextProperties.OXM_METADATA_SOURCE, metadataLocations);
 
@@ -870,7 +866,6 @@
         }
     }
 
-    @SuppressWarnings("rawtypes")
     protected Query constructQuery(EntityManager em, String name, Map<?, ?> parameters, Map<String, ?> hints) {
         Query query = em.createNamedQuery(name);
         DatabaseQuery dbQuery = ((EJBQueryImpl<?>) query).getDatabaseQuery();
@@ -879,7 +874,7 @@
             while (i.hasNext()) {
                 Map.Entry<?, ?> entry = (Map.Entry<?, ?>) i.next();
                 String key = (String) entry.getKey();
-                Class parameterClass = null;
+                Class<?> parameterClass = null;
                 int index = dbQuery.getArguments().indexOf(key);
                 if (index >= 0) {
                     parameterClass = dbQuery.getArgumentTypes().get(index);
@@ -1475,7 +1470,7 @@
      *
      * @return the collectionWrapperBuilder.
      */
-    public CollectionWrapperBuilder getCollectionWrapperBuilder() {
+    private CollectionWrapperBuilder getCollectionWrapperBuilder() {
         if (collectionWrapperBuilder == null) {
             collectionWrapperBuilder = new CollectionWrapperBuilder(this);
         }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactory.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactory.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactory.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactory.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactoryProvider.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactoryProvider.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactoryProvider.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceContextFactoryProvider.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceFactoryBase.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceFactoryBase.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceFactoryBase.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/PersistenceFactoryBase.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/QueryParameters.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/QueryParameters.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/QueryParameters.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/QueryParameters.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java
index e52ef30..8ca2b33 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/ReservedWords.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java
similarity index 90%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java
index 5b04001..b43656c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/SystemDefaults.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java
index e2625fa..d7915f0 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageable.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java
index 98242b3..1f73f26 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQueries.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java
index 33d7c1e..795827a 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/annotations/RestPageableQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java
index 8101e44..d06db3e 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/ChangeListener.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DatabaseEventListenerFactory.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DatabaseEventListenerFactory.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DatabaseEventListenerFactory.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DatabaseEventListenerFactory.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DescriptorBasedDatabaseEventListener.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DescriptorBasedDatabaseEventListener.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DescriptorBasedDatabaseEventListener.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/eventlistener/DescriptorBasedDatabaseEventListener.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java
index b1e8717..1695b89 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/AbstractExceptionMapper.java
@@ -90,6 +90,12 @@
     // An absolute URI that identifies the problem type.  When dereferenced, it SHOULD provide human-readable documentation for the problem type (e.g., using HTML)."
     private static final String PROBLEM_TYPE = "http://www.eclipse.org/eclipselink/documentation/";
 
+    /**
+     * Default constructor.
+     */
+    protected AbstractExceptionMapper() {
+    }
+
     protected Response buildResponse(JPARSException exception) {
         String path = null;
         exception.setHttpStatusCode(getHttpStatusCode(exception.getCause()));
@@ -135,7 +141,7 @@
 
     private String marshallErrorResponse(ErrorResponse errorResponse, String mediaType) {
         try {
-            JAXBContext context = (JAXBContext) JAXBContextFactory.createContext(new Class[] { ErrorResponse.class }, null);
+            JAXBContext context = (JAXBContext) JAXBContextFactory.createContext(new Class<?>[] { ErrorResponse.class }, null);
             Marshaller marshaller = context.createMarshaller();
 
             marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, mediaType);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java
index cdaede1..187a62c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/ErrorResponse.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java
index 5b1b6fd..6d378a8 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -22,6 +22,8 @@
 import jakarta.ws.rs.core.Response.Status;
 
 public class JPARSException extends EclipseLinkException {
+
+    private static final long serialVersionUID = 4909005756107349904L;
     private Status httpStatusCode;
 
     /**
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java
similarity index 88%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java
index 0d36461..c01413e 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/exceptions/JPARSExceptionMapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -22,6 +22,13 @@
 
 @Provider
 public class JPARSExceptionMapper extends AbstractExceptionMapper implements ExceptionMapper<JPARSException> {
+
+    /**
+     * Default constructor.
+     */
+    public JPARSExceptionMapper() {
+    }
+
     @Override
     public Response toResponse(JPARSException exception) {
         if (exception.getCause() != null) {
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java
index d89b349..340ceab 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilderImpl.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilderImpl.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilderImpl.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureResponseBuilderImpl.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java
index e1d4334..c5892cb 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSet.java
@@ -19,6 +19,7 @@
 import org.eclipse.persistence.internal.jaxb.SessionEventListener;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.jaxb.metadata.MetadataSource;
+import org.eclipse.persistence.sessions.Session;
 
 import java.util.List;
 
@@ -71,7 +72,7 @@
      *
      * @return {@link MetadataSource}
      */
-    MetadataSource getDynamicMetadataSource(AbstractSession session, String packageName);
+    MetadataSource getDynamicMetadataSource(Session session, String packageName);
 
     /**
      * Returns {@link SessionEventListener} related to this version.
@@ -79,5 +80,5 @@
      * @param session the session
      * @return {@link SessionEventListener}
      */
-    SessionEventListener getSessionEventListener(AbstractSession session);
+    SessionEventListener getSessionEventListener(Session session);
 }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java
index 9022364..38e6fcd 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetPreV2.java
@@ -34,6 +34,7 @@
 import org.eclipse.persistence.jpa.rs.util.metadatasources.ReportQueryResultListMetadataSource;
 import org.eclipse.persistence.jpa.rs.util.metadatasources.SimpleHomogeneousListMetadataSource;
 import org.eclipse.persistence.jpa.rs.util.metadatasources.SingleResultQueryListMetadataSource;
+import org.eclipse.persistence.sessions.Session;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -90,12 +91,12 @@
     }
 
     @Override
-    public MetadataSource getDynamicMetadataSource(AbstractSession session, String packageName) {
+    public MetadataSource getDynamicMetadataSource(Session session, String packageName) {
         return new DynamicXMLMetadataSource(session, packageName);
     }
 
     @Override
-    public SessionEventListener getSessionEventListener(AbstractSession session) {
+    public SessionEventListener getSessionEventListener(Session session) {
         return new PreLoginMappingAdapter(session);
     }
 }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java
index 808a1ac..b31bb08 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/FeatureSetV2.java
@@ -37,6 +37,7 @@
 import org.eclipse.persistence.jpa.rs.util.metadatasources.SimpleHomogeneousListMetadataSource;
 import org.eclipse.persistence.jpa.rs.util.metadatasources.SingleResultQueryListMetadataSource;
 import org.eclipse.persistence.jpa.rs.util.metadatasources.SingleResultQueryResultMetadataSource;
+import org.eclipse.persistence.sessions.Session;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -96,12 +97,12 @@
     }
 
     @Override
-    public MetadataSource getDynamicMetadataSource(AbstractSession session, String packageName) {
+    public MetadataSource getDynamicMetadataSource(Session session, String packageName) {
         return new DynamicXmlV2MetadataSource(session, packageName);
     }
 
     @Override
-    public SessionEventListener getSessionEventListener(AbstractSession session) {
+    public SessionEventListener getSessionEventListener(Session session) {
         return new PreLoginMappingAdapterV2();
     }
 }
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/ItemLinksBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/ItemLinksBuilder.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/ItemLinksBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/ItemLinksBuilder.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/ServiceVersion.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/ServiceVersion.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/ServiceVersion.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/ServiceVersion.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/core/selflinks/SelfLinksResponseBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/core/selflinks/SelfLinksResponseBuilder.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/core/selflinks/SelfLinksResponseBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/core/selflinks/SelfLinksResponseBuilder.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java
index e86d4fd..db6d601 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java
index d15ccc7..481e9d6 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilterType.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java
index d67604e..c7c85f8 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/fieldsfiltering/FieldsFilteringValidator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java
index 6c12f32..a2e1bb6 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/AbstractPagingValidator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java
index cadf074..67f0dca 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableFieldValidator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java
index 5502c14..9c7ff3c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PageableQueryValidator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PagingResponseBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PagingResponseBuilder.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PagingResponseBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/features/paging/PagingResponseBuilder.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/logging/LoggingLocalization.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/logging/LoggingLocalization.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/logging/LoggingLocalization.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/logging/LoggingLocalization.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java
index 1182e37..05d0a2b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/logging/i18n/LoggingLocalizationResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java
index 71f2349..722721d 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/EntityResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/MetadataResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/MetadataResource.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/MetadataResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/MetadataResource.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java
index d5cb2a0..92fa9de 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java
index 3a8a759..2af8396 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/PersistenceUnitResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java
index f643470..267f815 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/QueryResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java
index dafd391..26fa6f2 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/SingleResultQueryResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java
similarity index 99%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java
index dfa3048..9893887 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractEntityResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java
index 59be561..7144a13 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -118,7 +118,7 @@
             Object[] args = new Object[call.getParameters().size()];
             int i = 0;
             for (Parameter param : call.getParameters()) {
-                Class parameterClass = null;
+                Class<?> parameterClass = null;
                 Object parameterValue;
                 if (context != null) {
                     parameterClass = context.getClass(param.getTypeName());
@@ -153,7 +153,7 @@
     }
 
     private SessionBeanCall unmarshallSessionBeanCall(InputStream data) throws JAXBException {
-        Class<?>[] jaxbClasses = new Class[] { SessionBeanCall.class };
+        Class<?>[] jaxbClasses = new Class<?>[] { SessionBeanCall.class };
         JAXBContext context = (JAXBContext) JAXBContextFactory.createContext(jaxbClasses, null);
         Unmarshaller unmarshaller = context.createUnmarshaller();
         unmarshaller.setProperty(UnmarshallerProperties.JSON_INCLUDE_ROOT, Boolean.FALSE);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceUnitResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceUnitResource.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceUnitResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractPersistenceUnitResource.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java
similarity index 99%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java
index 459ae1a..bcb80ec 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractQueryResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java
index 8532baa..780c56b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractResource.java
@@ -73,6 +73,12 @@
     protected PersistenceContextFactory factory;
 
     /**
+     * Default constructor.
+     */
+    protected AbstractResource() {
+    }
+
+    /**
      * Sets the persistence factory.
      *
      * @param factory the new persistence factory
@@ -233,7 +239,7 @@
      * @throws JAXBException the jAXB exception
      */
     protected String marshallMetadata(Object metadata, String mediaType) throws JAXBException {
-        final Class<?>[] jaxbClasses = new Class[] { Link.class, Attribute.class, Descriptor.class, LinkTemplate.class, PersistenceUnit.class, Query.class, LinkList.class, QueryList.class,
+        final Class<?>[] jaxbClasses = new Class<?>[] { Link.class, Attribute.class, Descriptor.class, LinkTemplate.class, PersistenceUnit.class, Query.class, LinkList.class, QueryList.class,
                 ResourceSchema.class, Property.class, Reference.class, LinkV2.class, MetadataCatalog.class, Resource.class, ItemLinks.class, ContextsCatalog.class };
         final JAXBContext context = (JAXBContext) JAXBContextFactory.createContext(jaxbClasses, null);
         final Marshaller marshaller = context.createMarshaller();
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java
index 5c00397..1ff7b0b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/resources/common/AbstractSingleResultQueryResource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java
similarity index 92%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java
index cd130f6..f6c9d18 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionProxy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionWrapperBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionWrapperBuilder.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionWrapperBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/CollectionWrapperBuilder.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ConcreteSubclassFactory.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ConcreteSubclassFactory.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ConcreteSubclassFactory.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ConcreteSubclassFactory.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java
index b7eaaa5..347e545 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/HrefHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java
index 6913d73..778cbac 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/IdHelper.java
@@ -78,7 +78,7 @@
             SortableKey key = iterator.next();
             String token = tokenizer.nextToken();
             DatabaseMapping mapping = key.getMapping();
-            Class attributeClasification = mapping.getAttributeClassification();
+            Class<?> attributeClasification = mapping.getAttributeClassification();
             if (attributeClasification == null) {
                 if ((mapping.getFields() != null) && (!mapping.getFields().isEmpty())) {
                     attributeClasification = mapping.getFields().get(0).getType();
@@ -223,7 +223,7 @@
         return entity;
     }
 
-    public static List<SortableKey> getPrimaryKey(PersistenceContext context, String entityName) {
+    static List<SortableKey> getPrimaryKey(PersistenceContext context, String entityName) {
         ClassDescriptor descriptor = context.getDescriptor(entityName);
         List<DatabaseMapping> pkMappings = descriptor.getObjectBuilder().getPrimaryKeyMappings();
         List<SortableKey> pkIndices = new ArrayList<>();
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/InMemoryArchive.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/InMemoryArchive.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/InMemoryArchive.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/InMemoryArchive.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java
similarity index 99%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java
index 1129007..3d18678 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JPARSLogger.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java
index 2ede526..058069a 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/JTATransactionWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java
index cbc944b..abc5347 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/MethodExitLogData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ObjectGraphBuilder.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ObjectGraphBuilder.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ObjectGraphBuilder.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ObjectGraphBuilder.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java
index cbde40b..164bde1 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapter.java
@@ -45,6 +45,7 @@
 import org.eclipse.persistence.oxm.mappings.XMLCompositeObjectMapping;
 import org.eclipse.persistence.oxm.mappings.XMLInverseReferenceMapping;
 import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.sessions.Session;
 import org.eclipse.persistence.sessions.SessionEvent;
 
 /**
@@ -56,14 +57,14 @@
  */
 public class PreLoginMappingAdapter extends SessionEventListener {
 
-    protected AbstractSession jpaSession;
+    protected Session jpaSession;
 
     /**
      * Instantiates a new pre login mapping adapter.
      *
      * @param jpaSession the jpa session
      */
-    public PreLoginMappingAdapter(AbstractSession jpaSession) {
+    public PreLoginMappingAdapter(Session jpaSession) {
         this.jpaSession = jpaSession;
     }
 
@@ -286,7 +287,7 @@
      * @param cl the classloader
      */
     @SuppressWarnings("rawtypes")
-    private static void convertMappingToXMLChoiceMapping(ClassDescriptor jaxbDescriptor, DatabaseMapping jpaMapping, ClassLoader cl, AbstractSession jpaSession) {
+    private static void convertMappingToXMLChoiceMapping(ClassDescriptor jaxbDescriptor, DatabaseMapping jpaMapping, ClassLoader cl, Session jpaSession) {
         if ((jpaMapping != null) && (jaxbDescriptor != null)) {
             if ((jpaMapping instanceof ForeignReferenceMapping) && ((jpaMapping.isAggregateCollectionMapping()) || (jpaMapping.isAggregateMapping()))) {
                 // Fix for Bug 402385 - JPA-RS: ClassNotFound when using ElementCollection of Embeddables
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapterV2.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapterV2.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapterV2.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/PreLoginMappingAdapterV2.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java
similarity index 93%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java
index 4c41bba..8a06804 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/ResourceLocalTransactionWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java
index 0a8799c..7d378bb 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/StreamingOutputMarshaller.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java
similarity index 91%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java
index 3eaf10f..8896a81 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/TransactionWrapper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java
similarity index 91%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java
index 4986658..6c3d4ef 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/LinkList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -33,6 +33,9 @@
 public class LinkList {
     private List<Link> list;
 
+    /**
+     * Default constructor.
+     */
     public LinkList() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/PageableCollection.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/PageableCollection.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/PageableCollection.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/PageableCollection.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java
similarity index 91%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java
index 4599657..0ee9d20 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/QueryList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -33,6 +33,9 @@
 public class QueryList {
     private List<Query> list;
 
+    /**
+     * Default constructor.
+     */
     public QueryList() {
     }
 
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java
index ee58e06..a6e6279 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReadAllQueryResultCollection.java
@@ -38,6 +38,12 @@
     private Integer count = null;
     private List<LinkV2> links;
 
+    /**
+     * Default constructor.
+     */
+    public ReadAllQueryResultCollection() {
+    }
+
     @Override
     public List<Object> getItems() {
         return items;
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultCollection.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultCollection.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultCollection.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultCollection.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultList.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultList.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultList.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultList.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java
index 360cfea..b2ca686 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/ReportQueryResultListItem.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java
index a5d4f62..61382c3 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SimpleHomogeneousList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java
index 9390dbb..18bc217 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQuery.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java
index 62e52b1..4749964 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryList.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryResult.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryResult.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryResult.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/list/SingleResultQueryResult.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java
index 92708be..c6ee8de 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/CollectionWrapperMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java
index d8abb73..cb531b4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXMLMetadataSource.java
@@ -39,6 +39,7 @@
 import org.eclipse.persistence.mappings.CollectionMapping;
 import org.eclipse.persistence.mappings.DatabaseMapping;
 import org.eclipse.persistence.mappings.ObjectReferenceMapping;
+import org.eclipse.persistence.sessions.Session;
 
 /**
  * {@link MetadataSource} used in the creation of dynamic JAXB contexts for applications.
@@ -49,7 +50,7 @@
 public class DynamicXMLMetadataSource implements MetadataSource {
     private XmlBindings xmlBindings;
 
-    public DynamicXMLMetadataSource(AbstractSession session, String packageName) {
+    public DynamicXMLMetadataSource(Session session, String packageName) {
         ObjectFactory objectFactory = new ObjectFactory();
         xmlBindings = new XmlBindings();
         xmlBindings.setPackageName(packageName);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java
similarity index 97%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java
index 9a54fd8..dce5db3 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/DynamicXmlV2MetadataSource.java
@@ -32,6 +32,8 @@
 import org.eclipse.persistence.mappings.ForeignReferenceMapping;
 
 import jakarta.xml.bind.JAXBElement;
+import org.eclipse.persistence.sessions.Session;
+
 import java.util.Collection;
 import java.util.Map;
 
@@ -51,7 +53,7 @@
      * @param session the session.
      * @param packageName the package name to process.
      */
-    public DynamicXmlV2MetadataSource(AbstractSession session, String packageName) {
+    public DynamicXmlV2MetadataSource(Session session, String packageName) {
         final ObjectFactory objectFactory = new ObjectFactory();
         xmlBindings = new XmlBindings();
         xmlBindings.setPackageName(packageName);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java
index 82e10d5..185fb7b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ErrorResponseMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2018, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java
similarity index 95%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java
index ef071cc..4e18780 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ItemLinksMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java
index 3f362c1..1458126 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaLangMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java
index 6becb6d..7c2abf8 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaMathMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java
similarity index 94%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java
index 93ff483..4a3da74 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/JavaUtilMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java
index 7305425..26f0f48 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java
index 912c225..9dd130b 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/LinkV2MetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java
index a2381ee..a420f31 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReadAllQueryResultCollectionMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java
index c5294d0..a4f80db 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultCollectionMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2013, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java
index 8ce372c..cc41bad 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListItemMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java
index 458dd64..76409cc 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/ReportQueryResultListMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java
index c1632d0..0d8a1e4 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SimpleHomogeneousListMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java
index e64a2f1..1a5bfb9 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryListMetadataSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryResultMetadataSource.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryResultMetadataSource.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryResultMetadataSource.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/metadatasources/SingleResultQueryResultMetadataSource.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/LinkAdapter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/LinkAdapter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/LinkAdapter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/LinkAdapter.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java
similarity index 98%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java
index 6f8cfe4..a4f59b1 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapterV2.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapterV2.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapterV2.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/ReferenceAdapterV2.java
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java
similarity index 96%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java
index b76b1c2..9ea9366 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java
+++ b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RelationshipLinkAdapter.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RestCollectionAdapter.java b/jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RestCollectionAdapter.java
similarity index 100%
rename from dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RestCollectionAdapter.java
rename to jpa/org.eclipse.persistence.jpars.server/src/main/java/org/eclipse/persistence/jpa/rs/util/xmladapters/RestCollectionAdapter.java
diff --git a/jpa/org.eclipse.persistence.jpars/pom.xml b/jpa/org.eclipse.persistence.jpars/pom.xml
index 7ad37dd..6ec0e5d 100644
--- a/jpa/org.eclipse.persistence.jpars/pom.xml
+++ b/jpa/org.eclipse.persistence.jpars/pom.xml
@@ -44,7 +44,7 @@
         <!--Other modules-->
         <dependency>
             <groupId>org.eclipse.persistence</groupId>
-            <artifactId>org.eclipse.persistence.dbws</artifactId>
+            <artifactId>org.eclipse.persistence.jpars.server</artifactId>
         </dependency>
         <!--API dependencies-->
         <dependency>
@@ -183,20 +183,6 @@
                     </execution>
                 </executions>
             </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-javadoc-plugin</artifactId>
-                <executions>
-                    <!-- need javadoc even in normal/short build
-                        for inclusion in binary distribution -->
-                    <execution>
-                        <id>attach-javadocs</id>
-                        <goals>
-                            <goal>jar</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
         </plugins>
     </build>
 
diff --git a/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/util/RestUtils.java b/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/util/RestUtils.java
index 183b138..cf3b914 100644
--- a/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/util/RestUtils.java
+++ b/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/util/RestUtils.java
@@ -21,7 +21,7 @@
 import org.eclipse.persistence.jpa.rs.QueryParameters;
 import org.eclipse.persistence.jpa.rs.exceptions.ErrorResponse;
 import org.eclipse.persistence.jpa.rs.features.ServiceVersion;
-import org.eclipse.persistence.jpa.rs.util.list.ReadAllQueryResultCollection;
+import org.eclipse.persistence.jpa.rs.util.list.PageableCollection;
 import org.eclipse.persistence.jpa.rs.util.list.SimpleHomogeneousList;
 import org.eclipse.persistence.jpars.test.server.RestCallFailedException;
 
@@ -513,9 +513,9 @@
         if (context.getServiceVersion().compareTo(ServiceVersion.VERSION_2_0) >= 0) {
             // 2.0 or higher
             final Object obj = context.unmarshalEntity("ReadAllQueryResultCollection", mediaType, new ByteArrayInputStream(result.getBytes()));
-            if (obj instanceof ReadAllQueryResultCollection) {
-                final ReadAllQueryResultCollection c = (ReadAllQueryResultCollection) obj;
-                return (List<T>)c.getItems();
+            if (obj instanceof PageableCollection) {
+                final PageableCollection<T> c = (PageableCollection<T>) obj;
+                return c.getItems();
             } else {
                 return Collections.emptyList();
             }
diff --git a/jpa/org.eclipse.persistence.jpars/src/main/java/module-info.java b/jpa/org.eclipse.persistence.jpars/src/main/java/module-info.java
index f66347f..399b5b7 100644
--- a/jpa/org.eclipse.persistence.jpars/src/main/java/module-info.java
+++ b/jpa/org.eclipse.persistence.jpars/src/main/java/module-info.java
@@ -20,8 +20,8 @@
     requires transitive jakarta.annotation;
     requires transitive jakarta.ws.rs;
 
-    requires transitive org.eclipse.persistence.dbws;
     requires org.eclipse.persistence.jpa;
+    requires transitive org.eclipse.persistence.jpars.server;
     requires org.eclipse.persistence.asm;
     requires org.eclipse.persistence.core;
     requires org.eclipse.persistence.jpa.jpql;
diff --git a/pom.xml b/pom.xml
index 5071698..c082a07 100644
--- a/pom.xml
+++ b/pom.xml
@@ -256,6 +256,7 @@
         <module>jpa/org.eclipse.persistence.jpa</module>
         <module>jpa/org.eclipse.persistence.jpa.modelgen</module>
         <module>jpa/org.eclipse.persistence.jpars</module>
+        <module>jpa/org.eclipse.persistence.jpars.server</module>
 
         <module>foundation/org.eclipse.persistence.corba</module>
         <module>foundation/org.eclipse.persistence.extension</module>
@@ -398,6 +399,19 @@
 
             <dependency>
                 <groupId>org.eclipse.persistence</groupId>
+                <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
+            <dependency>
+                <groupId>org.eclipse.persistence</groupId>
+                <artifactId>org.eclipse.persistence.jpars.server</artifactId>
+                <version>${project.version}</version>
+                <classifier>sources</classifier>
+            </dependency>
+
+            <dependency>
+                <groupId>org.eclipse.persistence</groupId>
                 <artifactId>org.eclipse.persistence.jpars</artifactId>
                 <version>${project.version}</version>
             </dependency>