more rawtypes removal (#1295)

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/dbws/eclipselink.dbws.test.oracle/src/it/java/dbws/testing/plsqlcollection/PLSQLcollectionTestSuite.java b/dbws/eclipselink.dbws.test.oracle/src/it/java/dbws/testing/plsqlcollection/PLSQLcollectionTestSuite.java
index fb1c20a..d9f435b 100644
--- a/dbws/eclipselink.dbws.test.oracle/src/it/java/dbws/testing/plsqlcollection/PLSQLcollectionTestSuite.java
+++ b/dbws/eclipselink.dbws.test.oracle/src/it/java/dbws/testing/plsqlcollection/PLSQLcollectionTestSuite.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
@@ -268,16 +268,16 @@
             new XRDynamicClassLoader(PLSQLcollectionTestSuite.class.getClassLoader());
         Project projectFromXML = XMLProjectReader.read(new StringReader(TEST_PROJECT_CONTROL_DOC),
             xrdecl);
-        DatasourceLogin login = new DatabaseLogin();
+        DatabaseLogin login = new DatabaseLogin();
         login.setUserName(username);
         login.setPassword(password);
-        ((DatabaseLogin)login).setConnectionString(url);
-        ((DatabaseLogin)login).setDriverClassName("oracle.jdbc.OracleDriver");
+        login.setConnectionString(url);
+        login.setDriverClassName("oracle.jdbc.OracleDriver");
         Platform platform = new Oracle10Platform();
         ConversionManager cm = platform.getConversionManager();
         cm.setLoader(xrdecl);
         login.setDatasourcePlatform(platform);
-        ((DatabaseLogin)login).bindAllParameters();
+        login.bindAllParameters();
         projectFromXML.setDatasourceLogin(login);
         ProjectHelper.fixOROXAccessors(projectFromXML, null);
         xrdecl.dontGenerateSubclasses();
diff --git a/dbws/org.eclipse.persistence.dbws/src/it/java/dbws/testing/relationships/RelationshipsTestSuite.java b/dbws/org.eclipse.persistence.dbws/src/it/java/dbws/testing/relationships/RelationshipsTestSuite.java
index 1913f8e..f558504 100644
--- a/dbws/org.eclipse.persistence.dbws/src/it/java/dbws/testing/relationships/RelationshipsTestSuite.java
+++ b/dbws/org.eclipse.persistence.dbws/src/it/java/dbws/testing/relationships/RelationshipsTestSuite.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.
  * Copyright (c) 2020 Payara Services Ltd.
  *
  * This program and the accompanying materials are made available under the
@@ -803,14 +803,14 @@
                 XMLUnmarshaller unmarshaller = context.createUnmarshaller();
                 Project orProject = (Project)unmarshaller.unmarshal(
                         new StringReader(RELATIONSHIPS_OR_PROJECT));
-                DatasourceLogin login = new DatabaseLogin();
+                DatabaseLogin login = new DatabaseLogin();
                 login.setUserName(username);
                 login.setPassword(password);
-                ((DatabaseLogin)login).setConnectionString(url);
-                ((DatabaseLogin)login).setDriverClassName(driver);
+                login.setConnectionString(url);
+                login.setDriverClassName(driver);
                 Platform platform = new MySQLPlatform();
                 login.setDatasourcePlatform(platform);
-                ((DatabaseLogin)login).bindAllParameters();
+                login.bindAllParameters();
                 orProject.setDatasourceLogin(login);
                 Project oxProject = (Project)unmarshaller.unmarshal(
                     new StringReader(RELATIONSHIPS_OX_PROJECT));
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryHandler.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryHandler.java
index 6479481..3290e7d 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryHandler.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/QueryHandler.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
@@ -143,9 +143,9 @@
     public void initializeArguments(XRServiceAdapter xrService, QueryOperation queryOperation,
         DatabaseQuery databaseQuery) {
         for (int i = 0; i < queryOperation.getParameters().size(); i++) {
-            Object o = queryOperation.getParameters().get(i);
+            Parameter o = queryOperation.getParameters().get(i);
             if (o instanceof Parameter) {
-                Parameter p = (Parameter)o;
+                Parameter p = o;
                 String name = p.getName();
                 if (name != null && name.length() > 0 ) {
                     databaseQuery.addArgument(name);
diff --git a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/StoredProcedureQueryHandler.java b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/StoredProcedureQueryHandler.java
index e66cf48..139f22c 100644
--- a/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/StoredProcedureQueryHandler.java
+++ b/dbws/org.eclipse.persistence.dbws/src/main/java/org/eclipse/persistence/internal/xr/StoredProcedureQueryHandler.java
@@ -245,11 +245,11 @@
 
     protected void setSingleResult(XRServiceAdapter xrService, StoredProcedureCall spCall, QName resultType) {
         if (getOutArguments().size() == 1) {
-            ProcedureArgument arg = getOutArguments().get(0);
+            ProcedureOutputArgument arg = getOutArguments().get(0);
             // check query's returnType or arg's returnType
             if (isCursorType(xrService, resultType) ||
                 ( arg instanceof ProcedureOutputArgument && isCursorType(xrService,
-                    ((ProcedureOutputArgument)arg).getResultType())))  {
+                    arg.getResultType())))  {
                 spCall.useNamedCursorOutputAsResultSet(arg.getName());
             } else {
                 spCall.addNamedOutputArgument(arg.getName());
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/employee/domain/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/employee/domain/EmployeePopulator.java
index 31e67c5..fdb5162 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/employee/domain/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/employee/domain/EmployeePopulator.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
@@ -1047,11 +1047,11 @@
         return employmentPeriod;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/forceupdate/FUVLPopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/forceupdate/FUVLPopulator.java
index 030b109..a61111f 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/forceupdate/FUVLPopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/forceupdate/FUVLPopulator.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
@@ -1845,11 +1845,11 @@
     return employeeVLIO;
 }
 
-protected Vector getAllObjects()
+protected Vector<Object> getAllObjects()
 {
     return populationManager.getAllObjects();
 }
-public Vector getAllObjectsForClass(Class domainClass)
+public Vector<Object> getAllObjectsForClass(Class domainClass)
 {
     return populationManager.getAllObjectsForClass(domainClass);
 }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Company.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Company.java
index b9720a7..67fa257 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Company.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Company.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 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
@@ -21,7 +21,7 @@
 public class Company implements Serializable {
     public Number id;
     public String name;
-    public ValueHolderInterface<Vector<? extends Vehicle>> vehicles;
+    public ValueHolderInterface<Vector<Vehicle>> vehicles;
     public ValueHolderInterface<Vector<CompanyWorker>> workers;
 
     public Company() {
@@ -73,7 +73,7 @@
 
     public static Company example3() {
         Company company = new Company();
-        Vector<NonFueledVehicle> vehicle = new Vector<>();
+        Vector<Vehicle> vehicle = new Vector<>();
 
         vehicle.addElement(Boat.example1(company));
         vehicle.addElement(Bicycle.example3(company));
@@ -95,7 +95,7 @@
         return workers;
     }
 
-    public ValueHolderInterface<Vector<? extends Vehicle>> getVehicles() {
+    public ValueHolderInterface<Vector<Vehicle>> getVehicles() {
         return vehicles;
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Computer.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Computer.java
index 9addf16..50752a8 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Computer.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/Computer.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,7 @@
         // tests rely on the ammendment method.
         Enumeration<DatabaseMapping> mappings = descriptor.getMappings().elements();
         while (mappings.hasMoreElements()) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (mapping.isTransformationMapping()) {
                 Object ctype = ((TransformationMapping)mapping).getFieldNameToMethodNames().get("CTYPE");
                 if (ctype != null) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/PC.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/PC.java
index b104f6d..2922e22 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/PC.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/PC.java
@@ -33,7 +33,7 @@
         // tests rely on the ammendment method.
         Enumeration<DatabaseMapping> mappings = descriptor.getMappings().elements();
         while (mappings.hasMoreElements()) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (mapping.isTransformationMapping()) {
                 Object pctype = ((TransformationMapping)mapping).getFieldNameToMethodNames().get("PCTYPE");
                 if (pctype != null) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/STI_EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/STI_EmployeePopulator.java
index 2c292e0..4d43e97 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/STI_EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/inheritance/STI_EmployeePopulator.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
@@ -662,11 +662,11 @@
         return employee;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/onetoonejointable/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/onetoonejointable/EmployeePopulator.java
index c9bfca1..9be62c5 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/onetoonejointable/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/onetoonejointable/EmployeePopulator.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
@@ -895,11 +895,11 @@
         return employee;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/orderedlist/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/orderedlist/EmployeePopulator.java
index dc37c1c..eeffdef 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/orderedlist/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/orderedlist/EmployeePopulator.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
@@ -413,11 +413,11 @@
         return employee;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/EmployeePopulator.java
index 7eecb7f..f32b399 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/EmployeePopulator.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
@@ -1021,11 +1021,11 @@
         return employmentPeriod;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/toplink/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/toplink/EmployeePopulator.java
index cd506ac..ec037af 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/toplink/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/performance/toplink/EmployeePopulator.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
@@ -1023,11 +1023,11 @@
         return employmentPeriod;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/unidirectional/EmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/unidirectional/EmployeePopulator.java
index 7b77dd5..7676a82 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/unidirectional/EmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/models/unidirectional/EmployeePopulator.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
@@ -412,11 +412,11 @@
         return employee;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/clientserver/DeadLockEmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/clientserver/DeadLockEmployeePopulator.java
index e509b45..aeb8bd5 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/clientserver/DeadLockEmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/clientserver/DeadLockEmployeePopulator.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
@@ -178,11 +178,11 @@
         return employee;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/DistributedServer.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/DistributedServer.java
index e5afa63..cd96c85 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/DistributedServer.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/DistributedServer.java
@@ -44,7 +44,7 @@
             this.session = new SessionBroker();
             Iterator<String> enumtr = ((SessionBroker)testSssion).getSessionsByName().keySet().iterator();
             while (enumtr.hasNext()) {
-                String name = (String)enumtr.next();
+                String name = enumtr.next();
                 DatabaseSession newMemberSession = ((SessionBroker)testSssion).getSessionForName(name).getProject().createDatabaseSession();
                 ((SessionBroker)this.session).registerSession(name, newMemberSession);
             }
@@ -56,11 +56,11 @@
         if (testSssion.isSessionBroker()) {
             Iterator<String> enumtr = ((SessionBroker)testSssion).getSessionsByName().keySet().iterator();
             while (enumtr.hasNext()) {
-                String name = (String)enumtr.next();
-                Session oldMemberSession = ((SessionBroker)testSssion).getSessionForName(name);
-                Session newMemberSession = ((SessionBroker)this.session).getSessionForName(name);
-                ((AbstractSession)newMemberSession).getAccessor().closeConnection();
-                ((AbstractSession)newMemberSession).setAccessor(((AbstractSession)oldMemberSession).getAccessor());
+                String name = enumtr.next();
+                AbstractSession oldMemberSession = ((SessionBroker)testSssion).getSessionForName(name);
+                AbstractSession newMemberSession = ((SessionBroker)this.session).getSessionForName(name);
+                newMemberSession.getAccessor().closeConnection();
+                newMemberSession.setAccessor(oldMemberSession.getAccessor());
             }
         } else {
             ((AbstractSession)this.session).getAccessor().closeConnection();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/VerifyAggregateCollectionObjectsDeletedFromCacheTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/VerifyAggregateCollectionObjectsDeletedFromCacheTest.java
index bf64362..178f06c 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/VerifyAggregateCollectionObjectsDeletedFromCacheTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/VerifyAggregateCollectionObjectsDeletedFromCacheTest.java
@@ -52,7 +52,7 @@
 
         Customer customerx = (Customer)customers.get(0);
         Vector<Dependant> dependants = customerx.getDependants();
-        customerx.removeDependant((Dependant)dependants.lastElement());
+        customerx.removeDependant(dependants.lastElement());
         AgentBuilderHelper.removeCustomer(object, (Customer)customers.get(customers.size()-1));
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/rcm/NewObjectWithOptimisticLockingTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/rcm/NewObjectWithOptimisticLockingTest.java
index 4c1afdf..d854872 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/rcm/NewObjectWithOptimisticLockingTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/distributedservers/rcm/NewObjectWithOptimisticLockingTest.java
@@ -78,7 +78,7 @@
         boolean found = false;
         Iterator<ListItem> i = holder.getItems().iterator();
         while (i.hasNext()){
-            ListItem item = (ListItem)i.next();
+            ListItem item = i.next();
             if (item.getDescription() != null && item.getDescription().equals("test2")){
                 found = true;
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/employee/AddDescriptorsTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/employee/AddDescriptorsTest.java
index 95665d8..62f8cd8 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/employee/AddDescriptorsTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/employee/AddDescriptorsTest.java
@@ -41,7 +41,7 @@
             // then add all EmployeeSystem descriptors again
             Iterator<Class<?>> iterator = getSession().getDescriptors().keySet().iterator();
             while (iterator.hasNext()) {
-                Class cls = (Class)iterator.next();
+                Class<?> cls = iterator.next();
                 String packageName = Helper.getPackageName(cls);
                 if (packageName.equals("org.eclipse.persistence.testing.models.employee.interfaces")) {
                     getSession().getDescriptors().remove(cls);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/AddDescriptorsTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/AddDescriptorsTest.java
index e4d5403..1c136f4 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/AddDescriptorsTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/AddDescriptorsTest.java
@@ -42,7 +42,7 @@
             // then add all EmployeeSystem descriptors again
             Iterator<Class<?>> iterator = getSession().getDescriptors().keySet().iterator();
             while (iterator.hasNext()) {
-                Class cls = (Class)iterator.next();
+                Class<?> cls = iterator.next();
                 String packageName = Helper.getPackageName(cls);
                 if (packageName.equals("org.eclipse.persistence.testing.models.employee.interfaces")) {
                     getSession().getDescriptors().remove(cls);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/ExceptionHandlerLoginIntegrityTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/ExceptionHandlerLoginIntegrityTest.java
index 7b61139..120bd39 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/ExceptionHandlerLoginIntegrityTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/feature/ExceptionHandlerLoginIntegrityTest.java
@@ -68,7 +68,7 @@
         Map<Class<?>, ClassDescriptor> descriptors = project.getDescriptors();
 
         //java.util.Enumeration e =ht.elements();(Descriptor)e.nextElement();
-        ClassDescriptor descriptor = (ClassDescriptor)descriptors.get(org.eclipse.persistence.testing.models.employee.domain.Employee.class);
+        ClassDescriptor descriptor = descriptors.get(org.eclipse.persistence.testing.models.employee.domain.Employee.class);
 
         //add a non existent mapping so loggin will throw an integrity exception
         DirectToFieldMapping NonExistentFieldMapping = new DirectToFieldMapping();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/history/HistoricalQualifiedTableEmployeeSystem.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/history/HistoricalQualifiedTableEmployeeSystem.java
index f3d911f..ae96905 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/history/HistoricalQualifiedTableEmployeeSystem.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/history/HistoricalQualifiedTableEmployeeSystem.java
@@ -55,14 +55,14 @@
 
         Vector<DatabaseField> targetRelationKeyFields = mapping.getTargetKeyFields();
         for (int i = 0; i < targetRelationKeyFields.size(); i++) {
-            String oldName = ((DatabaseField)targetRelationKeyFields.get(i)).getTable().getName();
-            ((DatabaseField)targetRelationKeyFields.get(i)).setTableName(user + "." + oldName);
+            String oldName = targetRelationKeyFields.get(i).getTable().getName();
+            targetRelationKeyFields.get(i).setTableName(user + "." + oldName);
         }
 
         Vector<DatabaseField> sourceRelationKeyFields = mapping.getSourceRelationKeyFields();
         for (int i = 0; i < sourceRelationKeyFields.size(); i++) {
-            String oldName = ((DatabaseField)sourceRelationKeyFields.get(i)).getTable().getName();
-            ((DatabaseField)sourceRelationKeyFields.get(i)).setTableName(user + "." + oldName);
+            String oldName = sourceRelationKeyFields.get(i).getTable().getName();
+            sourceRelationKeyFields.get(i).setTableName(user + "." + oldName);
         }
 
         DirectCollectionMapping dcmapping = (DirectCollectionMapping)empDescriptor.getMappingForAttributeName("responsibilitiesList");
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ConcurrentReadBigBadObjectTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ConcurrentReadBigBadObjectTest.java
index 0569a42..37d447b 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ConcurrentReadBigBadObjectTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ConcurrentReadBigBadObjectTest.java
@@ -60,7 +60,7 @@
         int mappings = v.size();
         int i = 0;
         while (i < mappings) {
-            m = (DatabaseMapping)v.get(i);
+            m = v.get(i);
             m.setWeight(Integer.MAX_VALUE - 1);
             i++;
         }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/InsertWeakIdentityMapTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/InsertWeakIdentityMapTest.java
index 68dec72..dc22c42 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/InsertWeakIdentityMapTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/InsertWeakIdentityMapTest.java
@@ -94,7 +94,7 @@
         // they all should have been garbage collected.
         Map<Object, CacheKey> cache = getIdentityMap().getCacheKeys();
         for (Iterator<CacheKey> iterator = cache.values().iterator(); iterator.hasNext(); ) {
-            CacheKey key = (CacheKey)iterator.next();
+            CacheKey key = iterator.next();
             if (key.getObject() != null) {
                 throw new TestErrorException("A WeakCacheKey with a non-empty WeakReference was found. The garbage collection did not clear the cache as expected.");
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadSoftCacheWeakIdentityMapTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadSoftCacheWeakIdentityMapTest.java
index 6567bfb..6a99989 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadSoftCacheWeakIdentityMapTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadSoftCacheWeakIdentityMapTest.java
@@ -65,7 +65,7 @@
         Map<Object, CacheKey> cache = getIdentityMap().getCacheKeys();
         int numObjects = 0;
         for (Iterator<CacheKey> iterator = cache.values().iterator(); iterator.hasNext();) {
-            CacheKey key = (CacheKey)iterator.next();
+            CacheKey key = iterator.next();
             if (key.getObject() != null) {
                 numObjects++;
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadWeakIdentityMapTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadWeakIdentityMapTest.java
index e3b43bb..18f1cb2 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadWeakIdentityMapTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/ReadWeakIdentityMapTest.java
@@ -82,7 +82,7 @@
             Map<Object, CacheKey> cache = getIdentityMap().getCacheKeys();
             numObjects = 0;
             for (Iterator<CacheKey> iterator = cache.values().iterator(); iterator.hasNext();) {
-                CacheKey key = (CacheKey)iterator.next();
+                CacheKey key = iterator.next();
                 if (key.getObject() != null) {
                     numObjects++;
                 }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cache/ConcurrentReadBigBadObjectTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cache/ConcurrentReadBigBadObjectTest.java
index 58f8564..5aa54b8 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cache/ConcurrentReadBigBadObjectTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cache/ConcurrentReadBigBadObjectTest.java
@@ -60,7 +60,7 @@
         int mappings = v.size();
         int i =0;
         while (i<mappings){
-            m = (DatabaseMapping)v.get(i);
+            m = v.get(i);
             m.setWeight(Integer.MAX_VALUE - 1);
             i++;
         }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/CacheExpiryReadAllQueryTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/CacheExpiryReadAllQueryTest.java
index 831b59a..8c91241 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/CacheExpiryReadAllQueryTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/CacheExpiryReadAllQueryTest.java
@@ -58,7 +58,7 @@
         // Changed the names of all the employees in the cache
         Enumeration<CacheKey> employeeMap = ((AbstractSession)getSession()).getIdentityMapAccessorInstance().getIdentityMap(Employee.class).keys();
         while (employeeMap.hasMoreElements()) {
-            Employee employee = (Employee)((CacheKey)employeeMap.nextElement()).getObject();
+            Employee employee = (Employee) employeeMap.nextElement().getObject();
             employee.setFirstName(employee.getFirstName() + "-mutated");
         }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/UnitOfWorkRefreshAfterInvalidationTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/UnitOfWorkRefreshAfterInvalidationTest.java
index 669755a..37c5da1 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/UnitOfWorkRefreshAfterInvalidationTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/identitymaps/cacheinvalidation/UnitOfWorkRefreshAfterInvalidationTest.java
@@ -79,7 +79,7 @@
         List<String> statements = this.sqlTracker.getSqlStatements();
         Vector errors = new Vector();
         for (int i = 0; i < statements.size(); i++) {
-            String statement = (String)statements.get(i);
+            String statement = statements.get(i);
             // the statements collection should not contain any duplicates
             int occurrences = Helper.countOccurrencesOf(statement, statements);
             if (occurrences > 1) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkCommitResumeTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkCommitResumeTest.java
index ff073b2..4a3d7f9 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkCommitResumeTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkCommitResumeTest.java
@@ -81,13 +81,13 @@
     */
     protected void changeUnitOfWorkWorkingCopy() {
         Company company = (Company)this.unitOfWorkWorkingCopy;
-        Vector vehicles = company.getVehicles().getValue();
+        Vector<Vehicle> vehicles = company.getVehicles().getValue();
 
         // Delete a vehicle
         vehicles.removeElement(vehicles.firstElement());
 
         // Change a vehicle
-        Vehicle aVehicle = (Vehicle)vehicles.lastElement();
+        Vehicle aVehicle = vehicles.lastElement();
         aVehicle.setPassengerCapacity(15);
 
         // Add some vehicles
@@ -104,7 +104,7 @@
     */
     protected void changeUnitOfWorkWorkingCopyAgain() {
         Company company = (Company)this.unitOfWorkWorkingCopy;
-        Vector vehicles = company.getVehicles().getValue();
+        Vector<Vehicle> vehicles = company.getVehicles().getValue();
 
         // Adjust Company name
         company.setName(company.name + "0");
@@ -113,7 +113,7 @@
         vehicles.removeElement(vehicles.firstElement());
 
         // Change a vehicle
-        Vehicle aVehicle = (Vehicle)vehicles.firstElement();
+        Vehicle aVehicle = vehicles.firstElement();
         aVehicle.setPassengerCapacity(15);
 
         // Add some vehicles
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkTest.java
index 3ddc56c..fec4f3c 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/inheritance/UnitOfWorkTest.java
@@ -67,15 +67,15 @@
 
     protected void changeUnitOfWorkWorkingCopy() {
         Company company = (Company)this.unitOfWorkWorkingCopy;
-        Vector vehicles = company.getVehicles().getValue();
+        Vector<Vehicle> vehicles = company.getVehicles().getValue();
 
         //delete a vehicle
         //    vehicles.removeElement(vehicles.firstElement());
         Car car = Car.example2();
         car.setOwner(company);
 
-        for (Enumeration enumtr = vehicles.elements(); enumtr.hasMoreElements();) {
-            ((Vehicle)enumtr.nextElement()).change();
+        for (Enumeration<Vehicle> enumtr = vehicles.elements(); enumtr.hasMoreElements();) {
+            enumtr.nextElement().change();
 
         }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/interfaces/DescriptorInitTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/interfaces/DescriptorInitTest.java
index 6c488f2..16f812f 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/interfaces/DescriptorInitTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/interfaces/DescriptorInitTest.java
@@ -51,7 +51,7 @@
     @Override
     public void test() {
         for (Iterator<ClassDescriptor> iterator = project.getDescriptors().values().iterator(); iterator.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)iterator.next();
+            ClassDescriptor descriptor = iterator.next();
             String className = descriptor.getJavaClass().toString();
 
             String part1;
@@ -84,7 +84,7 @@
     public void verify() {
         //Make sure all Descriptors have been initialized.
         for (Iterator<ClassDescriptor> iterator = project.getDescriptors().values().iterator(); iterator.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)iterator.next();
+            ClassDescriptor descriptor = iterator.next();
             if (!descriptor.isFullyInitialized()) {
                 throw new TestErrorException("Descriptor \"" + descriptor + "\" is NOT INITIALIZED");
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/isolatedsession/ClientServerTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/isolatedsession/ClientServerTest.java
index 2d821f8..44114e1 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/isolatedsession/ClientServerTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/isolatedsession/ClientServerTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 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
@@ -58,7 +58,7 @@
         Vector descriptors = new Vector();
 
         for (Iterator<ClassDescriptor> iterator = session.getDescriptors().values().iterator(); iterator.hasNext(); ) {
-            ClassDescriptor desc = (ClassDescriptor)iterator.next();
+            ClassDescriptor desc = iterator.next();
             descriptors.addElement(desc);
             // it's an isolated descriptor, but the test requires no isolation.
             // switch isolation off, cache the descriptor to restore isolation after the test is complete.
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/nls/japanese/NLSEmployeePopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/nls/japanese/NLSEmployeePopulator.java
index 51e94e8..b0f474c 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/nls/japanese/NLSEmployeePopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/nls/japanese/NLSEmployeePopulator.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
@@ -1042,11 +1042,11 @@
         return employmentPeriod;
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/optimisticlocking/cascaded/BarPopulator.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/optimisticlocking/cascaded/BarPopulator.java
index 575bda4..b2e6358 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/optimisticlocking/cascaded/BarPopulator.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/optimisticlocking/cascaded/BarPopulator.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
@@ -264,11 +264,11 @@
         return populationManager.containsObject(domainClass, identifier);
     }
 
-    protected Vector getAllObjects() {
+    protected Vector<Object> getAllObjects() {
         return populationManager.getAllObjects();
     }
 
-    public Vector getAllObjectsForClass(Class domainClass) {
+    public Vector<Object> getAllObjectsForClass(Class domainClass) {
         return populationManager.getAllObjectsForClass(domainClass);
     }
 
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentRegressionTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentRegressionTest.java
index 2119fc3..4a381e8 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentRegressionTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentRegressionTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 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,7 @@
         super.setup();
         for (Iterator<ClassDescriptor> descriptors = getServerSession().getDescriptors().values().iterator();
              descriptors.hasNext();) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
         }
         getServerSession().getProject().setHasIsolatedClasses(true);
@@ -49,7 +49,7 @@
         super.reset();
         for (Iterator<ClassDescriptor> descriptors = getServerSession().getDescriptors().values().iterator();
              descriptors.hasNext();) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.SHARED);
         }
         getServerSession().getProject().setHasIsolatedClasses(false);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentTest.java
index efe760d..f22dcad 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/performance/concurrent/IsolatedConcurrentTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 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,7 @@
         super.setup();
         for (Iterator<ClassDescriptor> descriptors = getServerSession().getDescriptors().values().iterator();
              descriptors.hasNext();) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
         }
         getServerSession().getProject().setHasIsolatedClasses(true);
@@ -49,7 +49,7 @@
         super.reset();
         for (Iterator<ClassDescriptor> descriptors = getServerSession().getDescriptors().values().iterator();
              descriptors.hasNext();) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.SHARED);
         }
         getServerSession().getProject().setHasIsolatedClasses(false);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/plsql/PLSQLTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/plsql/PLSQLTest.java
index df60c66..ba9a67a 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/plsql/PLSQLTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/plsql/PLSQLTest.java
@@ -79,7 +79,7 @@
             DatabaseRecord record = (DatabaseRecord)this.result;
             DatabaseRecord queryRecord = (DatabaseRecord)queryResult;
             for (Iterator<DatabaseField> iterator = record.getFields().iterator(); iterator.hasNext(); ) {
-                DatabaseField field = (DatabaseField)iterator.next();
+                DatabaseField field = iterator.next();
                 Object value = record.get(field);
                 Object queryValue = queryRecord.get(field);
                 if (value instanceof Number) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/queries/optimization/BatchReadingTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/queries/optimization/BatchReadingTest.java
index ff3c784..fd91bb1 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/queries/optimization/BatchReadingTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/queries/optimization/BatchReadingTest.java
@@ -51,10 +51,10 @@
     @Override
     public void verify() {
         PopulationManager manager = PopulationManager.getDefaultManager();
-        Vector v = manager.getAllObjectsForClass(Restaurant.class);
+        Vector<Object> v = manager.getAllObjectsForClass(Restaurant.class);
         for (Enumeration enumtr = result.elements(); enumtr.hasMoreElements(); ) {
             Restaurant resDatabase = (Restaurant)enumtr.nextElement();
-            for (Enumeration enum1 = v.elements(); enum1.hasMoreElements(); ) {
+            for (Enumeration<Object> enum1 = v.elements(); enum1.hasMoreElements(); ) {
                 Restaurant resPop = (Restaurant)enum1.nextElement();
                 if (resDatabase.getName().equals(resPop.getName())) {
                     if (!((AbstractSession)getSession()).compareObjects(resDatabase, resPop)) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/InsertUpdateStoredProcedureAdapter.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/InsertUpdateStoredProcedureAdapter.java
index 190f6c8..a56bedb 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/InsertUpdateStoredProcedureAdapter.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/InsertUpdateStoredProcedureAdapter.java
@@ -72,7 +72,7 @@
         int removed = 0;
         Iterator<ClassDescriptor> descriptors = project.getDescriptors().values().iterator();
         while (descriptors.hasNext()) {
-            ClassDescriptor desc = (ClassDescriptor)descriptors.next();
+            ClassDescriptor desc = descriptors.next();
             if (desc.getOptimisticLockingPolicy() != null) {
                 desc.setOptimisticLockingPolicy(null);
                 removed++;
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/StoredProcedureGeneratorForAdapter.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/StoredProcedureGeneratorForAdapter.java
index 2f5a42c..536e992 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/StoredProcedureGeneratorForAdapter.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/StoredProcedureGeneratorForAdapter.java
@@ -33,14 +33,14 @@
 
     public StoredProcedureGeneratorForAdapter(SchemaManager schemaMngr) {
         super(schemaMngr);
-        insertStoredProcedures = new Hashtable();
-        updateStoredProcedures = new Hashtable();
-        substituteName = new Hashtable();
+        insertStoredProcedures = new Hashtable<>();
+        updateStoredProcedures = new Hashtable<>();
+        substituteName = new Hashtable<>();
     }
 
-    protected Hashtable insertStoredProcedures;
-    protected Hashtable updateStoredProcedures;
-    protected Hashtable substituteName;
+    protected Map<ClassDescriptor, StoredProcedureDefinition> insertStoredProcedures;
+    protected Map<ClassDescriptor, StoredProcedureDefinition> updateStoredProcedures;
+    protected Map<StoredProcedureDefinition, Map<String, String>> substituteName;
     protected boolean useTableNames;
 
     public boolean usesTableNames() {
@@ -62,7 +62,7 @@
         Iterator<Class<?>> iterator = descrpts.keySet().iterator();
         ClassDescriptor desc;
         while (iterator.hasNext()) {
-            desc = (ClassDescriptor)descrpts.get(iterator.next());
+            desc = descrpts.get(iterator.next());
             if (desc.isDescriptorForInterface() || desc.isAggregateDescriptor()) {
                 continue;
             }
@@ -82,7 +82,7 @@
         Iterator<Class<?>> iterator = descrpts.keySet().iterator();
         ClassDescriptor desc;
         while (iterator.hasNext()) {
-            desc = (ClassDescriptor)descrpts.get(iterator.next());
+            desc = descrpts.get(iterator.next());
             if (desc.isDescriptorForInterface() || desc.isAggregateDescriptor()) {
                 continue;
             }
@@ -101,10 +101,10 @@
     }
 
     protected StoredProcedureDefinition generateStoredProcedureDefinition(ClassDescriptor desc, DatabaseQuery query, String namePrefix) {
-        Vector<DatabaseField> fields = desc.getFields();
-        Hashtable namesNewToNames = null;
+        List<DatabaseField> fields = desc.getFields();
+        Map<String, String> namesNewToNames = null;
         if (shouldCapitalizeNames()) {
-            namesNewToNames = new Hashtable();
+            namesNewToNames = new Hashtable<>();
             fields = capitalize(fields, namesNewToNames);
         }
         StoredProcedureDefinition definition = generateObjectStoredProcedure(query, fields, namePrefix);
@@ -123,19 +123,13 @@
      * PUBLIC:
      */
     public void writeInsertStoredProcedures() {
-        Enumeration descriptorEnum = insertStoredProcedures.keys();
-        while (descriptorEnum.hasMoreElements()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorEnum.nextElement();
-            StoredProcedureDefinition definition = (StoredProcedureDefinition)insertStoredProcedures.get(descriptor);
+        for (StoredProcedureDefinition definition : insertStoredProcedures.values()) {
             writeDefinition(definition);
         }
     }
 
     public void writeUpdateStoredProcedures() {
-        Enumeration descriptorEnum = updateStoredProcedures.keys();
-        while (descriptorEnum.hasMoreElements()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorEnum.nextElement();
-            StoredProcedureDefinition definition = (StoredProcedureDefinition)updateStoredProcedures.get(descriptor);
+        for (StoredProcedureDefinition definition : updateStoredProcedures.values()) {
             writeDefinition(definition);
         }
     }
@@ -169,23 +163,18 @@
      * Amends descriptors with stored procedures
      */
     public void amendDescriptorsInsertQuery() {
-        Enumeration descriptorEnum = insertStoredProcedures.keys();
-        while (descriptorEnum.hasMoreElements()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorEnum.nextElement();
-            StoredProcedureDefinition definition = (StoredProcedureDefinition)insertStoredProcedures.get(descriptor);
+        for (Map.Entry<ClassDescriptor, StoredProcedureDefinition> entry : insertStoredProcedures.entrySet()) {
             InsertObjectQuery insertQuery = new InsertObjectQuery();
-            defineQuery(insertQuery, definition);
-            descriptor.getQueryManager().setInsertQuery(insertQuery);
+            defineQuery(insertQuery, entry.getValue());
+            entry.getKey().getQueryManager().setInsertQuery(insertQuery);
         }
     }
 
     public void amendDescriptorsUpdateQuery() {
-        Enumeration descriptorEnum = updateStoredProcedures.keys();
-        while (descriptorEnum.hasMoreElements()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorEnum.nextElement();
-            StoredProcedureDefinition definition = (StoredProcedureDefinition)updateStoredProcedures.get(descriptor);
+        for (Map.Entry<ClassDescriptor, StoredProcedureDefinition> entry : updateStoredProcedures.entrySet()) {
             UpdateObjectQuery updateQuery = new UpdateObjectQuery();
-            descriptor.getQueryManager().setUpdateQuery(updateQuery);
+            defineQuery(updateQuery, entry.getValue());
+            entry.getKey().getQueryManager().setUpdateQuery(updateQuery);
         }
     }
 
@@ -195,7 +184,7 @@
         StoredProcedureCall call = new StoredProcedureCall();
         call.setProcedureName(definition.getName());
         for (int i = 0; i < definition.getArguments().size(); i++) {
-            FieldDefinition fieldDefinition = ((FieldDefinition)definition.getArguments().elementAt(i));
+            FieldDefinition fieldDefinition = definition.getArguments().get(i);
             String procedureParameterName = fieldDefinition.getName();
             String fieldName = getFieldName(fieldDefinition.getName());
             String argumentFieldName = fieldName;
@@ -221,19 +210,19 @@
     // However namesCapitalizedToNames still will be needed, because the DatabaseField's
     // name to be used as a parameter for StoredProcedureCall is extracted from
     // storedProcedureDefinition - and there it is always the same as in database.
-
-    protected Vector capitalize(Vector fields, Hashtable namesCapitalizedToNames) {
+    @SuppressWarnings({"unchecked"})
+    protected List<DatabaseField> capitalize(List<DatabaseField> fields, Map<String, String> namesCapitalizedToNames) {
         // Can't change names of descriptor's fields, create a new Vector.
-        Vector newFields = null;
+        List<DatabaseField> newFields = null;
         for (int i = 0; i < fields.size(); i++) {
-            DatabaseField field = (DatabaseField)fields.elementAt(i);
+            DatabaseField field = fields.get(i);
             String fieldNameUpper = field.getName().toUpperCase();
             String tableNameUpper = field.getTableName().toUpperCase();
             if (!fieldNameUpper.equals(field.getName()) || !tableNameUpper.equals(field.getTableName())) {
                 DatabaseField newField = new DatabaseField(fieldNameUpper, tableNameUpper);
                 newField.setType(field.getType());
                 if (newFields == null) {
-                    newFields = (Vector)fields.clone();
+                    newFields = (List<DatabaseField>) ((Vector<DatabaseField>)fields).clone();
                 }
                 newFields.set(i, newField);
                 namesCapitalizedToNames.put(fieldNameUpper, field.getName());
@@ -262,7 +251,7 @@
         }
     }
 
-    protected StoredProcedureDefinition generateObjectStoredProcedure(DatabaseQuery query, Vector fields, String namePrefix) {
+    protected StoredProcedureDefinition generateObjectStoredProcedure(DatabaseQuery query, List<DatabaseField> fields, String namePrefix) {
         String namePrefixToUse = namePrefix;
         String className = Helper.getShortClassName(query.getDescriptor().getJavaClass());
         if (useTableNames) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/SubstituteSequencingWithReturningPolicyAdapter.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/SubstituteSequencingWithReturningPolicyAdapter.java
index 4893340..08165ff 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/SubstituteSequencingWithReturningPolicyAdapter.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/SubstituteSequencingWithReturningPolicyAdapter.java
@@ -76,7 +76,7 @@
     public void updateProject(Project project, Session session) {
         Iterator<ClassDescriptor> it = project.getDescriptors().values().iterator();
         while (it.hasNext()) {
-            ClassDescriptor desc = (ClassDescriptor)it.next();
+            ClassDescriptor desc = it.next();
             if (desc.isAggregateDescriptor()) {
                 continue;
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/model/AdapterWithReturnObjectControl.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/model/AdapterWithReturnObjectControl.java
index 4aabca2..412efc8 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/model/AdapterWithReturnObjectControl.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/returning/model/AdapterWithReturnObjectControl.java
@@ -74,7 +74,7 @@
 
     public void getChange(org.eclipse.persistence.sessions.Record row, Session session, Object object1, Object object2, ClassDescriptor desc, boolean useUOW, WriteType writeType) {
         for (Enumeration<DatabaseMapping> mappings = desc.getMappings().elements(); mappings.hasMoreElements(); ) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (!mapping.isReadOnly()) {
                 getChange(row, mapping, session, object1, object2, useUOW, writeType);
             }
@@ -96,14 +96,14 @@
                 mapping.writeFromObjectIntoRow(object2, (DatabaseRecord)row, (AbstractSession)session, writeType);
             }
         } else {
-            org.eclipse.persistence.sessions.Record row1 = new DatabaseRecord();
-            org.eclipse.persistence.sessions.Record row2 = new DatabaseRecord();
-            mapping.writeFromObjectIntoRow(object1, (DatabaseRecord)row1, (AbstractSession)session, writeType);
-            mapping.writeFromObjectIntoRow(object2, (DatabaseRecord)row2, (AbstractSession)session, writeType);
+            DatabaseRecord row1 = new DatabaseRecord();
+            DatabaseRecord row2 = new DatabaseRecord();
+            mapping.writeFromObjectIntoRow(object1, row1, (AbstractSession)session, writeType);
+            mapping.writeFromObjectIntoRow(object2, row2, (AbstractSession)session, writeType);
 
             for (int i = 0; i < row1.size(); i++) {
-                DatabaseField field = ((DatabaseRecord)row1).getFields().elementAt(i);
-                Object valueBefore = ((DatabaseRecord)row1).getValues().elementAt(i);
+                DatabaseField field = row1.getFields().elementAt(i);
+                Object valueBefore = row1.getValues().elementAt(i);
                 Object valueAfter = row2.get(field);
                 boolean changed;
                 if (valueAfter == null) {
@@ -127,7 +127,7 @@
         ReadObjectQuery query = new ReadObjectQuery();
         query.setSession((AbstractSession)session);
         for (Enumeration<DatabaseMapping> mappings = desc.getMappings().elements(); mappings.hasMoreElements(); ) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             mapping.readFromRowIntoObject((DatabaseRecord)row, query.getJoinedAttributeManager(), object, null, query, query.getSession(), true);
         }
         return object;
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/sessionbroker/VerifyClientBrokerCreationTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/sessionbroker/VerifyClientBrokerCreationTest.java
index 41f1fdf..6eca72b 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/sessionbroker/VerifyClientBrokerCreationTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/sessionbroker/VerifyClientBrokerCreationTest.java
@@ -104,7 +104,7 @@
         }
         Iterator<String> i = serverBroker.getSessionsByName().keySet().iterator();
         while (i.hasNext()){
-            String key = (String)i.next();
+            String key = i.next();
             if (clientBroker.getSessionForName(key) == null) {
                 throw new TestErrorException("Session " + key + " exists in server broker but not client broker.");
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/stress/StressLoginTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/stress/StressLoginTest.java
index b3fb01a..6fc4a01 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/stress/StressLoginTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/stress/StressLoginTest.java
@@ -41,8 +41,8 @@
 
     try {
         for (int i = 0; i < stressLevel; i++) {
-            Session session = new Project(getSession().getDatasourceLogin().clone()).createDatabaseSession();
-            ((DatabaseSession) session).login();
+            DatabaseSession session = new Project(getSession().getDatasourceLogin().clone()).createDatabaseSession();
+            session.login();
             sessions.addElement(session);
         }
         getSession().readObject(Address.class);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/transactions/ReadingThroughWriteConnectionInTransactionTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/transactions/ReadingThroughWriteConnectionInTransactionTest.java
index 698e787..24b0995 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/transactions/ReadingThroughWriteConnectionInTransactionTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/transactions/ReadingThroughWriteConnectionInTransactionTest.java
@@ -15,6 +15,8 @@
 package org.eclipse.persistence.testing.tests.transactions;
 
 import java.util.*;
+
+import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl;
 import org.eclipse.persistence.sessions.*;
 import org.eclipse.persistence.sessions.server.*;
 import org.eclipse.persistence.internal.databaseaccess.*;
@@ -313,7 +315,7 @@
             // Let's close these connections here.
             try {
                 for (Iterator<ConnectionPool> poolsEnum = ((ServerSession)getServerSession()).getConnectionPools().values().iterator(); poolsEnum.hasNext();) {
-                    ((ConnectionPool)poolsEnum.next()).shutDown();
+                    poolsEnum.next().shutDown();
                 }
             } catch (Exception ex) {
                 // ignore
@@ -380,7 +382,7 @@
     @Override
     public void test() {
         ClientSession client = getServerSession().acquireClientSession();
-        UnitOfWork uow = null;
+        UnitOfWorkImpl uow = null;
         UnitOfWork uow2 = null;
         Session session = null;
 
@@ -441,7 +443,7 @@
 
             // Now do some post transaction testing.
             if (shouldUseUnitOfWork()) {
-                ((org.eclipse.persistence.internal.sessions.UnitOfWorkImpl)uow).rollbackTransaction();
+                uow.rollbackTransaction();
             } else {
                 client.rollbackTransaction();
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/NoIdentityMergeCloneTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/NoIdentityMergeCloneTest.java
index 524e011..165c455 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/NoIdentityMergeCloneTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/NoIdentityMergeCloneTest.java
@@ -68,7 +68,7 @@
         this.identityMapTypes = new Hashtable(10);
         Iterator<ClassDescriptor> iterator = getSession().getProject().getDescriptors().values().iterator();
         while (iterator.hasNext()) {
-            ClassDescriptor descriptor = (ClassDescriptor)iterator.next();
+            ClassDescriptor descriptor = iterator.next();
             checkCacheState.put(descriptor,
                     descriptor.getQueryManager().getDoesExistQuery().getExistencePolicy());
             if(descriptor.requiresInitialization((AbstractSession) getSession())) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedAlwaysTestModel.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedAlwaysTestModel.java
index 407a9a2..4b3fbc2 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedAlwaysTestModel.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedAlwaysTestModel.java
@@ -35,7 +35,7 @@
     @Override
     public void setup() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setUnitOfWorkCacheIsolationLevel(ClassDescriptor.ISOLATE_CACHE_ALWAYS);
         }
         super.setup();
@@ -44,7 +44,7 @@
     @Override
     public void reset() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setUnitOfWorkCacheIsolationLevel(ClassDescriptor.ISOLATE_NEW_DATA_AFTER_TRANSACTION);
         }
         super.reset();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedClientSessionTestModel.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedClientSessionTestModel.java
index 60a6a66..d69a959 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedClientSessionTestModel.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkIsolatedClientSessionTestModel.java
@@ -36,7 +36,7 @@
     @Override
     public void setup() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.ISOLATED);
         }
         getSession().getProject().setHasIsolatedClasses(true);
@@ -46,7 +46,7 @@
     @Override
     public void reset() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheIsolation(CacheIsolationType.SHARED);
         }
         getSession().getProject().setHasIsolatedClasses(false);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkSynchNewObjectsClientSessionTestModel.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkSynchNewObjectsClientSessionTestModel.java
index e1fe75f..340cf71 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkSynchNewObjectsClientSessionTestModel.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/UnitOfWorkSynchNewObjectsClientSessionTestModel.java
@@ -28,7 +28,7 @@
     @Override
     public void setup() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheSynchronizationType(ClassDescriptor.SEND_NEW_OBJECTS_WITH_CHANGES);
         }
         super.setup();
@@ -37,7 +37,7 @@
     @Override
     public void reset() {
         for (Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator(); descriptors.hasNext(); ) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             descriptor.setCacheSynchronizationType(ClassDescriptor.SEND_OBJECT_CHANGES);
         }
         super.reset();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/transactionisolation/TransactionIsolationBuildObjectCacheHitTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/transactionisolation/TransactionIsolationBuildObjectCacheHitTest.java
index 7114c1d..40ec8e0 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/transactionisolation/TransactionIsolationBuildObjectCacheHitTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/unitofwork/transactionisolation/TransactionIsolationBuildObjectCacheHitTest.java
@@ -80,7 +80,7 @@
         List<String> statements = sqlTracker.getSqlStatements();
         Vector errors = new Vector();
         for (int i = 0; i < statements.size(); i++) {
-            String statement = (String)statements.get(i);
+            String statement = statements.get(i);
             // the statements collection should not contain any duplicates
             int occurrences = Helper.countOccurrencesOf(statement, statements);
             if (occurrences > 1) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/ClientServerTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/ClientServerTest.java
index 0251df6..0f7c102 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/ClientServerTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/ClientServerTest.java
@@ -120,7 +120,7 @@
             ConnectionPool pool = server.serverSession.getConnectionPools().get("default");
             List<Accessor> connections = pool.getConnectionsAvailable();
             for (Iterator<Accessor> iterator = connections.iterator(); iterator.hasNext(); ) {
-                if (((DatabaseAccessor)iterator.next()).isConnected()) {
+                if (iterator.next().isConnected()) {
                     counter = counter + 1;
                 }
             }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/GetTableNameTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/GetTableNameTest.java
index 423a845..0f9709f 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/GetTableNameTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/validation/GetTableNameTest.java
@@ -38,7 +38,7 @@
             org.eclipse.persistence.testing.models.employee.relational.EmployeeProject project = new org.eclipse.persistence.testing.models.employee.relational.EmployeeProject();
             Iterator<ClassDescriptor> iterator = project.getDescriptors().values().iterator();
             while (iterator.hasNext()) {
-                ((ClassDescriptor)iterator.next()).getTableName();
+                iterator.next().getTableName();
             }
         } catch (EclipseLinkException exception) {
             caughtException = exception;
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/CollectionMappingIsMapPolicyTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/CollectionMappingIsMapPolicyTest.java
index f20d802..819d3be 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/CollectionMappingIsMapPolicyTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/CollectionMappingIsMapPolicyTest.java
@@ -47,7 +47,7 @@
         policy = new MapContainerPolicy();
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isForeignReferenceMapping()) {
                 if (mappingToModify.isCollectionMapping()) {
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/GetRelationshipPartnerAttributeNameIsNotNullTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/GetRelationshipPartnerAttributeNameIsNotNullTest.java
index 227d570..68c90e4 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/GetRelationshipPartnerAttributeNameIsNotNullTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/GetRelationshipPartnerAttributeNameIsNotNullTest.java
@@ -43,7 +43,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isForeignReferenceMapping()) {
                 ((ForeignReferenceMapping)mappingToModify).setRelationshipPartnerAttributeName("TestGetRelationShipAttributeName");
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/InheritanceWorkbenchIntegrationSystem.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/InheritanceWorkbenchIntegrationSystem.java
index c9892b3..ba0dd0c 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/InheritanceWorkbenchIntegrationSystem.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/InheritanceWorkbenchIntegrationSystem.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,7 +33,7 @@
         // Must clear 1-way transformation added in amendment, otherwise will be added twice.
         ClassDescriptor descriptor = project.getDescriptor(Animal.class);
         for (Iterator<DatabaseMapping> mappings = descriptor.getMappings().iterator(); mappings.hasNext(); ) {
-            DatabaseMapping mapping = (DatabaseMapping) mappings.next();
+            DatabaseMapping mapping = mappings.next();
             if (mapping.isWriteOnly()) {
                 descriptor.getMappings().remove(mapping);
                 break;
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/MappingIsReadOnlyTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/MappingIsReadOnlyTest.java
index bb76ef0..e0361eb 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/MappingIsReadOnlyTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/MappingIsReadOnlyTest.java
@@ -40,7 +40,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
             mappingToModify.readOnly();
         }
     }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldUseJoiningTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldUseJoiningTest.java
index c93c970..6daa740 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldUseJoiningTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldUseJoiningTest.java
@@ -41,7 +41,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isOneToOneMapping()) {
                 ((OneToOneMapping)mappingToModify).useInnerJoinFetch();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldVerifyDeleteTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldVerifyDeleteTest.java
index 131d22e..76ad87a 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldVerifyDeleteTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/OneToOneMappingShouldVerifyDeleteTest.java
@@ -43,7 +43,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isOneToOneMapping()) {
                 ((OneToOneMapping)mappingToModify).setShouldVerifyDelete(false);
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseBatchReadingOnMappingTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseBatchReadingOnMappingTest.java
index 32331f6..187d83f 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseBatchReadingOnMappingTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseBatchReadingOnMappingTest.java
@@ -42,7 +42,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isForeignReferenceMapping()) {
                 ((ForeignReferenceMapping)mappingToModify).useBatchReading();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseCacheIdentityMapTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseCacheIdentityMapTest.java
index e710be1..cced976 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseCacheIdentityMapTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/ShouldUseCacheIdentityMapTest.java
@@ -37,7 +37,7 @@
         getSession().getIdentityMapAccessor().initializeAllIdentityMaps();
 
         for (Iterator<ClassDescriptor> iterator = project.getDescriptors().values().iterator(); iterator.hasNext(); ) {
-            descriptorToModify = (ClassDescriptor)iterator.next();
+            descriptorToModify = iterator.next();
             descriptorToModify.useCacheIdentityMap();
         }
     }
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransformationMappingUsesBasicIndirectionTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransformationMappingUsesBasicIndirectionTest.java
index 41fa1e7..74aa9dd 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransformationMappingUsesBasicIndirectionTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransformationMappingUsesBasicIndirectionTest.java
@@ -42,7 +42,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isTransformationMapping()) {
                 ((TransformationMapping)mappingToModify).useBasicIndirection();
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransparentIndirectionPolicyInstanceTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransparentIndirectionPolicyInstanceTest.java
index 4da49af..c00c255 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransparentIndirectionPolicyInstanceTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/TransparentIndirectionPolicyInstanceTest.java
@@ -44,7 +44,7 @@
         descriptorToModify = project.getDescriptors().get(Employee.class);
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isForeignReferenceMapping()) {
                 ((ForeignReferenceMapping)mappingToModify).setIndirectionPolicy(new TransparentIndirectionPolicy());
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/UseTransparentMapOnCollectionMapping.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/UseTransparentMapOnCollectionMapping.java
index 316dd60..6a0eded 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/UseTransparentMapOnCollectionMapping.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/workbenchintegration/UseTransparentMapOnCollectionMapping.java
@@ -51,7 +51,7 @@
         mapPolicy = new MapContainerPolicy();
         for (Enumeration<DatabaseMapping> mappingsEnum = (descriptorToModify.getMappings()).elements();
              mappingsEnum.hasMoreElements(); ) {
-            mappingToModify = (DatabaseMapping)mappingsEnum.nextElement();
+            mappingToModify = mappingsEnum.nextElement();
 
             if (mappingToModify.isForeignReferenceMapping()) {
                 if (mappingToModify.isCollectionMapping()) {
diff --git a/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/rmi/IIOP/RMIServerManagerController.java b/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/rmi/IIOP/RMIServerManagerController.java
index b26aa60..3d376a6 100644
--- a/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/rmi/IIOP/RMIServerManagerController.java
+++ b/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/rmi/IIOP/RMIServerManagerController.java
@@ -56,7 +56,7 @@
             try {
                 Class<?> cls = Class.forName(controllerClassName);
                 Class[] parameterTypes = { org.eclipse.persistence.sessions.Session.class };
-                Constructor constructor = cls.getConstructor(parameterTypes);
+                Constructor<?> constructor = cls.getConstructor(parameterTypes);
                 Object[] params = { getSession() };
                 controller = (RMIRemoteSessionController)constructor.newInstance(params);
             } catch (Exception exception) {
diff --git a/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/suncorba/CORBAServerManagerController.java b/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/suncorba/CORBAServerManagerController.java
index ec833f8..6808265 100644
--- a/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/suncorba/CORBAServerManagerController.java
+++ b/foundation/org.eclipse.persistence.corba/src/it/java/org/eclipse/persistence/testing/tests/remote/suncorba/CORBAServerManagerController.java
@@ -49,7 +49,7 @@
             try {
                 Class<?> cls = Class.forName(controllerClassName);
                 Class[] parameterTypes = { org.eclipse.persistence.sessions.Session.class };
-                Constructor constructor = cls.getConstructor(parameterTypes);
+                Constructor<?> constructor = cls.getConstructor(parameterTypes);
                 java.lang.Object[] params = { getSession() };
                 controller = (CORBARemoteSessionController)constructor.newInstance(params);
             } catch (Exception exception) {
diff --git a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/internal/sessions/coordination/corba/sun/_SunCORBAConnectionImplBase.java b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/internal/sessions/coordination/corba/sun/_SunCORBAConnectionImplBase.java
index c65b2da..b327301 100644
--- a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/internal/sessions/coordination/corba/sun/_SunCORBAConnectionImplBase.java
+++ b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/internal/sessions/coordination/corba/sun/_SunCORBAConnectionImplBase.java
@@ -44,7 +44,7 @@
     @Override
     public org.omg.CORBA.portable.OutputStream _invoke(String $method, InputStream in, ResponseHandler $rh) {
         OutputStream out = null;
-        Integer __method = (Integer) _methods.get($method);
+        Integer __method = _methods.get($method);
         if (__method == null) {
             throw new BAD_OPERATION(0, CompletionStatus.COMPLETED_MAYBE);
         }
diff --git a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/coordination/corba/CORBATransportManager.java b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/coordination/corba/CORBATransportManager.java
index 554464b..ba840f9 100644
--- a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/coordination/corba/CORBATransportManager.java
+++ b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/coordination/corba/CORBATransportManager.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
@@ -175,7 +175,7 @@
     @Override
     public void createLocalConnection() {
         // Register the remote connection in JNDI naming service
-        Object connectionImpl = buildCORBAConnection();
+        CORBAConnection connectionImpl = buildCORBAConnection();
 
         Object[] args = { rcm.getServiceId().getId() };
         rcm.logDebug("register_local_connection_in_jndi", args);
@@ -187,7 +187,7 @@
             return;
         }
 
-        localConnection = new CORBARemoteCommandConnection((CORBAConnection)connectionImpl);
+        localConnection = new CORBARemoteCommandConnection(connectionImpl);
         localConnection.setServiceId(rcm.getServiceId());
     }
 }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/DeleteAllQueryTestHelper.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/DeleteAllQueryTestHelper.java
index 28d36d8..f15f439 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/DeleteAllQueryTestHelper.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/DeleteAllQueryTestHelper.java
@@ -80,11 +80,11 @@
         // first delete using the original TopLink approach - one by one.
         UnitOfWork uow = mainSession.acquireUnitOfWork();
         // mainSession could be a ServerSession
-        Session session = uow.getParent();
+        AbstractSession session = uow.getParent();
 
         // Will need to bring the db back to its original state
         // so that comparison of the deletion result would be possible.
-        ((AbstractSession)session).beginTransaction();
+        session.beginTransaction();
 
         Vector objectsToDelete = uow.readAllObjects(referenceClass, selectionExpression);
 
@@ -96,7 +96,7 @@
 
         Vector objectsLeftAfterOriginalDeletion = session.readAllObjects(rootClass);
 
-        ((AbstractSession)session).rollbackTransaction();
+        session.rollbackTransaction();
 
         // now delete using DeleteAllQuery.
         clearCache(mainSession);
@@ -111,7 +111,7 @@
         // Will need to bring the db back to its original state
         // so that the in case thre are children descriptors
         // they would still have objects to work with.
-        ((AbstractSession)session).beginTransaction();
+        session.beginTransaction();
 
         DeleteAllQuery query = new DeleteAllQuery(referenceClass, selectionExpression);
         query.setShouldDeferExecutionInUOW(shouldDeferExecutionInUOW);
@@ -157,7 +157,7 @@
             }
         }
 
-        ((AbstractSession)session).rollbackTransaction();
+        session.rollbackTransaction();
 
         if(classErrorMsg.length() > 0) {
             String className = referenceClass.getName();
@@ -169,7 +169,7 @@
             if(descriptor.hasInheritance() && descriptor.getInheritancePolicy().hasChildren()) {
                 Iterator<ClassDescriptor> it = descriptor.getInheritancePolicy().getChildDescriptors().iterator();
                 while(it.hasNext()) {
-                    ClassDescriptor childDescriptor = (ClassDescriptor)it.next();
+                    ClassDescriptor childDescriptor = it.next();
                     Class childReferenceClass = childDescriptor.getJavaClass();
                     errorMsg += execute(mainSession, childReferenceClass, selectionExpression, shouldDeferExecutionInUOW, handleChildren, rootClass);
                 }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/JoinedAttributeTestHelper.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/JoinedAttributeTestHelper.java
index 5060f02..0e313f1 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/JoinedAttributeTestHelper.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/JoinedAttributeTestHelper.java
@@ -99,7 +99,7 @@
             Object object = iterator.next();
             boolean remove = false;
             for (Iterator<Expression> joinsIterator = queryWithJoins.getJoinedAttributeManager().getJoinedAttributeExpressions().iterator(); joinsIterator.hasNext(); ) {
-                Expression joinExpression = (Expression)joinsIterator.next();
+                Expression joinExpression = joinsIterator.next();
                 joinExpression.getBuilder().setSession(session);
                 joinExpression.getBuilder().setQueryClass(queryWithJoins.getReferenceClass());
                 // Instantiate value holders that should be instantiated.
@@ -156,7 +156,7 @@
                 iterator.remove();
             } else {
                 for (Iterator<Expression> joinsIterator = queryWithJoins.getJoinedAttributeManager().getJoinedAttributeExpressions().iterator(); joinsIterator.hasNext(); ) {
-                    Expression joinExpression = (Expression)joinsIterator.next();
+                    Expression joinExpression = joinsIterator.next();
                     // Instantiate value holders that should be instantiated.
                     joinExpression.valueFromObject(object, session, null, valueHolderPolicy, false);
                 }
@@ -345,7 +345,7 @@
 
         Vector<DatabaseMapping> mappings = desc.getMappings();
         for (int index = 0; index < mappings.size(); index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             String mappingErrorMsg = compareAttributes(obj1, obj2, mapping, session, processed);
             errorMsg += mappingErrorMsg;
         }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSystem.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSystem.java
index 3826da5..322ede9 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSystem.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSystem.java
@@ -174,7 +174,7 @@
         while (summaries.hasNext()) {
             LoadBuildSummary summary = (LoadBuildSummary)summaries.next();
             for (Iterator<TestResultsSummary> iterator = summary.getSummaries().iterator(); iterator.hasNext(); ) {
-                ((TestResultsSummary)iterator.next()).getResults();
+                iterator.next().getResults();
             }
             //for (int index = 0; index < 10; index++) {
                 CopyGroup group = new CopyGroup();
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
index a4fc796..37094ab 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
@@ -557,7 +557,7 @@
                 log.write(indent + "Failures:");
                 log.write(CR);
                 for (Enumeration<TestFailure> failures = result.failures(); failures.hasMoreElements();) {
-                    junit.framework.TestFailure failure = (junit.framework.TestFailure)failures.nextElement();
+                    junit.framework.TestFailure failure = failures.nextElement();
                     String testString = failure.failedTest().toString();
                     int startIndex = testString.indexOf("(");
                     if (startIndex != -1) {
@@ -578,7 +578,7 @@
                 log.write(indent + "Errors:");
                 log.write(CR);
                 for (Enumeration<TestFailure> errors = result.errors(); errors.hasMoreElements();) {
-                    junit.framework.TestFailure error = (junit.framework.TestFailure)errors.nextElement();
+                    junit.framework.TestFailure error = errors.nextElement();
                     String testString = error.failedTest().toString();
                     int startIndex = testString.indexOf("(");
                     if (startIndex != -1) {
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/UpdateAllQueryTestHelper.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/UpdateAllQueryTestHelper.java
index dfa43c6..58b8a8d 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/UpdateAllQueryTestHelper.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/UpdateAllQueryTestHelper.java
@@ -133,12 +133,12 @@
 
         UnitOfWork uow = mainSession.acquireUnitOfWork();
         // mainSession could be a ServerSession
-        Session session = uow.getParent();
+        AbstractSession session = uow.getParent();
 
         // report query results contain the values to be assigned for each object to be updated.
         Vector result = (Vector)session.executeQuery(rq);
         Vector objectsAfterOneByOneUpdate = new Vector(objects.size());
-        ((org.eclipse.persistence.internal.sessions.AbstractSession)session).beginTransaction();
+        session.beginTransaction();
         try {
             for (int i = 0; i < result.size(); i++) {
                 // read through uow the object(clone) to be updated
@@ -172,7 +172,7 @@
             }
         } finally {
             // transaction rolled back - objects back to the original state in the db.
-            ((org.eclipse.persistence.internal.sessions.AbstractSession)session).rollbackTransaction();
+            session.rollbackTransaction();
         }
         clearCache(mainSession);
 
@@ -181,7 +181,7 @@
         // mainSession could be a ServerSession
         session = uow.getParent();
         Vector objectsAfterUpdateAll = new Vector(objects.size());
-        ((org.eclipse.persistence.internal.sessions.AbstractSession)session).beginTransaction();
+        session.beginTransaction();
         try {
             uow.executeQuery(uq);
             // uow committed - objects updated.
@@ -196,7 +196,7 @@
             }
         } finally {
             // transaction rolled back - objects back to the original state in the db.
-            ((org.eclipse.persistence.internal.sessions.AbstractSession)session).rollbackTransaction();
+            session.rollbackTransaction();
         }
         clearCache(mainSession);
 
@@ -206,7 +206,7 @@
             Object obj = objects.elementAt(i);
             Object obj1 = objectsAfterOneByOneUpdate.elementAt(i);
             Object obj2 = objectsAfterUpdateAll.elementAt(i);
-            boolean equal = rq.getDescriptor().getObjectBuilder().compareObjects(obj, obj2, (org.eclipse.persistence.internal.sessions.AbstractSession)session);
+            boolean equal = rq.getDescriptor().getObjectBuilder().compareObjects(obj, obj2, session);
             if(!equal) {
                 classErrorMsg = classErrorMsg + "Difference: original = " + obj.toString() + "; afterOneByOneUpdate = " + obj1.toString() +"; afterUpdateAll = " + obj2.toString() + ";";
             }
@@ -219,7 +219,7 @@
             if(descriptor.hasInheritance() && descriptor.getInheritancePolicy().hasChildren()) {
                 Iterator<ClassDescriptor> it = descriptor.getInheritancePolicy().getChildDescriptors().iterator();
                 while(it.hasNext()) {
-                    ClassDescriptor childDescriptor = (ClassDescriptor)it.next();
+                    ClassDescriptor childDescriptor = it.next();
                     Class childReferenceClass = childDescriptor.getJavaClass();
                     UpdateAllQuery childUq = (UpdateAllQuery)uq.clone();
                     childUq.setReferenceClass(childReferenceClass);
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/WriteObjectTest.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/WriteObjectTest.java
index ceab547..32f9679 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/WriteObjectTest.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/WriteObjectTest.java
@@ -20,6 +20,7 @@
 import org.eclipse.persistence.mappings.*;
 import org.eclipse.persistence.mappings.foundation.*;
 
+import java.util.Enumeration;
 import java.util.Vector;
 
 /**
@@ -113,7 +114,7 @@
             mutationString += "U";
         }
 
-        java.util.Enumeration en = mappings.elements();
+        Enumeration<DatabaseMapping> en = mappings.elements();
 
         /**
          * Parse the mappings for the object's descriptor to find a suitable
@@ -126,7 +127,7 @@
          * mappings has been fully parsed (whichever occurs first)
          */
         while (en.hasMoreElements ()) {
-            dbMapping = (DatabaseMapping) en.nextElement();
+            dbMapping = en.nextElement();
 
             if (!dbMapping.isPrimaryKeyMapping()
                     && dbMapping.isDirectToFieldMapping()
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/junit/JUnitTestCaseHelper.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/junit/JUnitTestCaseHelper.java
index 8148596..2ca544e 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/junit/JUnitTestCaseHelper.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/junit/JUnitTestCaseHelper.java
@@ -201,7 +201,7 @@
         Map compositeMap = new HashMap();
         properties.put(PersistenceUnitProperties.COMPOSITE_UNIT_PROPERTIES, compositeMap);
         Map<String, String> defaultProperties = getDatabaseProperties();
-        String logLevel = (String)defaultProperties.get(PersistenceUnitProperties.LOGGING_LEVEL);
+        String logLevel = defaultProperties.get(PersistenceUnitProperties.LOGGING_LEVEL);
         if (logLevel != null) {
             properties.put(PersistenceUnitProperties.LOGGING_LEVEL, logLevel);
         }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
index d20ee1c..0fc3543 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
@@ -133,7 +133,7 @@
             Vector summariesHasResult = new Vector();
             for (Enumeration<TestResultsSummary> enumtr = selectedSummary.getLoadBuildSummary().getSummaries().elements();
                  enumtr.hasMoreElements();) {
-                TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
+                TestResultsSummary summary = enumtr.nextElement();
                 if ((summary.getResults() != null) && (summary.getResults().size() != 0)) {
                     summariesHasResult.addElement(summary);
                 }
@@ -761,7 +761,7 @@
         Vector rootSummaries = new Vector();
 
         for (Enumeration<TestResultsSummary> enumtr = loadBuild.getSummaries().elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
+            TestResultsSummary summary = enumtr.nextElement();
             if (summary.getParent() == null) {
                 rootSummaries.addElement(summary);
             }
@@ -780,7 +780,7 @@
 
         for (Enumeration<TestResultsSummary> enumtr = theSummary.getLoadBuildSummary().getSummaries().elements();
              enumtr.hasMoreElements();) {
-            TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
+            TestResultsSummary summary = enumtr.nextElement();
             if ((summary.getParent() != null) && summary.getParent().getName().equals(theSummary.getName())) {
                 children.addElement(summary);
             }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/beans/ExpressionPanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/beans/ExpressionPanel.java
index 5e82a40..4127add 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/beans/ExpressionPanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/beans/ExpressionPanel.java
@@ -705,7 +705,7 @@
                  getDescriptor().getMappings().elements();
                  mappingsEnum.hasMoreElements(); ) {
                 DatabaseMapping mapping =
-                    (DatabaseMapping)mappingsEnum.nextElement();
+                        mappingsEnum.nextElement();
                 if (mapping.isDirectToFieldMapping()) {
                     getAttributeCombo().addItem(mapping.getAttributeName());
                 }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/history/HistoryFacade.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/history/HistoryFacade.java
index a88a031..03f679a 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/history/HistoryFacade.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/history/HistoryFacade.java
@@ -219,7 +219,7 @@
             for (Enumeration<DatabaseMapping> mappings = descriptor.getMappings().elements();
                  mappings.hasMoreElements(); ) {
                 DatabaseMapping mapping =
-                    (DatabaseMapping)mappings.nextElement();
+                        mappings.nextElement();
                 if (mapping instanceof ManyToManyMapping) {
                     ManyToManyMapping m2mMapping = (ManyToManyMapping)mapping;
                     policy = (HistoryPolicy)basePolicy.clone();
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
index 2406935..dd3dedf 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
@@ -28,10 +28,10 @@
  * This panel allows for the browsing of performance profiles.
  */
 public class ProfileBrowserPanel extends JPanel {
-    private List<Profile> fieldProfiles = new ArrayList();
+    private List<Profile> fieldProfiles = new ArrayList<>();
     private JScrollPane ivjProfileScrollPane = null;
     private JTable ivjProfilesTable = null;
-    private JComboBox ivjGroupByChoice = null;
+    private JComboBox<String> ivjGroupByChoice = null;
     private JLabel ivjGroupByLabel = null;
     private JCheckBox ivjQualifyClassNameCheckbox = null;
     IvjEventHandler ivjEventHandler = new IvjEventHandler();
@@ -70,7 +70,7 @@
         super(isDoubleBuffered);
     }
 
-    public static void browseProfiles(Vector profiles) {
+    public static void browseProfiles(List<Profile> profiles) {
         try {
             UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
             JFrame frame = new JFrame();
@@ -90,16 +90,16 @@
      * INTERNAL:
      * Return a map of summary profiles reporting on the profile contained.
      */
-    public Vector buildProfileSummaryByClass() {
-        Hashtable summaries = new Hashtable();
+    public List<Profile> buildProfileSummaryByClass() {
+        Hashtable<Class<?>, Profile> summaries = new Hashtable<>();
 
         for (Profile profile : getProfiles()) {
-            Class domainClass = profile.getDomainClass();
+            Class<?> domainClass = profile.getDomainClass();
             if (domainClass == null) {
                 domainClass = Void.class;
             }
 
-            Profile summary = (Profile)summaries.get(domainClass);
+            Profile summary = summaries.get(domainClass);
             if (summary == null) {
                 summary = new Profile();
                 summary.setDomainClass(domainClass);
@@ -111,13 +111,10 @@
                                  profile.getLocalTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() +
                                                  profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames =
-                 profile.getOperationTimings().keys();
-                 operationNames.hasMoreElements(); ) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime =
-                        (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -128,10 +125,10 @@
             }
         }
 
-        Vector summary = new Vector();
-        for (Enumeration profilesEnum = summaries.elements();
+        List<Profile> summary = new Vector<>();
+        for (Enumeration<Profile> profilesEnum = summaries.elements();
              profilesEnum.hasMoreElements(); ) {
-            summary.addElement(profilesEnum.nextElement());
+            summary.add(profilesEnum.nextElement());
         }
         return summary;
     }
@@ -140,17 +137,17 @@
      * INTERNAL:
      * Return a map of summary profiles reporting on the profile contained.
      */
-    public Vector buildProfileSummaryByQuery() {
-        Hashtable summaries = new Hashtable();
+    public List<Profile> buildProfileSummaryByQuery() {
+        Hashtable<Class<?>, Profile> summaries = new Hashtable<>();
 
         for (Profile profile : getProfiles()) {
-            Class queryType = profile.getQueryClass();
+            Class<?> queryType = profile.getQueryClass();
             //CR 3050 PWK - If we don't know the query class, we need to use void.
             //This avoids a null pointer exception when adding to the hashtable.
             if (queryType == null) {
                 queryType = Void.class;
             }
-            Profile summary = (Profile)summaries.get(queryType);
+            Profile summary = summaries.get(queryType);
             if (summary == null) {
                 summary = new Profile();
                 summary.setQueryClass(queryType);
@@ -162,13 +159,10 @@
                                  profile.getLocalTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() +
                                                  profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames =
-                 profile.getOperationTimings().keys();
-                 operationNames.hasMoreElements(); ) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime =
-                        (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -179,10 +173,10 @@
             }
         }
 
-        Vector summary = new Vector();
-        for (Enumeration profilesEnum = summaries.elements();
+        Vector<Profile> summary = new Vector<>();
+        for (Enumeration<Profile> profilesEnum = summaries.elements();
              profilesEnum.hasMoreElements(); ) {
-            summary.addElement(profilesEnum.nextElement());
+            summary.add(profilesEnum.nextElement());
         }
         return summary;
     }
@@ -191,12 +185,12 @@
      * INTERNAL:
      * Return a map of summary profiles reporting on the profile contained.
      */
-    public Vector buildProfileSummaryByQueryAndClass() {
-        Hashtable summaries = new Hashtable();
+    public List<Profile> buildProfileSummaryByQueryAndClass() {
+        Map<Class<?>, Map<Class<?>, Profile>> summaries = new Hashtable<>();
 
         for (Profile profile : getProfiles()) {
-            Class queryType = profile.getQueryClass();
-            Class queryClass = profile.getDomainClass();
+            Class<?> queryType = profile.getQueryClass();
+            Class<?> queryClass = profile.getDomainClass();
             if (queryClass == null) {
                 queryClass = Void.class;
             }
@@ -207,12 +201,12 @@
             }
 
 
-            Hashtable summaryByQuery = (Hashtable)summaries.get(queryType);
+            Map<Class<?>, Profile> summaryByQuery = summaries.get(queryType);
             if (summaryByQuery == null) {
-                summaryByQuery = new Hashtable();
+                summaryByQuery = new Hashtable<>();
                 summaries.put(queryType, summaryByQuery);
             }
-            Profile summary = (Profile)summaryByQuery.get(queryClass);
+            Profile summary = summaryByQuery.get(queryClass);
             if (summary == null) {
                 summary = new Profile();
                 summary.setQueryClass(queryType);
@@ -225,13 +219,10 @@
                                  profile.getLocalTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() +
                                                  profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames =
-                 profile.getOperationTimings().keys();
-                 operationNames.hasMoreElements(); ) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime =
-                        (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -242,14 +233,9 @@
             }
         }
 
-        Vector summary = new Vector();
-        for (Enumeration profilesEnum = summaries.elements();
-             profilesEnum.hasMoreElements(); ) {
-            for (Enumeration byQueryEnum =
-                 ((Hashtable)profilesEnum.nextElement()).elements();
-                 byQueryEnum.hasMoreElements(); ) {
-                summary.addElement(byQueryEnum.nextElement());
-            }
+        List<Profile> summary = new Vector<>();
+        for (Map<Class<?>, Profile> m: summaries.values()) {
+            summary.addAll(m.values());
         }
         return summary;
     }
@@ -294,10 +280,10 @@
      * Return the GroupByChoice property value.
      * @return javax.swing.JComboBox
      */
-    private javax.swing.JComboBox getGroupByChoice() {
+    private javax.swing.JComboBox<String> getGroupByChoice() {
         if (ivjGroupByChoice == null) {
             try {
-                ivjGroupByChoice = new javax.swing.JComboBox();
+                ivjGroupByChoice = new javax.swing.JComboBox<>();
                 ivjGroupByChoice.setName("GroupByChoice");
                 ivjGroupByChoice.setBackground(java.awt.SystemColor.window);
                 // user code begin {1}
@@ -479,20 +465,20 @@
 
     public void resetProfiles() {
         DefaultTableModel model = new DefaultTableModel();
-        Vector columns = new Vector();
-        columns.addElement("Query");
-        columns.addElement("Class");
-        columns.addElement("Total Time");
-        columns.addElement("Local Time");
-        columns.addElement("# of Objects");
-        columns.addElement("Object/Second");
-        columns.addElement("SQL Prepare");
-        columns.addElement("SQL Execute");
-        columns.addElement("Row Fetch");
-        columns.addElement("Cache");
-        columns.addElement("Object Building");
-        columns.addElement("Query Prepare");
-        columns.addElement("SQL Generation");
+        Vector<String> columns = new Vector<>();
+        columns.add("Query");
+        columns.add("Class");
+        columns.add("Total Time");
+        columns.add("Local Time");
+        columns.add("# of Objects");
+        columns.add("Object/Second");
+        columns.add("SQL Prepare");
+        columns.add("SQL Execute");
+        columns.add("Row Fetch");
+        columns.add("Cache");
+        columns.add("Object Building");
+        columns.add("Query Prepare");
+        columns.add("SQL Generation");
         model.setColumnIdentifiers(columns);
 
         List<Profile> profiles = getProfiles();
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsole.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsole.java
index 1e4c9c0..d36f455 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsole.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsole.java
@@ -14,6 +14,7 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.tools.sessionconsole;
 
+import java.lang.reflect.Constructor;
 import java.net.URL;
 
 import javax.swing.*;
@@ -2101,7 +2102,7 @@
                     Class.forName("com.ibm.uvm.abt.edit.WindowCloser");
                 Class[] parmTypes = { java.awt.Window.class };
                 Object[] parms = { aSessionInspectorFrame };
-                java.lang.reflect.Constructor aCtor =
+                Constructor<?> aCtor =
                     aCloserClass.getConstructor(parmTypes);
                 aCtor.newInstance(parms);
             } catch (java.lang.Throwable exc) {
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
index ec99171..5500189 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
@@ -3242,7 +3242,7 @@
             // Also update all sessions in session manager.
             Iterator<Session> iterator = SessionManager.getManager().getSessions().values().iterator();
             while (iterator.hasNext()) {
-                ((Session)iterator.next()).setSessionLog(getSession().getSessionLog());
+                iterator.next().setSessionLog(getSession().getSessionLog());
             }
         }
     }
@@ -3410,7 +3410,7 @@
                 .getIdentityMapAccessorInstance().getIdentityMap(
                         info.descriptor.getJavaClass());
         for (Enumeration<CacheKey> cacheEnum = map.keys(); cacheEnum.hasMoreElements();) {
-            CacheKey key = (CacheKey) cacheEnum.nextElement();
+            CacheKey key = cacheEnum.nextElement();
             if (info.descriptor.getJavaClass().isInstance(key.getObject())) {
                 cacheResults.addElement(key);
             }
@@ -3449,7 +3449,7 @@
         int index = 0;
         for (Iterator<ClassDescriptor> iterator = (getSession()).getDescriptors().values()
                 .iterator(); iterator.hasNext();) {
-            classes[index] = new ClassInfo((ClassDescriptor) iterator.next(),
+            classes[index] = new ClassInfo(iterator.next(),
                     useFullNames);
             index = index + 1;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeGroup.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeGroup.java
index e35c277..843409e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeGroup.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeGroup.java
@@ -258,7 +258,7 @@
         if (hasItems()) {
             clone.items = new HashMap<>();
             for (ATTRIBUTE_ITEM item : this.items.values()){
-                clone.items.put(item.getAttributeName(), (ATTRIBUTE_ITEM) item.clone((Map<CoreAttributeGroup<ATTRIBUTE_ITEM, DESCRIPTOR>, CoreAttributeGroup<ATTRIBUTE_ITEM, DESCRIPTOR>>)cloneMap, clone));
+                clone.items.put(item.getAttributeName(), (ATTRIBUTE_ITEM) item.clone(cloneMap, clone));
             }
         }
         return clone;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ClassDescriptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ClassDescriptor.java
index 22d8757..b7632b7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ClassDescriptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ClassDescriptor.java
@@ -1010,7 +1010,7 @@
     protected void checkDatabase(AbstractSession session) {
         if (session.getIntegrityChecker().shouldCheckDatabase()) {
             for (Iterator<DatabaseTable> iterator = getTables().iterator(); iterator.hasNext();) {
-                DatabaseTable table = (DatabaseTable)iterator.next();
+                DatabaseTable table = iterator.next();
                 if (session.getIntegrityChecker().checkTable(table, session)) {
                     // To load the fields of database into a vector
                     List databaseFields = new ArrayList();
@@ -1341,7 +1341,7 @@
         for (Enumeration<DatabaseMapping> mappingsEnum = getMappings().elements(); mappingsEnum.hasMoreElements();) {
             DatabaseMapping mapping;
 
-            mapping = (DatabaseMapping)((DatabaseMapping)mappingsEnum.nextElement()).clone();
+            mapping = (DatabaseMapping) mappingsEnum.nextElement().clone();
             mapping.setDescriptor(clonedDescriptor);
             mappingsVector.addElement(mapping);
         }
@@ -1361,7 +1361,7 @@
         List primaryKeyVector = new ArrayList(getPrimaryKeyFields().size());
         List<DatabaseField> primaryKeyFields = getPrimaryKeyFields();
         for (int index = 0; index < primaryKeyFields.size(); index++) {
-            DatabaseField primaryKey = ((DatabaseField)primaryKeyFields.get(index)).clone();
+            DatabaseField primaryKey = primaryKeyFields.get(index).clone();
             primaryKeyVector.add(primaryKey);
         }
         clonedDescriptor.setPrimaryKeyFields(primaryKeyVector);
@@ -1752,7 +1752,7 @@
         }
         Iterator<DatabaseMapping> mappings = getMappings().iterator();
         while (mappings.hasNext()){
-            ((DatabaseMapping)mappings.next()).convertClassNamesToClasses(classLoader);
+            mappings.next().convertClassNamesToClasses(classLoader);
         }
         if (this.inheritancePolicy != null){
             this.inheritancePolicy.convertClassNamesToClasses(classLoader);
@@ -2550,7 +2550,7 @@
     public DatabaseMapping getMappingForAttributeName(String attributeName) {
         // ** Don't use this internally, just for amendments, see getMappingForAttributeName on ObjectBuilder.
         for (Enumeration<DatabaseMapping> mappingsNum = mappings.elements(); mappingsNum.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappingsNum.nextElement();
+            DatabaseMapping mapping = mappingsNum.nextElement();
             if ((mapping.getAttributeName() != null) && mapping.getAttributeName().equals(attributeName)) {
                 return mapping;
             }
@@ -2588,14 +2588,14 @@
         Vector associations = new Vector(getAdditionalTablePrimaryKeyFields().size() * 2);
         Iterator<Map<DatabaseField, DatabaseField>> tablesHashtable = getAdditionalTablePrimaryKeyFields().values().iterator();
         while (tablesHashtable.hasNext()) {
-            Map tableHash = (Map)tablesHashtable.next();
-            Iterator fieldEnumeration = tableHash.keySet().iterator();
+            Map<DatabaseField, DatabaseField> tableHash = tablesHashtable.next();
+            Iterator<DatabaseField> fieldEnumeration = tableHash.keySet().iterator();
             while (fieldEnumeration.hasNext()) {
-                DatabaseField keyField = (DatabaseField)fieldEnumeration.next();
+                DatabaseField keyField = fieldEnumeration.next();
 
                 //PRS#36802(CR#2057) contains() is changed to containsKey()
                 if (getMultipleTableForeignKeys().containsKey(keyField.getTable())) {
-                    Association association = new Association(keyField.getQualifiedName(), ((DatabaseField)tableHash.get(keyField)).getQualifiedName());
+                    Association association = new Association(keyField.getQualifiedName(), tableHash.get(keyField).getQualifiedName());
                     associations.addElement(association);
                 }
             }
@@ -2638,14 +2638,14 @@
         Vector associations = new Vector(getAdditionalTablePrimaryKeyFields().size() * 2);
         Iterator<Map<DatabaseField, DatabaseField>> tablesHashtable = getAdditionalTablePrimaryKeyFields().values().iterator();
         while (tablesHashtable.hasNext()) {
-            Map tableHash = (Map)tablesHashtable.next();
-            Iterator fieldEnumeration = tableHash.keySet().iterator();
+            Map<DatabaseField, DatabaseField> tableHash = tablesHashtable.next();
+            Iterator<DatabaseField> fieldEnumeration = tableHash.keySet().iterator();
             while (fieldEnumeration.hasNext()) {
-                DatabaseField keyField = (DatabaseField)fieldEnumeration.next();
+                DatabaseField keyField = fieldEnumeration.next();
 
                 //PRS#36802(CR#2057) contains() is changed to containsKey()
                 if (!getMultipleTableForeignKeys().containsKey(keyField.getTable())) {
-                    Association association = new Association(keyField.getQualifiedName(), ((DatabaseField)tableHash.get(keyField)).getQualifiedName());
+                    Association association = new Association(keyField.getQualifiedName(), tableHash.get(keyField).getQualifiedName());
                     associations.addElement(association);
                 }
             }
@@ -2708,7 +2708,7 @@
         Vector<String> result = new Vector(getPrimaryKeyFields().size());
         List<DatabaseField> primaryKeyFields = getPrimaryKeyFields();
         for (int index = 0; index < primaryKeyFields.size(); index++) {
-            result.addElement(((DatabaseField)primaryKeyFields.get(index)).getQualifiedName());
+            result.addElement(primaryKeyFields.get(index).getQualifiedName());
         }
 
         return result;
@@ -2881,7 +2881,7 @@
         }
 
         for (Enumeration<DatabaseTable> tables = getTables().elements(); tables.hasMoreElements();) {
-            DatabaseTable table = (DatabaseTable)tables.nextElement();
+            DatabaseTable table = tables.nextElement();
 
             if(tableName.indexOf(' ') != -1) {
                 //if looking for a table with a ' ' character, the name will have
@@ -2922,7 +2922,7 @@
     public Vector getTableNames() {
         Vector tableNames = new Vector(getTables().size());
         for (Enumeration<DatabaseTable> fieldsEnum = getTables().elements(); fieldsEnum.hasMoreElements();) {
-            tableNames.addElement(((DatabaseTable)fieldsEnum.nextElement()).getQualifiedName());
+            tableNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return tableNames;
@@ -3097,7 +3097,7 @@
      */
     public boolean hasPrivatelyOwnedParts() {
         for (Enumeration<DatabaseMapping> mappings = getMappings().elements(); mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (mapping.isPrivateOwned()) {
                 return true;
             }
@@ -3310,7 +3310,7 @@
 
         // All the query keys should be initialized.
         for (Iterator<QueryKey> queryKeys = getQueryKeys().values().iterator(); queryKeys.hasNext();) {
-            QueryKey queryKey = (QueryKey)queryKeys.next();
+            QueryKey queryKey = queryKeys.next();
             queryKey.initialize(this);
         }
 
@@ -3656,7 +3656,7 @@
                     //ClassDescriptor is a class, not an interface
                     for (Iterator<String> parentKeys = parentDescriptor.getQueryKeys().keySet().iterator();
                          parentKeys.hasNext();) {
-                        String queryKeyName = (String)parentKeys.next();
+                        String queryKeyName = parentKeys.next();
                         if (!hasQueryKeyOrMapping(queryKeyName)) {
                             //the parent descriptor has a query key not defined in the child
                             session.getIntegrityChecker().handleError(DescriptorException.childDoesNotDefineAbstractQueryKeyOfParent(this, parentDescriptor, queryKeyName));
@@ -4159,7 +4159,7 @@
             // may not have simple fields, same with empty new and reflection get/set.
             boolean isMethodAccess = false;
             for (Iterator<DatabaseMapping> iterator = getMappings().iterator(); iterator.hasNext(); ) {
-                DatabaseMapping mapping = (DatabaseMapping)iterator.next();
+                DatabaseMapping mapping = iterator.next();
                 if (mapping.isUsingMethodAccess()) {
                     // Ok for lazy 1-1s
                     if (!mapping.isOneToOneMapping() || !((ForeignReferenceMapping)mapping).usesIndirection()) {
@@ -4187,7 +4187,7 @@
         // 4924665 Check for spaces in table names, and add the appropriate quote character
         Iterator<DatabaseTable> tables = this.getTables().iterator();
         while(tables.hasNext()) {
-            DatabaseTable next = (DatabaseTable)tables.next();
+            DatabaseTable next = tables.next();
             if(next.getName().indexOf(' ') != -1) {
                 // EL Bug 382420 - set use delimiters to true if table name contains a space
                 next.setUseDelimiters(true);
@@ -4320,7 +4320,7 @@
         getObjectBuilder().rehashFieldDependancies(session);
 
         for (Enumeration<DatabaseMapping> enumtr = getMappings().elements(); enumtr.hasMoreElements();) {
-            ((DatabaseMapping)enumtr.nextElement()).rehashFieldDependancies(session);
+            enumtr.nextElement().rehashFieldDependancies(session);
         }
     }
 
@@ -5093,7 +5093,7 @@
     public void setMappings(Vector<DatabaseMapping> mappings) {
         // This is used from XML reader so must ensure that all mapping's descriptor has been set.
         for (Enumeration<DatabaseMapping> mappingsEnum = mappings.elements(); mappingsEnum.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappingsEnum.nextElement();
+            DatabaseMapping mapping = mappingsEnum.nextElement();
 
             // For CR#2646, if the mapping already points to the parent descriptor then leave it.
             if (mapping.getDescriptor() == null) {
@@ -5514,7 +5514,7 @@
      */
     public void setTableQualifier(String tableQualifier) {
         for (Enumeration<DatabaseTable> enumtr = getTables().elements(); enumtr.hasMoreElements();) {
-            DatabaseTable table = (DatabaseTable)enumtr.nextElement();
+            DatabaseTable table = enumtr.nextElement();
             table.setTableQualifier(tableQualifier);
         }
     }
@@ -5826,7 +5826,7 @@
         }
         Vector<DatabaseMapping> mappings = getMappings();
         for (Iterator<DatabaseMapping> iterator = mappings.iterator(); iterator.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)iterator.next();
+            DatabaseMapping mapping = iterator.next();
             if (!mapping.isChangeTrackingSupported(project) ) {
                 return false;
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorEventManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorEventManager.java
index 1eac3bd..f935994 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorEventManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorEventManager.java
@@ -667,7 +667,7 @@
             List<DescriptorEventListener> entityListenerEventListeners = entityListenerEventManagers.get(index).getEntityListenerEventListeners();
 
             for (int i = 0; i < entityListenerEventListeners.size(); i++) {
-                DescriptorEventListener listener = (DescriptorEventListener) entityListenerEventListeners.get(i);
+                DescriptorEventListener listener = entityListenerEventListeners.get(i);
                 notifyListener(listener, event);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
index df31775..d984eb6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
@@ -499,7 +499,7 @@
     public Vector getAllQueries() {
         Vector allQueries = new Vector();
         for (Iterator<List<DatabaseQuery>> vectors = getQueries().values().iterator(); vectors.hasNext();) {
-            allQueries.addAll((Vector)vectors.next());
+            allQueries.addAll(vectors.next());
         }
         return allQueries;
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/FetchGroupManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/FetchGroupManager.java
index 8080751..da02bfe 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/FetchGroupManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/FetchGroupManager.java
@@ -542,7 +542,7 @@
         Set fetchedAttributes = isObjectPartial ? fetchGroupInObject.getAttributeNames() : null;
         int size = mappings.size();
         for (int index = 0; index < size; index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             if ((!isObjectPartial) || ((fetchedAttributes != null) && fetchedAttributes.contains(mapping.getAttributeName()))) {
                 // Only refresh the fetched attributes into clones.
                 mapping.buildClone(cachedObject, null, workingClone, null, uow);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/InheritancePolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/InheritancePolicy.java
index e3b637f..834e849 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/InheritancePolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/InheritancePolicy.java
@@ -868,7 +868,7 @@
     public ClassDescriptor getSubclassDescriptor(Class theClass) {
         if (hasChildren()) {
             for (Iterator<ClassDescriptor> enumtr = getChildDescriptors().iterator(); enumtr.hasNext();) {
-                ClassDescriptor childDescriptor = (ClassDescriptor)enumtr.next();
+                ClassDescriptor childDescriptor = enumtr.next();
                 if (childDescriptor.getJavaClass().equals(theClass)) {
                     return childDescriptor;
                 } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/AttributeChangeTrackingPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/AttributeChangeTrackingPolicy.java
index 9c6de47..58237f5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/AttributeChangeTrackingPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/AttributeChangeTrackingPolicy.java
@@ -75,7 +75,7 @@
                 if (changes.hasDeferredAttributes()){
                     //need to calculate the changes for these attributes.
                     for (Iterator<String> iterator = changes.getDeferredSet().iterator(); iterator.hasNext();){
-                        DatabaseMapping mapping = descriptor.getObjectBuilder().getMappingForAttributeName((String)iterator.next());
+                        DatabaseMapping mapping = descriptor.getObjectBuilder().getMappingForAttributeName(iterator.next());
                         mapping.calculateDeferredChanges((ChangeRecord)changes.getChangesForAttributeNamed(mapping.getAttributeName()), session);
                     }
                     changes.getDeferredSet().clear();
@@ -94,7 +94,7 @@
                 List<DatabaseMapping> mappings = descriptor.getMappings();
                 int size = mappings.size();
                 for (int index = 0; index < size; index++) {
-                    DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                    DatabaseMapping mapping = mappings.get(index);
                     if ((fetchGroup == null) || fetchGroup.containsAttributeInternal(mapping.getAttributeName())) {
                         changes.addChange(mapping.compareForChange(clone, null, changes, session));
                     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/DeferredChangeDetectionPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/DeferredChangeDetectionPolicy.java
index 2151ee6..dd24e4a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/DeferredChangeDetectionPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/DeferredChangeDetectionPolicy.java
@@ -192,7 +192,7 @@
                 fetchGroup = descriptor.getFetchGroupManager().getObjectFetchGroup(clone);
             }
             for (int index = 0; index < mappingsSize; index++) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                DatabaseMapping mapping = mappings.get(index);
                 if ((fetchGroup == null) || fetchGroup.containsAttributeInternal(mapping.getAttributeName())) {
                     changes.addChange(mapping.compareForChange(clone, backUp, changes, session));
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/ObjectChangeTrackingPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/ObjectChangeTrackingPolicy.java
index 1eb7b83..bb64517 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/ObjectChangeTrackingPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/changetracking/ObjectChangeTrackingPolicy.java
@@ -151,7 +151,7 @@
             int size = mappings.size();
             // Only cascade fetched mappings.
             for (int index = 0; index < size; index++) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                DatabaseMapping mapping = mappings.get(index);
                 if (!isPartialObject || fetchGroupManager.isAttributeFetched(clone, mapping.getAttributeName())) {
                     mapping.setChangeListener(clone, listener, uow);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISObjectPersistenceXMLProject.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISObjectPersistenceXMLProject.java
index 5565c7e..dc90641 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISObjectPersistenceXMLProject.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISObjectPersistenceXMLProject.java
@@ -180,7 +180,7 @@
                     XMLInteraction interaction = (XMLInteraction)object;
                     Vector argumentNames = interaction.getArgumentNames();
                     Vector arguments = interaction.getArguments();
-                    Vector interactionArguments = new Vector(arguments.size());
+                    Vector<InteractionArgument> interactionArguments = new Vector<>(arguments.size());
                     for (int index = 0; index < arguments.size(); index++) {
                         InteractionArgument interactionArgument = new InteractionArgument();
                         interactionArgument.setArgumentName((String)argumentNames.get(index));
@@ -238,7 +238,7 @@
                     XMLInteraction interaction = (XMLInteraction)object;
                     Vector arguments = interaction.getOutputArguments();
                     Vector argumentNames = interaction.getOutputArgumentNames();
-                    Vector interactionArguments = new Vector(arguments.size());
+                    Vector<InteractionArgument> interactionArguments = new Vector<>(arguments.size());
                     for (int index = 0; index < arguments.size(); index++) {
                         InteractionArgument interactionArgument = new InteractionArgument();
                         interactionArgument.setKey(((DatabaseField)arguments.get(index)).getName());
@@ -252,8 +252,8 @@
                 public void setAttributeValueInObject(Object object, Object value) {
                     XMLInteraction interaction = (XMLInteraction)object;
                     Vector interactionArguments = (Vector)value;
-                    Vector arguments = new Vector(interactionArguments.size());
-                    Vector argumentNames = new Vector(interactionArguments.size());
+                    Vector<DatabaseField> arguments = new Vector<>(interactionArguments.size());
+                    Vector<String> argumentNames = new Vector<>(interactionArguments.size());
                     for (int index = 0; index < interactionArguments.size(); index++) {
                         InteractionArgument interactionArgument = (InteractionArgument)interactionArguments.get(index);
                         arguments.add(new DatabaseField((String)interactionArgument.getKey()));
@@ -377,10 +377,10 @@
                 @Override
                 public Object getAttributeValueFromObject(Object object) {
                     Map<DatabaseField, DatabaseField> sourceToTargetKeyFields = ((EISOneToOneMapping)object).getSourceToTargetKeyFields();
-                    List associations = new ArrayList(sourceToTargetKeyFields.size());
+                    List<Association> associations = new ArrayList<>(sourceToTargetKeyFields.size());
                     Iterator<Map.Entry<DatabaseField, DatabaseField>> iterator = sourceToTargetKeyFields.entrySet().iterator();
                     while (iterator.hasNext()) {
-                        Map.Entry entry = (Map.Entry)iterator.next();
+                        Map.Entry<DatabaseField, DatabaseField> entry = iterator.next();
                         associations.add(new Association(entry.getKey(), entry.getValue()));
                     }
                     return associations;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/interactions/EISInteraction.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/interactions/EISInteraction.java
index 2ef92b4..d576aac 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/interactions/EISInteraction.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/interactions/EISInteraction.java
@@ -243,7 +243,7 @@
                 MappedRecord record = accessor.getRecordFactory().createMappedRecord(recordName);
                 for (Iterator<DatabaseField> keysIterator = valuesRow.getFields().iterator();
                      keysIterator.hasNext();) {
-                    DatabaseField field = (DatabaseField)keysIterator.next();
+                    DatabaseField field = keysIterator.next();
                     Object elementValue = createRecordElement(field.getName(), valuesRow.get(field), accessor);
                     accessor.getEISPlatform().setValueInRecord(field.getName(), elementValue, record, accessor);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToManyMapping.java
index 5ae81b8..4301620 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToManyMapping.java
@@ -344,7 +344,7 @@
         Expression builder = new ExpressionBuilder();
         Iterator<DatabaseField> keyIterator = getSourceForeignKeysToTargetKeys().keySet().iterator();
         while (keyIterator.hasNext()) {
-            DatabaseField foreignKey = (DatabaseField)keyIterator.next();
+            DatabaseField foreignKey = keyIterator.next();
             DatabaseField targetKey = getSourceForeignKeysToTargetKeys().get(foreignKey);
 
             Expression expression = builder.getField(targetKey).equal(builder.getParameter(foreignKey));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToOneMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToOneMapping.java
index 76e7c14..48a9b73 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToOneMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/mappings/EISOneToOneMapping.java
@@ -154,7 +154,7 @@
         Map setOfFields = new HashMap(getTargetToSourceKeyFields().size());
 
         for (Enumeration<DatabaseField> enumtr = getForeignKeyFields().elements(); enumtr.hasMoreElements();) {
-            DatabaseField field = (DatabaseField)enumtr.nextElement();
+            DatabaseField field = enumtr.nextElement();
 
             DatabaseField fieldClone = field.clone();
             setOfFields.put(field, fieldClone);
@@ -164,7 +164,7 @@
         //get clones from set for source hashtable.  If they do not exist, create a new one.
         Iterator<DatabaseField> sourceKeyIterator = getSourceToTargetKeyFields().keySet().iterator();
         while (sourceKeyIterator.hasNext()) {
-            DatabaseField sourceField = (DatabaseField)sourceKeyIterator.next();
+            DatabaseField sourceField = sourceKeyIterator.next();
             DatabaseField targetField = getSourceToTargetKeyFields().get(sourceField);
 
             DatabaseField targetClone = (DatabaseField)setOfFields.get(targetField);
@@ -184,7 +184,7 @@
         //get clones from set for target hashtable.  If they do not exist, create a new one.
         Iterator<DatabaseField> targetKeyIterator = getTargetToSourceKeyFields().keySet().iterator();
         while (targetKeyIterator.hasNext()) {
-            DatabaseField targetField = (DatabaseField)targetKeyIterator.next();
+            DatabaseField targetField = targetKeyIterator.next();
             DatabaseField sourceField = getTargetToSourceKeyFields().get(targetField);
 
             DatabaseField targetClone = (DatabaseField)setOfFields.get(targetField);
@@ -215,7 +215,7 @@
         List<DatabaseField> primaryKeyFields = getReferenceDescriptor().getPrimaryKeyFields();
         Object[] result = new  Object[primaryKeyFields.size()];
         for (int index = 0; index < primaryKeyFields.size(); index++) {
-            DatabaseField targetKeyField = (DatabaseField)primaryKeyFields.get(index);
+            DatabaseField targetKeyField = primaryKeyFields.get(index);
             DatabaseField sourceKeyField = getTargetToSourceKeyFields().get(targetKeyField);
             if (sourceKeyField == null) {
                 return null;
@@ -240,7 +240,7 @@
         List<DatabaseField> foreignKeyFields = getForeignKeyFields();
         int size = foreignKeyFields.size();
         for (int index = 0; index < size; index++) {
-            DatabaseField foreignKeyField = (DatabaseField)foreignKeyFields.get(index);
+            DatabaseField foreignKeyField = foreignKeyFields.get(index);
             foreignKeyField = getDescriptor().buildField(foreignKeyField);
             foreignKeyFields.set(index, foreignKeyField);
         }
@@ -264,9 +264,9 @@
         HashMap newTargetToSourceKeyFields = new HashMap(getTargetToSourceKeyFields().size());
         Iterator<Map.Entry<DatabaseField, DatabaseField>> iterator = getSourceToTargetKeyFields().entrySet().iterator();
         while (iterator.hasNext()) {
-            Map.Entry entry = (Map.Entry)iterator.next();
-            DatabaseField sourceField = (DatabaseField)entry.getKey();
-            DatabaseField targetField = (DatabaseField)entry.getValue();
+            Map.Entry<DatabaseField, DatabaseField> entry = iterator.next();
+            DatabaseField sourceField = entry.getKey();
+            DatabaseField targetField = entry.getValue();
 
             sourceField = getDescriptor().buildField(sourceField);
             targetField = getReferenceDescriptor().buildField(targetField);
@@ -294,7 +294,7 @@
         Expression builder = new ExpressionBuilder();
         Iterator<DatabaseField> keyIterator = getSourceToTargetKeyFields().keySet().iterator();
         while (keyIterator.hasNext()) {
-            DatabaseField foreignKey = (DatabaseField)keyIterator.next();
+            DatabaseField foreignKey = keyIterator.next();
             DatabaseField targetKey = getSourceToTargetKeyFields().get(foreignKey);
 
             Expression expression = builder.getField(targetKey).equal(builder.getParameter(foreignKey));
@@ -377,7 +377,7 @@
         // Skip for partial objects as fk may not be present.
         if (!query.hasPartialAttributeExpressions()) {
             for (Enumeration<DatabaseField> enumeration = getFields().elements(); enumeration.hasMoreElements();) {
-                DatabaseField field = (DatabaseField)enumeration.nextElement();
+                DatabaseField field = enumeration.nextElement();
                 if (row.get(field) == null) {
                     return getIndirectionPolicy().nullValueFromRow();
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/i18n/ExceptionMessageGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/i18n/ExceptionMessageGenerator.java
index adce894..d4b5408 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/i18n/ExceptionMessageGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/i18n/ExceptionMessageGenerator.java
@@ -94,7 +94,7 @@
             ResourceBundle bundle = null;
             bundle = ResourceBundle.getBundle("org.eclipse.persistence.exceptions.i18n.ExceptionResource", Locale.getDefault(), getLoader());
             String errorMessage = bundle.getString("ErrorFormattingMessage");
-            Vector vec = new Vector();
+            Vector<Object> vec = new Vector<>();
             if (arguments != null) {
                 for (int index = 0; index < arguments.length; index++) {
                     try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/spatial/SpatialExpressionFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/spatial/SpatialExpressionFactory.java
index 02f752a..7306373 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/spatial/SpatialExpressionFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/spatial/SpatialExpressionFactory.java
@@ -14,6 +14,7 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.expressions.spatial;
 
+import java.util.List;
 import java.util.Vector;
 
 import org.eclipse.persistence.expressions.Expression;
@@ -133,7 +134,7 @@
      * @param operator the ordinal of the operator
      */
     public static Expression getSpatialExpression(int operator, Expression geom1, Object geom2, String params) {
-        Vector vParameters = new Vector(2);
+        List<Object> vParameters = new Vector<>(2);
         vParameters.add(geom2);
         //Bug 5885276, the empty string either like " " or "" needs to be substituted
         //by null prior to passing to Geometry call.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/codegen/InheritanceHierarchyBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/codegen/InheritanceHierarchyBuilder.java
index a99a20d..e1aeef5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/codegen/InheritanceHierarchyBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/codegen/InheritanceHierarchyBuilder.java
@@ -30,7 +30,7 @@
      * add it to the tree.
      */
     public static HierarchyNode getNodeForClass(String className, Hashtable<String, HierarchyNode> hierarchyTree) {
-        HierarchyNode node = (HierarchyNode)hierarchyTree.get(className);
+        HierarchyNode node = hierarchyTree.get(className);
         if (node == null) {
             node = new HierarchyNode(className);
             hierarchyTree.put(className, node);
@@ -43,7 +43,7 @@
         Hashtable<String, HierarchyNode> hierarchyTree = new Hashtable<>(descriptors.size());
         for (Iterator<ClassDescriptor> descriptorIterator = descriptors.values().iterator();
                  descriptorIterator.hasNext();) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorIterator.next();
+            ClassDescriptor descriptor = descriptorIterator.next();
             String className = descriptor.getJavaClassName();
             if (className == null) {
                 className = descriptor.getJavaClass().getName();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
index 07e2487..412d7da 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
@@ -1559,7 +1559,7 @@
             // Check the cache by sql string, must synchronize check and removal.
             Map<String, Statement> statementCache = getStatementCache();
             synchronized (statementCache) {
-                statement = (PreparedStatement)statementCache.get(call.getSQLString());
+                statement = statementCache.get(call.getSQLString());
                 if (statement != null) {
                     // Need to remove to allow concurrent statement execution.
                     statementCache.remove(call.getSQLString());
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
index 05d6edb..1a3ddb7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabasePlatform.java
@@ -3309,7 +3309,7 @@
         DatabaseField field = new DatabaseField(qualifiedFieldName, getStartDelimiter(), getEndDelimiter());
         Iterator<ClassDescriptor> descriptors = session.getDescriptors().values().iterator();
         while (descriptors.hasNext()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             if (!descriptor.usesSequenceNumbers()) {
                 continue;
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/CascadeLockingPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/CascadeLockingPolicy.java
index c604ac3..2af63c5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/CascadeLockingPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/CascadeLockingPolicy.java
@@ -72,7 +72,7 @@
             ExpressionBuilder builder = new ExpressionBuilder();
 
             while (keys.hasNext()) {
-                String keyField = ((DatabaseField) keys.next()).getQualifiedName();
+                String keyField = keys.next().getQualifiedName();
 
                 if (selectionCriteria == null) {
                     selectionCriteria = builder.getField(keyField).equal(builder.getParameter(keyField));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/ObjectBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/ObjectBuilder.java
index c6784b7..4e63728 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/ObjectBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/ObjectBuilder.java
@@ -265,8 +265,8 @@
                 Iterator<DatabaseField> primaryKeyFieldEnum = keyMapping.keySet().iterator();
                 Iterator<DatabaseField> secondaryKeyFieldEnum = keyMapping.values().iterator();
                 while (primaryKeyFieldEnum.hasNext()) {
-                    DatabaseField primaryKeyField = (DatabaseField)primaryKeyFieldEnum.next();
-                    DatabaseField secondaryKeyField = (DatabaseField)secondaryKeyFieldEnum.next();
+                    DatabaseField primaryKeyField = primaryKeyFieldEnum.next();
+                    DatabaseField secondaryKeyField = secondaryKeyFieldEnum.next();
                     Object primaryValue = databaseRow.getIndicatingNoEntry(primaryKeyField);
 
                     // normally the primary key has a value, however if the multiple tables were joined by a foreign
@@ -319,7 +319,7 @@
         }
         List<DatabaseField> fields = row.getFields();
         for (int index = 0; index < size; index++) {
-            DatabaseField field = (DatabaseField)fields.get(index);
+            DatabaseField field = fields.get(index);
             assignReturnValueForField(object, query, row, field, handledMappings, changeSet);
         }
     }
@@ -337,7 +337,7 @@
         if (readOnlyMappings != null) {
             int size = readOnlyMappings.size();
             for (int index = 0; index < size; index++) {
-                mapping = (DatabaseMapping)readOnlyMappings.get(index);
+                mapping = readOnlyMappings.get(index);
                 assignReturnValueToMapping(object, query, row, field, mapping, handledMappings, changeSet);
             }
         }
@@ -529,7 +529,7 @@
         boolean isTargetProtected = targetSession.isProtectedSession();
         int size = mappings.size();
         for (int index = 0; index < size; index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             if (readAllMappings || query.shouldReadMapping(mapping, executionFetchGroup)) {
                 mapping.readFromRowIntoObject(databaseRow, joinManager, domainObject, cacheKey, query, targetSession, isTargetProtected);
             }
@@ -669,14 +669,14 @@
         if (descriptor.hasFetchGroupManager() && descriptor.getFetchGroupManager().isPartialObject(clone)) {
             FetchGroupManager fetchGroupManager = descriptor.getFetchGroupManager();
             for (int index = 0; index < size; index++) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                DatabaseMapping mapping = mappings.get(index);
                 if (fetchGroupManager.isAttributeFetched(clone, mapping.getAttributeName())) {
                     mapping.buildBackupClone(clone, backup, unitOfWork);
                 }
             }
         } else {
             for (int index = 0; index < size; index++) {
-                ((DatabaseMapping)mappings.get(index)).buildBackupClone(clone, backup, unitOfWork);
+                mappings.get(index).buildBackupClone(clone, backup, unitOfWork);
             }
         }
 
@@ -714,7 +714,7 @@
         // PERF: Avoid synchronized enumerator as is concurrency bottleneck.
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         for (int index = 0; index < mappings.size(); index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             if (expression == null) {
                 expression = mapping.buildExpression(queryObject, policy, expressionBuilder, processedObjects, session);
             } else {
@@ -1603,7 +1603,7 @@
         ExpressionBuilder builder = new ExpressionBuilder();
         Expression expression = null;
         for (Iterator<DatabaseField> primaryKeyEnum = keyMapping.values().iterator(); primaryKeyEnum.hasNext();) {
-            DatabaseField field = (DatabaseField)primaryKeyEnum.next();
+            DatabaseField field = primaryKeyEnum.next();
             expression = (builder.getField(field).equal(builder.getParameter(field))).and(expression);
         }
 
@@ -1662,7 +1662,7 @@
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         int mappingsSize = mappings.size();
         for (int index = 0; index < mappingsSize; index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             mapping.writeFromObjectIntoRow(object, databaseRow, session, writeType);
         }
 
@@ -1701,7 +1701,7 @@
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         int mappingsSize = mappings.size();
         for (int index = 0; index < mappingsSize; index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             mapping.writeFromObjectIntoRowForShallowInsert(object, databaseRow, session);
         }
 
@@ -1824,7 +1824,7 @@
      */
     public AbstractRecord buildRowForUpdate(AbstractRecord databaseRow, WriteObjectQuery query) {
         for (Iterator<DatabaseMapping> mappings = getNonPrimaryKeyMappings().iterator(); mappings.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+            DatabaseMapping mapping = mappings.next();
             mapping.writeFromObjectIntoRowForUpdate(query, databaseRow);
         }
 
@@ -1884,7 +1884,7 @@
 
         for (Iterator<DatabaseMapping> mappings = this.descriptor.getMappings().iterator();
              mappings.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+            DatabaseMapping mapping = mappings.next();
             mapping.writeFromObjectIntoRowForWhereClause(query, databaseRow);
         }
 
@@ -1941,7 +1941,7 @@
     public void buildTemplateInsertRow(AbstractSession session, AbstractRecord databaseRow) {
         for (Iterator<DatabaseMapping> mappings = this.descriptor.getMappings().iterator();
              mappings.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+            DatabaseMapping mapping = mappings.next();
             mapping.writeInsertFieldsIntoRow(databaseRow, session);
         }
 
@@ -1996,7 +1996,7 @@
 
         for (Iterator<DatabaseMapping> mappings = getNonPrimaryKeyMappings().iterator();
              mappings.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+            DatabaseMapping mapping = mappings.next();
             mapping.writeUpdateFieldsIntoRow(databaseRow, session);
         }
 
@@ -2034,7 +2034,7 @@
         List<DatabaseMapping> mappings = this.primaryKeyMappings;
         int mappingsSize = mappings.size();
         for (int i = 0; i < mappingsSize; i++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(i);
+            DatabaseMapping mapping = mappings.get(i);
             mapping.buildShallowOriginalFromRow(databaseRow, original, null, query, session);
         }
     }
@@ -2055,7 +2055,7 @@
         List<DatabaseMapping> pkMappings = getPrimaryKeyMappings();
         int mappingsSize = pkMappings.size();
         for (int i = 0; i < mappingsSize; i++) {
-            DatabaseMapping mapping = (DatabaseMapping)pkMappings.get(i);
+            DatabaseMapping mapping = pkMappings.get(i);
 
             //if (query.shouldReadMapping(mapping)) {
             if (!mapping.isAbstractColumnMapping()) {
@@ -2065,7 +2065,7 @@
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         mappingsSize = mappings.size();
         for (int i = 0; i < mappingsSize; i++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(i);
+            DatabaseMapping mapping = mappings.get(i);
 
             //if (query.shouldReadMapping(mapping)) {
             if (mapping.isAbstractColumnMapping()) {
@@ -2091,7 +2091,7 @@
         int size = mappings.size();
         FetchGroup executionFetchGroup = query.getExecutionFetchGroup(this.descriptor);
         for (int index = 0; index < size; index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             if (readAllMappings || query.shouldReadMapping(mapping, executionFetchGroup)) {
                 mapping.buildCloneFromRow(databaseRow, joinManager, clone, sharedCacheKey, query, unitOfWork, unitOfWork);
             }
@@ -2473,20 +2473,20 @@
                         // composite primary key - set pk using pkRow
                         boolean isTargetProtected = session.isProtectedSession();
                         for (int index = 0; index < pkFieldsSize; index++) {
-                            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                            DatabaseMapping mapping = mappings.get(index);
                             mapping.readFromRowIntoObject(row, joinManager, object, cacheKeyToUse, query, session, isTargetProtected);
                         }
                     }
                     // set the rest using mappings directly
                     for (int index = pkFieldsSize; index < size; index++) {
-                        DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                        DatabaseMapping mapping = mappings.get(index);
                         mapping.readFromResultSetIntoObject(resultSet, object, query, session, accessor, metaData, index + shift, platform);
                     }
                 } else {
                     boolean isTargetProtected = session.isProtectedSession();
                     accessor.populateRow(fieldsArray, values, resultSet, metaData, session, pkFieldsSize, fieldsArray.length);
                     for (int index = 0; index < size; index++) {
-                        DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                        DatabaseMapping mapping = mappings.get(index);
                         mapping.readFromRowIntoObject(row, joinManager, object, cacheKeyToUse, query, session, isTargetProtected);
                     }
                 }
@@ -2695,7 +2695,7 @@
         // PERF: Avoid iterator.
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         for (int index = 0; index < mappings.size(); index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
 
             if (!mapping.compareObjects(firstObject, secondObject, session)) {
                 Object firstValue = mapping.getAttributeValueFromObject(firstObject);
@@ -2715,7 +2715,7 @@
         // PERF: Avoid iterator.
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         for (int index = 0; index < mappings.size(); index++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+            DatabaseMapping mapping = mappings.get(index);
             Object value = null;
             if (cloneOneToOneValueHolders && mapping.isForeignReferenceMapping()){
                 value = ((ForeignReferenceMapping)mapping).getAttributeValueWithClonedValueHolders(source);
@@ -2917,7 +2917,7 @@
             List<DatabaseMapping> mappings = getCloningMappings();
             int size = mappings.size();
             for (int index = 0; index < size; index++) {
-                ((DatabaseMapping)mappings.get(index)).buildCopy(copy, original, copyGroup);
+                mappings.get(index).buildCopy(copy, original, copyGroup);
             }
 
             if (copyGroup.shouldResetPrimaryKey() && (!(this.descriptor.isDescriptorTypeAggregate()))) {
@@ -2926,13 +2926,13 @@
                 List<DatabaseMapping> primaryKeyMappings = getPrimaryKeyMappings();
                 size = primaryKeyMappings.size();
                 for (int index = 0; index < size; index++) {
-                    if (((DatabaseMapping)primaryKeyMappings.get(index)).isOneToOneMapping()) {
+                    if (primaryKeyMappings.get(index).isOneToOneMapping()) {
                         hasOneToOne = true;
                     }
                 }
                 if (!hasOneToOne) {
                     for (int index = 0; index < size; index++) {
-                        DatabaseMapping mapping = (DatabaseMapping)primaryKeyMappings.get(index);
+                        DatabaseMapping mapping = primaryKeyMappings.get(index);
 
                         // Only null out direct mappings, as others will be nulled in the respective objects.
                         if (mapping.isAbstractColumnMapping()) {
@@ -3033,7 +3033,7 @@
 
         if(null != primaryKeyFields) {
             for (int index = 0; index < primaryKeyFields.size(); index++) {
-                DatabaseField primaryKeyField = (DatabaseField)primaryKeyFields.get(index);
+                DatabaseField primaryKeyField = primaryKeyFields.get(index);
                 subExpression = ((DatasourcePlatform)session.getDatasourcePlatform()).createExpressionFor(primaryKeyField, builder);
 
                 if (expression == null) {
@@ -3311,7 +3311,7 @@
             // Ensure that the type extracted from the object is the same type as in the descriptor,
             // the main reason for this is that 1-1 can optimize on vh by getting from the row as the row-type.
             Class classification = getPrimaryKeyClassifications().get(index);
-            DatabaseField field = (DatabaseField)primaryKeyFields.get(index);
+            DatabaseField field = primaryKeyFields.get(index);
             Object value = databaseRow.get(field);
             primaryKeyRow.put(field, session.getPlatform(domainObject.getClass()).convertObject(value, classification));
         }
@@ -3684,7 +3684,7 @@
                     classifications.add(null);
                 } else {
                     DatabaseMapping mapping = getPrimaryKeyMappings().get(index);
-                    DatabaseField field = (DatabaseField)primaryKeyFields.get(index);
+                    DatabaseField field = primaryKeyFields.get(index);
                     if (mapping != null) {
                         classifications.add(Helper.getObjectClass(mapping.getFieldClassification(field)));
                     } else {
@@ -3747,7 +3747,7 @@
 
         for (Enumeration<DatabaseMapping> mappings = this.descriptor.getMappings().elements();
              mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
 
             // Add attribute to mapping association
             if (!mapping.isWriteOnly()) {
@@ -3918,7 +3918,7 @@
         List<DatabaseMapping> joinedAttributes = null;
         List<DatabaseMapping> mappings = this.descriptor.getMappings();
         for (int i = 0; i < mappings.size(); i++) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.get(i);
+            DatabaseMapping mapping = mappings.get(i);
             if (mapping.isForeignReferenceMapping() && ((ForeignReferenceMapping)mapping).isJoinFetched()) {
                 if (joinedAttributes == null) {
                     joinedAttributes = new ArrayList();
@@ -4016,7 +4016,7 @@
         if (nonPrimaryKeyMappings != null) {
             nonPrimaryKeyMappings.clear();
             for (Iterator<DatabaseField> fields = getMappingsByField().keySet().iterator(); fields.hasNext();) {
-                DatabaseField field = (DatabaseField)fields.next();
+                DatabaseField field = fields.next();
                 if (null ==primaryKeyFields || !primaryKeyFields.contains(field)) {
                     DatabaseMapping mapping = getMappingForField(field);
                     if (!getNonPrimaryKeyMappings().contains(mapping)) {
@@ -4028,7 +4028,7 @@
 
         if(null != primaryKeyFields) {
             for (int index = 0; index < primaryKeyFields.size(); index++) {
-                DatabaseField primaryKeyField = (DatabaseField)primaryKeyFields.get(index);
+                DatabaseField primaryKeyField = primaryKeyFields.get(index);
                 DatabaseMapping mapping = getMappingForField(primaryKeyField);
 
                 if (mapping == null) {
@@ -4284,14 +4284,14 @@
         if (this.descriptor.hasFetchGroupManager() && this.descriptor.getFetchGroupManager().isPartialObject(original)) {
             FetchGroupManager fetchGroupManager = this.descriptor.getFetchGroupManager();
             for (int index = 0; index < size; index++) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.get(index);
+                DatabaseMapping mapping = mappings.get(index);
                 if (fetchGroupManager.isAttributeFetched(original, mapping.getAttributeName())) {
                     mapping.buildClone(original, cacheKey, clone, refreshCascade, cloningSession);
                 }
             }
         } else {
             for (int index = 0; index < size; index++) {
-                ((DatabaseMapping)mappings.get(index)).buildClone(original, cacheKey, clone, refreshCascade, cloningSession);
+                mappings.get(index).buildClone(original, cacheKey, clone, refreshCascade, cloningSession);
             }
         }
 
@@ -4594,7 +4594,7 @@
         } else {
             for (Enumeration<DatabaseTable> tables = this.descriptor.getTables().elements();
                  tables.hasMoreElements();) {
-                DatabaseTable table = (DatabaseTable)tables.nextElement();
+                DatabaseTable table = tables.nextElement();
 
                 SQLSelectStatement sqlStatement = new SQLSelectStatement();
                 sqlStatement.addTable(table);
@@ -4623,7 +4623,7 @@
         // now ask each of the mappings to verify that the object has been deleted.
         for (Enumeration<DatabaseMapping> mappings = this.descriptor.getMappings().elements();
              mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
 
             if (!mapping.verifyDelete(object, session)) {
                 return false;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/FunctionExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/FunctionExpression.java
index 3913904..da60d77 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/FunctionExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/FunctionExpression.java
@@ -943,7 +943,7 @@
     protected DatabaseMapping getMappingOfFirstPrimaryKey(ClassDescriptor descriptor) {
         if (descriptor != null) {
             for (Iterator<DatabaseMapping> i = descriptor.getMappings().iterator(); i.hasNext(); ) {
-                DatabaseMapping m = (DatabaseMapping)i.next();
+                DatabaseMapping m = i.next();
                 if (m.isPrimaryKeyMapping()) {
                     return m;
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ObjectExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ObjectExpression.java
index 9126d02..3c61281 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ObjectExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ObjectExpression.java
@@ -163,7 +163,7 @@
             tablesJoinExpressions = new HashMap();
             List<DatabaseTable> childrenTables = getDescriptor().getInheritancePolicy().getChildrenTables();
             for( int i=0; i < childrenTables.size(); i++) {
-                DatabaseTable table = (DatabaseTable)childrenTables.get(i);
+                DatabaseTable table = childrenTables.get(i);
                 Expression joinExpression = getDescriptor().getInheritancePolicy().getChildrenTablesJoinExpressions().get(table);
                 if (getBaseExpression() != null){
                     joinExpression = getBaseExpression().twist(joinExpression, this);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/OuterJoinExpressionHolder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/OuterJoinExpressionHolder.java
index 9e43e47..7cabbd6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/OuterJoinExpressionHolder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/OuterJoinExpressionHolder.java
@@ -145,7 +145,7 @@
             int tablesSize = targetTables.size();
             // skip main table - start with i=1
             for(int i=1; i < tablesSize; i++) {
-                DatabaseTable table = (DatabaseTable)targetTables.get(i);
+                DatabaseTable table = targetTables.get(i);
                 Expression onExpression = outerJoinedAdditionalJoinCriteria.get(table);
                 if (onExpression != null) {
                     DatabaseTable alias = onExpression.aliasForTable(table);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/QueryKeyExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/QueryKeyExpression.java
index 816b3da..437b7ac 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/QueryKeyExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/QueryKeyExpression.java
@@ -193,7 +193,7 @@
         int tablesSize = tables.size();
         if (shouldUseOuterJoin() || (!getSession().getPlatform().shouldPrintInnerJoinInWhereClause())) {
             for (int i=1; i < tablesSize; i++) {
-                DatabaseTable table = (DatabaseTable)tables.elementAt(i);
+                DatabaseTable table = tables.elementAt(i);
                 Expression joinExpression = getDescriptor().getQueryManager().getTablesJoinExpressions().get(table);
                 joinExpression = this.baseExpression.twist(joinExpression, this);
                 if (getDescriptor().getHistoryPolicy() != null) {
@@ -206,7 +206,7 @@
             List<DatabaseTable> childrenTables = getDescriptor().getInheritancePolicy().getChildrenTables();
             tablesSize = childrenTables.size();
             for (int i=0; i < tablesSize; i++) {
-                DatabaseTable table = (DatabaseTable)childrenTables.get(i);
+                DatabaseTable table = childrenTables.get(i);
                 Expression joinExpression = getDescriptor().getInheritancePolicy().getChildrenTablesJoinExpressions().get(table);
                 joinExpression = this.baseExpression.twist(joinExpression, this);
                 tablesJoinExpressions.put(table, joinExpression);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLSelectStatement.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLSelectStatement.java
index 62b56bb..742262d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLSelectStatement.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLSelectStatement.java
@@ -271,7 +271,7 @@
                 } else {// do normal outer stuff for Informix
                     for (Enumeration<DatabaseTable> target = outerExpression.getMapping().getReferenceDescriptor().getTables().elements();
                          target.hasMoreElements();) {
-                        DatabaseTable newTarget = (DatabaseTable)target.nextElement();
+                        DatabaseTable newTarget = target.nextElement();
                         DatabaseTable newAlias = outerExpression.aliasForTable(newTarget);
                         writer.write(", OUTER ");
                         writer.write(newTarget.getQualifiedNameDelimited(printer.getPlatform()));
@@ -761,7 +761,7 @@
         printer.getWriter().write(" ORDER BY ");
 
         for (Iterator<Expression> expressionsEnum = getOrderByExpressions().iterator(); expressionsEnum.hasNext();) {
-            Expression expression = (Expression)expressionsEnum.next();
+            Expression expression = expressionsEnum.next();
             expression.printSQL(printer);
 
             if (expressionsEnum.hasNext()) {
@@ -780,7 +780,7 @@
         }
 
         for (Iterator<Expression> expressionsEnum = getUnionExpressions().iterator(); expressionsEnum.hasNext();) {
-            Expression expression = (Expression)expressionsEnum.next();
+            Expression expression = expressionsEnum.next();
             printer.getWriter().write(" ");
             expression.printSQL(printer);
             printer.printString(")");
@@ -1581,7 +1581,7 @@
                 if (map != null) {
                     Iterator<Expression> it = map.values().iterator();
                     while(it.hasNext()) {
-                        criteria = (Expression)it.next();
+                        criteria = it.next();
                         if(criteria != null) {
                             allExpressions.add(criteria);
                         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/TreatAsExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/TreatAsExpression.java
index 9f7949f..7e52517 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/TreatAsExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/TreatAsExpression.java
@@ -455,7 +455,7 @@
             tableSize = tables.size();
             //look up the joins from the parent descriptor to our tables.
             for (int i=0; i < tableSize; i++) {
-                DatabaseTable table = (DatabaseTable)tables.elementAt(i);
+                DatabaseTable table = tables.elementAt(i);
                 Expression joinExpression = parentDescriptor.getInheritancePolicy().getChildrenTablesJoinExpressions().get(table);
                 //Some of our tables might be the in our parent as well, so ignore the lack of a joinExpression
                 if (joinExpression != null) {
@@ -469,7 +469,7 @@
             List<DatabaseTable> childrenTables = getDescriptor().getInheritancePolicy().getChildrenTables();
             tableSize = childrenTables.size();
             for (int i=0; i < tableSize; i++) {
-                DatabaseTable table = (DatabaseTable)childrenTables.get(i);
+                DatabaseTable table = childrenTables.get(i);
                 Expression joinExpression = getDescriptor().getInheritancePolicy().getChildrenTablesJoinExpressions().get(table);
                 joinExpression = this.baseExpression.twist(joinExpression, this);
                 tablesJoinExpressions.put(table, joinExpression);
@@ -499,7 +499,7 @@
                     parentDescriptor.getInheritancePolicy().hasMultipleTableChild() ) {
                 //look up the joins from the parent descriptor to our tables.
                 for (int i=0; i < tablesSize; i++) {
-                    DatabaseTable table = (DatabaseTable)tables.elementAt(i);
+                    DatabaseTable table = tables.elementAt(i);
                     Expression joinExpression = parentDescriptor.getInheritancePolicy().getChildrenTablesJoinExpressions().get(table);
                     //Some of our tables might be the in our parent as well, so ignore the lack of a joinExpression
                     if (joinExpression != null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DatabaseType.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DatabaseType.java
index f91f59a..97042fc 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DatabaseType.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DatabaseType.java
@@ -199,7 +199,7 @@
                 DatabaseRecord newOutputRow, List<DatabaseField> outputRowFields, List outputRowValues) {
             DatabaseField field = null;
             for (Iterator<DatabaseField> i = outputRowFields.iterator(); i.hasNext(); ) {
-                DatabaseField f = (DatabaseField)i.next();
+                DatabaseField f = i.next();
                 if (f.getName().equals(outArg.name)) {
                     field = f;
                     break;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
index 5988521..2be49ea 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
@@ -96,7 +96,7 @@
         Enumeration enumValues = dbCall.getContexts().getValues().elements();
         AbstractSession executionSession = dbCall.getQuery().getSession().getExecutionSession(dbCall.getQuery());
         while (enumFields.hasMoreElements()) {
-            DatabaseField field = (DatabaseField)enumFields.nextElement();
+            DatabaseField field = enumFields.nextElement();
             Object value = enumValues.nextElement();
 
             //write the value through the locator
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/WriteLockManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/WriteLockManager.java
index 9941f68..629c532 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/WriteLockManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/WriteLockManager.java
@@ -280,7 +280,7 @@
             boolean isPartialObject = (fetchGroupManager != null) && fetchGroupManager.isPartialObject(objectForClone);
             for (Iterator<DatabaseMapping> mappings = descriptor.getLockableMappings().iterator();
                  mappings.hasNext();) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+                DatabaseMapping mapping = mappings.next();
                 // Only cascade fetched mappings.
                 if (!isPartialObject || (fetchGroupManager.isAttributeFetched(objectForClone, mapping.getAttributeName()))) {
                     // any mapping in this list must not have indirection.
@@ -599,7 +599,7 @@
         RuntimeException exception = null;
         while (locks.hasNext()) {
             try {
-                CacheKey cacheKeyToRemove = (CacheKey) locks.next();
+                CacheKey cacheKeyToRemove = locks.next();
                 if (cacheKeyToRemove.getObject() == null) {
                     cacheKeyToRemove.removeFromOwningMap();
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/FullIdentityMap.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/FullIdentityMap.java
index 3df359c..3a5b0a4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/FullIdentityMap.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/FullIdentityMap.java
@@ -59,7 +59,7 @@
         clone.setCacheKeys(new ConcurrentHashMap(this.cacheKeys.size()));
 
         for (Iterator<CacheKey> cacheKeysIterator = this.cacheKeys.values().iterator(); cacheKeysIterator.hasNext();) {
-            CacheKey key = (CacheKey)((CacheKey)cacheKeysIterator.next()).clone();
+            CacheKey key = (CacheKey) cacheKeysIterator.next().clone();
             clone.getCacheKeys().put(key.getKey(), key);
         }
 
@@ -74,7 +74,7 @@
     public void collectLocks(HashMap threadList) {
         Iterator<CacheKey> cacheKeyIterator = this.cacheKeys.values().iterator();
         while (cacheKeyIterator.hasNext()) {
-            CacheKey cacheKey = (CacheKey)cacheKeyIterator.next();
+            CacheKey cacheKey = cacheKeyIterator.next();
             if (cacheKey.isAcquired()) {
                 Thread activeThread = cacheKey.getActiveThread();
                 Set set = (Set)threadList.get(activeThread);
@@ -143,7 +143,7 @@
         Iterator<CacheKey> keys = this.cacheKeys.values().iterator();
 
         while (keys.hasNext()) {
-            CacheKey key = (CacheKey)keys.next();
+            CacheKey key = keys.next();
             Object object = key.getObject();
 
             if (object != null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMapManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMapManager.java
index 97ee793..9c3ee20 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMapManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMapManager.java
@@ -439,8 +439,8 @@
             manager = (IdentityMapManager)super.clone();
             manager.setIdentityMaps(new ConcurrentHashMap());
             for (Iterator<Map.Entry<Class, IdentityMap>> iterator = this.identityMaps.entrySet().iterator(); iterator.hasNext();) {
-                Map.Entry entry = (Map.Entry)iterator.next();
-                manager.identityMaps.put((Class)entry.getKey(), (IdentityMap)((IdentityMap)entry.getValue()).clone());
+                Map.Entry<Class, IdentityMap> entry = iterator.next();
+                manager.identityMaps.put(entry.getKey(), (IdentityMap) entry.getValue().clone());
             }
         } catch (CloneNotSupportedException exception) {
             throw new InternalError(exception.toString());
@@ -555,7 +555,7 @@
             // cache the current time to avoid calculating it every time through the loop
             long currentTimeInMillis = System.currentTimeMillis();
             while (cacheEnum.hasMoreElements()) {
-                CacheKey key = (CacheKey)cacheEnum.nextElement();
+                CacheKey key = cacheEnum.nextElement();
                 if ((key.getObject() == null) || (!shouldReturnInvalidatedObjects && descriptor.getCacheInvalidationPolicy().isInvalidated(key, currentTimeInMillis))) {
                     continue;
                 }
@@ -649,7 +649,7 @@
                 long currentTimeInMillis = System.currentTimeMillis();
                 //Enumeration doesn't checkReadLocks
                 for (Enumeration<CacheKey> cacheEnum = map.keys(false); cacheEnum.hasMoreElements();) {
-                    CacheKey key = (CacheKey)cacheEnum.nextElement();
+                    CacheKey key = cacheEnum.nextElement();
                     Object object = key.getObject();
                     if (object == null || cacheInvalidationPolicy.isInvalidated(key, currentTimeInMillis)) {
                         continue;
@@ -687,7 +687,7 @@
                 if(isChildDescriptor) {
                     // Must check for inheritance.
                     for (Enumeration<CacheKey> cacheEnum = map.keys(false); cacheEnum.hasMoreElements();) {
-                        CacheKey key = (CacheKey)cacheEnum.nextElement();
+                        CacheKey key = cacheEnum.nextElement();
                         Object object = key.getObject();
                         if (object == null) {
                             continue;
@@ -700,7 +700,7 @@
                 } else {
                     // if it's either a root class or there is no inheritance just invalidate the whole identity map
                     for (Enumeration<CacheKey> cacheEnum = map.keys(false); cacheEnum.hasMoreElements();) {
-                        CacheKey key = (CacheKey)cacheEnum.nextElement();
+                        CacheKey key = cacheEnum.nextElement();
                         key.setInvalidationState(CacheKey.CACHE_KEY_INVALID);
                     }
                 }
@@ -780,7 +780,7 @@
         Iterator<Class> classes = getIdentityMaps().keySet().iterator();
         Vector results = new Vector(getIdentityMaps().size());
         while (classes.hasNext()) {
-            results.add(((Class)classes.next()).getName());
+            results.add(classes.next().getName());
         }
         return results;
     }
@@ -867,7 +867,7 @@
             // cache the current time to avoid calculating it every time through the loop
             long currentTimeInMillis = System.currentTimeMillis();
             while (cacheEnum.hasMoreElements()) {
-                CacheKey key = (CacheKey)cacheEnum.nextElement();
+                CacheKey key = cacheEnum.nextElement();
                 if (!shouldReturnInvalidatedObjects && descriptor.getCacheInvalidationPolicy().isInvalidated(key, currentTimeInMillis)) {
                     continue;
                 }
@@ -1235,7 +1235,7 @@
         }
 
         for (Enumeration<CacheKey> enumtr = map.keys(); enumtr.hasMoreElements();) {
-            org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey = (org.eclipse.persistence.internal.identitymaps.CacheKey)enumtr.nextElement();
+            org.eclipse.persistence.internal.identitymaps.CacheKey cacheKey = enumtr.nextElement();
             Object object = cacheKey.getObject();
             if (businessClass.isInstance(object)) {
                 cacheCounter++;
@@ -1266,7 +1266,7 @@
     public void printIdentityMaps() {
         for (Iterator<Class<?>> iterator = this.session.getDescriptors().keySet().iterator();
              iterator.hasNext();) {
-            Class businessClass = (Class)iterator.next();
+            Class<?> businessClass = iterator.next();
             ClassDescriptor descriptor = this.session.getDescriptor(businessClass);
             if (descriptor.hasInheritance()) {
                 if (descriptor.getInheritancePolicy().isRootParentDescriptor()) {
@@ -1288,7 +1288,7 @@
         writer.write(TraceLocalization.buildMessage("lock_writer_header", null) + Helper.cr());
         Iterator<IdentityMap> idenityMapsIterator = this.session.getIdentityMapAccessorInstance().getIdentityMapManager().getIdentityMaps().values().iterator();
         while (idenityMapsIterator.hasNext()) {
-            IdentityMap idenityMap = (IdentityMap)idenityMapsIterator.next();
+            IdentityMap idenityMap = idenityMapsIterator.next();
             idenityMap.collectLocks(threadCollection);
         }
         Object[] parameters = new Object[1];
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/WeakIdentityMap.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/WeakIdentityMap.java
index 8c26a70..ff9cd3c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/WeakIdentityMap.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/WeakIdentityMap.java
@@ -52,7 +52,7 @@
      */
     protected void cleanupDeadCacheKeys() {
         for (Iterator<CacheKey> iterator = getCacheKeys().values().iterator(); iterator.hasNext();) {
-            CacheKey key = (CacheKey)iterator.next();
+            CacheKey key = iterator.next();
             if (key.getObject() == null) {
                 // Check lock first.
                 // Change for CR 2317
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/ExistsNode.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/ExistsNode.java
index ebf1dd9..947639e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/ExistsNode.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/ExistsNode.java
@@ -75,7 +75,7 @@
         // get generated.
         List<ReportItem> items = reportQuery.getItems();
         for (Iterator<ReportItem> i = items.iterator(); i.hasNext();) {
-            ReportItem item = (ReportItem)i.next();
+            ReportItem item = i.next();
             Expression expr = item.getAttributeExpression();
             reportQuery.addNonFetchJoinedAttribute(expr);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/NamespaceResolverStorage.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/NamespaceResolverStorage.java
index 4be31b2..b2fae52 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/NamespaceResolverStorage.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/NamespaceResolverStorage.java
@@ -104,7 +104,7 @@
 
     public void setNamespaces(Vector<Namespace> namespaces) {
         super.clear();
-        for (Namespace namespace : (Vector<Namespace>) namespaces) {
+        for (Namespace namespace : namespaces) {
             if ((namespace.getPrefix() != null) && (namespace.getNamespaceURI() != null)) {
                 super.put(namespace.getPrefix(), namespace.getNamespaceURI());
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataHelper.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataHelper.java
index ecfa002..fc98922 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataHelper.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataHelper.java
@@ -193,7 +193,7 @@
         try {
             Iterator<ImageWriter> itr = ImageIO.getImageWritersByMIMEType(mimeType);
             if (itr.hasNext()) {
-                ImageWriter w = (ImageWriter) itr.next();
+                ImageWriter w = itr.next();
                 w.setOutput(ImageIO.createImageOutputStream(outputStream));
                 w.write(convertToBufferedImage(image));
                 w.dispose();
@@ -327,7 +327,7 @@
             String mimeType = "image/png";
             Iterator<ImageWriter> itr = ImageIO.getImageWritersByMIMEType(mimeType);
             if (itr.hasNext()) {
-                ImageWriter w = (ImageWriter) itr.next();
+                ImageWriter w = itr.next();
                 w.setOutput(ImageIO.createImageOutputStream(outputStream));
                 w.write(convertToBufferedImage(image));
                 w.dispose();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectBuilder.java
index fb1a368..b5ff9c0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectBuilder.java
@@ -549,7 +549,7 @@
 
         for (Enumeration<DatabaseMapping> mappings = this.descriptor.getMappings().elements();
              mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
 
             // Add attribute to mapping association
             if (!mapping.isWriteOnly()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/XMLEventReaderReader.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/XMLEventReaderReader.java
index 8b85972..0d25879 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/XMLEventReaderReader.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/XMLEventReaderReader.java
@@ -185,7 +185,7 @@
                     declaredNs = new ArrayList<>();
                 }
                 while(namespaces.hasNext()) {
-                    Namespace next = (Namespace)namespaces.next();
+                    Namespace next = namespaces.next();
                     contentHandler.startPrefixMapping(next.getPrefix(), next.getNamespaceURI());
                     declaredNs.add(next);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ContainerPolicy.java
index 521a6ff..c19f2fa 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ContainerPolicy.java
@@ -1118,7 +1118,7 @@
         // Step 1 - iterate over the removed changes and remove them from the container.
         Iterator<ObjectChangeSet> removeObjects = changeRecord.getRemoveObjectList().keySet().iterator();
         while (removeObjects.hasNext()) {
-            objectChanges = (ObjectChangeSet) removeObjects.next();
+            objectChanges = removeObjects.next();
             removeFrom(objectChanges.getOldKey(), objectChanges.getTargetVersionOfSourceObject(mergeManager, targetSession), valueOfTarget, targetSession);
             if (!mergeManager.shouldMergeChangesIntoDistributedCache()) {
                 mergeManager.registerRemovedNewObjectIfRequired(objectChanges.getUnitOfWorkClone());
@@ -1128,7 +1128,7 @@
         // Step 2 - iterate over the added changes and add them to the container.
         Iterator<ObjectChangeSet> addObjects = changeRecord.getAddObjectList().keySet().iterator();
         while (addObjects.hasNext()) {
-            objectChanges = (ObjectChangeSet) addObjects.next();
+            objectChanges = addObjects.next();
             Object object = null;
             if (shouldMergeCascadeParts) {
                 object = mergeCascadeParts(objectChanges, mergeManager, targetSession);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatabaseQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatabaseQueryMechanism.java
index d6f8910..811f875 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatabaseQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatabaseQueryMechanism.java
@@ -844,7 +844,7 @@
             AbstractRecord pkToModify = new DatabaseRecord();
             List<DatabaseField> primaryKeyFields = getDescriptor().getPrimaryKeyFields();
             for (int i = 0; i < primaryKeyFields.size(); i++) {
-                DatabaseField field = (DatabaseField)primaryKeyFields.get(i);
+                DatabaseField field = primaryKeyFields.get(i);
                 if (row.containsKey(field)) {
                     pkToModify.put(field, row.get(field));
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
index 5fcd4a2..d7f618a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
@@ -476,9 +476,9 @@
         Iterator<Map.Entry<DatabaseTable, DatabaseTable>> itEntries = selectStatement.getTableAliases().entrySet().iterator();
         DatabaseTable aliasTable = null;
         while(itEntries.hasNext()) {
-            Map.Entry entry = (Map.Entry)itEntries.next();
+            Map.Entry<DatabaseTable, DatabaseTable> entry = itEntries.next();
             if(table.equals(entry.getValue())) {
-                aliasTable = (DatabaseTable)entry.getKey();
+                aliasTable = entry.getKey();
                 aliasTables.add(aliasTable);
             }
         }
@@ -1510,7 +1510,7 @@
             Iterator<ClassDescriptor> it = descriptor.getInheritancePolicy().getChildDescriptors().iterator();
             while (it.hasNext()) {
                 // Define the same query for the child
-                ClassDescriptor childDescriptor = (ClassDescriptor)it.next();
+                ClassDescriptor childDescriptor = it.next();
 
                 // Most databases support delete cascade constraints by specifying a ON DELETE CASCADE option when defining foreign key constraints.
                 // However some databases which don't support foreign key constraints cannot use delete cascade constraints.
@@ -2534,7 +2534,7 @@
         Vector allFields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
         Iterator<DatabaseField> it = rootDescriptor.getFields().iterator();
         while(it.hasNext()) {
-            DatabaseField field = (DatabaseField)it.next();
+            DatabaseField field = it.next();
             if(rootTable.equals(field.getTable())) {
                 allFields.add(field);
             }
@@ -2653,7 +2653,7 @@
 
             Iterator<ClassDescriptor> it = descriptor.getInheritancePolicy().getChildDescriptors().iterator();
             while (it.hasNext()) {
-                ClassDescriptor childDescriptor = (ClassDescriptor)it.next();
+                ClassDescriptor childDescriptor = it.next();
 
                 // Need to process only "multiple tables" child descriptors
                 if ((childDescriptor.getTables().size() > descriptor.getTables().size()) ||
@@ -2689,7 +2689,7 @@
         Vector allFields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
         Iterator<DatabaseField> it = getDescriptor().getFields().iterator();
         while(it.hasNext()) {
-            DatabaseField field = (DatabaseField)it.next();
+            DatabaseField field = it.next();
             if(table.equals(field.getTable())) {
                 allFields.add(field);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/JoinedAttributeManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/JoinedAttributeManager.java
index 9f1a94d..ccd0d8e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/JoinedAttributeManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/JoinedAttributeManager.java
@@ -255,7 +255,7 @@
             //next check for any partial attributes that are not joined attributes
             Iterator<Expression> partialAttributes = ((ObjectLevelReadQuery)getBaseQuery()).getPartialAttributeExpressions().iterator();
             while(partialAttributes.hasNext()){
-                Expression expression = (Expression)partialAttributes.next();
+                Expression expression = partialAttributes.next();
                 if (expression.isQueryKeyExpression()){
                     if (!getJoinedMappingExpressions().contains(expression) && ! getJoinedAttributeExpressions().contains(expression)){
                         fieldIndex += ((QueryKeyExpression)expression).getFields().size();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/OrderedListContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/OrderedListContainerPolicy.java
index bb934e6..2fde388 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/OrderedListContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/OrderedListContainerPolicy.java
@@ -479,7 +479,7 @@
         if (!changeRecord.getOrderedChangeObjectList().isEmpty()) {
             Iterator<OrderedChangeObject> objects =changeRecord.getOrderedChangeObjectList().iterator();
             while (objects.hasNext()){
-                OrderedChangeObject changeObject = (OrderedChangeObject)objects.next();
+                OrderedChangeObject changeObject = objects.next();
                 objectChanges = changeObject.getChangeSet();
                 if (changeObject.getChangeType() == CollectionChangeEvent.REMOVE){
                     boolean objectRemoved = changeRecord.getRemoveObjectList().containsKey(objectChanges);
@@ -550,7 +550,7 @@
                 Iterator<ObjectChangeSet> removedObjects = changeRecord.getRemoveObjectList().keySet().iterator();
 
                 while (removedObjects.hasNext()) {
-                    objectChanges = (ObjectChangeSet) removedObjects.next();
+                    objectChanges = removedObjects.next();
                     removeFrom(objectChanges.getOldKey(), objectChanges.getTargetVersionOfSourceObject(mergeManager, targetSession), valueOfTarget, targetSession);
                     registerRemoveNewObjectIfRequired(objectChanges, mergeManager);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
index 67be2da..f08bca8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
@@ -27,7 +27,7 @@
         boolean hasSequencing = false;
         Iterator<AbstractSession> sessionEnum = br.getSessionsByName().values().iterator();
         while (sessionEnum.hasNext() && !hasSequencing) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             hasSequencing = session.getSequencing() != null;
         }
         return hasSequencing;
@@ -43,7 +43,7 @@
         boolean first = true;
         Iterator<AbstractSession> sessionEnum = broker.getSessionsByName().values().iterator();
         while ((first || (whenShouldAcquireValueForAll != UNDEFINED)) && sessionEnum.hasNext()) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             Sequencing sequencing = session.getSequencing();
             if (sequencing != null) {
                 if (first) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/AbstractSession.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/AbstractSession.java
index f80509a..e05fa01 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/AbstractSession.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/AbstractSession.java
@@ -457,15 +457,15 @@
         String validation = (String)getProperty(PersistenceUnitProperties.JPQL_VALIDATION);
         JPAQueryBuilder builder = null;
         try {
-            Class parserClass = null;
+            Class<? extends JPAQueryBuilder> parserClass = null;
             // use class.forName() to avoid loading parser classes for JAXB
             // Use Class.forName not thread class loader to avoid class loader issues.
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 parserClass = AccessController.doPrivileged(new PrivilegedClassForName<>(queryBuilderClassName));
-                builder = (JPAQueryBuilder)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(parserClass));
+                builder = AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(parserClass));
             } else {
                 parserClass = PrivilegedAccessHelper.getClassForName(queryBuilderClassName);
-                builder = (JPAQueryBuilder)PrivilegedAccessHelper.newInstanceFromClass(parserClass);
+                builder = PrivilegedAccessHelper.newInstanceFromClass(parserClass);
             }
         } catch (Exception e) {
             throw new IllegalStateException("Could not load the JPQL parser class." /* TODO: Localize string */, e);
@@ -627,10 +627,10 @@
      * Add the query to the session queries.
      */
     protected synchronized void addQuery(DatabaseQuery query, boolean nameMustBeUnique) {
-        Vector queriesByName = (Vector)getQueries().get(query.getName());
+        List<DatabaseQuery> queriesByName = getQueries().get(query.getName());
         if (queriesByName == null) {
             // lazily create Vector in Hashtable.
-            queriesByName = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
+            queriesByName = new ArrayList<>();
             getQueries().put(query.getName(), queriesByName);
         }
 
@@ -642,8 +642,8 @@
             }
         }else{
             // Check that we do not already have a query that matched it
-            for (Iterator enumtr = queriesByName.iterator(); enumtr.hasNext();) {
-                DatabaseQuery existingQuery = (DatabaseQuery)enumtr.next();
+            for (Iterator<DatabaseQuery> enumtr = queriesByName.iterator(); enumtr.hasNext();) {
+                DatabaseQuery existingQuery = enumtr.next();
                 if (Helper.areTypesAssignable(query.getArgumentTypes(), existingQuery.getArgumentTypes())) {
                     throw ValidationException.existingQueryTypeConflict(query, existingQuery);
                 }
@@ -1603,7 +1603,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Class domainClass, Object arg1) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         return executeQuery(queryName, domainClass, argumentValues);
     }
@@ -1618,7 +1618,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
         return executeQuery(queryName, domainClass, argumentValues);
@@ -1634,7 +1634,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2, Object arg3) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
         argumentValues.addElement(arg3);
@@ -1691,7 +1691,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Object arg1) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         return executeQuery(queryName, argumentValues);
     }
@@ -1705,7 +1705,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Object arg1, Object arg2) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
         return executeQuery(queryName, argumentValues);
@@ -1720,7 +1720,7 @@
      */
     @Override
     public Object executeQuery(String queryName, Object arg1, Object arg2, Object arg3) throws DatabaseException {
-        Vector argumentValues = new Vector();
+        Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
         argumentValues.addElement(arg3);
@@ -1995,7 +1995,7 @@
             synchronized (this) {
                 if ((this.accessors == null) && (this.project != null) && (this.project.getDatasourceLogin() != null)) {
                     // PERF: lazy init, not always required.
-                    List<Accessor> newAccessors = new ArrayList(1);
+                    List<Accessor> newAccessors = new ArrayList<>(1);
                     newAccessors.add(this.project.getDatasourceLogin().buildAccessor());
                     this.accessors = newAccessors;
                 }
@@ -2916,7 +2916,7 @@
     @Override
     public Map<String, Object> getProperties() {
         if (properties == null) {
-            properties = new HashMap(5);
+            properties = new HashMap<>(5);
         }
         return properties;
     }
@@ -2965,7 +2965,7 @@
     public Map<String, List<DatabaseQuery>> getQueries() {
         // PERF: lazy init, not normally required.
         if (queries == null) {
-            queries = new HashMap(5);
+            queries = new HashMap<>(5);
         }
         return queries;
     }
@@ -2994,9 +2994,9 @@
      * @see #getQueries()
      */
     public List<DatabaseQuery> getAllQueries() {
-        Vector allQueries = new Vector();
+        List<DatabaseQuery> allQueries = new Vector<>();
         for (Iterator<List<DatabaseQuery>> vectors = getQueries().values().iterator(); vectors.hasNext();) {
-            allQueries.addAll((Vector)vectors.next());
+            allQueries.addAll(vectors.next());
         }
         return allQueries;
     }
@@ -3053,11 +3053,11 @@
      * @see #getQuery(String, List)
      */
     public DatabaseQuery getQuery(String name, Vector arguments, boolean shouldSearchParent) {
-        Vector queries = (Vector)getQueries().get(name);
+        List<DatabaseQuery> queries = getQueries().get(name);
         if ((queries != null) && !queries.isEmpty()) {
             // Short circuit the simple, most common case of only one query.
             if (queries.size() == 1) {
-                return (DatabaseQuery)queries.firstElement();
+                return queries.get(0);
             }
 
             // CR#3754; Predrag; mar 19/2002;
@@ -3075,8 +3075,7 @@
             for (int i = 0; i < argumentTypesSize; i++) {
                 argumentTypes.addElement(arguments.elementAt(i).getClass());
             }
-            for (Enumeration queriesEnum = queries.elements(); queriesEnum.hasMoreElements();) {
-                DatabaseQuery query = (DatabaseQuery)queriesEnum.nextElement();
+            for (DatabaseQuery query: queries) {
                 if (Helper.areTypesAssignable(argumentTypes, query.getArgumentTypes())) {
                     return query;
                 }
@@ -3853,14 +3852,14 @@
      * Remove the specific query with the given queryName and argumentTypes.
      */
     public void removeQuery(String queryName, Vector argumentTypes) {
-        Vector queries = (Vector)getQueries().get(queryName);
+        List<DatabaseQuery> queries = getQueries().get(queryName);
         if (queries == null) {
             return;
         } else {
             DatabaseQuery query = null;
-            for (Enumeration enumtr = queries.elements(); enumtr.hasMoreElements();) {
-                query = (DatabaseQuery)enumtr.nextElement();
+            for (DatabaseQuery q: queries) {
                 if (Helper.areTypesAssignable(argumentTypes, query.getArgumentTypes())) {
+                    query = q;
                     break;
                 }
             }
@@ -3935,7 +3934,7 @@
      * Set the accessor.
      */
     public void setAccessor(Accessor accessor) {
-        this.accessors = new ArrayList(1);
+        this.accessors = new ArrayList<>(1);
         this.accessors.add(accessor);
     }
 
@@ -4137,7 +4136,7 @@
              * the key:value type values at design time. putAll() is not
              * synchronized. We clone all maps whether immutable or not.
              */
-            properties = new HashMap();
+            properties = new HashMap<>();
             // Shallow copy all internal key:value pairs - a null propertiesMap will throw a NPE
             properties.putAll(propertiesMap);
         }
@@ -4967,11 +4966,11 @@
             Map<String, List<DatabaseQuery>> queries  = descriptor.getQueryManager().getQueries();
             if ((queries != null) && (queries.size() > 0)) {
                 for (Iterator<Map.Entry<String, List<DatabaseQuery>>> keyValueItr = queries.entrySet().iterator(); keyValueItr.hasNext();){
-                    Map.Entry entry = (Map.Entry) keyValueItr.next();
-                    Vector thisQueries = (Vector)entry.getValue();
+                    Map.Entry<String, List<DatabaseQuery>> entry = keyValueItr.next();
+                    List<DatabaseQuery> thisQueries = entry.getValue();
                     if ((thisQueries != null) && (thisQueries.size() > 0)){
-                        for( Iterator thisQueriesItr=thisQueries.iterator();thisQueriesItr.hasNext();){
-                            DatabaseQuery queryToBeAdded = (DatabaseQuery)thisQueriesItr.next();
+                        for( Iterator<DatabaseQuery> thisQueriesItr=thisQueries.iterator();thisQueriesItr.hasNext();){
+                            DatabaseQuery queryToBeAdded = thisQueriesItr.next();
                             if (allowSameQueryNameDiffArgsCopyToSession){
                                 addQuery(queryToBeAdded, false);
                             } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CollectionChangeRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CollectionChangeRecord.java
index bc64f06..88a869e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CollectionChangeRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CollectionChangeRecord.java
@@ -265,7 +265,7 @@
         Map<ObjectChangeSet, ObjectChangeSet> changeSets = new HashMap<>();
         Iterator<ObjectChangeSet> addEnum = ((CollectionChangeRecord)mergeFromRecord).getAddObjectList().keySet().iterator();
         while (addEnum.hasNext()) {
-            ObjectChangeSet mergingObject = (ObjectChangeSet)addEnum.next();
+            ObjectChangeSet mergingObject = addEnum.next();
             ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet(mergingObject, mergeFromChangeSet);
             if (getRemoveObjectList().containsKey(localChangeSet)) {
                 getRemoveObjectList().remove(localChangeSet);
@@ -277,7 +277,7 @@
         changeSets = new HashMap<>();
         Iterator<ObjectChangeSet> removeEnum = ((CollectionChangeRecord)mergeFromRecord).getRemoveObjectList().keySet().iterator();
         while (removeEnum.hasNext()) {
-            ObjectChangeSet mergingObject = (ObjectChangeSet)removeEnum.next();
+            ObjectChangeSet mergingObject = removeEnum.next();
             ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet(mergingObject, mergeFromChangeSet);
             if (getAddObjectList().containsKey(localChangeSet)) {
                 getAddObjectList().remove(localChangeSet);
@@ -290,7 +290,7 @@
         List<OrderedChangeObject> orderedChangeSets = new ArrayList<>();
         Iterator<OrderedChangeObject> orderedChangeObjectEnum = ((CollectionChangeRecord)mergeFromRecord).getOrderedChangeObjectList().iterator();
         while (orderedChangeObjectEnum.hasNext()) {
-            OrderedChangeObject changeObject = (OrderedChangeObject)orderedChangeObjectEnum.next();
+            OrderedChangeObject changeObject = orderedChangeObjectEnum.next();
             ObjectChangeSet mergingObject = changeObject.getChangeSet();
             ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet(mergingObject, mergeFromChangeSet);
 
@@ -362,13 +362,13 @@
         } else {
             Iterator<ObjectChangeSet> changes = getAddObjectList().values().iterator();
             while (changes.hasNext()) {
-                ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet((ObjectChangeSet)changes.next(), mergeFromChangeSet);
+                ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet(changes.next(), mergeFromChangeSet);
                 addList.put(localChangeSet, localChangeSet);
             }
 
             changes = getRemoveObjectList().values().iterator();
             while (changes.hasNext()) {
-                ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet((ObjectChangeSet)changes.next(), mergeFromChangeSet);
+                ObjectChangeSet localChangeSet = mergeToChangeSet.findOrIntegrateObjectChangeSet(changes.next(), mergeFromChangeSet);
                 removeList.put(localChangeSet, localChangeSet);
             }
         }
@@ -530,14 +530,14 @@
            if(this.removeObjectList != null) {
                Iterator<ObjectChangeSet> it = this.removeObjectList.keySet().iterator();
                while(it.hasNext()) {
-                   ObjectChangeSet changeSet = (ObjectChangeSet)it.next();
+                   ObjectChangeSet changeSet = it.next();
                    cp.addInto(changeSet.getUnitOfWorkClone(), currentCollection, session);
                }
            }
            if(this.addObjectList != null) {
                Iterator<ObjectChangeSet> it = this.addObjectList.keySet().iterator();
                while(it.hasNext()) {
-                   ObjectChangeSet changeSet = (ObjectChangeSet)it.next();
+                   ObjectChangeSet changeSet = it.next();
                    cp.removeFrom(changeSet.getUnitOfWorkClone(), currentCollection, session);
                }
            }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitManager.java
index 3663924..c0910c1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitManager.java
@@ -156,7 +156,7 @@
                 List<Class> commitOrder = getCommitOrder();
                 int size = commitOrder.size();
                 for (int index = 0; index < size; index++) {
-                    Class theClass = (Class)commitOrder.get(index);
+                    Class theClass = commitOrder.get(index);
                     commitAllObjectsForClassWithChangeSet(uowChangeSet, theClass);
                 }
             }
@@ -313,7 +313,7 @@
             } else {
                 List<Class> commitOrder = getCommitOrder();
                 for (int orderIndex = commitOrder.size() - 1; orderIndex >= 0; orderIndex--) {
-                    Class theClass = (Class)commitOrder.get(orderIndex);
+                    Class theClass = commitOrder.get(orderIndex);
                     deleteAllObjects(theClass, objects, session);
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderDependencyNode.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderDependencyNode.java
index 9f2ef3f..70e3e8e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderDependencyNode.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderDependencyNode.java
@@ -102,7 +102,7 @@
     public void recordMappingDependencies() {
         for (Enumeration<DatabaseMapping> mappings = getDescriptor().getMappings().elements();
              mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (mapping.isForeignReferenceMapping()) {
                 if (mapping.hasConstraintDependency()) {
                     Class ownedClass;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IdentityMapAccessor.java
index 7884a8c..ee67e99 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IdentityMapAccessor.java
@@ -857,7 +857,7 @@
         //bug 275724: IdentityMapAccessor.invalidateClass() should not check ReadLock when invalidating
         Enumeration<CacheKey> keys = identityMap.keys(false); // do not check readlock
         while (keys.hasMoreElements()) {
-            CacheKey key = (CacheKey)keys.nextElement();
+            CacheKey key = keys.nextElement();
             Object obj = key.getObject();
             // 312503: When recurse is false we also invalidate all assignable implementing subclasses of [obj]
             if (recurseAndInvalidateToParentRoot || ((obj != null) && (null != myClass) && myClass.isAssignableFrom(obj.getClass()))) {
@@ -1155,7 +1155,7 @@
         iterator.setSession(getSession());
         Iterator<ClassDescriptor> descriptors = getSession().getDescriptors().values().iterator();
         while (descriptors.hasNext()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
             IdentityMap cache = getIdentityMap(descriptor, true);
             if (cache != null) {
                 for (Enumeration mapEnum = cache.elements(); mapEnum.hasMoreElements();) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/MergeManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/MergeManager.java
index 4cc9f00..88ff26d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/MergeManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/MergeManager.java
@@ -438,7 +438,7 @@
             Iterator<ObjectChangeSet> objectChangeEnum = uowChangeSet.getAllChangeSets().keySet().iterator();
             Set<Class> classesChanged = new HashSet<>();
             while (objectChangeEnum.hasNext()) {
-                ObjectChangeSet objectChangeSet = (ObjectChangeSet)objectChangeEnum.next();
+                ObjectChangeSet objectChangeSet = objectChangeEnum.next();
                 // Don't read the object here.  If it is null then we won't merge it at this stage, unless it
                 // is being referenced which will force the load later.
                 Object object = objectChangeSet.getTargetVersionOfSourceObject(this, this.session, false);
@@ -456,7 +456,7 @@
             if (uowChangeSet.hasDeletedObjects()) {
                 Iterator<ObjectChangeSet> deletedObjects = uowChangeSet.getDeletedObjects().values().iterator();
                 while (deletedObjects.hasNext()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)deletedObjects.next();
+                    ObjectChangeSet changeSet = deletedObjects.next();
                     changeSet.removeFromIdentityMap(this.session);
                     classesChanged.add(changeSet.getClassType(this.session));
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SessionBrokerIdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SessionBrokerIdentityMapAccessor.java
index e237cd7..18b9595 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SessionBrokerIdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SessionBrokerIdentityMapAccessor.java
@@ -41,7 +41,7 @@
     public void initializeAllIdentityMaps() {
         for (Iterator<AbstractSession> sessionEnum = ((SessionBroker)session).getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.getIdentityMapAccessorInstance().initializeAllIdentityMaps();
         }
         super.initializeAllIdentityMaps();
@@ -59,7 +59,7 @@
     public void initializeIdentityMaps() {
         for (Iterator<AbstractSession> sessionEnum = ((SessionBroker)session).getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.getIdentityMapAccessorInstance().initializeIdentityMaps();
         }
         super.initializeIdentityMaps();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java
index 715c7d1..7d5da5c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkImpl.java
@@ -3814,7 +3814,7 @@
         if (this.unitOfWorkChangeSet.hasDeletedObjects()) {
             Map<ObjectChangeSet, ObjectChangeSet> deletedObjects = this.unitOfWorkChangeSet.getDeletedObjects();
             for (Iterator<ObjectChangeSet> removedObjects = deletedObjects.keySet().iterator(); removedObjects.hasNext(); ) {
-                ObjectChangeSet removedObjectChangeSet = (ObjectChangeSet) removedObjects.next();
+                ObjectChangeSet removedObjectChangeSet = removedObjects.next();
                 Object primaryKey = removedObjectChangeSet.getId();
                 ClassDescriptor descriptor = removedObjectChangeSet.getDescriptor();
                 // PERF: Do not remove if uow is isolated.
@@ -5429,7 +5429,7 @@
             Iterator<Map.Entry<Object, Object>> newEntries = this.newObjectsCloneToOriginal.entrySet().iterator();
             Map cloneToOriginals = getCloneToOriginals();
             while (newEntries.hasNext()) {
-                Map.Entry entry = (Map.Entry)newEntries.next();
+                Map.Entry<Object, Object> entry = newEntries.next();
                 Object clone = entry.getKey();
                 Object original = entry.getValue();
                 if (original != null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/coordination/CommandPropagator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/coordination/CommandPropagator.java
index 9397a86..78b300d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/coordination/CommandPropagator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/coordination/CommandPropagator.java
@@ -90,7 +90,7 @@
         Iterator<RemoteConnection> connections = rcm.getTransportManager().getConnectionsToExternalServicesForCommandPropagation().values().iterator();
 
         while (connections.hasNext()) {
-            connection = (RemoteConnection)connections.next();
+            connection = connections.next();
             this.propagateCommand(connection);
         }
     }
@@ -203,12 +203,12 @@
                 // There is only one connection - no need for yet another thread.
                 // Set the connection into the current one
                 // so that it's recognized as async propagation in handleCommunicationException method.
-                this.connection = (RemoteConnection)iterator.next();
+                this.connection = iterator.next();
                 propagateCommand(this.connection);
             } else {
                 // This is the top level thread. We need to spawn off a bunch of async connection threads
                 while (iterator.hasNext()) {
-                    RemoteConnection remoteConnection = (RemoteConnection)iterator.next();
+                    RemoteConnection remoteConnection = iterator.next();
                     CommandPropagator propagator = new CommandPropagator(this.rcm, this.command, this.commandBytes, remoteConnection);
                     this.rcm.getServerPlatform().launchContainerRunnable(propagator);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject.java
index 0c9b851..e6e3f38 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject.java
@@ -582,7 +582,7 @@
                 Vector<Association> associations = mapping.getAggregateToSourceFieldAssociations();
                 Vector translations = new Vector(associations.size());
                 for (int index = 0; index < associations.size(); index++) {
-                    Association association = (Association)associations.get(index);
+                    Association association = associations.get(index);
                     FieldTranslation translation = new FieldTranslation();
                     translation.setKey(new DatabaseField((String)association.getKey()));
                     translation.setValue(association.getValue());
@@ -3609,7 +3609,7 @@
                 List associations = new ArrayList(sourceToTargetKeyFields.size());
                 Iterator<Map.Entry<DatabaseField, DatabaseField>> iterator = sourceToTargetKeyFields.entrySet().iterator();
                 while (iterator.hasNext()) {
-                    Map.Entry entry = (Map.Entry)iterator.next();
+                    Map.Entry<DatabaseField, DatabaseField> entry = iterator.next();
                     associations.add(new Association(entry.getKey(), entry.getValue()));
                 }
                 return associations;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject_11_1_1.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject_11_1_1.java
index 440e34a..480165f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject_11_1_1.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/ObjectPersistenceRuntimeXMLProject_11_1_1.java
@@ -1001,9 +1001,9 @@
             List storedProcedureArguments = new Vector();
             for (int i = spc.getFirstParameterIndexForCallString(); i < parameterTypes.size(); i++) {
                 StoredProcedureArgument spa = null;
-                Integer direction = (Integer)parameterTypes.get(i);
+                Integer direction = parameterTypes.get(i);
                 Object argument = parameters.get(i);
-                String argumentName = (String)procedureArgumentNames.get(i);
+                String argumentName = procedureArgumentNames.get(i);
                 if (direction.equals(IN)) {
                     spa = new StoredProcedureArgument();
                 }
@@ -1717,8 +1717,8 @@
                  List associations = new ArrayList(fields.size());
                  Iterator<Map.Entry<String, DatabaseType>> iterator = fields.entrySet().iterator();
                  while (iterator.hasNext()) {
-                     Map.Entry entry = (Map.Entry)iterator.next();
-                     associations.add(new ObjectTypeFieldAssociation(entry.getKey().toString(),  wrapType((DatabaseType) entry.getValue())));
+                     Map.Entry<String, DatabaseType> entry = iterator.next();
+                     associations.add(new ObjectTypeFieldAssociation(entry.getKey().toString(),  wrapType(entry.getValue())));
                  }
                  return associations;
              }
@@ -1729,7 +1729,7 @@
                  Map<String, DatabaseType> fieldMap = new LinkedHashMap<>(associations.size() + 1);
                  Iterator<ObjectTypeFieldAssociation> iterator = associations.iterator();
                  while (iterator.hasNext()) {
-                     ObjectTypeFieldAssociation association = (ObjectTypeFieldAssociation)iterator.next();
+                     ObjectTypeFieldAssociation association = iterator.next();
                      fieldMap.put((String) association.getKey(), unwrapType((DatabaseTypeWrapper)association.getValue()));
                  }
                  objectType.setFields(fieldMap);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
index c489f24..be58fa6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
@@ -554,7 +554,7 @@
                 Iterator<String> i = converterClassConfig.getStructConverterClasses().iterator();
 
                 while (i.hasNext()) {
-                    String converterClassName = (String)i.next();
+                    String converterClassName = i.next();
                     try {
                         Class<StructConverter> converterClass = (Class<StructConverter>) m_classLoader.loadClass(converterClassName);
                         StructConverter converter = null;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateCollectionMapping.java
index 47165f1..15be2c5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateCollectionMapping.java
@@ -1388,7 +1388,7 @@
         Expression builder = new ExpressionBuilder();
 
         for (Iterator<DatabaseField> keys = getTargetForeignKeyToSourceKeys().keySet().iterator(); keys.hasNext();) {
-            DatabaseField targetForeignKey = (DatabaseField)keys.next();
+            DatabaseField targetForeignKey = keys.next();
             DatabaseField sourceKey = getTargetForeignKeyToSourceKeys().get(targetForeignKey);
 
             expression = builder.getField(targetForeignKey).equal(builder.getParameter(sourceKey));
@@ -1456,7 +1456,7 @@
 
         for (Enumeration<DatabaseField> sourcekeys = getSourceKeyFields().elements();
              sourcekeys.hasMoreElements();) {
-            DatabaseField sourceKey = (DatabaseField)sourcekeys.nextElement();
+            DatabaseField sourceKey = sourcekeys.nextElement();
 
             // CR#2587.  Try first to get the source key from the original query.  If that fails try to get it from the object.
             Object referenceKey = null;
@@ -1480,7 +1480,7 @@
         Vector fieldNames = new Vector(getSourceKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -1503,7 +1503,7 @@
         Vector fieldNames = new Vector(getTargetForeignKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getTargetForeignKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -2030,7 +2030,7 @@
         Expression builder = new ExpressionBuilder();
 
         for (Iterator<DatabaseField> keys = getTargetForeignKeyToSourceKeys().keySet().iterator(); keys.hasNext();) {
-            DatabaseField targetForeignKey = (DatabaseField)keys.next();
+            DatabaseField targetForeignKey = keys.next();
             DatabaseField sourceKey = getTargetForeignKeyToSourceKeys().get(targetForeignKey);
 
             expression = builder.getField(targetForeignKey).equal(builder.getParameter(sourceKey));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateMapping.java
index 90b5536..a49176b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateMapping.java
@@ -1086,7 +1086,7 @@
         }
         for (Enumeration<DatabaseMapping> mappings = getReferenceDescriptor(attributeValue, session).getMappings().elements();
              mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (!mapping.verifyDelete(attributeValue, session)) {
                 return false;
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateObjectMapping.java
index 7149937..1680f37 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AggregateObjectMapping.java
@@ -309,7 +309,7 @@
         Vector<DatabaseField> fields = getReferenceFields();
         int size = fields.size();
         for (int index = 0; index < size; index++) {
-            DatabaseField field = (DatabaseField)fields.get(index);
+            DatabaseField field = fields.get(index);
             Object value = databaseRow.get(field);
             if (value != null) {
                 return false;
@@ -556,7 +556,7 @@
         }
         Enumeration<DatabaseMapping> mappings = referenceDescriptor.getMappings().elements();
         for (; mappings.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.nextElement();
+            DatabaseMapping mapping = mappings.nextElement();
             if (value == null) {
                 attributeValue = null;
             } else {
@@ -583,7 +583,7 @@
         //Enumeration mappingsEnum = getSourceToTargetKeyFields().elements();
         Enumeration<DatabaseMapping> mappingsEnum = getReferenceDescriptor().getMappings().elements();
         for (; mappingsEnum.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappingsEnum.nextElement();
+            DatabaseMapping mapping = mappingsEnum.nextElement();
             String attributeName = mapping.getAttributeName();
             Expression join = expression.get(attributeName).equal(argument.get(attributeName));
             if (attributeByAttributeComparison == null) {
@@ -1615,7 +1615,7 @@
         if (referencedDescriptor == null) {
             Iterator<ClassDescriptor> ordered = project.getOrderedDescriptors().iterator();
             while (ordered.hasNext() && referencedDescriptor == null){
-                ClassDescriptor descriptor = (ClassDescriptor)ordered.next();
+                ClassDescriptor descriptor = ordered.next();
                 if (descriptor.getJavaClassName().equals(getReferenceClassName())){
                     referencedDescriptor = descriptor;
                 }
@@ -1628,7 +1628,7 @@
             // Also check subclasses.
             if (referencedDescriptor.hasInheritance()) {
                 for (Iterator<ClassDescriptor> iterator = referencedDescriptor.getInheritancePolicy().getChildDescriptors().iterator(); iterator.hasNext(); ) {
-                    ClassDescriptor subclassDescriptor = (ClassDescriptor)iterator.next();
+                    ClassDescriptor subclassDescriptor = iterator.next();
                     if (!subclassDescriptor.supportsChangeTracking(project)) {
                         return false;
                     }
@@ -1762,7 +1762,7 @@
             List values = row.getValues();
             List<DatabaseField> aggregateFields = getReferenceFields();
             for(int i=0; i < size; i++) {
-                DatabaseField field = (DatabaseField)fields.get(i);
+                DatabaseField field = fields.get(i);
                 if(aggregateFields.contains(field)) {
                     aggregateRow.add(field, values.get(i));
                 }
@@ -1890,7 +1890,7 @@
         Hashtable fieldNames = new Hashtable(fieldAssociations.size() + 1);
         for (Enumeration<Association> associationsEnum = fieldAssociations.elements();
              associationsEnum.hasMoreElements();) {
-            Association association = (Association)associationsEnum.nextElement();
+            Association association = associationsEnum.nextElement();
             fieldNames.put(association.getKey(), association.getValue());
         }
 
@@ -2014,7 +2014,7 @@
         // EL Bug 326977
         Vector fieldsToTranslate = (Vector) clonedDescriptor.getFields().clone();
         for (Iterator<QueryKey> qkIterator = clonedDescriptor.getQueryKeys().values().iterator(); qkIterator.hasNext();) {
-            QueryKey queryKey = (QueryKey)qkIterator.next();
+            QueryKey queryKey = qkIterator.next();
             if (queryKey.isDirectQueryKey()) {
                 DatabaseField field = ((DirectQueryKey)queryKey).getField();
                 fieldsToTranslate.add(field);
@@ -2024,7 +2024,7 @@
         // EL Bug 332080 - translate foreign reference mapping source key fields
         if (!clonedDescriptor.getObjectBuilder().isSimple()) {
             for (Iterator<DatabaseMapping> dcIterator = clonedDescriptor.getMappings().iterator(); dcIterator.hasNext();) {
-                DatabaseMapping mapping = (DatabaseMapping)dcIterator.next();
+                DatabaseMapping mapping = dcIterator.next();
                 if (mapping.isForeignReferenceMapping()) {
                     Collection fkFields = ((ForeignReferenceMapping)mapping).getFieldsForTranslationInAggregate();
                     if (fkFields != null && !fkFields.isEmpty()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/CollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/CollectionMapping.java
index c9e04a2..cc50897 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/CollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/CollectionMapping.java
@@ -1796,7 +1796,7 @@
         CollectionChangeRecord collectionChangeRecord = (CollectionChangeRecord)changeRecord;
         Iterator<ObjectChangeSet> it = collectionChangeRecord.getRemoveObjectList().values().iterator();
         while(it.hasNext()) {
-            ObjectChangeSet ocs = (ObjectChangeSet)it.next();
+            ObjectChangeSet ocs = it.next();
             containerPolicy.postCalculateChanges(ocs, referenceDescriptor, this, uow);
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectCollectionMapping.java
index 9b5629b..2f62d30 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectCollectionMapping.java
@@ -1352,7 +1352,7 @@
         Vector fieldNames = new Vector(getReferenceKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getReferenceKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -1419,7 +1419,7 @@
         Vector fieldNames = new Vector(getSourceKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -1753,7 +1753,7 @@
         AbstractRecord directRow = new DatabaseRecord();
         for (Enumeration<DatabaseField> referenceEnum = getReferenceKeyFields().elements();
              referenceEnum.hasMoreElements();) {
-            directRow.put((DatabaseField)referenceEnum.nextElement(), null);
+            directRow.put(referenceEnum.nextElement(), null);
         }
         directRow.put(getDirectField(), null);
         if(listOrderField != null) {
@@ -1781,7 +1781,7 @@
         }
 
         for (Enumeration<DatabaseField> referenceEnum = getReferenceKeyFields().elements(); referenceEnum.hasMoreElements();) {
-            DatabaseField field = (DatabaseField)referenceEnum.nextElement();
+            DatabaseField field = referenceEnum.nextElement();
 
             // Update the field first if the mapping is on a table per tenant entity.
             if (getDescriptor().hasTablePerMultitenantPolicy()) {
@@ -2655,7 +2655,7 @@
         // Make sure that each source key field is in the translation row.
         for (Enumeration<DatabaseField> sourceFieldsEnum = getSourceKeyFields().elements();
              sourceFieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = (DatabaseField)sourceFieldsEnum.nextElement();
+            DatabaseField sourceKey = sourceFieldsEnum.nextElement();
             if (!translationRow.containsKey(sourceKey)) {
                 Object value = descriptor.getObjectBuilder().extractValueFromObjectForField(object, sourceKey, session);
                 translationRow.put(sourceKey, value);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
index 207e7a9..c0f3555 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
@@ -957,7 +957,7 @@
         // Make sure that each source key field is in the translation row.
         for (Enumeration<DatabaseField> sourceFieldsEnum = getSourceKeyFields().elements();
              sourceFieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = (DatabaseField)sourceFieldsEnum.nextElement();
+            DatabaseField sourceKey = sourceFieldsEnum.nextElement();
             if (!translationRow.containsKey(sourceKey)) {
                 Object value = descriptor.getObjectBuilder().extractValueFromObjectForField(object, sourceKey, session);
                 translationRow.put(sourceKey, value);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
index 7b0a04d..f7ebff8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
@@ -248,7 +248,7 @@
 
         for (Iterator<DatabaseField> keys = getTargetForeignKeysToSourceKeys().keySet().iterator();
              keys.hasNext();) {
-            DatabaseField targetForeignKey = (DatabaseField)keys.next();
+            DatabaseField targetForeignKey = keys.next();
             DatabaseField sourceKey = getTargetForeignKeysToSourceKeys().get(targetForeignKey);
 
             Expression partialSelectionCriteria = builder.getField(targetForeignKey).equal(builder.getParameter(sourceKey));
@@ -276,8 +276,8 @@
         Enumeration<DatabaseField> sourceKeys = getSourceKeyFields().elements();
         for (Enumeration<DatabaseField> targetForeignKeys = getTargetForeignKeyFields().elements();
              targetForeignKeys.hasMoreElements();) {
-            DatabaseField targetForeignKey = (DatabaseField)targetForeignKeys.nextElement();
-            DatabaseField sourceKey = (DatabaseField)sourceKeys.nextElement();
+            DatabaseField targetForeignKey = targetForeignKeys.nextElement();
+            DatabaseField sourceKey = sourceKeys.nextElement();
             Expression targetExpression = builder.getField(targetForeignKey);
             Expression sourceExpression = builder.getParameter(sourceKey);
             // store the expressions in order to initialize their fields later
@@ -474,7 +474,7 @@
         Vector fieldNames = new Vector(getSourceKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -517,7 +517,7 @@
         Vector fieldNames = new Vector(getTargetForeignKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getTargetForeignKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToOneMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToOneMapping.java
index 085fc05..daef951 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToOneMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToOneMapping.java
@@ -158,7 +158,7 @@
     public void addFieldsForMapKey(AbstractRecord joinRow){
         Iterator<DatabaseField> i = getForeignKeyFields().iterator();
         while (i.hasNext()){
-            joinRow.put((DatabaseField)i.next(), null);
+            joinRow.put(i.next(), null);
         }
     }
 
@@ -381,7 +381,7 @@
             if (expression==argument){
                 for (Iterator<DatabaseField> sourceFieldsEnum = getSourceToTargetKeyFields().keySet().iterator();
                      sourceFieldsEnum.hasNext();) {
-                    DatabaseField field = (DatabaseField)sourceFieldsEnum.next();
+                    DatabaseField field = sourceFieldsEnum.next();
                     Expression join = base.getField(field);
                     join = join.equal(join);
                     if (foreignKeyJoin == null) {
@@ -394,8 +394,8 @@
                 Iterator<DatabaseField> targetFieldsEnum = getSourceToTargetKeyFields().values().iterator();
                 for (Iterator<DatabaseField> sourceFieldsEnum = getSourceToTargetKeyFields().keySet().iterator();
                      sourceFieldsEnum.hasNext();) {
-                    DatabaseField sourceField = (DatabaseField)sourceFieldsEnum.next();
-                    DatabaseField targetField = (DatabaseField)targetFieldsEnum.next();
+                    DatabaseField sourceField = sourceFieldsEnum.next();
+                    DatabaseField targetField = targetFieldsEnum.next();
                     Expression join = null;
                     join = base.getField(sourceField).equal(argument.getField(targetField));
                     if (foreignKeyJoin == null) {
@@ -753,7 +753,7 @@
         List<DatabaseField> primaryKeyFields = getReferenceDescriptor().getPrimaryKeyFields();
         Object[] result = new  Object[primaryKeyFields.size()];
         for (int index = 0; index < primaryKeyFields.size(); index++) {
-            DatabaseField targetKeyField = (DatabaseField)primaryKeyFields.get(index);
+            DatabaseField targetKeyField = primaryKeyFields.get(index);
             DatabaseField sourceKeyField = getTargetToSourceKeyFields().get(targetKeyField);
             if (sourceKeyField == null) {
                 return null;
@@ -921,7 +921,7 @@
         Vector fieldNames = new Vector(getForeignKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -1003,7 +1003,7 @@
         Vector result = new Vector(primaryKeyFields.size());
 
         for (int index = 0; index < primaryKeyFields.size(); index++) {
-            DatabaseField pkField = (DatabaseField)primaryKeyFields.get(index);
+            DatabaseField pkField = primaryKeyFields.get(index);
             boolean found = false;
             for (Iterator fkStream = this.getForeignKeysToPrimaryKeys().keySet().iterator();
                      fkStream.hasNext();) {
@@ -1054,8 +1054,8 @@
         Iterator<DatabaseField> sourceFieldEnum = getSourceToTargetKeyFields().keySet().iterator();
         Iterator<DatabaseField> targetFieldEnum = getSourceToTargetKeyFields().values().iterator();
         while (sourceFieldEnum.hasNext()) {
-            Object fieldValue = ((DatabaseField)sourceFieldEnum.next()).getQualifiedName();
-            Object attributeValue = ((DatabaseField)targetFieldEnum.next()).getQualifiedName();
+            Object fieldValue = sourceFieldEnum.next().getQualifiedName();
+            Object attributeValue = targetFieldEnum.next().getQualifiedName();
             associations.addElement(new Association(fieldValue, attributeValue));
         }
 
@@ -1405,7 +1405,7 @@
             }
 
             for (Iterator<DatabaseField> keys = getSourceToTargetKeyFields().keySet().iterator(); keys.hasNext();) {
-                DatabaseField foreignKey = (DatabaseField)keys.next();
+                DatabaseField foreignKey = keys.next();
                 DatabaseField targetKey = getSourceToTargetKeyFields().get(foreignKey);
 
                 Expression targetKeyExpression = builder.getField(targetKey);
@@ -1450,7 +1450,7 @@
         AbstractRecord targetRow = new DatabaseRecord();
 
         for (Iterator<DatabaseField> keys = getSourceToTargetKeyFields().keySet().iterator(); keys.hasNext();) {
-            DatabaseField foreignKey = (DatabaseField)keys.next();
+            DatabaseField foreignKey = keys.next();
             DatabaseField targetKey = getSourceToTargetKeyFields().get(foreignKey);
 
             targetRow.put(targetKey, databaseRow.get(foreignKey));
@@ -1765,7 +1765,7 @@
     public void writeFromAttributeIntoRow(Object attribute, AbstractRecord row, AbstractSession session)
     {
           for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements(); fieldsEnum.hasMoreElements();) {
-                  DatabaseField sourceKey = (DatabaseField) fieldsEnum.nextElement();
+                  DatabaseField sourceKey = fieldsEnum.nextElement();
                   DatabaseField targetKey = getSourceToTargetKeyFields().get(sourceKey);
                   Object referenceValue = null;
                           // If privately owned part is null then method cannot be invoked.
@@ -2080,7 +2080,7 @@
 
         for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = (DatabaseField)fieldsEnum.nextElement();
+            DatabaseField sourceKey = fieldsEnum.nextElement();
             databaseRow.add(sourceKey, null);
         }
     }
@@ -2096,7 +2096,7 @@
         }
 
         for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements(); fieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = (DatabaseField)fieldsEnum.nextElement();
+            DatabaseField sourceKey = fieldsEnum.nextElement();
 
             if (shouldWriteField(sourceKey, WriteType.INSERT)) {
                 databaseRow.add(sourceKey, null);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
index f577eb3..b925697 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
@@ -318,7 +318,7 @@
         Vector fieldNames = new Vector(getSourceKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -419,7 +419,7 @@
         Vector fieldNames = new Vector(getSourceRelationKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getSourceRelationKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -442,7 +442,7 @@
         Vector fieldNames = new Vector(getTargetKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getTargetKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -477,7 +477,7 @@
         Vector fieldNames = new Vector(getTargetRelationKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getTargetRelationKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -734,7 +734,7 @@
         }
 
         for (Enumeration<DatabaseField> entry = getSourceRelationKeyFields().elements(); entry.hasMoreElements();) {
-            DatabaseField field = (DatabaseField)entry.nextElement();
+            DatabaseField field = entry.nextElement();
 
             // Update the fields table first if the mapping is from a table per tenant entity.
             ClassDescriptor sourceDescriptor = mapping.getDescriptor();
@@ -781,7 +781,7 @@
         }
 
         for (Enumeration<DatabaseField> targetEnum = getTargetRelationKeyFields().elements(); targetEnum.hasMoreElements();) {
-            DatabaseField field = (DatabaseField)targetEnum.nextElement();
+            DatabaseField field = targetEnum.nextElement();
 
             // Update the fields table first if the mapping is from a table per tenant entity.
             ClassDescriptor referenceDescriptor = mapping.getReferenceDescriptor();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/UnidirectionalOneToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/UnidirectionalOneToManyMapping.java
index a605bb5..a18249c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/UnidirectionalOneToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/UnidirectionalOneToManyMapping.java
@@ -247,7 +247,7 @@
         CollectionChangeRecord collectionChangeRecord = (CollectionChangeRecord)changeRecord;
         Iterator<ObjectChangeSet> it = collectionChangeRecord.getAddObjectList().values().iterator();
         while(it.hasNext()) {
-            ObjectChangeSet change = (ObjectChangeSet)it.next();
+            ObjectChangeSet change = it.next();
             if(!change.hasChanges()) {
                 change.setShouldModifyVersionField(Boolean.TRUE);
                 ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)change.getUOWChangeSet()).addObjectChangeSet(change, uow, false);
@@ -256,7 +256,7 @@
         // in the mapping is privately owned then the target will be deleted - no need to modify target version.
         it = collectionChangeRecord.getRemoveObjectList().values().iterator();
         while(it.hasNext()) {
-            ObjectChangeSet change = (ObjectChangeSet)it.next();
+            ObjectChangeSet change = it.next();
             if (!isPrivateOwned()){
                 if(!change.hasChanges()) {
                     change.setShouldModifyVersionField(Boolean.TRUE);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/VariableOneToOneMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/VariableOneToOneMapping.java
index e534ab9..86e7678 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/VariableOneToOneMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/VariableOneToOneMapping.java
@@ -195,7 +195,7 @@
         }
 
         for (Enumeration<DatabaseField> enumtr = getForeignKeyFields().elements(); enumtr.hasMoreElements();) {
-            DatabaseField field = (DatabaseField)enumtr.nextElement();
+            DatabaseField field = enumtr.nextElement();
             foreignKeys.addElement(setOfKeys.get(field));
         }
         clone.setSourceToTargetQueryKeyFields(sourceToTarget);
@@ -325,7 +325,7 @@
         // Search any of the implementor descriptors for a mapping for the query-key.
         Iterator<ClassDescriptor> iterator = getReferenceDescriptor().getInterfacePolicy().getChildDescriptors().iterator();
         if (iterator.hasNext()) {
-            ClassDescriptor firstChild = (ClassDescriptor)iterator.next();
+            ClassDescriptor firstChild = iterator.next();
             DatabaseMapping mapping = firstChild.getObjectBuilder().getMappingForAttributeName(queryKey);
             if ((mapping != null) && (mapping.isDirectToFieldMapping())) {
                 return mapping.getAttributeClassification();
@@ -347,7 +347,7 @@
         Vector fieldNames = new Vector(getForeignKeyFields().size());
         for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
              fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(((DatabaseField)fieldsEnum.nextElement()).getQualifiedName());
+            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
         }
 
         return fieldNames;
@@ -824,7 +824,7 @@
         if (isForeignKeyRelationship()) {
             Enumeration<DatabaseField> foreignKeys = getForeignKeyFields().elements();
             while (foreignKeys.hasMoreElements()) {
-                record.put((DatabaseField)foreignKeys.nextElement(), null);
+                record.put(foreignKeys.nextElement(), null);
                 // EL Bug 319759 - if a field is null, then the update call cache should not be used
                 record.setNullValueInFields(true);
             }
@@ -856,7 +856,7 @@
                 Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
                 ClassDescriptor descriptor = session.getDescriptor(referenceObject.getClass());
                 while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = (DatabaseField)sourceFields.nextElement();
+                    DatabaseField sourceKey = sourceFields.nextElement();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
@@ -897,7 +897,7 @@
                 Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
                 ClassDescriptor descriptor = session.getDescriptor(referenceObject.getClass());
                 while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = (DatabaseField)sourceFields.nextElement();
+                    DatabaseField sourceKey = sourceFields.nextElement();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
@@ -975,7 +975,7 @@
                 Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
                 ClassDescriptor descriptor = query.getSession().getDescriptor(referenceObject.getClass());
                 while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = (DatabaseField)sourceFields.nextElement();
+                    DatabaseField sourceKey = sourceFields.nextElement();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
index cac226d..2c18686 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractTransformationMapping.java
@@ -804,7 +804,7 @@
         Hashtable table = new Hashtable(getFieldTransformations().size());
         Iterator<FieldTransformation> transformations = getFieldTransformations().iterator();
         while (transformations.hasNext()) {
-            FieldTransformation transformation = (FieldTransformation)transformations.next();
+            FieldTransformation transformation = transformations.next();
             if (transformation instanceof MethodBasedFieldTransformation) {
                 table.put(transformation.getField().getQualifiedName(), ((MethodBasedFieldTransformation)transformation).getMethodName());
             }
@@ -852,9 +852,9 @@
                     if (session.getDatasourcePlatform() instanceof DatabasePlatform) {
                         Iterator<Map.Entry<Class, FieldTypeDefinition>> iterator = session.getPlatform().getFieldTypes().entrySet().iterator();
                         while (iterator.hasNext()) {
-                            Map.Entry entry = (Map.Entry)iterator.next();
-                            if (((FieldTypeDefinition)entry.getValue()).getName().equals(field.getColumnDefinition())) {
-                                field.setType((Class)entry.getKey());
+                            Map.Entry<Class, FieldTypeDefinition> entry = iterator.next();
+                            if (entry.getValue().getName().equals(field.getColumnDefinition())) {
+                                field.setType(entry.getKey());
                                 break;
                             }
                         }
@@ -1162,7 +1162,7 @@
     public Vector getFieldNameToMethodNameAssociations() {
         Vector associations = new Vector();
         for (Iterator<FieldTransformation> source = getFieldTransformations().iterator(); source.hasNext();) {
-            FieldTransformation tf = (FieldTransformation)source.next();
+            FieldTransformation tf = source.next();
             if (tf instanceof MethodBasedFieldTransformation) {
                 Association ass = new Association();
                 ass.setKey(tf.getField().getQualifiedName());
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLContext.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLContext.java
index f720116..bca46f7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLContext.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLContext.java
@@ -456,7 +456,7 @@
         //Iterate over the ORM descriptors and check for matching OXM descriptors
         Iterator<ClassDescriptor> ormDescriptors = ormSession.getDescriptors().values().iterator();
         while(ormDescriptors.hasNext()) {
-            ClassDescriptor ormDescriptor = (ClassDescriptor)ormDescriptors.next();
+            ClassDescriptor ormDescriptor = ormDescriptors.next();
             Class javaClass = ormDescriptor.getJavaClass();
             AbstractSession oxmSession = null;
             try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLDescriptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLDescriptor.java
index 9c5d5f2..65e6951 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLDescriptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLDescriptor.java
@@ -585,7 +585,7 @@
         // Allow mapping pre init, must be done before validate.
         for (Enumeration<DatabaseMapping> mappingsEnum = getMappings().elements(); mappingsEnum.hasMoreElements();) {
             try {
-                DatabaseMapping mapping = (DatabaseMapping) mappingsEnum.nextElement();
+                DatabaseMapping mapping = mappingsEnum.nextElement();
                 mapping.preInitialize(session);
             } catch (DescriptorException exception) {
                 session.getIntegrityChecker().handleError(exception);
@@ -765,7 +765,7 @@
         }
 
         for (Enumeration<DatabaseMapping> mappingsEnum = getMappings().elements(); mappingsEnum.hasMoreElements();) {
-            DatabaseMapping mapping = (DatabaseMapping) mappingsEnum.nextElement();
+            DatabaseMapping mapping = mappingsEnum.nextElement();
             validateMappingType(mapping);
             mapping.initialize(session);
             if(mapping.isObjectReferenceMapping()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyCollectionMapping.java
index 17aefba..06888b6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyCollectionMapping.java
@@ -382,7 +382,7 @@
                         cp.addInto(objectValue, container, session);
                     }
                 } else if (next.getNodeType() == Node.ELEMENT_NODE) {
-                    ClassDescriptor referenceDescriptor = null;
+                    XMLDescriptor referenceDescriptor = null;
 
                     //In this case it must be an element so we need to dig up the descriptor
                     //make a nested record and build an object from it.
@@ -415,7 +415,7 @@
                                 referenceDescriptor = null;
                             }
                             // Check if descriptor is for a wrapper, if it is null it out and let continue
-                            XMLDescriptor xmlReferenceDescriptor = (XMLDescriptor) referenceDescriptor;
+                            XMLDescriptor xmlReferenceDescriptor = referenceDescriptor;
                             if (referenceDescriptor != null && xmlReferenceDescriptor.isWrapper()) {
                                 referenceDescriptor = null;
                             }
@@ -427,7 +427,7 @@
                             // wrap the object in an XMLRoot
                             // if we know the descriptor use it to wrap the Element in an XMLRoot (if necessary)
                             if (referenceDescriptor != null) {
-                                objVal = ((XMLDescriptor) referenceDescriptor).wrapObjectInXMLRoot(objVal, next.getNamespaceURI(), next.getLocalName(), next.getPrefix(), false, record.isNamespaceAware(), record.getUnmarshaller());
+                                objVal = referenceDescriptor.wrapObjectInXMLRoot(objVal, next.getNamespaceURI(), next.getLocalName(), next.getPrefix(), false, record.isNamespaceAware(), record.getUnmarshaller());
                                 cp.addInto(objVal, container, session);
                             } else {
                                 // no descriptor, so manually build the XMLRoot
@@ -757,7 +757,7 @@
         Iterator<DatabaseMapping> mappings = parentDesc.getMappings().iterator();
         int mappingsInContext = 0;
         while (mappings.hasNext()) {
-            DatabaseMapping next = (DatabaseMapping) mappings.next();
+            DatabaseMapping next = mappings.next();
             if (!(next == this)) {
                 XMLField nextField = (XMLField) next.getField();
                 XPathFragment frag = getFragmentToCompare(nextField, field);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyObjectMapping.java
index 38d71a2..9efc297 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyObjectMapping.java
@@ -335,7 +335,7 @@
                     return objectValue;
                 }
             } else if (next.getNodeType() == Node.ELEMENT_NODE) {
-                ClassDescriptor referenceDescriptor = null;
+                XMLDescriptor referenceDescriptor = null;
 
                 //In this case it must be an element so we need to dig up the descriptor
                 //make a nested record and build an object from it.
@@ -374,7 +374,7 @@
                     // wrap the object in an XMLRoot
                     // if we know the descriptor use it to wrap the Element in an XMLRoot (if necessary)
                     if (referenceDescriptor != null) {
-                        return ((XMLDescriptor) referenceDescriptor).wrapObjectInXMLRoot(objVal, next.getNamespaceURI(), next.getLocalName(), next.getPrefix(), false, record.isNamespaceAware(),record.getUnmarshaller());
+                        return referenceDescriptor.wrapObjectInXMLRoot(objVal, next.getNamespaceURI(), next.getLocalName(), next.getPrefix(), false, record.isNamespaceAware(),record.getUnmarshaller());
                     }
                     // no descriptor, so manually build the XMLRoot
                     return buildXMLRoot(next, objVal);
@@ -576,7 +576,7 @@
         Iterator<DatabaseMapping> mappings = parentDesc.getMappings().iterator();
         int mappingsInContext = 0;
         while (mappings.hasNext()) {
-            DatabaseMapping next = (DatabaseMapping) mappings.next();
+            DatabaseMapping next = mappings.next();
             if (!(next == this)) {
                 XMLField nextField = (XMLField) next.getField();
                 XPathFragment frag = getFragmentToCompare(nextField, field);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/xml/XMLPlatformFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/xml/XMLPlatformFactory.java
index ac0e3fb..3d5429b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/xml/XMLPlatformFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/xml/XMLPlatformFactory.java
@@ -111,7 +111,7 @@
                     throw (RuntimeException) ex.getCause();
                 }
             }else{
-                return (XMLPlatform)PrivilegedAccessHelper.newInstanceFromClass(getXMLPlatformClass());
+                return PrivilegedAccessHelper.newInstanceFromClass(getXMLPlatformClass());
 
             }
         } catch (IllegalAccessException e) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java
index fa81b34..be9184d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DatabaseQuery.java
@@ -976,7 +976,7 @@
             if (this.argumentTypeNames != null) {
                 Iterator<String> args = this.argumentTypeNames.iterator();
                 while (args.hasNext()) {
-                    String argumentTypeName = (String) args.next();
+                    String argumentTypeName = args.next();
                     this.argumentTypes.add(Helper.getObjectClass(ConversionManager.loadClass(argumentTypeName)));
                 }
             }
@@ -2022,8 +2022,8 @@
         List argumentFields = new ArrayList(arguments.size());
         int size = arguments.size();
         for (int index = 0; index < size; index++) {
-            DatabaseField argumentField = new DatabaseField((String) arguments.get(index));
-            argumentField.setType((Class) argumentTypes.get(index));
+            DatabaseField argumentField = new DatabaseField(arguments.get(index));
+            argumentField.setType(argumentTypes.get(index));
             argumentFields.add(argumentField);
         }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/EntityResult.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/EntityResult.java
index 523d139..488dce7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/EntityResult.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/EntityResult.java
@@ -181,7 +181,7 @@
             }
         }
         for (Iterator<DatabaseMapping> mappings = descriptor.getMappings().iterator(); mappings.hasNext();) {
-            DatabaseMapping mapping = (DatabaseMapping)mappings.next();
+            DatabaseMapping mapping = mappings.next();
             FieldResult fieldResult = (FieldResult)this.getFieldResults().get(mapping.getAttributeName());
             if (fieldResult != null){
                 if (mapping.getFields().size() == 1 ) {
@@ -191,7 +191,7 @@
                 }
             } else {
                 for (Iterator<DatabaseField> fields = mapping.getFields().iterator(); fields.hasNext();) {
-                    DatabaseField field = (DatabaseField)fields.next();
+                    DatabaseField field = fields.next();
                     entityRecord.put(field, record.get(field));
                 }
             }
@@ -226,7 +226,7 @@
         /** This processes each FieldResult stored in the collection of FieldResults individually */
         Iterator<FieldResult> fieldResults = fieldResult.getFieldResults().iterator();
         while (fieldResults.hasNext()){
-            FieldResult tempFieldResult = ((FieldResult)fieldResults.next());
+            FieldResult tempFieldResult = fieldResults.next();
             DatabaseField dbfield = processValueFromRecordForMapping(currentDescriptor,tempFieldResult.getMultipleFieldIdentifiers(),1);
              if (mapping.isOneToOneMapping()){
                 dbfield = (((OneToOneMapping)mapping).getTargetToSourceKeyFields().get(dbfield));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelReadQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelReadQuery.java
index 9db41ac..7e2033b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelReadQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelReadQuery.java
@@ -1645,7 +1645,7 @@
 
         //Add attribute fields
         for(Iterator<Expression> it = getPartialAttributeExpressions().iterator(); it.hasNext();){
-            Expression expression = (Expression)it.next();
+            Expression expression = it.next();
             if (expression.isQueryKeyExpression()) {
                 expression.getBuilder().setSession(session.getRootSession(null));
                 expression.getBuilder().setQueryClass(getDescriptor().getJavaClass());
@@ -1683,7 +1683,7 @@
         //Build fields in same order as the fields of the descriptor to ensure field and join indexes match.
         Vector selectionFields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
         for (Iterator<DatabaseField> iterator = getDescriptor().getFields().iterator(); iterator.hasNext();) {
-            DatabaseField field = (DatabaseField)iterator.next();
+            DatabaseField field = iterator.next();
             if (localFields.contains(field)) {
                 selectionFields.add(field);
             } else {
@@ -1725,7 +1725,7 @@
         }
         // Add specified fields.
         for (Iterator<String> iterator = getExecutionFetchGroup().getAttributeNames().iterator(); iterator.hasNext();) {
-            String attribute = (String)iterator.next();
+            String attribute = iterator.next();
             DatabaseMapping mapping = getDescriptor().getObjectBuilder().getMappingForAttributeName(attribute);
             if (mapping == null) {
                 throw QueryException.fetchGroupAttributeNotMapped(attribute);
@@ -1760,7 +1760,7 @@
         // Build field list in the same order as descriptor's fields so that the fields printed in the usual order in SELECT clause.
         List<DatabaseField> fields = new ArrayList(fetchedFields.size());
         for (Iterator<DatabaseField> iterator = getDescriptor().getFields().iterator(); iterator.hasNext();) {
-            DatabaseField field = (DatabaseField)iterator.next();
+            DatabaseField field = iterator.next();
             if (fetchedFields.contains(field)) {
                 fields.add(field);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/RuntimeServices.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/RuntimeServices.java
index 5dd21e5..3ce49ff 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/RuntimeServices.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/RuntimeServices.java
@@ -302,7 +302,7 @@
         if (ClassConstants.ServerSession_Class.isAssignableFrom(getSession().getClass())) {
             Iterator<ConnectionPool> enumtr = ((ServerSession)getSession()).getConnectionPools().values().iterator();
             while (enumtr.hasNext()) {
-                ConnectionPool pool = (ConnectionPool)enumtr.next();
+                ConnectionPool pool = enumtr.next();
                 pool.shutDown();
                 pool.startUp();
             }
@@ -334,7 +334,7 @@
         Vector results = new Vector(map.getSize());
         Enumeration<CacheKey> objects = map.keys();
         while (objects.hasMoreElements()) {
-            results.add(((CacheKey)objects.nextElement()).getObject());
+            results.add(objects.nextElement().getObject());
         }
         return results;
     }
@@ -809,10 +809,10 @@
              filters.add(lineTokens.nextToken());
          }
          for (int i = 0; i < mappedClassNames.size(); i++) {
-             String className = (String)mappedClassNames.get(i);
-             String classNameLowerCase = ((String)mappedClassNames.get(i)).toLowerCase();
+             String className = mappedClassNames.get(i);
+             String classNameLowerCase = mappedClassNames.get(i).toLowerCase();
              for (int j = 0; j < filters.size(); j++) {
-                 String filterValue = (Helper.rightTrimString((String)filters.get(j)).trim()).toLowerCase();
+                 String filterValue = (Helper.rightTrimString(filters.get(j)).trim()).toLowerCase();
                  if (filterValue.indexOf('*') == 0) {
                      filterValue = filterValue.substring(1);
                  }
@@ -1080,7 +1080,7 @@
 
          CacheKey cacheKey;
          while (objects.hasMoreElements()) {
-             cacheKey = (CacheKey)objects.nextElement();
+             cacheKey = objects.nextElement();
              if(null != cacheKey && null != cacheKey.getKey() && null != cacheKey.getObject()) {
                  ((AbstractSession)session).log(SessionLog.INFO, SessionLog.SERVER, "jmx_mbean_runtime_services_print_cache_key_value",
                      cacheKey.getKey().toString(), cacheKey.getObject().toString());
@@ -1178,7 +1178,7 @@
          //use a table to eliminate duplicate classes. Ignore Aggregates
          Iterator<ClassDescriptor> descriptors = getSession().getProject().getDescriptors().values().iterator();
          while (descriptors.hasNext()) {
-             currentDescriptor = (ClassDescriptor)descriptors.next();
+             currentDescriptor = descriptors.next();
              if (!currentDescriptor.isAggregateDescriptor()) {
                  classesTable.put(currentDescriptor.getJavaClassName(), Boolean.TRUE);
              }
@@ -1413,7 +1413,7 @@
              CompositeType type = buildCompositeTypeForClassSummaryDetails();
              // get details for each class, and add the details to the summary
              for (int index = 0; index < mappedClassNames.size(); index++) {
-                 mappedClassName = (String)mappedClassNames.elementAt(index);
+                 mappedClassName = mappedClassNames.elementAt(index);
                  Map<String, String> data = buildLowlevelDetailsFor(mappedClassName);
                  final CompositeDataSupport support = new CompositeDataSupport(type, buildLowlevelDetailsFor(mappedClassName));
                  classSummaryDetails.add(ClassSummaryDetailBase.from(support));
@@ -1552,7 +1552,7 @@
 
              // get details for each class, and add the details to the summary
              for (int index = 0; index < mappedClassNames.size(); index++) {
-                 mappedClassName = (String)mappedClassNames.elementAt(index);
+                 mappedClassName = mappedClassNames.elementAt(index);
                  String[] key = new String[] { mappedClassName };
                  rowData.put(key, buildDetailsFor(mappedClassName, rowData.getTabularType().getRowType()));
              }
@@ -1590,7 +1590,7 @@
 
              // get details for each class, and add the details to the summary
              for (int index = 0; index < mappedClassNames.size(); index++) {
-                 mappedClassName = (String)mappedClassNames.elementAt(index);
+                 mappedClassName = mappedClassNames.elementAt(index);
                  String[] key = new String[] { mappedClassName };
                  rowData.put(key, buildDetailsFor(mappedClassName, rowData.getTabularType().getRowType()));
              }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/broker/SessionBroker.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/broker/SessionBroker.java
index ed6e87f..23a1cec 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/broker/SessionBroker.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/broker/SessionBroker.java
@@ -111,7 +111,7 @@
         AbstractSession session;
         Iterator<String> names = this.getSessionsByName().keySet().iterator();
         while (names.hasNext()) {
-            sessionName = (String)names.next();
+            sessionName = names.next();
             session = getSessionForName(sessionName);
             if (session.isServerSession()) {
                 ServerSession serverSession = (ServerSession)session;
@@ -156,7 +156,7 @@
         AbstractSession session;
         Iterator<String> names = this.getSessionsByName().keySet().iterator();
         while (names.hasNext()) {
-            sessionName = (String)names.next();
+            sessionName = names.next();
             session = getSessionForName(sessionName);
             historicalBroker.registerSession(sessionName, (AbstractSession)session.acquireHistoricalSession(clause));
         }
@@ -174,7 +174,7 @@
         RuntimeException exception = null;
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             try {
                 session.releaseJTSConnection();
             } catch (RuntimeException ex) {
@@ -247,7 +247,7 @@
     protected void basicBeginTransaction() throws DatabaseException {
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.beginTransaction();
         }
     }
@@ -263,14 +263,14 @@
         // Do one last check it make sure that all sessions are still connected.
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             if (!session.isConnected()) {
                 throw DatabaseException.databaseAccessorNotConnected();
             }
         }
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.commitTransaction();
         }
     }
@@ -284,7 +284,7 @@
         DatabaseException globalException = null;
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             try {
                 session.rollbackTransaction();
             } catch (DatabaseException exception) {
@@ -309,7 +309,7 @@
 
             Iterator<String> names = this.getSessionsByName().keySet().iterator();
             while (names.hasNext()) {
-                sessionName = (String)names.next();
+                sessionName = names.next();
                 ssession = getSessionForName(sessionName);
                 if (ssession instanceof org.eclipse.persistence.sessions.server.ClientSession) {
                     if (((ClientSession)ssession).getParent().getBroker().containsQuery(queryName)) {
@@ -380,7 +380,7 @@
     @Override
     public AsOfClause getAsOfClause() {
         for (Iterator<AbstractSession> enumtr = getSessionsByName().values().iterator(); enumtr.hasNext();) {
-            return ((AbstractSession)enumtr.next()).getAsOfClause();
+            return enumtr.next().getAsOfClause();
         }
         return null;
     }
@@ -662,7 +662,7 @@
     public boolean isClientSessionBroker() {
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             if (session.isClientSession()) {
                 return true;
             }
@@ -683,7 +683,7 @@
 
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             if (!session.isConnected()) {
                 return false;
             }
@@ -699,7 +699,7 @@
     public boolean isServerSessionBroker() {
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             if (session.isServerSession()) {
                 return true;
             }
@@ -853,8 +853,8 @@
             Iterator<ClassDescriptor> descriptors = session.getDescriptors().values().iterator();
             Iterator<Class<?>> classes = session.getDescriptors().keySet().iterator();
             while (descriptors.hasNext()) {
-                ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
-                Class descriptorClass = (Class)classes.next();
+                ClassDescriptor descriptor = descriptors.next();
+                Class<?> descriptorClass = classes.next();
                 getSessionNamesByClass().put(descriptorClass, name);
                 if(this.shouldUseDescriptorAliases) {
                     String alias = descriptor.getAlias();
@@ -896,7 +896,7 @@
         RuntimeException exception = null;
         AbstractSession session;
         for (Iterator<AbstractSession> enumtr = getSessionsByName().values().iterator(); enumtr.hasNext();) {
-            session = (AbstractSession)enumtr.next();
+            session = enumtr.next();
             try {
                 session.release();
             } catch (RuntimeException ex) {
@@ -951,7 +951,7 @@
 
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.setIntegrityChecker(integrityChecker);
         }
     }
@@ -968,7 +968,7 @@
 
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.setSessionLog(log);
         }
     }
@@ -985,7 +985,7 @@
 
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.setLog(log);
         }
     }
@@ -1001,7 +1001,7 @@
 
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.setProfiler(profiler);
         }
     }
@@ -1034,7 +1034,7 @@
             super.setSynchronized(synched);
             Iterator<AbstractSession> itSessions = getSessionsByName().values().iterator();
             while(itSessions.hasNext()) {
-                ((AbstractSession)itSessions.next()).setSynchronized(synched);
+                itSessions.next().setSynchronized(synched);
             }
         }
     }
@@ -1049,14 +1049,14 @@
     public void writesCompleted() {
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             if (!session.isConnected()) {
                 throw DatabaseException.databaseAccessorNotConnected();
             }
         }
         for (Iterator<AbstractSession> sessionEnum = getSessionsByName().values().iterator();
              sessionEnum.hasNext();) {
-            AbstractSession session = (AbstractSession)sessionEnum.next();
+            AbstractSession session = sessionEnum.next();
             session.writesCompleted();
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
index ef15d6c..b1733f5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
@@ -346,7 +346,7 @@
             connectionsToExternalServices = new Hashtable(3);
 
             while (connections.hasMoreElements()) {
-                ((RemoteConnection)connections.nextElement()).close();
+                connections.nextElement().close();
             }
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
index 83cafbd..87cfe21 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
@@ -175,8 +175,8 @@
         Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetForeignKeyFields().elements();
         Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
         while (sourceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = (DatabaseField)sourceKeysEnum.nextElement();
-            DatabaseField targetField = (DatabaseField)targetKeysEnum.nextElement();
+            DatabaseField sourceField = sourceKeysEnum.nextElement();
+            DatabaseField targetField = targetKeysEnum.nextElement();
             method.addLine(mappingName + ".addTargetForeignKeyFieldName(\"" + targetField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
     }
@@ -400,8 +400,8 @@
         Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
         Enumeration<DatabaseField> referenceKeysEnum = mapping.getReferenceKeyFields().elements();
         while (referenceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = (DatabaseField)sourceKeysEnum.nextElement();
-            DatabaseField referenceField = (DatabaseField)referenceKeysEnum.nextElement();
+            DatabaseField sourceField = sourceKeysEnum.nextElement();
+            DatabaseField referenceField = referenceKeysEnum.nextElement();
             method.addLine(mappingName + ".addReferenceKeyFieldName(\"" + referenceField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
 
@@ -448,7 +448,7 @@
         }
         for (Iterator<FetchGroup> namedFetchGroupIter = namedFetchGroups.values().iterator();
              namedFetchGroupIter.hasNext();) {
-            FetchGroup namedFetchGroup = (FetchGroup)namedFetchGroupIter.next();
+            FetchGroup namedFetchGroup = namedFetchGroupIter.next();
             String fetchGroupIdentifier = namedFetchGroup.getName() + "FetchGroup";
             method.addLine("");
             method.addLine("//Named fetch group -- " + fetchGroupIdentifier);
@@ -715,16 +715,16 @@
         Enumeration<DatabaseField> sourceRelationKeysEnum = mapping.getSourceRelationKeyFields().elements();
         Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
         while (sourceRelationKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = (DatabaseField)sourceKeysEnum.nextElement();
-            DatabaseField relationField = (DatabaseField)sourceRelationKeysEnum.nextElement();
+            DatabaseField sourceField = sourceKeysEnum.nextElement();
+            DatabaseField relationField = sourceRelationKeysEnum.nextElement();
             method.addLine(mappingName + ".addSourceRelationKeyFieldName(\"" + relationField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
 
         Enumeration<DatabaseField> targetRelationKeysEnum = mapping.getTargetRelationKeyFields().elements();
         Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetKeyFields().elements();
         while (targetRelationKeysEnum.hasMoreElements()) {
-            DatabaseField targetField = (DatabaseField)targetKeysEnum.nextElement();
-            DatabaseField relationField = (DatabaseField)targetRelationKeysEnum.nextElement();
+            DatabaseField targetField = targetKeysEnum.nextElement();
+            DatabaseField relationField = targetRelationKeysEnum.nextElement();
             method.addLine(mappingName + ".addTargetRelationKeyFieldName(\"" + relationField.getQualifiedName() + "\", \"" + targetField.getQualifiedName() + "\");");
         }
 
@@ -824,8 +824,8 @@
         Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetForeignKeyFields().elements();
         Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
         while (sourceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = (DatabaseField)sourceKeysEnum.nextElement();
-            DatabaseField targetField = (DatabaseField)targetKeysEnum.nextElement();
+            DatabaseField sourceField = sourceKeysEnum.nextElement();
+            DatabaseField targetField = targetKeysEnum.nextElement();
             method.addLine(mappingName + ".addTargetForeignKeyFieldName(\"" + targetField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
     }
@@ -833,7 +833,7 @@
     protected void addOneToOneMappingLines(NonreflectiveMethodDefinition method, String mappingName, OneToOneMapping mapping) {
         for (Iterator<DatabaseField> foreignKeysEnum = mapping.getSourceToTargetKeyFields().keySet().iterator();
              foreignKeysEnum.hasNext();) {
-            DatabaseField sourceField = (DatabaseField)foreignKeysEnum.next();
+            DatabaseField sourceField = foreignKeysEnum.next();
             DatabaseField targetField = mapping.getSourceToTargetKeyFields().get(sourceField);
             if (mapping.getForeignKeyFields().contains(sourceField)) {
                 method.addLine(mappingName + ".addForeignKeyFieldName(\"" + sourceField.getQualifiedName() + "\", \"" + targetField.getQualifiedName() + "\");");
@@ -1192,7 +1192,7 @@
 
             //joinedAttribute
             for (Iterator<Expression> joinedEnum = readQuery.getJoinedAttributeManager().getJoinedAttributeExpressions().iterator(); joinedEnum.hasNext();) {
-                Expression joinedExp = (Expression)joinedEnum.next();
+                Expression joinedExp = joinedEnum.next();
                 builderString = buildBuilderString(builderString, method, iteration, queryIdentifier);
                 buildExpressionString(builderString, method, queryIdentifier, joinedExp, ".addJoinedAttribute(");
             }
@@ -1301,7 +1301,7 @@
         // Query arguments.
         Iterator<String> argumentTypes = query.getArgumentTypeNames().iterator();
         for (Iterator<String> arguments = query.getArguments().iterator(); arguments.hasNext();) {
-            String argument = (String)arguments.next();
+            String argument = arguments.next();
             String argumentTypeName = argumentTypes.next();
             method.addLine(queryIdentifier + ".addArgument(\"" + argument + "\", " + argumentTypeName + ".class);");
         }
@@ -1385,7 +1385,7 @@
 
         Iterator<FieldTransformation> fieldTransformations = mapping.getFieldTransformations().iterator();
         while (fieldTransformations.hasNext()) {
-            FieldTransformation trans = (FieldTransformation)fieldTransformations.next();
+            FieldTransformation trans = fieldTransformations.next();
             String fieldName = trans.getFieldName();
             if (trans instanceof MethodBasedFieldTransformation) {
                 String methodName = ((MethodBasedFieldTransformation)trans).getMethodName();
@@ -1528,7 +1528,7 @@
             // Tables
             for (Enumeration<DatabaseTable> tablesEnum = descriptor.getTables().elements();
                  tablesEnum.hasMoreElements();) {
-                String tableName = ((DatabaseTable)tablesEnum.nextElement()).getQualifiedName();
+                String tableName = tablesEnum.nextElement().getQualifiedName();
                 method.addLine("descriptor.addTableName(\"" + tableName + "\");");
             }
 
@@ -1541,12 +1541,12 @@
             }
             for (Iterator<Map<DatabaseField, DatabaseField>> multipleTablePrimaryKeysEnum = descriptor.getAdditionalTablePrimaryKeyFields().values().iterator();
                  multipleTablePrimaryKeysEnum.hasNext();) {
-                Map keyMapping = (Map)multipleTablePrimaryKeysEnum.next();
-                Iterator keyMappingSourceFieldsEnum = keyMapping.keySet().iterator();
-                Iterator keyMappingTargetFieldsEnum = keyMapping.values().iterator();
+                Map<DatabaseField, DatabaseField> keyMapping = multipleTablePrimaryKeysEnum.next();
+                Iterator<DatabaseField> keyMappingSourceFieldsEnum = keyMapping.keySet().iterator();
+                Iterator<DatabaseField> keyMappingTargetFieldsEnum = keyMapping.values().iterator();
                 while (keyMappingSourceFieldsEnum.hasNext()) {
-                    DatabaseField sourceField = (DatabaseField)keyMappingSourceFieldsEnum.next();
-                    DatabaseField targetField = (DatabaseField)keyMappingTargetFieldsEnum.next();
+                    DatabaseField sourceField = keyMappingSourceFieldsEnum.next();
+                    DatabaseField targetField = keyMappingTargetFieldsEnum.next();
                     if (descriptor.getMultipleTableForeignKeys().containsKey(sourceField.getTable())) {
                         method.addLine("descriptor.addForeignKeyFieldNameForMultipleTable(\"" + targetField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
                     }
@@ -1594,7 +1594,7 @@
             method.addLine("");
             method.addLine("// Query keys.");
             for (Iterator<QueryKey> queryKeysEnum = descriptor.getQueryKeys().values().iterator(); queryKeysEnum.hasNext();) {
-                addQueryKeyLines(method, (QueryKey)queryKeysEnum.next());
+                addQueryKeyLines(method, queryKeysEnum.next());
             }
         }
 
@@ -1768,7 +1768,7 @@
         Hashtable shortNames = new Hashtable();
         Iterator<ClassDescriptor> descriptors = project.getOrderedDescriptors().iterator();
         while (descriptors.hasNext()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptors.next();
+            ClassDescriptor descriptor = descriptors.next();
 
             // Singleton interface descriptors should not exist.
             if (!(descriptor.isDescriptorForInterface() && (descriptor.getInterfacePolicy().getImplementorDescriptor() != null))) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ConnectionPool.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ConnectionPool.java
index 989a3c9..7ccae74 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ConnectionPool.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ConnectionPool.java
@@ -476,7 +476,7 @@
 
         for (Iterator<Accessor> iterator = getConnectionsAvailable().iterator(); iterator.hasNext();) {
             try {
-                ((Accessor)iterator.next()).disconnect(getOwner());
+                iterator.next().disconnect(getOwner());
             } catch (DatabaseException exception) {
                 // Ignore.
             }
@@ -484,7 +484,7 @@
 
         for (Iterator<Accessor> iterator = getConnectionsUsed().iterator(); iterator.hasNext();) {
             try {
-                ((Accessor)iterator.next()).disconnect(getOwner());
+                iterator.next().disconnect(getOwner());
             } catch (DatabaseException exception) {
                 // Ignore.
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ServerSession.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ServerSession.java
index c4b83d5..7a8c0a8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ServerSession.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/server/ServerSession.java
@@ -825,7 +825,7 @@
             this.readConnectionPool.shutDown();
 
             for (Iterator<ConnectionPool> poolsEnum = getConnectionPools().values().iterator(); poolsEnum.hasNext();) {
-                ((ConnectionPool)poolsEnum.next()).shutDown();
+                poolsEnum.next().shutDown();
             }
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/file/FileUtil.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/file/FileUtil.java
index 3694417..fdd5963 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/file/FileUtil.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/file/FileUtil.java
@@ -21,6 +21,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.List;
 import java.util.Objects;
 import java.util.Vector;
 import java.util.jar.JarEntry;
@@ -74,10 +75,10 @@
             }
         }
 
-        Vector files = findFiles(inputPath, filteredExtensions);
+        List<File> files = findFiles(inputPath, filteredExtensions);
 
         for (int i = 0; i < files.size(); i++) {
-            File in = (File)files.elementAt(i);
+            File in = files.get(i);
 
             String outFilePath = in.getAbsolutePath().substring(inputPath.length());
             outFilePath = outputPath + File.separator + outFilePath;
@@ -137,10 +138,10 @@
         JarOutputStream jarOut = null;
         try {
             jarOut = new JarOutputStream(new FileOutputStream(jar), new Manifest());
-            Vector files = findFiles(jarDirectory, filtertedExtensions);
+            List<File> files = findFiles(jarDirectory, filtertedExtensions);
 
             for (int i = 0; i < files.size(); i++) {
-                File file = (File)files.elementAt(i);
+                File file = files.get(i);
 
                 String relativePathToDirectory = file.getAbsolutePath().substring(directory.getAbsolutePath().length() + 1);
                 String entryName = relativePathToDirectory.replace('\\', '/');
@@ -188,8 +189,8 @@
      *      If it's file path then return a single instance of File
      *      If it's directory path then return all instances of File contained in the directory and its sub directories
      */
-    public static Vector findFiles(String path, String[] filteredExtensions) {
-        Vector files = new Vector();
+    public static List<File> findFiles(String path, String[] filteredExtensions) {
+        List<File> files = new Vector<>();
 
         findFilesHelper(new File(path), filteredExtensions, files);
         return files;
@@ -199,7 +200,7 @@
      * INTERNAL: traverse the directory to find all files with filtered extensions.  The result is passed
      * around for each recursive call
      */
-    private static void findFilesHelper(File file, String[] filteredExtensions, Vector result) {
+    private static void findFilesHelper(File file, String[] filteredExtensions, List<File> result) {
         if (!file.exists()) {
             return;
         }
@@ -215,14 +216,14 @@
         } else {
             // add everything if no filtered extension
             if ((filteredExtensions == null) || (filteredExtensions.length == 0)) {
-                result.addElement(file);
+                result.add(file);
                 return;
             }
 
             // add only filtered extensions
             for (int i = 0; i < filteredExtensions.length; i++) {
                 if (file.getName().endsWith(filteredExtensions[i])) {
-                    result.addElement(file);
+                    result.add(file);
                     return;
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceMonitor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceMonitor.java
index d5aaa38..caf2e19 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceMonitor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceMonitor.java
@@ -48,8 +48,8 @@
      * The profiler can be registered with a session to log performance information on queries.
      */
     public PerformanceMonitor() {
-        this.operationTimings = new ConcurrentHashMap();
-        this.operationStartTimesByThread = new ConcurrentHashMap();
+        this.operationTimings = new ConcurrentHashMap<>();
+        this.operationStartTimesByThread = new ConcurrentHashMap<>();
         this.lastDumpTime = System.currentTimeMillis();
         this.dumpTime = 60000; // 1 minute
         this.profileWeight = SessionProfiler.ALL;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
index 1dc3bc3..7a23791 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
@@ -64,13 +64,13 @@
      */
     public PerformanceProfiler(boolean shouldLogProfile) {
         super();
-        this.profiles = new Vector();
+        this.profiles = new Vector<>();
         this.shouldLogProfile = shouldLogProfile;
         this.nestLevel = 0;
         this.profileTime = 0;
         this.nestTime = 0;
-        this.operationTimingsByThread = new Hashtable();
-        this.operationStartTimesByThread = new Hashtable();
+        this.operationTimingsByThread = new Hashtable<>();
+        this.operationStartTimesByThread = new Hashtable<>();
     }
 
     protected void addProfile(Profile profile) {
@@ -96,11 +96,10 @@
             summary.setLocalTime(summary.getLocalTime() + profile.getLocalTime());
             summary.setProfileTime(summary.getProfileTime() + profile.getProfileTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() + profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames = profile.getOperationTimings().keys();
-                     operationNames.hasMoreElements();) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime = (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -118,16 +117,16 @@
      * INTERNAL:
      * Return a map of summary profiles reporting on the profile contained.
      */
-    public Hashtable buildProfileSummaryByClass() {
-        Hashtable summaries = new Hashtable();
+    public Hashtable<Class<?>, Profile> buildProfileSummaryByClass() {
+        Hashtable<Class<?>, Profile> summaries = new Hashtable<>();
 
         for (Profile profile : getProfiles()) {
-            Class domainClass = profile.getDomainClass();
+            Class<?> domainClass = profile.getDomainClass();
             if (domainClass == null) {
                 domainClass = Void.class;
             }
 
-            Profile summary = (Profile)summaries.get(domainClass);
+            Profile summary = summaries.get(domainClass);
             if (summary == null) {
                 summary = new Profile();
                 summary.setDomainClass(domainClass);
@@ -143,11 +142,10 @@
             summary.setLocalTime(summary.getLocalTime() + profile.getLocalTime());
             summary.setProfileTime(summary.getProfileTime() + profile.getProfileTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() + profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames = profile.getOperationTimings().keys();
-                     operationNames.hasMoreElements();) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime = (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -165,16 +163,16 @@
      * INTERNAL:
      * Return a map of summary profiles reporting on the profile contained.
      */
-    public Hashtable buildProfileSummaryByQuery() {
-        Hashtable summaries = new Hashtable();
+    public Hashtable<Class<?>, Profile> buildProfileSummaryByQuery() {
+        Hashtable<Class<?>, Profile> summaries = new Hashtable<>();
 
         for (Profile profile : getProfiles()) {
-            Class queryType = profile.getQueryClass();
+            Class<?> queryType = profile.getQueryClass();
             if (queryType == null) {
                 queryType = Void.class;
             }
 
-            Profile summary = (Profile)summaries.get(queryType);
+            Profile summary = summaries.get(queryType);
             if (summary == null) {
                 summary = new Profile();
                 summary.setQueryClass(queryType);
@@ -184,11 +182,10 @@
             summary.setLocalTime(summary.getLocalTime() + profile.getLocalTime());
             summary.setProfileTime(summary.getProfileTime() + profile.getProfileTime());
             summary.setNumberOfInstancesEffected(summary.getNumberOfInstancesEffected() + profile.getNumberOfInstancesEffected());
-            for (Enumeration operationNames = profile.getOperationTimings().keys();
-                     operationNames.hasMoreElements();) {
-                String name = (String)operationNames.nextElement();
-                Long oldTime = (Long)summary.getOperationTimings().get(name);
-                long profileTime = (Long) profile.getOperationTimings().get(name);
+            for (Map.Entry<String, Long> entry: profile.getOperationTimings().entrySet()) {
+                String name = entry.getKey();
+                Long oldTime = summary.getOperationTimings().get(name);
+                long profileTime = entry.getValue();
                 long newTime;
                 if (oldTime == null) {
                     newTime = profileTime;
@@ -283,7 +280,7 @@
     protected Map<String, Long> getOperationStartTimes() {
         Integer threadId = Thread.currentThread().hashCode();
         if (getOperationStartTimesByThread().get(threadId) == null) {
-            getOperationStartTimesByThread().put(threadId, new Hashtable(10));
+            getOperationStartTimesByThread().put(threadId, new Hashtable<>(10));
         }
         return getOperationStartTimesByThread().get(threadId);
     }
@@ -295,7 +292,7 @@
     protected Map<String, Long> getOperationTimings() {
         Integer threadId = Thread.currentThread().hashCode();
         if (getOperationTimingsByThread().get(threadId) == null) {
-            getOperationTimingsByThread().put(threadId, new Hashtable(10));
+            getOperationTimingsByThread().put(threadId, new Hashtable<>(10));
         }
         return getOperationTimingsByThread().get(threadId);
     }
@@ -346,10 +343,10 @@
      * Log a profile summary by class.
      */
     public void logProfileSummaryByClass() {
-        Hashtable summaries = buildProfileSummaryByClass();
+        Hashtable<Class<?>, Profile> summaries = buildProfileSummaryByClass();
 
-        for (Enumeration classes = summaries.keys(); classes.hasMoreElements();) {
-            Class domainClass = (Class)classes.nextElement();
+        for (Enumeration<Class<?>> classes = summaries.keys(); classes.hasMoreElements();) {
+            Class<?> domainClass = classes.nextElement();
             Writer writer = getSession().getLog();
             try {
                 writer.write(summaries.get(domainClass).toString());
@@ -364,10 +361,10 @@
      * Log a profile summary by query.
      */
     public void logProfileSummaryByQuery() {
-        Hashtable summaries = buildProfileSummaryByQuery();
+        Hashtable<Class<?>, Profile> summaries = buildProfileSummaryByQuery();
 
-        for (Enumeration classes = summaries.keys(); classes.hasMoreElements();) {
-            Class queryType = (Class)classes.nextElement();
+        for (Enumeration<Class<?>> classes = summaries.keys(); classes.hasMoreElements();) {
+            Class<?> queryType = classes.nextElement();
             Writer writer = getSession().getLog();
             try {
                 writer.write(summaries.get(queryType).toString());
@@ -386,6 +383,7 @@
      * @return the execution result of the query.
      */
     @Override
+    @SuppressWarnings({"unchecked"})
     public Object profileExecutionOfQuery(DatabaseQuery query, Record row, AbstractSession session) {
         long profileStartTime = System.nanoTime();
         long nestedProfileStartTime = getProfileTime();
@@ -404,8 +402,8 @@
 
             setNestLevel(getNestLevel() + 1);
             long startNestTime = getNestTime();
-            Map<String, Long> timingsBeforeExecution = (Map<String, Long>)((Hashtable)getOperationTimings()).clone();
-            Map<String, Long> startTimingsBeforeExecution = (Map<String, Long>)((Hashtable)getOperationStartTimes()).clone();
+            Map<String, Long> timingsBeforeExecution = (Map<String, Long>)((Hashtable<String, Long>)getOperationTimings()).clone();
+            Map<String, Long> startTimingsBeforeExecution = (Map<String, Long>)((Hashtable<String, Long>)getOperationStartTimes()).clone();
             long startTime = System.nanoTime();
             try {
                 result = session.internalExecuteQuery(query, (AbstractRecord)row);
@@ -451,8 +449,8 @@
                 if (getNestLevel() == 0) {
                     setNestTime(0);
                     setProfileTime(0);
-                    setOperationTimings(new Hashtable());
-                    setOperationStartTimes(new Hashtable());
+                    setOperationTimings(new Hashtable<>());
+                    setOperationStartTimes(new Hashtable<>());
                     long profileEndTime = System.nanoTime();
                     long totalTimeIncludingProfiling = profileEndTime - profileStartTime;// Try to remove the profiling time from the total time.
                     profile.setProfileTime(totalTimeIncludingProfiling - profile.getTotalTime());
@@ -464,7 +462,7 @@
                     long totalTimeIncludingProfiling = profileEndTime - profileStartTime;// Try to remove the profiling time from the total time.
                     setProfileTime(getProfileTime() + (totalTimeIncludingProfiling - (endTime - startTime)));
                     profile.setProfileTime(totalTimeIncludingProfiling - profile.getTotalTime());
-                    for (String timingName : ((Map<String, Long>)(((Hashtable)startTimingsBeforeExecution).clone())).keySet()) {
+                    for (String timingName : ((Map<String, Long>)(((Hashtable<String, Long>)startTimingsBeforeExecution).clone())).keySet()) {
                         startTimingsBeforeExecution.put(timingName, ((Number) startTimingsBeforeExecution.get(timingName)).longValue() + totalTimeIncludingProfiling);
                     }
                 }
@@ -487,7 +485,7 @@
         getOperationStartTimesByThread().put(threadId, operationStartTimes);
     }
 
-    protected void setOperationStartTimesByThread(Hashtable operationStartTimesByThread) {
+    protected void setOperationStartTimesByThread(Map<Integer, Map<String, Long>> operationStartTimesByThread) {
         this.operationStartTimesByThread = operationStartTimesByThread;
     }
 
@@ -496,11 +494,11 @@
         getOperationTimingsByThread().put(threadId, operationTimings);
     }
 
-    protected void setOperationTimingsByThread(Hashtable operationTimingsByThread) {
+    protected void setOperationTimingsByThread(Map<Integer, Map<String, Long>> operationTimingsByThread) {
         this.operationTimingsByThread = operationTimingsByThread;
     }
 
-    protected void setProfiles(Vector profiles) {
+    protected void setProfiles(Vector<Profile> profiles) {
         this.profiles = profiles;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/Profile.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/Profile.java
index 77ec18a..0c01cbb 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/Profile.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/Profile.java
@@ -26,10 +26,10 @@
  * @author James Sutherland
  */
 public class Profile implements Serializable, Cloneable {
-    protected Class queryClass;
-    protected Class domainClass;
+    protected Class<?> queryClass;
+    protected Class<?> domainClass;
     protected long numberOfInstancesEffected;
-    protected Hashtable operationTimings;
+    protected Map<String, Long> operationTimings;
     protected long localTime;
     protected long profileTime;
     protected long totalTime;
@@ -38,7 +38,7 @@
 
     public Profile() {
         this.numberOfInstancesEffected = 0;
-        this.operationTimings = new Hashtable();
+        this.operationTimings = new Hashtable<>();
         this.totalTime = 0;
         this.localTime = 0;
         this.longestTime = 0;
@@ -61,7 +61,7 @@
         return null;
     }
 
-    public Class getDomainClass() {
+    public Class<?> getDomainClass() {
         return domainClass;
     }
 
@@ -84,7 +84,7 @@
         return (getNumberOfInstancesEffected() * 1000) / getTotalTime();
     }
 
-    public Hashtable getOperationTimings() {
+    public Map<String, Long> getOperationTimings() {
         return operationTimings;
     }
 
@@ -92,7 +92,7 @@
         return profileTime;
     }
 
-    public Class getQueryClass() {
+    public Class<?> getQueryClass() {
         return queryClass;
     }
 
@@ -111,7 +111,7 @@
         return totalTime;
     }
 
-    public void setDomainClass(Class domainClass) {
+    public void setDomainClass(Class<?> domainClass) {
         this.domainClass = domainClass;
     }
 
@@ -127,7 +127,7 @@
         this.numberOfInstancesEffected = numberOfInstancesEffected;
     }
 
-    public void setOperationTimings(Hashtable operationTimings) {
+    public void setOperationTimings(Map<String, Long> operationTimings) {
         this.operationTimings = operationTimings;
     }
 
@@ -135,7 +135,7 @@
         this.profileTime = profileTime;
     }
 
-    public void setQueryClass(Class queryClass) {
+    public void setQueryClass(Class<?> queryClass) {
         this.queryClass = queryClass;
     }
 
@@ -182,10 +182,9 @@
                 writer.write("\t" + ToStringLocalization.buildMessage("profiling_time", null) + "=" + getProfileTime() + "," + cr);
             }
 
-            for (Enumeration operationNames = getOperationTimings().keys();
-                     operationNames.hasMoreElements();) {
-                String operationName = (String)operationNames.nextElement();
-                long operationTime = (Long) getOperationTimings().get(operationName);
+            for (Map.Entry<String, Long> entry: getOperationTimings().entrySet()) {
+                String operationName = entry.getKey();
+                long operationTime = entry.getValue();
 
                 if (operationTime != 0) {
                     profiler.writeNestingTabs(writer);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DefaultTableGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DefaultTableGenerator.java
index 6450df5..1ed55a8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DefaultTableGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DefaultTableGenerator.java
@@ -151,9 +151,9 @@
             this.databasePlatform = (DatabasePlatform)project.getDatasourceLogin().getDatasourcePlatform();
             this.generateFKConstraints = this.databasePlatform.supportsForeignKeyConstraints();
         }
-        this.tableMap = new LinkedHashMap();
-        this.fieldMap = new LinkedHashMap();
-        this.databaseFields = new LinkedHashMap();
+        this.tableMap = new LinkedHashMap<>();
+        this.fieldMap = new LinkedHashMap<>();
+        this.databaseFields = new LinkedHashMap<>();
     }
 
     /**
@@ -234,7 +234,7 @@
             }
             DatabaseMetaData dbMetaData = conn.getMetaData();
             ResultSet resultSet = dbMetaData.getTables(null, dbMetaData.getUserName(), null, new String[] { "TABLE" });
-            List tablesInDatabase = new ArrayList();
+            List<String> tablesInDatabase = new ArrayList<>();
 
             while (resultSet.next()) {
                 //save all tables from the database
@@ -243,12 +243,12 @@
 
             resultSet.close();
 
-            List existedTables = new ArrayList();
-            List existedTableNames = new ArrayList();
+            List<TableDefinition> existedTables = new ArrayList<>();
+            List<String> existedTableNames = new ArrayList<>();
             Iterator<TableDefinition> tblDefIter = tblCreator.getTableDefinitions().iterator();
 
             while (tblDefIter.hasNext()) {
-                TableDefinition tblDef = (TableDefinition) tblDefIter.next();
+                TableDefinition tblDef = tblDefIter.next();
 
                 //check if the to-be-created table is already in the database
                 if (tablesInDatabase.contains(tblDef.getFullName())) {
@@ -448,8 +448,8 @@
 
         DatabaseField fkField = null;
         DatabaseField targetField = null;
-        List<String> fkFieldNames = new ArrayList();
-        List<String> targetFieldNames = new ArrayList();
+        List<String> fkFieldNames = new ArrayList<>();
+        List<String> targetFieldNames = new ArrayList<>();
 
         for (int index = 0; index < fkFields.size(); index++) {
             fkField = fkFields.get(index);
@@ -484,8 +484,8 @@
 
         DatabaseField dbField = null;
         DatabaseField targetField = null;
-        List<String> fkFieldNames = new ArrayList();
-        List<String> targetFieldNames = new ArrayList();
+        List<String> fkFieldNames = new ArrayList<>();
+        List<String> targetFieldNames = new ArrayList<>();
         List<DatabaseField> fkFields = mapping.getReferenceKeyFields();
         List<DatabaseField> targetFields = mapping.getSourceKeyFields();
         for (int index = 0; index < fkFields.size(); index++) {
@@ -558,7 +558,7 @@
     protected void resetTransformedFieldType(TransformationMapping mapping) {
         Iterator<FieldTransformation> transIter = mapping.getFieldTransformations().iterator();
         while (transIter.hasNext()) {
-            FieldTransformation transformation = (FieldTransformation) transIter.next();
+            FieldTransformation transformation = transIter.next();
 
             if (transformation instanceof MethodBasedFieldTransformation) {
                 MethodBasedFieldTransformation methodTransformation = (MethodBasedFieldTransformation) transformation;
@@ -605,7 +605,7 @@
 
         Iterator<DatabaseField> aggregateFieldIterator = mapping.getReferenceDescriptor().getFields().iterator();
         while (aggregateFieldIterator.hasNext()) {
-            DatabaseField dbField = (DatabaseField) aggregateFieldIterator.next();
+            DatabaseField dbField = aggregateFieldIterator.next();
             //add the target definition to the table definition
             FieldDefinition fieldDef = getFieldDefFromDBField(dbField);
             if (!targetTable.getFields().contains(fieldDef)) {
@@ -615,8 +615,8 @@
 
         //unlike normal one-to-many mapping, aggregate collection mapping does not have 1:1 back reference
         //mapping, so the target foreign key fields are not stored in the target descriptor.
-        List<String> fkFieldNames = new ArrayList();
-        List<String> targetFieldNames = new ArrayList();
+        List<String> fkFieldNames = new ArrayList<>();
+        List<String> targetFieldNames = new ArrayList<>();
         List<DatabaseField> fkFields = mapping.getTargetForeignKeyFields();
         List<DatabaseField> targetFields = mapping.getSourceKeyFields();
         DatabaseField targetField = null;
@@ -876,7 +876,7 @@
         DatabaseTable databaseTable = null;
         Iterator<DatabaseTable> dbTblIter = descriptor.getTables().iterator();
         while (dbTblIter.hasNext()) {
-            databaseTable = (DatabaseTable) dbTblIter.next();
+            databaseTable = dbTblIter.next();
             Map<DatabaseField, DatabaseField> srcFields = descriptor.getAdditionalTablePrimaryKeyFields().get(databaseTable);
             if ((null != srcFields) && srcFields.size() > 0) {
                 // srcFields is from the secondary field to the primary key field
@@ -902,8 +902,8 @@
 
         DatabaseField fkField = null;
         DatabaseField targetField = null;
-        List<String> fkFieldNames = new ArrayList();
-        List<String> targetFieldNames = new ArrayList();
+        List<String> fkFieldNames = new ArrayList<>();
+        List<String> targetFieldNames = new ArrayList<>();
 
         DatabaseTable sourceTable = fkFields.get(0).getTable();
         TableDefinition sourceTableDef = getTableDefFromDBTable(sourceTable);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/ForeignKeyConstraint.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/ForeignKeyConstraint.java
index 5a44d1a..09443f3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/ForeignKeyConstraint.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/ForeignKeyConstraint.java
@@ -38,8 +38,8 @@
 
     public ForeignKeyConstraint() {
         this.name = "";
-        this.sourceFields = new ArrayList();
-        this.targetFields = new ArrayList();
+        this.sourceFields = new ArrayList<>();
+        this.targetFields = new ArrayList<>();
         this.targetTable = "";
         this.shouldCascadeOnDelete = false;
     }
@@ -71,7 +71,7 @@
             } else {
                 writer.write("FOREIGN KEY (");
                 for (Iterator<String> iterator = getSourceFields().iterator(); iterator.hasNext();) {
-                    writer.write((String)iterator.next());
+                    writer.write(iterator.next());
                     if (iterator.hasNext()) {
                         writer.write(", ");
                     }
@@ -80,7 +80,7 @@
                 writer.write(getTargetTable());
                 writer.write(" (");
                 for (Iterator<String> iterator = getTargetFields().iterator(); iterator.hasNext();) {
-                    writer.write((String)iterator.next());
+                    writer.write(iterator.next());
                     if (iterator.hasNext()) {
                         writer.write(", ");
                     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/IndexDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/IndexDefinition.java
index b32afcf..df564c3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/IndexDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/IndexDefinition.java
@@ -32,7 +32,7 @@
     protected boolean isUnique;
 
     public IndexDefinition() {
-        this.fields = new ArrayList();
+        this.fields = new ArrayList<>();
     }
 
     public boolean isUnique() {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PackageDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PackageDefinition.java
index 921a3a4..abe2e6c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PackageDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PackageDefinition.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
@@ -26,26 +26,26 @@
  * </p>
  */
 public class PackageDefinition extends DatabaseObjectDefinition {
-    protected Vector statements;
-    protected Vector procedures;
+    protected List<String> statements;
+    protected List<StoredProcedureDefinition> procedures;
 
     public PackageDefinition() {
-        this.statements = new Vector();
-        this.procedures = new Vector();
+        this.statements = new Vector<>();
+        this.procedures = new Vector<>();
     }
 
     /**
      * Packages can contain sets of procedures.
      */
     public void addProcedures(StoredProcedureDefinition procedure) {
-        getProcedures().addElement(procedure);
+        getProcedures().add(procedure);
     }
 
     /**
      * The statements are the SQL lines of code.
      */
     public void addStatement(String statement) {
-        getStatements().addElement(statement);
+        getStatements().add(statement);
     }
 
     /**
@@ -59,16 +59,14 @@
             writer.write("CREATE PACKAGE " + getFullName());
             writer.write(" AS");
             writer.write("\n");
-            for (Enumeration statementsEnum = getStatements().elements();
-                     statementsEnum.hasMoreElements();) {
-                writer.write((String)statementsEnum.nextElement());
+            for (String statement: statements) {
+                writer.write(statement);
                 writer.write(platform.getBatchDelimiterString());
                 writer.write("\n");
             }
-            for (Enumeration proceduresEnum = getProcedures().elements();
-                     proceduresEnum.hasMoreElements();) {
+            for (StoredProcedureDefinition procedure: procedures) {
                 writer.write("\n");
-                String procedureString = ((StoredProcedureDefinition)proceduresEnum.nextElement()).buildCreationWriter(session, writer).toString();
+                String procedureString = procedure.buildCreationWriter(session, writer).toString();
                 writer.write(procedureString.substring(7, procedureString.length()));
                 writer.write("\n");
             }
@@ -97,28 +95,28 @@
     /**
      * Packages can contain sets of procedures.
      */
-    public Vector getProcedures() {
+    public List<StoredProcedureDefinition> getProcedures() {
         return procedures;
     }
 
     /**
      * The statements are the SQL lines of code.
      */
-    public Vector getStatements() {
+    public List<String> getStatements() {
         return statements;
     }
 
     /**
      * Packages can contain sets of procedures.
      */
-    public void setProcedures(Vector procedures) {
+    public void setProcedures(List<StoredProcedureDefinition> procedures) {
         this.procedures = procedures;
     }
 
     /**
      * The statements are the SQL lines of code.
      */
-    public void setStatements(Vector statements) {
+    public void setStatements(List<String> statements) {
         this.statements = statements;
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PopulationManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PopulationManager.java
index 435f3bb..c8abc1f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PopulationManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/PopulationManager.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,20 +33,20 @@
 public class PopulationManager {
 
     /** Store the objects registered. */
-    protected Hashtable registeredObjects;
+    protected Map<Class, Map<String, Object>> registeredObjects;
 
     /** Store the default instance. */
     protected static PopulationManager defaultManager;
 
     public PopulationManager() {
-        registeredObjects = new Hashtable();
+        registeredObjects = new Hashtable<>();
     }
 
     /**
      * Add all of the objects of the class and all of its subclasses.
      * The session is needed because there is no other way to find all subclasses.
      */
-    public void addAllObjectsForAbstractClass(Class objectsClass, AbstractSession session, Vector allObjects) {
+    public void addAllObjectsForAbstractClass(Class objectsClass, AbstractSession session, Vector<Object> allObjects) {
         ClassDescriptor descriptor = session.getDescriptor(objectsClass);
         addAllObjectsForClass(objectsClass, allObjects);
         for (ClassDescriptor child : descriptor.getInheritancePolicy().getChildDescriptors()) {
@@ -58,19 +58,19 @@
      * Add all of the objects of the class and all of its subclasses.
      * The session is needed because there is no other way to find all subclasses.
      */
-    public void addAllObjectsForAbstractClass(Class objectsClass, org.eclipse.persistence.sessions.Session session, Vector allObjects) {
+    public void addAllObjectsForAbstractClass(Class objectsClass, org.eclipse.persistence.sessions.Session session, Vector<Object> allObjects) {
         addAllObjectsForAbstractClass(objectsClass, (AbstractSession)session, allObjects);
     }
 
     /**
      * Add all of the objects of the class.
      */
-    public void addAllObjectsForClass(Class objectsClass, List allObjects) {
+    public void addAllObjectsForClass(Class objectsClass, List<Object> allObjects) {
         if (!getRegisteredObjects().containsKey(objectsClass)) {
             return;
         }
 
-        for (Object object : ((Map)getRegisteredObjects().get(objectsClass)).values()) {
+        for (Object object : getRegisteredObjects().get(objectsClass).values()) {
             allObjects.add(object);
         }
     }
@@ -79,7 +79,7 @@
      * Check if the object is registered given its name.
      */
     public boolean containsObject(Class objectsClass, String objectsName) {
-        return ((getRegisteredObjects().containsKey(objectsClass)) && (((Hashtable)getRegisteredObjects().get(objectsClass)).containsKey(objectsName)));
+        return ((getRegisteredObjects().containsKey(objectsClass)) && (getRegisteredObjects().get(objectsClass).containsKey(objectsName)));
     }
 
     /**
@@ -92,25 +92,18 @@
     /**
      * Return all of the objects registered.
      */
-    public Vector getAllClasses() {
-        Vector allClasses = new Vector();
-
-        for (Enumeration e = getRegisteredObjects().keys(); e.hasMoreElements();) {
-            allClasses.addElement(e.nextElement());
-        }
-
+    public List<Class> getAllClasses() {
+        Vector<Class> allClasses = new Vector<>();
+        allClasses.addAll(getRegisteredObjects().keySet());
         return allClasses;
     }
 
     /**
      * Return all of the objects registered.
      */
-    public Vector getAllObjects() {
-        Vector allObjects;
-
-        allObjects = new Vector();
-        for (Enumeration e = getAllClasses().elements(); e.hasMoreElements();) {
-            Class eachClass = (Class)e.nextElement();
+    public Vector<Object> getAllObjects() {
+        Vector<Object> allObjects = new Vector<> ();
+        for (Class eachClass : getAllClasses()) {
             addAllObjectsForClass(eachClass, allObjects);
         }
 
@@ -120,10 +113,8 @@
     /**
      * Return all of the objects of the class and all of its subclasses.
      */
-    public Vector getAllObjectsForAbstractClass(Class objectsClass) {
-        Vector allObjects;
-
-        allObjects = new Vector();
+    public List<Object> getAllObjectsForAbstractClass(Class objectsClass) {
+        List<Object> allObjects = new Vector<>();
         // hummm, how can this be done....
         return allObjects;
     }
@@ -132,9 +123,9 @@
      * Return all of the objects of the class and all of its subclasses.
      * The session is needed because there is no other way to find all subclasses.
      */
-    public Vector getAllObjectsForAbstractClass(Class objectsClass, AbstractSession session) {
+    public List<Object> getAllObjectsForAbstractClass(Class objectsClass, AbstractSession session) {
         ClassDescriptor descriptor = session.getDescriptor(objectsClass);
-        Vector allObjects = new Vector();
+        List<Object> allObjects = new Vector<>();
         addAllObjectsForClass(objectsClass, allObjects);
         if (descriptor.hasInheritance()) {
             for (ClassDescriptor child : descriptor.getInheritancePolicy().getChildDescriptors()) {
@@ -148,10 +139,8 @@
     /**
      * Return all of the objects of the class.
      */
-    public Vector getAllObjectsForClass(Class objectsClass) {
-        Vector allObjects;
-
-        allObjects = new Vector();
+    public Vector<Object> getAllObjectsForClass(Class objectsClass) {
+        Vector<Object> allObjects = new Vector<>();
         addAllObjectsForClass(objectsClass, allObjects);
 
         return allObjects;
@@ -175,13 +164,13 @@
             return null;
         }
 
-        return ((Hashtable)getRegisteredObjects().get(objectsClass)).get(objectsName);
+        return getRegisteredObjects().get(objectsClass).get(objectsName);
     }
 
     /**
      * Return the registered objects.
      */
-    public Hashtable getRegisteredObjects() {
+    public Map<Class, Map<String, Object>> getRegisteredObjects() {
         return registeredObjects;
     }
 
@@ -191,9 +180,9 @@
      */
     public Object registerObject(Class javaClass, Object objectToRegister, String objectsName) {
         if (!(getRegisteredObjects().containsKey(javaClass))) {
-            getRegisteredObjects().put(javaClass, new Hashtable());
+            getRegisteredObjects().put(javaClass, new Hashtable<>());
         }
-        ((Hashtable)getRegisteredObjects().get(javaClass)).put(objectsName, objectToRegister);
+        getRegisteredObjects().get(javaClass).put(objectsName, objectToRegister);
 
         return objectToRegister;
     }
@@ -204,9 +193,9 @@
      */
     public Object registerObject(Object objectToRegister, String objectsName) {
         if (!(getRegisteredObjects().containsKey(objectToRegister.getClass()))) {
-            getRegisteredObjects().put(objectToRegister.getClass(), new Hashtable());
+            getRegisteredObjects().put(objectToRegister.getClass(), new Hashtable<>());
         }
-        ((Hashtable)getRegisteredObjects().get(objectToRegister.getClass())).put(objectsName, objectToRegister);
+        getRegisteredObjects().get(objectToRegister.getClass()).put(objectsName, objectToRegister);
 
         return objectToRegister;
     }
@@ -216,7 +205,7 @@
      */
     public void removeObject(Class classToRemove, String objectsName) {
         if (getRegisteredObjects().containsKey(classToRemove)) {
-            ((Hashtable)getRegisteredObjects().get(classToRemove)).remove(objectsName);
+            getRegisteredObjects().get(classToRemove).remove(objectsName);
         }
     }
 
@@ -246,7 +235,7 @@
     /**
      * Set the registered objects.
      */
-    public void setRegisteredObjects(Hashtable registeredObjects) {
+    public void setRegisteredObjects(Map<Class, Map<String, Object>> registeredObjects) {
         this.registeredObjects = registeredObjects;
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/SchemaManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/SchemaManager.java
index 0118de9..839b1a6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/SchemaManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/SchemaManager.java
@@ -314,7 +314,7 @@
      *        false if it should be dropped.
      * @param replace - true if table definitions and sequence definitions should be replaced.
      */
-    protected void processSequenceDefinition(SequenceDefinition definition, final boolean createTables, final boolean createSequences, final boolean replace, HashSet<String> createdTableNames, HashSet<String> droppedTableNames) throws EclipseLinkException {
+    protected void processSequenceDefinition(SequenceDefinition definition, final boolean createTables, final boolean createSequences, final boolean replace, Set<String> createdTableNames, Set<String> droppedTableNames) throws EclipseLinkException {
         try {
             // Handle the table definitions first.
             if (definition.isTableSequenceDefinition()) {
@@ -403,14 +403,14 @@
         // Not required on Sybase native etc.
         if (sequencing != null && sequencing.whenShouldAcquireValueForAll() != Sequencing.AFTER_INSERT) {
             // Build the sequence definitions.
-            HashSet<SequenceDefinition> sequenceDefinitions = buildSequenceDefinitions();
+            Set<SequenceDefinition> sequenceDefinitions = buildSequenceDefinitions();
 
             // Now process the sequence definitions.
             // CR 3870467, do not log stack
             boolean shouldLogExceptionStackTrace = session.getSessionLog().shouldLogExceptionStackTrace();
             session.getSessionLog().setShouldLogExceptionStackTrace(false);
-            HashSet<String> createdSequenceTableNames = new HashSet();
-            HashSet<String> droppedSequenceTableNames = new HashSet();
+            Set<String> createdSequenceTableNames = new HashSet<>();
+            Set<String> droppedSequenceTableNames = new HashSet<>();
 
             for (SequenceDefinition sequenceDefinition : sequenceDefinitions) {
                 processSequenceDefinition(sequenceDefinition, createSequenceTables, createSequences, replaceSequences, createdSequenceTableNames, droppedSequenceTableNames);
@@ -425,10 +425,10 @@
      * INTERNAL:
      * Build the sequence definitions.
      */
-    protected HashSet<SequenceDefinition> buildSequenceDefinitions() {
+    protected Set<SequenceDefinition> buildSequenceDefinitions() {
         // Remember the processed - to handle each sequence just once.
-        HashSet processedSequenceNames = new HashSet();
-        HashSet<SequenceDefinition> sequenceDefinitions = new HashSet<>();
+        Set<String> processedSequenceNames = new HashSet<>();
+        Set<SequenceDefinition> sequenceDefinitions = new HashSet<>();
 
         for (ClassDescriptor descriptor : getSession().getDescriptors().values()) {
             if (descriptor.usesSequenceNumbers()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredFunctionDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredFunctionDefinition.java
index 08dbc5d..a2bab71 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredFunctionDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredFunctionDefinition.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
@@ -87,7 +87,7 @@
      * Prints return for stored function
      */
     public void setReturnType(Class type) {
-        FieldDefinition argument = (FieldDefinition)getArguments().firstElement();
+        FieldDefinition argument = getArguments().get(0);
         argument.setType(type);
     }
 
@@ -98,7 +98,7 @@
     protected void printReturn(Writer writer, AbstractSession session) throws ValidationException {
         try {
             session.getPlatform().printStoredFunctionReturnKeyWord(writer);
-            FieldDefinition argument = (FieldDefinition)getArguments().firstElement();
+            FieldDefinition argument = getArguments().get(0);
 
             // argumentType should be OUT: getArgumentTypes().firstElement() == OUT;
             // but should be printed as IN
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureDefinition.java
index a81b4b4..95ce7f6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureDefinition.java
@@ -19,6 +19,7 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.util.Enumeration;
+import java.util.List;
 import java.util.Vector;
 
 import org.eclipse.persistence.exceptions.ValidationException;
@@ -30,19 +31,19 @@
  * <b>Purpose</b>: Allow a semi-generic way of creating stored procedures.
  */
 public class StoredProcedureDefinition extends DatabaseObjectDefinition {
-    protected Vector variables;
-    protected Vector statements;
-    protected Vector arguments;
-    protected Vector argumentTypes;
+    protected List<FieldDefinition> variables;
+    protected List<String> statements;
+    protected List<FieldDefinition> arguments;
+    protected List<Integer> argumentTypes;
     protected static final Integer IN = 1;
     protected static final Integer OUT = 2;
     protected static final Integer INOUT = 3;
 
     public StoredProcedureDefinition() {
-        this.statements = new Vector();
-        this.variables = new Vector();
-        this.arguments = new Vector();
-        this.argumentTypes = new Vector();
+        this.statements = new Vector<>();
+        this.variables = new Vector<>();
+        this.arguments = new Vector<>();
+        this.argumentTypes = new Vector<>();
     }
 
     /**
@@ -70,8 +71,8 @@
      * The arguments are the names of the parameters to the procedure.
      */
     public void addArgument(FieldDefinition argument) {
-        getArguments().addElement(argument);
-        getArgumentTypes().addElement(IN);
+        getArguments().add(argument);
+        getArgumentTypes().add(IN);
     }
 
     /**
@@ -85,8 +86,8 @@
      * The output arguments are used to get values back from the proc, such as cursors.
      */
     public void addInOutputArgument(FieldDefinition argument) {
-        getArguments().addElement(argument);
-        getArgumentTypes().addElement(INOUT);
+        getArguments().add(argument);
+        getArgumentTypes().add(INOUT);
     }
 
     /**
@@ -114,15 +115,15 @@
      * The output arguments are used to get values back from the proc, such as cursors.
      */
     public void addOutputArgument(FieldDefinition argument) {
-        getArguments().addElement(argument);
-        getArgumentTypes().addElement(OUT);
+        getArguments().add(argument);
+        getArgumentTypes().add(OUT);
     }
 
     /**
      * The statements are the SQL lines of code in procedure.
      */
     public void addStatement(String statement) {
-        getStatements().addElement(statement);
+        getStatements().add(statement);
     }
 
     /**
@@ -136,7 +137,7 @@
      * The variables are the names of the declared variables used in the procedure.
      */
     public void addVariable(FieldDefinition variable) {
-        getVariables().addElement(variable);
+        getVariables().add(variable);
     }
 
     /**
@@ -153,8 +154,8 @@
             writer.write("\n");
             for (int i = getFirstArgumentIndex(); i < getArguments().size(); i++) {
                 writer.write("\t");
-                FieldDefinition argument = (FieldDefinition)getArguments().elementAt(i);
-                Integer argumentType = (Integer)getArgumentTypes().elementAt(i);
+                FieldDefinition argument = getArguments().get(i);
+                Integer argumentType = getArgumentTypes().get(i);
                 if (argumentType == IN) {
                     printArgument(argument, writer, session);
                 } else if (argumentType == OUT) {
@@ -186,9 +187,7 @@
                 writer.write("DECLARE\n");
             }
 
-            for (Enumeration variablesEnum = getVariables().elements();
-                     variablesEnum.hasMoreElements();) {
-                FieldDefinition field = (FieldDefinition)variablesEnum.nextElement();
+            for (FieldDefinition field: getVariables()) {
                 writer.write("\t");
                 writer.write(field.getName());
                 writer.write(" ");
@@ -202,9 +201,8 @@
                 writer.write("\n");
             }
 
-            for (Enumeration statementsEnum = getStatements().elements();
-                     statementsEnum.hasMoreElements();) {
-                writer.write((String)statementsEnum.nextElement());
+            for (String statement: getStatements()) {
+                writer.write(statement);
                 writer.write(platform.getBatchDelimiterString());
                 writer.write("\n");
             }
@@ -231,7 +229,7 @@
     /**
      * The arguments are the names of the parameters to the procedure.
      */
-    public Vector getArguments() {
+    public List<FieldDefinition> getArguments() {
         return arguments;
     }
 
@@ -259,21 +257,21 @@
     /**
          *
          */
-    public Vector getArgumentTypes() {
+    public List<Integer> getArgumentTypes() {
         return argumentTypes;
     }
 
     /**
      * The statements are the SQL lines of code in procedure.
      */
-    public Vector getStatements() {
+    public List<String> getStatements() {
         return statements;
     }
 
     /**
      * The variables are the names of the declared variables used in the procedure.
      */
-    public Vector getVariables() {
+    public List<FieldDefinition> getVariables() {
         return variables;
     }
 
@@ -438,21 +436,21 @@
     /**
      * The arguments are the field defs of the parameters names and types to the procedure.
      */
-    public void setArguments(Vector arguments) {
+    public void setArguments(List<FieldDefinition> arguments) {
         this.arguments = arguments;
     }
 
     /**
      * The statements are the SQL lines of code in procedure.
      */
-    public void setStatements(Vector statements) {
+    public void setStatements(List<String> statements) {
         this.statements = statements;
     }
 
     /**
      * The variables are the field defs of the declared variables used in the procedure.
      */
-    public void setVariables(Vector variables) {
+    public void setVariables(List<FieldDefinition> variables) {
         this.variables = variables;
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureGenerator.java
index 81969ae..fe13329 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredProcedureGenerator.java
@@ -32,6 +32,7 @@
 import org.eclipse.persistence.internal.expressions.ParameterExpression;
 import org.eclipse.persistence.internal.helper.DatabaseField;
 import org.eclipse.persistence.internal.helper.Helper;
+import org.eclipse.persistence.internal.oxm.mappings.Field;
 import org.eclipse.persistence.internal.queries.CallQueryMechanism;
 import org.eclipse.persistence.internal.sessions.AbstractRecord;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
@@ -154,11 +155,11 @@
     public void generateAmendmentClass(Writer outputWriter, String packageName, String className) throws ValidationException {
         String methodComment = "/**\n * EclipseLink generated method. \n * <b>WARNING</b>: This code was generated by an automated tool.\n * Any changes will be lost when the code is re-generated\n */";
         ClassDescriptor descriptor;
-        Vector storedProcedureVector;
+        List<StoredProcedureDefinition> storedProcedureVector;
         Hashtable mappingHashtable;
         StoredProcedureDefinition definition;
-        Vector storedProcedureDefinitionArguments;
-        Enumeration argumentEnum;
+        List<FieldDefinition> storedProcedureDefinitionArguments;
+        Iterator<FieldDefinition> argumentEnum;
         FieldDefinition fieldDefinition;
         try {
             outputWriter.write("package ");
@@ -170,7 +171,7 @@
             outputWriter.write("{\n");
             Enumeration<ClassDescriptor> descriptorEnum = this.storedProcedures.keys();
             while (descriptorEnum.hasMoreElements()) {
-                descriptor = (ClassDescriptor)descriptorEnum.nextElement();
+                descriptor = descriptorEnum.nextElement();
                 if (descriptor.isDescriptorForInterface() || descriptor.isAggregateDescriptor()) {
                     continue;
                 }
@@ -178,19 +179,19 @@
                 outputWriter.write("\npublic static void amend");
                 outputWriter.write(Helper.getShortClassName(descriptor.getJavaClass()));
                 outputWriter.write("ClassDescriptor(ClassDescriptor descriptor){\n\t");
-                storedProcedureVector = (Vector)this.storedProcedures.get(descriptor);
-                mappingHashtable = (Hashtable)this.mappingStoredProcedures.get(descriptor);
-                definition = (StoredProcedureDefinition)storedProcedureVector.elementAt(0);
+                storedProcedureVector = this.storedProcedures.get(descriptor);
+                mappingHashtable = this.mappingStoredProcedures.get(descriptor);
+                definition = storedProcedureVector.get(0);
                 outputWriter.write("\n\t//INSERT QUERY\n");
                 outputWriter.write("\tInsertObjectQuery insertQuery = new InsertObjectQuery();\n\tStoredProcedureCall call = new StoredProcedureCall();\n");
                 outputWriter.write("\tcall.setProcedureName(\"");
                 outputWriter.write(definition.getName());
                 outputWriter.write("\");\n\t");
                 storedProcedureDefinitionArguments = definition.getArguments();
-                argumentEnum = storedProcedureDefinitionArguments.elements();
+                argumentEnum = storedProcedureDefinitionArguments.iterator();
 
-                while (argumentEnum.hasMoreElements()) {
-                    fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                while (argumentEnum.hasNext()) {
+                    fieldDefinition = argumentEnum.next();
                     outputWriter.write("call.addNamedArgument(\"");
                     outputWriter.write(fieldDefinition.getName());
                     outputWriter.write("\", \"");
@@ -198,7 +199,7 @@
                     outputWriter.write("\");\n\t");
                 }
                 outputWriter.write("insertQuery.setCall(call);\n\tdescriptor.getQueryManager().setInsertQuery(insertQuery);\n\t");
-                definition = (StoredProcedureDefinition)storedProcedureVector.elementAt(1);
+                definition = storedProcedureVector.get(1);
                 if (definition != null) {
                     outputWriter.write("\n\t//UPDATE QUERY\n");
                     outputWriter.write("\tUpdateObjectQuery updateQuery = new UpdateObjectQuery();\n\tcall = new StoredProcedureCall();\n");
@@ -206,9 +207,9 @@
                     outputWriter.write(definition.getName());
                     outputWriter.write("\");\n\t");
                     storedProcedureDefinitionArguments = definition.getArguments();
-                    argumentEnum = storedProcedureDefinitionArguments.elements();
-                    while (argumentEnum.hasMoreElements()) {
-                        fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                    argumentEnum = storedProcedureDefinitionArguments.iterator();
+                    while (argumentEnum.hasNext()) {
+                        fieldDefinition = argumentEnum.next();
                         outputWriter.write("call.addNamedArgument(\"");
                         outputWriter.write(fieldDefinition.getName());
                         outputWriter.write("\", \"");
@@ -217,16 +218,16 @@
                     }
                     outputWriter.write("updateQuery.setCall(call);\n\tdescriptor.getQueryManager().setUpdateQuery(updateQuery);\n");
                 }
-                definition = (StoredProcedureDefinition)storedProcedureVector.elementAt(2);
+                definition = storedProcedureVector.get(2);
                 outputWriter.write("\n\t//DELETE QUERY\n");
                 outputWriter.write("\tDeleteObjectQuery deleteQuery = new DeleteObjectQuery();\n\tcall = new StoredProcedureCall();\n");
                 outputWriter.write("\tcall.setProcedureName(\"");
                 outputWriter.write(definition.getName());
                 outputWriter.write("\");\n\t");
                 storedProcedureDefinitionArguments = definition.getArguments();
-                argumentEnum = storedProcedureDefinitionArguments.elements();
-                while (argumentEnum.hasMoreElements()) {
-                    fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                argumentEnum = storedProcedureDefinitionArguments.iterator();
+                while (argumentEnum.hasNext()) {
+                    fieldDefinition = argumentEnum.next();
                     outputWriter.write("call.addNamedArgument(\"");
                     outputWriter.write(fieldDefinition.getName());
                     outputWriter.write("\", \"");
@@ -235,16 +236,16 @@
                 }
                 outputWriter.write("deleteQuery.setCall(call);\n\tdescriptor.getQueryManager().setDeleteQuery(deleteQuery);\n");
                 if (storedProcedureVector.size() > 3) {
-                    definition = (StoredProcedureDefinition)storedProcedureVector.elementAt(3);
+                    definition = storedProcedureVector.get(3);
                     outputWriter.write("\n\t//READ OBJECT QUERY\n");
                     outputWriter.write("\tReadObjectQuery readQuery = new ReadObjectQuery();\n\tcall = new StoredProcedureCall();\n");
                     outputWriter.write("\tcall.setProcedureName(\"");
                     outputWriter.write(definition.getName());
                     outputWriter.write("\");\n\t");
                     storedProcedureDefinitionArguments = definition.getArguments();
-                    argumentEnum = storedProcedureDefinitionArguments.elements();
-                    while (argumentEnum.hasMoreElements()) {
-                        fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                    argumentEnum = storedProcedureDefinitionArguments.iterator();
+                    while (argumentEnum.hasNext()) {
+                        fieldDefinition = argumentEnum.next();
                         outputWriter.write("call.addNamedArgument(\"");
                         outputWriter.write(fieldDefinition.getName());
                         outputWriter.write("\", \"");
@@ -256,16 +257,16 @@
 
                 //generate read all stored procs.
                 if (storedProcedureVector.size() > 4) {
-                    definition = (StoredProcedureDefinition)storedProcedureVector.elementAt(4);
+                    definition = storedProcedureVector.get(4);
                     outputWriter.write("\n\t//READ ALL QUERY\n");
                     outputWriter.write("\tReadAllQuery readAllQuery = new ReadAllQuery();\n\tcall = new StoredProcedureCall();\n");
                     outputWriter.write("\tcall.setProcedureName(\"");
                     outputWriter.write(definition.getName());
                     outputWriter.write("\");\n\t");
                     storedProcedureDefinitionArguments = definition.getArguments();
-                    argumentEnum = storedProcedureDefinitionArguments.elements();
-                    while (argumentEnum.hasMoreElements()) {
-                        fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                    argumentEnum = storedProcedureDefinitionArguments.iterator();
+                    while (argumentEnum.hasNext()) {
+                        fieldDefinition = argumentEnum.next();
                         outputWriter.write("call.addNamedArgument(\"");
                         outputWriter.write(fieldDefinition.getName());
                         outputWriter.write("\", \"");
@@ -291,9 +292,9 @@
                             outputWriter.write(definition.getName());
                             outputWriter.write("\");\n\t");
                             storedProcedureDefinitionArguments = definition.getArguments();
-                            argumentEnum = storedProcedureDefinitionArguments.elements();
-                            while (argumentEnum.hasMoreElements()) {
-                                fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                            argumentEnum = storedProcedureDefinitionArguments.iterator();
+                            while (argumentEnum.hasNext()) {
+                                fieldDefinition = argumentEnum.next();
                                 outputWriter.write("call.addNamedArgument(\"");
                                 outputWriter.write(fieldDefinition.getName());
                                 outputWriter.write("\", \"");
@@ -312,9 +313,9 @@
                             outputWriter.write(definition.getName());
                             outputWriter.write("\");\n\t");
                             storedProcedureDefinitionArguments = definition.getArguments();
-                            argumentEnum = storedProcedureDefinitionArguments.elements();
-                            while (argumentEnum.hasMoreElements()) {
-                                fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                            argumentEnum = storedProcedureDefinitionArguments.iterator();
+                            while (argumentEnum.hasNext()) {
+                                fieldDefinition = argumentEnum.next();
                                 outputWriter.write("call.addNamedArgument(\"");
                                 outputWriter.write(fieldDefinition.getName());
                                 outputWriter.write("\", \"");
@@ -327,16 +328,16 @@
                 }
                 outputWriter.write("}\n");
             }
-            definition = (StoredProcedureDefinition)sequenceProcedures.get("SELECT");
+            definition = sequenceProcedures.get("SELECT");
             if (definition != null) {
                 outputWriter.write("\n\tValueReadQuery seqSelectQuery = new ValueReadQuery();\n\tcall = new StoredProcedureCall();\n");
                 outputWriter.write("\tcall.setProcedureName(\"");
                 outputWriter.write(definition.getName());
                 outputWriter.write("\");\n\t");
                 storedProcedureDefinitionArguments = definition.getArguments();
-                argumentEnum = storedProcedureDefinitionArguments.elements();
-                while (argumentEnum.hasMoreElements()) {
-                    fieldDefinition = (FieldDefinition)argumentEnum.nextElement();
+                argumentEnum = storedProcedureDefinitionArguments.iterator();
+                while (argumentEnum.hasNext()) {
+                    fieldDefinition = argumentEnum.next();
                     outputWriter.write("call.addNamedArgument(\"");
                     outputWriter.write(fieldDefinition.getName());
                     outputWriter.write("\", \"");
@@ -398,7 +399,7 @@
         Hashtable<String, StoredProcedureDefinition> mappingTable;
         for (Enumeration<DatabaseMapping> enumtr = mappings.elements(); enumtr.hasMoreElements();) {
             mappingTable = new Hashtable<>();
-            DatabaseMapping mapping = (DatabaseMapping)enumtr.nextElement();
+            DatabaseMapping mapping = enumtr.nextElement();
             if (mapping.isOneToManyMapping()) {
                 if (!getSession().getPlatform().isOracle()) {
                     //reads not supported in oracle
@@ -418,7 +419,7 @@
     /**
      * INTERNAL: Generates the object level stored procedure based on the passed in query
      */
-    protected StoredProcedureDefinition generateObjectStoredProcedure(DatabaseQuery query, List fields, String namePrefix) {
+    protected StoredProcedureDefinition generateObjectStoredProcedure(DatabaseQuery query, List<DatabaseField> fields, String namePrefix) {
         String className = Helper.getShortClassName(query.getDescriptor().getJavaClass());
 
         return generateStoredProcedure(query, fields, getPrefix() + namePrefix + className);
@@ -596,7 +597,7 @@
         Vector<StoredProcedureDefinition> definitionVector;
         this.generateSequenceStoredProcedures(getSession().getProject());
         while (iterator.hasNext()) {
-            desc = (ClassDescriptor)descriptors.get(iterator.next());
+            desc = descriptors.get(iterator.next());
             if (desc.isDescriptorForInterface() || desc.isDescriptorTypeAggregate()) {
                 continue;
             }
@@ -621,11 +622,11 @@
             Hashtable<String, Hashtable<String, StoredProcedureDefinition>> mappingDefinitions = this.generateMappingStoredProcedures(desc);
             for (Enumeration<Hashtable<String, StoredProcedureDefinition>> enum2 = mappingDefinitions.elements(); enum2.hasMoreElements();) {
                 Hashtable<String, StoredProcedureDefinition> table = enum2.nextElement();
-                definition = (StoredProcedureDefinition)table.get("1MREAD");
+                definition = table.get("1MREAD");
                 if (definition != null) {
                     this.writeDefinition(definition);
                 }
-                definition = (StoredProcedureDefinition)table.get("1MDALL");
+                definition = table.get("1MDALL");
                 if (definition != null) {
                     this.writeDefinition(definition);
                 }
@@ -686,7 +687,7 @@
      */
     protected Class getFieldType(Object jdbcDataType) {
         Integer key = ((Number) jdbcDataType).intValue();
-        return (Class)intToTypeConverterHash.get(key);
+        return intToTypeConverterHash.get(key);
     }
 
     public String getPrefix() {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableCreator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableCreator.java
index 50af220..1d28b27 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableCreator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableCreator.java
@@ -389,7 +389,7 @@
     /**
      * Set the tables.
      */
-    public void setTableDefinitions(Vector tableDefinitions) {
+    public void setTableDefinitions(List<TableDefinition> tableDefinitions) {
         this.tableDefinitions = tableDefinitions;
     }
 
@@ -497,7 +497,7 @@
                         //Table exists, add individual fields as necessary
 
                         //hash the table's existing columns by name
-                        final Map<DatabaseField, DatabaseRecord> columns = new HashMap(columnInfo.size());
+                        final Map<DatabaseField, DatabaseRecord> columns = new HashMap<>(columnInfo.size());
                         final DatabaseField columnNameLookupField = new DatabaseField("COLUMN_NAME");
                         final DatabaseField schemaLookupField = new DatabaseField("TABLE_SCHEM");
                         boolean schemaMatchFound = false;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableDefinition.java
index 82d6dfc..9252c49 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TableDefinition.java
@@ -550,8 +550,8 @@
      * Build a foreign key constraint using FieldDefinition.getForeignKeyFieldName().
      */
     protected ForeignKeyConstraint buildForeignKeyConstraint(FieldDefinition field, DatabasePlatform platform) {
-        Vector sourceFields = new Vector();
-        Vector targetFields = new Vector();
+        List<String> sourceFields = new Vector<>();
+        List<String> targetFields = new Vector<>();
         ForeignKeyConstraint fkConstraint = new ForeignKeyConstraint();
         DatabaseField tempTargetField = new DatabaseField(field.getForeignKeyFieldName());
         DatabaseField tempSourceField = new DatabaseField(field.getName());
@@ -797,10 +797,10 @@
             }
         }
         if (foreignKeyMap != null) {
-            clone.setForeignKeyMap(new HashMap(this.foreignKeyMap));
+            clone.setForeignKeyMap(new HashMap<>(this.foreignKeyMap));
         }
         if (uniqueKeys != null) {
-            clone.setUniqueKeys(new ArrayList(this.uniqueKeys));
+            clone.setUniqueKeys(new ArrayList<>(this.uniqueKeys));
         }
         return clone;
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TypeDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TypeDefinition.java
index da86a28..1b15938 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TypeDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/TypeDefinition.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
@@ -25,10 +25,10 @@
  * </p>
  */
 public class TypeDefinition extends DatabaseObjectDefinition {
-    protected Vector fields;
+    protected List<FieldDefinition> fields;
 
     public TypeDefinition() {
-        this.fields = new Vector();
+        this.fields = new Vector<>();
     }
 
     /**
@@ -72,7 +72,7 @@
      * Add the field to the type.
      */
     public void addField(FieldDefinition field) {
-        this.getFields().addElement(field);
+        this.getFields().add(field);
     }
 
     /**
@@ -83,10 +83,11 @@
     public Writer buildCreationWriter(AbstractSession session, Writer writer) throws ValidationException {
         try {
             writer.write("CREATE TYPE " + getFullName() + " AS OBJECT (");
-            for (Enumeration fieldsEnum = getFields().elements(); fieldsEnum.hasMoreElements();) {
-                FieldDefinition field = (FieldDefinition)fieldsEnum.nextElement();
+            List<FieldDefinition> fields = getFields();
+            for (int i = 0; i < getFields().size(); i++) {
+                FieldDefinition field = fields.get(i);
                 field.appendTypeString(writer, session);
-                if (fieldsEnum.hasMoreElements()) {
+                if (i + 1 < fields.size()) {
                     writer.write(", ");
                 }
             }
@@ -111,11 +112,11 @@
         return writer;
     }
 
-    public Vector getFields() {
+    public List<FieldDefinition> getFields() {
         return fields;
     }
 
-    public void setFields(Vector fields) {
+    public void setFields(List<FieldDefinition> fields) {
         this.fields = fields;
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
index 5c85522..2867a02 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
@@ -62,7 +62,7 @@
             writer.write("UNIQUE (");
             for (Enumeration<String> sourceEnum = getSourceFields().elements();
                  sourceEnum.hasMoreElements();) {
-                writer.write((String)sourceEnum.nextElement());
+                writer.write(sourceEnum.nextElement());
                 if (sourceEnum.hasMoreElements()) {
                     writer.write(", ");
                 }
diff --git a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/OXTestCase.java b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
index 5208694..1174455 100644
--- a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
+++ b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
@@ -130,7 +130,7 @@
             Collection<ClassDescriptor> descriptors = project.getDescriptors().values();
             Iterator<ClassDescriptor> iter = descriptors.iterator();
             while (iter.hasNext()) {
-                ClassDescriptor nextDesc = (ClassDescriptor)iter.next();
+                ClassDescriptor nextDesc = iter.next();
                 if (nextDesc instanceof org.eclipse.persistence.oxm.XMLDescriptor) {
                     ((org.eclipse.persistence.oxm.XMLDescriptor)nextDesc).setShouldPreserveDocument(true);
                 }
diff --git a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/mappings/EISMappingTestCases.java b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/mappings/EISMappingTestCases.java
index 641d301..a78f01e 100644
--- a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/mappings/EISMappingTestCases.java
+++ b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/oxm/mappings/EISMappingTestCases.java
@@ -100,7 +100,7 @@
             Map<Class<?>, ClassDescriptor> descriptors = project.getDescriptors();
             Iterator<Class<?>> keysIterator = descriptors.keySet().iterator();
             while (keysIterator.hasNext()) {
-                Class nextClass = (Class)keysIterator.next();
+                Class<?> nextClass = keysIterator.next();
                 EISDescriptor next = (EISDescriptor)descriptors.get(nextClass);
                 for (int i = 0; i < next.getMappings().size(); i++) {
                     DatabaseMapping nextMapping = next.getMappings().get(i);
diff --git a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/BasicReadWriteTest.java b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/BasicReadWriteTest.java
index 77494c4..b4f3d04 100644
--- a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/BasicReadWriteTest.java
+++ b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/BasicReadWriteTest.java
@@ -36,7 +36,7 @@
         resultRow = new CobolRow();
         //write to array
         while (fieldEnum.hasMoreElements()) {
-            DatabaseField databaseField = (DatabaseField)fieldEnum.nextElement();
+            DatabaseField databaseField = fieldEnum.nextElement();
             FieldMetaData field = recordMetaData.getFieldNamed(databaseField.getName());
             field.writeOnArray(row, recordData);
         }
@@ -44,7 +44,7 @@
         //write to database row
         fieldEnum = row.getFields().elements();
         while (fieldEnum.hasMoreElements()) {
-            DatabaseField databaseField = (DatabaseField)fieldEnum.nextElement();
+            DatabaseField databaseField = fieldEnum.nextElement();
             FieldMetaData field = recordMetaData.getFieldNamed(databaseField.getName());
             field.writeOnRow(resultRow, recordData);
         }
diff --git a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/CobolTestModel.java b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/CobolTestModel.java
index 478ce67..70d038e 100644
--- a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/CobolTestModel.java
+++ b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/CobolTestModel.java
@@ -518,7 +518,7 @@
 
         Enumeration<DatabaseField> fieldsEnum = row1.getFields().elements();
         while (fieldsEnum.hasMoreElements()) {
-            DatabaseField field = (DatabaseField)fieldsEnum.nextElement();
+            DatabaseField field = fieldsEnum.nextElement();
             DatabaseField fieldMatch = row2.getField(field);
             if (fieldMatch == null) {
                 return false;
diff --git a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/RedefineConverterTest.java b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/RedefineConverterTest.java
index de57960..a0d7661 100644
--- a/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/RedefineConverterTest.java
+++ b/foundation/org.eclipse.persistence.nosql/src/it/java/org/eclipse/persistence/testing/tests/eis/cobol/RedefineConverterTest.java
@@ -38,7 +38,7 @@
         resultRow = new CobolRow();
         //write to array
         while (fieldEnum.hasMoreElements()) {
-            DatabaseField databaseField = (DatabaseField)fieldEnum.nextElement();
+            DatabaseField databaseField = fieldEnum.nextElement();
             FieldMetaData field = recordMetaData.getFieldNamed(databaseField.getName());
             field.writeOnArray(row, recordData);
         }
@@ -46,7 +46,7 @@
         //write to database row
         fieldEnum = row.getFields().elements();
         while (fieldEnum.hasMoreElements()) {
-            DatabaseField databaseField = (DatabaseField)fieldEnum.nextElement();
+            DatabaseField databaseField = fieldEnum.nextElement();
             FieldMetaData field = recordMetaData.getFieldNamed(databaseField.getName());
             field.writeOnRow(resultRow, recordData);
         }
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/adapters/jms/CciJMSConnectionFactory.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/adapters/jms/CciJMSConnectionFactory.java
index 58df923..fb0f100 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/adapters/jms/CciJMSConnectionFactory.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/adapters/jms/CciJMSConnectionFactory.java
@@ -55,7 +55,7 @@
     public jakarta.resource.cci.Connection getConnection(ConnectionSpec spec) throws EISException {
         CciJMSConnectionSpec jmsSpec = null;
         Session session = null;
-        jakarta.jms.Connection conn = null;
+        QueueConnection conn = null;
         jakarta.jms.ConnectionFactory factory;
 
         try {
@@ -84,7 +84,7 @@
             // 'AUTO_ACKNOWLEDGE' - session automatically acknowledges a client's receipt of a message either:
             //   - when the session has successfully returned from a call to receive
             //   - when the listener the session has called to process the message successfully returns
-            session = ((QueueConnection)conn).createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
+            session = conn.createQueueSession(true, Session.AUTO_ACKNOWLEDGE);
         } catch (Exception e) {
             throw EISException.createException(e);
         }
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/nosql/adapters/mongo/MongoDatabaseInteraction.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/nosql/adapters/mongo/MongoDatabaseInteraction.java
index 162e745..daa0f28 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/nosql/adapters/mongo/MongoDatabaseInteraction.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/nosql/adapters/mongo/MongoDatabaseInteraction.java
@@ -244,7 +244,7 @@
     public MongoRecord buildRecordFromDBObject(Document object) {
         MongoRecord record = new MongoRecord();
         for (Iterator<Map.Entry<String, Object>> iterator = object.entrySet().iterator(); iterator.hasNext(); ) {
-            Map.Entry entry = (Map.Entry)iterator.next();
+            Map.Entry<String, Object> entry = iterator.next();
             if (entry.getValue() instanceof BasicDBList) {
                 List values = new ArrayList();
                 for (Iterator<Object> valuesIterator = ((BasicDBList)entry.getValue()).iterator(); valuesIterator.hasNext(); ) {
diff --git a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/Order.java b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/Order.java
index 3f30e46..b6c492c 100644
--- a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/Order.java
+++ b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/Order.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
@@ -42,9 +42,9 @@
     @OneToOne
     public Customer customer;
     @ElementCollection
-    public List<LineItem> lineItems = new ArrayList();
+    public List<LineItem> lineItems = new ArrayList<>();
     @ElementCollection
-    public List<String> comments = new ArrayList();
+    public List<String> comments = new ArrayList<>();
 
     public String toString() {
         return "Order(" + id + ", " + orderedBy + ", " + address + ", " + lineItems + ", " + comments + ")";
diff --git a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/mapped/Order.java b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/mapped/Order.java
index 101ac8c..aa0e633 100644
--- a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/mapped/Order.java
+++ b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/models/jpa/nosql/mapped/Order.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
@@ -40,9 +40,9 @@
     @OneToOne
     public Customer customer;
     @Basic
-    public List<LineItem> lineItems = new ArrayList();
+    public List<LineItem> lineItems = new ArrayList<>();
     @Basic
-    public List<String> comments = new ArrayList();
+    public List<String> comments = new ArrayList<>();
 
     public String toString() {
         return "Order(" + id + ", " + orderedBy + ", " + address + ", " + lineItems + ")";
diff --git a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/tests/nosql/EntityManagerHelper.java b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/tests/nosql/EntityManagerHelper.java
index e074e68..6f094d8 100644
--- a/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/tests/nosql/EntityManagerHelper.java
+++ b/foundation/org.eclipse.persistence.oracle.nosql/src/it/java/org/eclipse/persistence/testing/tests/nosql/EntityManagerHelper.java
@@ -59,7 +59,7 @@
             return new JEEPlatform();
         } else {
             try {
-                return (ServerPlatform)Class.forName(platformClass).newInstance();
+                return (ServerPlatform)Class.forName(platformClass).getConstructor().newInstance();
             } catch (Exception ex) {
                 LOG.log(SessionLog.WARNING, String.format(
                         "Could not initiaize ServerPlatform: %s", ex.getLocalizedMessage()));
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/CacheInvalidator.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/CacheInvalidator.java
index 7d326d1..33254a3 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/CacheInvalidator.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/CacheInvalidator.java
@@ -61,7 +61,7 @@
         // fill out tableNames collection with all tables' names mapped by all descriptors
         Iterator<ClassDescriptor> descriptors = session.getDescriptors().values().iterator();
         while (descriptors.hasNext()) {
-            ClassDescriptor desc = (ClassDescriptor)descriptors.next();
+            ClassDescriptor desc = descriptors.next();
 
             // Create a Vector containing names of all tables mapped to the descriptor
             Vector descTableNames = desc.getTableNames();
@@ -94,7 +94,7 @@
         // loop through the descriptors to fill out tableNameToClass and tableNameToPkFieldNames
         Iterator<ClassDescriptor> descriptors = session.getDescriptors().values().iterator();
         while (descriptors.hasNext() && !tableNames.isEmpty()) {
-            ClassDescriptor desc = (ClassDescriptor)descriptors.next();
+            ClassDescriptor desc = descriptors.next();
 
             // Create a Vector containing names of all tables mapped to the descriptor
             Vector descTableNames = desc.getTableNames();
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/DbChangeNotificationAdapter.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/DbChangeNotificationAdapter.java
index e12d4f5..a22f0fc 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/DbChangeNotificationAdapter.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/dbchangenotification/DbChangeNotificationAdapter.java
@@ -53,10 +53,10 @@
     public void updateProject(Project project, Session session) {
         Iterator<ClassDescriptor> it = project.getDescriptors().values().iterator();
         while (it.hasNext()) {
-            ClassDescriptor desc = (ClassDescriptor)it.next();
+            ClassDescriptor desc = it.next();
             Enumeration<DatabaseTable> enumDescTableNames = desc.getTables().elements();
             while (enumDescTableNames.hasMoreElements()) {
-                String tableName = ((DatabaseTable)enumDescTableNames.nextElement()).getName();
+                String tableName = enumDescTableNames.nextElement().getName();
                 if (!tableNamesToPkFields.containsKey(tableName)) {
                     while (desc.isChildDescriptor()) {
                         desc = project.getClassDescriptor(desc.getInheritancePolicy().getParentClass());
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni10TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni10TestSet.java
index b7ea302..6911c65 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni10TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni10TestSet.java
@@ -154,9 +154,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(-1);
         boolean worked = false;
@@ -195,6 +195,6 @@
           msg = e.getMessage();
         }
         assertFalse("invocation signtype_in_test with -2 worked: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni1TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni1TestSet.java
index b060586..539326c 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni1TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni1TestSet.java
@@ -156,9 +156,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(1);
         boolean worked = false;
@@ -171,6 +171,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation bool_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni2TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni2TestSet.java
index 85f1e39..a71a85b 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni2TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni2TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(2);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation plsint_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni3TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni3TestSet.java
index 22e112b..613f5fc 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni3TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni3TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(3);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation binaryint_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni4TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni4TestSet.java
index e200a0b..cefa183 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni4TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni4TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(4);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation dec_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni5TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni5TestSet.java
index e49447d..26609ec 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni5TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni5TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(5);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation int_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni6TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni6TestSet.java
index 5569828..33a13f5 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni6TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni6TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(6);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation natural_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni7TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni7TestSet.java
index 90722b1..9b42f07 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni7TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni7TestSet.java
@@ -153,9 +153,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(7);
         boolean worked = false;
@@ -168,6 +168,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation naturaln_in_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni8TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni8TestSet.java
index 570c60d..1dbb1aa 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni8TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni8TestSet.java
@@ -154,9 +154,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(8);
         boolean worked = false;
@@ -182,6 +182,6 @@
           msg = e.getMessage();
         }
         assertFalse("invocation positive_in_test with neg number worked: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni9TestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni9TestSet.java
index 0a98cd7..594ce9e 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni9TestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/Ni9TestSet.java
@@ -154,9 +154,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(9);
         boolean worked = false;
@@ -182,6 +182,6 @@
           msg = e.getMessage();
         }
         assertFalse("invocation positiven_in_test with neg number worked: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiNiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiNiTestSet.java
index 226eb5f..92878f1 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiNiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiNiTestSet.java
@@ -173,9 +173,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(1);
         queryArgs.add("test");
@@ -190,6 +190,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation nijini failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiTestSet.java
index 6975d14..a36c1dc 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiTestSet.java
@@ -164,9 +164,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(0);
         queryArgs.add("test");
@@ -180,6 +180,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation niji failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijijiNiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijijiNiTestSet.java
index 7ce5645..5a63f8f 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijijiNiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijijiNiTestSet.java
@@ -185,9 +185,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(0);
         queryArgs.add("test");
@@ -203,6 +203,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation nijijini failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijioNijioTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijioNijioTestSet.java
index 3d93825..77ea65f 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijioNijioTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijioNijioTestSet.java
@@ -193,9 +193,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(107);
@@ -218,6 +218,6 @@
         assertTrue("wrong y value", y.intValue() == 158);
         String aa = (String)record.get("AA");
         assertTrue("wrong aa value", aa.equals("MERVISH"));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiojiNiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiojiNiTestSet.java
index 5f05ea4..8f27700 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiojiNiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NijiojiNiTestSet.java
@@ -192,9 +192,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(105);
@@ -215,6 +215,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         BigDecimal y = (BigDecimal)record.get("Y");
         assertTrue("wrong y value", y.intValue() == 155);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NoTestSet.java
index c76c438..0daac24 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NoTestSet.java
@@ -146,9 +146,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         boolean worked = false;
         String msg = null;
@@ -162,6 +162,6 @@
         assertTrue("invocation no failed: " + msg, worked);
         Integer bool2int = (Integer)o;
         assertTrue("wrong bool2int value", bool2int == 1);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiNoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiNoTestSet.java
index 5933aa7..586a45b 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiNoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiNoTestSet.java
@@ -172,9 +172,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
@@ -194,6 +194,6 @@
         assertTrue("wrong bint2bigdec value", bint2bigdec.intValue() == 42);
         Integer bool2int = (Integer)record.get("Z");
         assertTrue("wrong bool2int value", bool2int == 1);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiTestSet.java
index be27a9d..6e0c930 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojiTestSet.java
@@ -168,9 +168,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("testsdfsdfasdfsdfsdfsdfsdfsdfdfsdfsdffds");
         boolean worked = false;
@@ -189,6 +189,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         BigDecimal x = (BigDecimal)record.get("X");
         assertTrue("wrong x value", x.intValue() == 33);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojijioNoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojijioNoTestSet.java
index bb1f479..4b80477 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojijioNoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/NojijioNoTestSet.java
@@ -186,9 +186,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(104);
@@ -209,6 +209,6 @@
         assertTrue("wrong x value", x.intValue() == 48);
         String z = (String)record.get("Z");
         assertTrue("wrong z value", z.equals("FOOBAR"));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiNijiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiNijiTestSet.java
index 64e1326..4c0d0b9 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiNijiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiNijiTestSet.java
@@ -188,9 +188,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         DataModifyQuery query = (DataModifyQuery)project.getClassDescriptor(Empty.class).
             getQueryManager().getQuery("jiNiNiji");
         Vector queryArgs = new NonSynchronizedVector();
@@ -208,6 +208,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation jiNiNiji failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiTestSet.java
index 0e9b5aa..c79c0e4 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiTestSet.java
@@ -164,9 +164,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
         queryArgs.add(0);
@@ -180,6 +180,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation jiNi failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNijiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNijiTestSet.java
index 3a4ed3e..45d373c 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNijiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNijiTestSet.java
@@ -179,9 +179,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
         queryArgs.add(0);
@@ -196,6 +196,6 @@
           msg = e.getMessage();
         }
         assertTrue("invocation jiniji failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNioTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNioTestSet.java
index 64fb51fb..bde36b4 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNioTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNioTestSet.java
@@ -171,9 +171,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
@@ -192,6 +192,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         Integer bool2int = (Integer)record.get("Y");
         assertTrue("wrong bool2int value", bool2int == 0);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiojiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiojiTestSet.java
index 2a54da5..af2604b 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiojiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNiojiTestSet.java
@@ -184,9 +184,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("snicker-doodle");
@@ -206,6 +206,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         BigDecimal y = (BigDecimal)record.get("Y");
         assertTrue("wrong y value", y.intValue() == 149);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNoTestSet.java
index 17f2c77..6927b92 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNoTestSet.java
@@ -167,9 +167,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
@@ -187,6 +187,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         Integer bool2int = (Integer)record.get("Y");
         assertTrue("wrong bool2int value", bool2int == 0);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNojiTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNojiTestSet.java
index ff4d48b..52250ac 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNojiTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/jiNojiTestSet.java
@@ -179,9 +179,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add("test");
@@ -200,6 +200,6 @@
         DatabaseRecord record = (DatabaseRecord)results.get(0);
         BigDecimal y = (BigDecimal)record.get("Y");
         assertTrue("wrong y value", y.intValue() == 44);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijiNoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijiNoTestSet.java
index e4bfd09..f724db1 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijiNoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijiNoTestSet.java
@@ -185,9 +185,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(100);
@@ -208,6 +208,6 @@
         assertTrue("wrong y value", y.equals("test"));
         Integer aa = (Integer)record.get("AA");
         assertTrue("wrong aa value", aa == 1);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijijoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijijoTestSet.java
index d9db188..3ed74a4 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijijoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijijoTestSet.java
@@ -185,9 +185,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(100);
@@ -208,6 +208,6 @@
         assertTrue("wrong y value", y.equals("test"));
         Integer aa = (Integer)record.get("AA");
         assertTrue("wrong aa value", aa == 1);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijioTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijioTestSet.java
index 20a4021..6a3c86d 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijioTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijioTestSet.java
@@ -180,9 +180,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(1);
@@ -203,6 +203,6 @@
         assertTrue("wrong x value", x.intValue() == 51);
         String z = (String)record.get("Z");
         assertTrue("wrong z value", z.equals("test-thingie"));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijoTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijoTestSet.java
index a8fbd32..143433e 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijoTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/nonJDBC/joNijoTestSet.java
@@ -176,9 +176,9 @@
     @SuppressWarnings("unchecked")
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object o = null;
         Vector queryArgs = new NonSynchronizedVector();
         queryArgs.add(1);
@@ -198,6 +198,6 @@
         assertTrue("wrong y value", y.equals("test"));
         BigDecimal z = (BigDecimal)record.get("Z");
         assertTrue("wrong z value", z.intValue() == 46);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInOutTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInOutTestSet.java
index ba5d50b..0a77478 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInOutTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInOutTestSet.java
@@ -280,9 +280,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         NonSynchronizedVector queryArgs = new NonSynchronizedVector();
         queryArgs.add(new BigDecimal(10));
         queryArgs.add("MikeNorman");
@@ -312,6 +312,6 @@
         assertTrue("incorrect SAL" , result.salary.equals(3500F));
         assertNull("COMM is supposed to be null", result.commission);
         assertTrue("incorrect DEPTNO" , result.department.equals(new BigDecimal(20)));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInTestSet.java
index a634a5c..9ddba7a 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordInTestSet.java
@@ -273,9 +273,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         NonSynchronizedVector queryArgs = new NonSynchronizedVector();
         queryArgs.add(new BigDecimal(10));
         queryArgs.add("MikeNorman");
@@ -295,6 +295,6 @@
             msg = e.getMessage();
         }
         assertTrue("invocation rec_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordOutTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordOutTestSet.java
index 44f1519..2ffefd1 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordOutTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordOutTestSet.java
@@ -242,9 +242,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         OutputRowSessionEventAdapter outputParametersDetected
             = new OutputRowSessionEventAdapter();
         s.getEventManager().addListener(outputParametersDetected);
@@ -276,6 +276,6 @@
         assertNull("COMM is supposed to be null",  record.get("COMM"));
         assertTrue("incorrect DEPTNO" ,
             record.get("DEPTNO").equals(new BigDecimal(20)));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInOutTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInOutTestSet.java
index fad6747..83cc782 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInOutTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInOutTestSet.java
@@ -262,9 +262,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object[] attributes = {
             new BigDecimal(10),
             "MikeNorman",
@@ -304,6 +304,6 @@
         assertNull("MGR is supposed to be null",  result.manager);
         assertTrue("incorrect SAL" , result.salary.equals(3500F));
         assertTrue("incorrect DEPTNO" , result.department.equals(new BigDecimal(20)));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInTestSet.java
index fd94cce..03995e2 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeInTestSet.java
@@ -254,9 +254,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         Object[] attributes = {
             new BigDecimal(10),
             "MikeNorman",
@@ -288,6 +288,6 @@
             msg = e.getMessage();
         }
         assertTrue("invocation rec_test failed: " + msg, worked);
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeOutTestSet.java b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeOutTestSet.java
index dc81502..eb72640 100644
--- a/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeOutTestSet.java
+++ b/foundation/org.eclipse.persistence.oracle.test/src/it/java/org/eclipse/persistence/testing/tests/plsqlrecord/PLSQLrecordWithCompatibleTypeOutTestSet.java
@@ -249,9 +249,9 @@
 
     @Test
     public void runQuery() {
-        Session s = project.createDatabaseSession();
+        DatabaseSession s = project.createDatabaseSession();
         s.dontLogMessages();
-        ((DatabaseSession)s).login();
+        s.login();
         boolean worked = false;
         String msg = null;
         PLSQLEmployeeType result = null;
@@ -272,6 +272,6 @@
         assertTrue("incorrect SAL" , result.salary.equals(6000F));
         assertNull("COMM is supposed to be null", result.commission);
         assertTrue("incorrect DEPTNO" , result.department.equals(new BigDecimal(20)));
-        ((DatabaseSession)s).logout();
+        s.logout();
     }
 }
diff --git a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
index c74e6fa..2d50185 100644
--- a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
+++ b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/platform/database/oracle/Oracle9Platform.java
@@ -891,7 +891,7 @@
                 }else{
                     Class<XMLTypeFactory> xmlTypeFactoryClass = PrivilegedAccessHelper.getClassForName(className, true, this.getClass().getClassLoader());
                     Constructor<XMLTypeFactory> xmlTypeFactoryConstructor = PrivilegedAccessHelper.getConstructorFor(xmlTypeFactoryClass, new Class[0], true);
-                    xmlTypeFactory = (XMLTypeFactory)PrivilegedAccessHelper.invokeConstructor(xmlTypeFactoryConstructor, new Object[0]);
+                    xmlTypeFactory = PrivilegedAccessHelper.invokeConstructor(xmlTypeFactoryConstructor, new Object[0]);
                 }
             } catch (Exception e) {
                 throw QueryException.reflectiveCallOnTopLinkClassFailed(className, e);
diff --git a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/tools/profiler/oracle/DMSPerformanceProfiler.java b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/tools/profiler/oracle/DMSPerformanceProfiler.java
index d83de5f..f8cc1de 100644
--- a/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/tools/profiler/oracle/DMSPerformanceProfiler.java
+++ b/foundation/org.eclipse.persistence.oracle/src/main/java/org/eclipse/persistence/tools/profiler/oracle/DMSPerformanceProfiler.java
@@ -506,7 +506,7 @@
         if (getSession().isServerSession()) {
             Iterator<String> enumtr = ((ServerSession)getSession()).getConnectionPools().keySet().iterator();
             while (enumtr.hasNext()) {
-                String poolName = (String)enumtr.next();
+                String poolName = enumtr.next();
                 State connectionInUse = State.create(connectionsNoun, ConnectionInUse + "(" + poolName + ")", "", DMSLocalization.buildMessage("connection_in_used"), "not available");
                 getHeavyWeightSensors().put(poolName, connectionInUse);
             }
@@ -665,7 +665,7 @@
         if (weight == DMSConsole.NORMAL) {
             Iterator<Noun> iterator = getNormalWeightNouns().values().iterator();
             while (iterator.hasNext()) {
-                ((Noun)iterator.next()).destroy();
+                iterator.next().destroy();
             }
             getNormalWeightNouns().clear();
             getNormalWeightSensors().clear();
@@ -673,7 +673,7 @@
         if (weight == DMSConsole.HEAVY) {
             Iterator<Noun> iterator = getHeavyWeightNouns().values().iterator();
             while (iterator.hasNext()) {
-                ((Noun)iterator.next()).destroy();
+                iterator.next().destroy();
             }
             getHeavyWeightNouns().clear();
             destroySensorsByWeight(DMSConsole.HEAVY);
@@ -683,7 +683,7 @@
         if (weight == DMSConsole.ALL) {
             Iterator<Noun> iterator = getAllWeightNouns().values().iterator();
             while (iterator.hasNext()) {
-                ((Noun)iterator.next()).destroy();
+                iterator.next().destroy();
             }
             getAllWeightNouns().clear();
             destroySensorsByWeight(DMSConsole.ALL);
diff --git a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/SpringJunitTestCase.java b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/SpringJunitTestCase.java
index 0baa23c..5cc4a85 100644
--- a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/SpringJunitTestCase.java
+++ b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/SpringJunitTestCase.java
@@ -139,7 +139,7 @@
         assertTrue(r.getAverageTimeMins() == 150);
 
         em.executeNativeQuery("DELETE FROM SPRING_TLE_ROUTE WHERE (ID="+route.getId()+")");
-        List l = em.createNativeQuery(
+        List<?> l = em.createNativeQuery(
                 "SELECT id as ID, averageTimeMins as AVERAGETIMEMINS FROM SPRING_TLE_ROUTE WHERE (ID="+route.getId()+")", Route.class)
                 .getResultList();
         assertTrue(l.size() == 0);
diff --git a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringAbstractJpaTestsCase.java b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringAbstractJpaTestsCase.java
index bb31b5a..f217b3c 100644
--- a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringAbstractJpaTestsCase.java
+++ b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringAbstractJpaTestsCase.java
@@ -160,7 +160,7 @@
         Truck truck = new Truck("namedQuery");
         try {
             dao.persist(truck);
-            List l = dao.findByNamedQuery("findTruckByDriverName", "namedQuery");
+            List<?> l = dao.findByNamedQuery("findTruckByDriverName", "namedQuery");
             assertTrue(l.contains(truck));
         }catch (Exception e){
             assertFalse("Error during named query: " + e, true);
diff --git a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringDao.java b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringDao.java
index 15458f4..73014c2 100644
--- a/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringDao.java
+++ b/jpa/eclipselink.jpa.spring.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/spring/dao/SpringDao.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
@@ -73,7 +73,7 @@
         entityManager.refresh(obj);
     }
 
-    public List findByNamedQuery(String query, String driverName) {
+    public List<?> findByNamedQuery(String query, String driverName) {
         Query q = entityManager.createNamedQuery(query);
         q.setParameter(1, driverName);
         return q.getResultList();
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/advanced/Customizer.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/advanced/Customizer.java
index 97ddd0d..6c3f2e6 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/advanced/Customizer.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/advanced/Customizer.java
@@ -65,7 +65,7 @@
 
         if (Boolean.parseBoolean(System.getProperty("sop"))) {
             boolean isRecoverable = Boolean.parseBoolean(System.getProperty("sop.recoverable"));
-            Class sopClass = Class.forName("oracle.toplink.exalogic.sop.SerializedObjectPolicy");
+            Class<?> sopClass = Class.forName("oracle.toplink.exalogic.sop.SerializedObjectPolicy");
             Method setIsRecoverableMethod = null;
             if (isRecoverable) {
                 setIsRecoverableMethod = sopClass.getDeclaredMethod("setIsRecoverable", new Class[] {boolean.class});
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/complexaggregate/ComplexAggregateTableCreator.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/complexaggregate/ComplexAggregateTableCreator.java
index 3e3edfb..0e0596d 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/complexaggregate/ComplexAggregateTableCreator.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/complexaggregate/ComplexAggregateTableCreator.java
@@ -754,11 +754,11 @@
     @Override
     public void replaceTables(DatabaseSession session, SchemaManager schemaManager) {
         if (session.getPlatform().isH2() || session.getPlatform().isHSQL()) {
-            for (Iterator iterator = getTableDefinitions().iterator(); iterator.hasNext(); ) {
-                TableDefinition table = (TableDefinition)iterator.next();
+            for (Iterator<TableDefinition> iterator = getTableDefinitions().iterator(); iterator.hasNext(); ) {
+                TableDefinition table = iterator.next();
                 if (table.getName().equals("CMP3_CITYSLICKER") || table.getName().equals("CMP3_COUNTRY_DWELLER")) {
-                    for (Iterator fields = table.getFields().iterator(); fields.hasNext(); ) {
-                        ((FieldDefinition)fields.next()).setIsPrimaryKey(false);
+                    for (Iterator<FieldDefinition> fields = table.getFields().iterator(); fields.hasNext(); ) {
+                        fields.next().setIsPrimaryKey(false);
                     }
                 }
             }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/datetime/DateTimePopulator.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/datetime/DateTimePopulator.java
index e1126ba..2aa9247 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/datetime/DateTimePopulator.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/datetime/DateTimePopulator.java
@@ -48,7 +48,7 @@
         boolean hasSetTruncateDate = false;
         if (session.getPlatform().isOracle9()) {
             try {
-                Class clazz = PrivilegedAccessHelper.getClassForName("org.eclipse.persistence.platform.database.oracle.Oracle9Platform");
+                Class<Object> clazz = PrivilegedAccessHelper.getClassForName("org.eclipse.persistence.platform.database.oracle.Oracle9Platform");
                 Method getDriverVersionMethod = PrivilegedAccessHelper.getMethod(clazz, "getDriverVersion", null, false);
                 String driverVersion = PrivilegedAccessHelper.invokeMethod(getDriverVersionMethod, session.getPlatform(), null);
                 if (Helper.compareVersions(driverVersion, "12.1") >= 0) {
@@ -72,7 +72,7 @@
         if (hasSetTruncateDate) {
             // Now setting shouldTruncateDate flag back to its original value "false".
             try {
-                Class clazz = PrivilegedAccessHelper.getClassForName("org.eclipse.persistence.platform.database.oracle.Oracle9Platform");
+                Class<Object> clazz = PrivilegedAccessHelper.getClassForName("org.eclipse.persistence.platform.database.oracle.Oracle9Platform");
                 Method setShouldTruncateDateMethod = PrivilegedAccessHelper.getMethod(clazz, "setShouldTruncateDate", new Class[]{boolean.class}, false);
                 PrivilegedAccessHelper.invokeMethod(setShouldTruncateDateMethod, session.getPlatform(), new Object[]{false});
             } catch (Exception ex) {
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/extensibility/Address.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/extensibility/Address.java
index 5684d85..409d3c7 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/extensibility/Address.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/extensibility/Address.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
@@ -14,7 +14,6 @@
 //     tware - initial implementation as part of extensibility feature
 package org.eclipse.persistence.testing.models.jpa.extensibility;
 
-import java.beans.PropertyChangeListener;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -22,7 +21,6 @@
 import jakarta.persistence.Entity;
 import jakarta.persistence.GeneratedValue;
 import jakarta.persistence.Id;
-import jakarta.persistence.Transient;
 import jakarta.persistence.Table;
 
 import org.eclipse.persistence.annotations.VirtualAccessMethods;
@@ -113,7 +111,7 @@
         buf.append(city + ", ");
         buf.append(country + ", ");
         buf.append(postalCode);
-        Iterator i = extensions.keySet().iterator();
+        Iterator<String> i = extensions.keySet().iterator();
         while (i.hasNext()){
             buf.append("," + extensions.get(i.next()));
         }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/performance2/Populate.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/performance2/Populate.java
index e34030d..61cc064 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/performance2/Populate.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/performance2/Populate.java
@@ -620,7 +620,7 @@
      */
     public void assertCount(EntityManager em, Class entityClass, int count) {
         CriteriaBuilder cb = em.getCriteriaBuilder();
-        CriteriaQuery criteria = cb.createQuery();
+        CriteriaQuery<Object> criteria = cb.createQuery();
         Root entity = criteria.from(entityClass);
         criteria.select(cb.count(entity));
         Query query = em.createQuery(criteria);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/relationships/CustomerServiceRepresentative.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/relationships/CustomerServiceRepresentative.java
index e1ca35b..ee75412 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/relationships/CustomerServiceRepresentative.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/relationships/CustomerServiceRepresentative.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
@@ -32,7 +32,7 @@
 
     private int id;
     private String name = null;
-    private List customers = new ArrayList<Customer>();
+    private List<Customer> customers = new ArrayList<Customer>();
 
     @Id
     @GeneratedValue(strategy=TABLE, generator="CUSTOMER_TABLE_GENERATOR")
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/xml/complexaggregate/ComplexAggregateTableCreator.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/xml/complexaggregate/ComplexAggregateTableCreator.java
index d1c9c91..eeea57e 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/xml/complexaggregate/ComplexAggregateTableCreator.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/models/jpa/xml/complexaggregate/ComplexAggregateTableCreator.java
@@ -545,11 +545,11 @@
     @Override
     public void replaceTables(DatabaseSession session, SchemaManager schemaManager) {
         if (session.getPlatform().isH2() || session.getPlatform().isHSQL()) {
-            for (Iterator iterator = getTableDefinitions().iterator(); iterator.hasNext(); ) {
-                TableDefinition table = (TableDefinition)iterator.next();
+            for (Iterator<TableDefinition> iterator = getTableDefinitions().iterator(); iterator.hasNext(); ) {
+                TableDefinition table = iterator.next();
                 if (table.getName().equals("XML_CITYSLICKER") || table.getName().equals("XML_COUNTRY_DWELLER")) {
-                    for (Iterator fields = table.getFields().iterator(); fields.hasNext(); ) {
-                        ((FieldDefinition)fields.next()).setIsPrimaryKey(false);
+                    for (Iterator<FieldDefinition> fields = table.getFields().iterator(); fields.hasNext(); ) {
+                        fields.next().setIsPrimaryKey(false);
                     }
                 }
             }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/AdvancedJPAJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/AdvancedJPAJunitTest.java
index cd532ff..37354d2 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/AdvancedJPAJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/AdvancedJPAJunitTest.java
@@ -43,7 +43,6 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
-import java.util.Random;
 import java.util.Set;
 import java.util.Vector;
 
@@ -63,7 +62,6 @@
 import jakarta.persistence.spi.ProviderUtil;
 
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.eclipse.persistence.annotations.BatchFetchType;
@@ -161,7 +159,6 @@
 import org.eclipse.persistence.testing.models.jpa.advanced.additionalcriteria.Sandwich;
 import org.eclipse.persistence.testing.models.jpa.advanced.additionalcriteria.School;
 import org.eclipse.persistence.testing.models.jpa.advanced.additionalcriteria.Student;
-import org.eclipse.persistence.testing.models.jpa.advanced.MyTestEntity;
 import org.eclipse.persistence.tools.schemaframework.SchemaManager;
 import org.eclipse.persistence.tools.schemaframework.StoredFunctionDefinition;
 import org.eclipse.persistence.exceptions.QueryException;
@@ -894,7 +891,7 @@
         assertEquals(budgetSingularAttribute, budgetAttribute);
         assertTrue(declaredAttributes.contains(budgetSingularAttribute));
         // check the type
-        Class budgetClass = budgetSingularAttribute.getJavaType();
+        Class<?> budgetClass = budgetSingularAttribute.getJavaType();
         // Verify whether we expect a boxed class or not
         assertEquals(double.class, budgetClass);
         //assertEquals(Double.class, budgetClass);
@@ -910,7 +907,7 @@
         assertEquals(PersistenceType.ENTITY, entityBuyer.getPersistenceType());
         assertEquals(Buyer.class, entityBuyer.getJavaType());
         // verify EnumSet is a SingularAttribute
-        Attribute buyingDaysAttribute = entityBuyer.getAttribute("buyingDays");
+        Attribute<? super Buyer, ?> buyingDaysAttribute = entityBuyer.getAttribute("buyingDays");
         assertNotNull(buyingDaysAttribute);
         // Check persistent attribute type
         assertEquals(PersistentAttributeType.BASIC, buyingDaysAttribute.getPersistentAttributeType());
@@ -942,7 +939,7 @@
         //* @param <K> The type of the key of the represented Map
         //* @param <V> The type of the value of the represented Map
         //public class MapAttributeImpl<X, K, V> extends PluralAttributeImpl<X, java.util.Map<K, V>, V>
-        Attribute buyerCreditCards = entityBuyer.getAttribute("creditCards");
+        Attribute<? super Buyer, ?> buyerCreditCards = entityBuyer.getAttribute("creditCards");
         assertNotNull(buyerCreditCards);
         assertTrue(buyerCreditCards.isCollection());
         assertTrue(buyerCreditCards instanceof MapAttributeImpl);
@@ -2180,7 +2177,7 @@
 
     public void testRelationshipReadDuringClone(){
         EntityManager em = createEntityManager();
-        Session session = getServerSession();
+        AbstractSession session = getServerSession();
         ClassDescriptor departmentDesc = session.getDescriptor(Department.class);
         DescriptorEventAdapter listener = new DescriptorEventAdapter(){
             @Override
@@ -2191,7 +2188,7 @@
         departmentDesc.getDescriptorEventManager().addListener(listener);
         em.createQuery("SELECT e from Equipment e where e.department is not null").getResultList();
         departmentDesc.getDescriptorEventManager().removeListener(listener);
-        departmentDesc.getDescriptorEventManager().initialize((AbstractSession) session);
+        departmentDesc.getDescriptorEventManager().initialize(session);
         closeEntityManager(em);
     }
 
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMCascadingRemoveAndFlushTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMCascadingRemoveAndFlushTest.java
index a027e32..24e9fa1 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMCascadingRemoveAndFlushTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMCascadingRemoveAndFlushTest.java
@@ -58,8 +58,8 @@
         try {
             beginTransaction();
             Employee employee = getEntityManager().find(Employee.class, empIDs[0]);
-            for (Iterator phones = employee.getPhoneNumbers().iterator(); phones.hasNext();){
-                this.phoneIDs.add(((PhoneNumber)phones.next()).buildPK());
+            for (Iterator<PhoneNumber> phones = employee.getPhoneNumbers().iterator(); phones.hasNext();){
+                this.phoneIDs.add(phones.next().buildPK());
             }
             getEntityManager().remove(employee);
 
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMRemoveAndCommitTests.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMRemoveAndCommitTests.java
index 5fe5b98..181f0f1 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMRemoveAndCommitTests.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EMRemoveAndCommitTests.java
@@ -128,8 +128,8 @@
                 }
                 employee.getManagedEmployees().remove(report);
             }
-            for (Iterator phones = employee.getPhoneNumbers().iterator(); phones.hasNext();){
-                this.phoneIDs.add(((PhoneNumber)phones.next()).buildPK());
+            for (Iterator<PhoneNumber> phones = employee.getPhoneNumbers().iterator(); phones.hasNext();){
+                this.phoneIDs.add(phones.next().buildPK());
             }
             getEntityManager().remove(employee);
             Address address = getEntityManager().find(Address.class, addrIDs[0]);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EntityManagerJUnitTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EntityManagerJUnitTestSuite.java
index c6041fc..102d9ad 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EntityManagerJUnitTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/EntityManagerJUnitTestSuite.java
@@ -72,7 +72,6 @@
 import jakarta.persistence.spi.ProviderUtil;
 import javax.sql.DataSource;
 
-import junit.framework.TestCase;
 import org.eclipse.persistence.annotations.IdValidation;
 import org.eclipse.persistence.config.CacheUsage;
 import org.eclipse.persistence.config.CacheUsageIndirectionPolicy;
@@ -114,6 +113,7 @@
 import org.eclipse.persistence.internal.jpa.deployment.SEPersistenceUnitInfo;
 import org.eclipse.persistence.internal.jpa.jdbc.DataSourceImpl;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
+import org.eclipse.persistence.internal.sessions.ObjectChangeSet;
 import org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork;
 import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl;
 import org.eclipse.persistence.internal.weaving.PersistenceWeaved;
@@ -158,7 +158,6 @@
 import org.eclipse.persistence.sessions.SessionEventAdapter;
 import org.eclipse.persistence.sessions.UnitOfWork;
 import org.eclipse.persistence.sessions.changesets.ChangeRecord;
-import org.eclipse.persistence.sessions.changesets.ObjectChangeSet;
 import org.eclipse.persistence.sessions.changesets.UnitOfWorkChangeSet;
 import org.eclipse.persistence.sessions.server.ClientSession;
 import org.eclipse.persistence.sessions.server.ConnectionPolicy;
@@ -3853,9 +3852,9 @@
         if(!manager_NotInCache.getLastName().endsWith("_Updated")) {
             errorMsg = errorMsg + "manager_NotInCache lastName NOT updated; ";
         }
-        Iterator it = manager_NotInCache.getManagedEmployees().iterator();
+        Iterator<Employee> it = manager_NotInCache.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_1_NotInCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_1_NotInCache lastName NOT updated; ";
@@ -3878,7 +3877,7 @@
         }
         it = manager_InCache.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_1_InCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_1_InCache lastName NOT updated; ";
@@ -3901,7 +3900,7 @@
         }
         it = manager_New.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_2_NotInCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_2_NotInCache_id lastName NOT updated; ";
@@ -5419,7 +5418,7 @@
         EntityManager em = createEntityManager();
         beginTransaction(em);
         try {
-            Map m1 = em.getProperties();
+            Map<String, Object> m1 = em.getProperties();
             m1.remove("eclipselink.weaving");
         } catch (UnsupportedOperationException use) {
             return;
@@ -5977,12 +5976,12 @@
         query.setHint(QueryHints.BATCH_SIZE, "10");
 
         ReadAllQuery raq = (ReadAllQuery)query.getDatabaseQuery();
-        List expressions = raq.getBatchReadAttributeExpressions();
+        List<Expression> expressions = raq.getBatchReadAttributeExpressions();
         assertTrue(expressions.size() == 2);
-        Expression exp = (Expression)expressions.get(0);
+        Expression exp = expressions.get(0);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
-        exp = (Expression)expressions.get(1);
+        exp = expressions.get(1);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
 
@@ -10431,9 +10430,9 @@
             em = createEntityManager();
             beginTransaction(em);
             emp = em.find(Employee.class, id1);
-            Iterator it = emp.getManagedEmployees().iterator();
+            Iterator<Employee> it = emp.getManagedEmployees().iterator();
             while (it.hasNext()) {
-                Employee managedEmp = (Employee) it.next();
+                Employee managedEmp = it.next();
                 it.remove();
                 managedEmp.setManager(null);
                 em.remove(managedEmp);
@@ -11885,14 +11884,14 @@
             // if altering the test, make sure that emp still references (directly or through other objects) all the updated objects, so that all of them are copied.
             Map oldValueMap = copyGroupUpdated.getCopies();
             // using ChangeRecords bring back the original state of the object
-            Iterator itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
+            Iterator<Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet>> itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = ss.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
-                    if(!((org.eclipse.persistence.internal.sessions.ObjectChangeSet)changeSet).shouldBeDeleted() && !changeSet.isNew()) {
+                    org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet = entry.getValue();
+                    if(!changeSet.shouldBeDeleted() && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
                             Object oldValueObject = oldValueMap.get(object);
@@ -11910,12 +11909,12 @@
             // now compare oldValue objects with corresponding backup objects
             itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = ss.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
-                    if(!((org.eclipse.persistence.internal.sessions.ObjectChangeSet)changeSet).shouldBeDeleted() && !changeSet.isNew()) {
+                    ObjectChangeSet changeSet = entry.getValue();
+                    if(!changeSet.shouldBeDeleted() && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
                             Object oldValueObject = oldValueMap.get(object);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/JoinedAttributeAdvancedJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/JoinedAttributeAdvancedJunitTest.java
index 32d9883..646f259 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/JoinedAttributeAdvancedJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/JoinedAttributeAdvancedJunitTest.java
@@ -603,16 +603,16 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("lastName").equal("Way").or(raq.getExpressionBuilder().get("lastName").equal("Jones")));
         Employee emp = (Employee)((Vector)getDbSession().executeQuery(raq)).firstElement();
         emp.getPhoneNumbers();
-        for (Iterator iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
-            ((PhoneNumber)iterator.next()).getOwner();
+        for (Iterator<PhoneNumber> iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
+            iterator.next().getOwner();
         }
 
         raq = new ReadAllQuery(Address.class);
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
@@ -668,16 +668,16 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().notEmpty("phoneNumbers"));
         Employee emp = (Employee)((Vector)getDbSession().executeQuery(raq)).firstElement();
         emp.getPhoneNumbers();
-        for (Iterator iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
-            ((PhoneNumber)iterator.next()).getOwner();
+        for (Iterator<PhoneNumber> iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
+            iterator.next().getOwner();
         }
 
         raq = new ReadAllQuery(Address.class);
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            Employee addrEmp = (Employee)iterator.next();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            Employee addrEmp = iterator.next();
             addrEmp.getAddress();
             addrEmp.getPhoneNumbers().size(); // as the report query will join in all phones to all emps, make sure we can compare.
         }
@@ -749,8 +749,8 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
@@ -900,8 +900,8 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/PessimisticLockingExtendedScopeTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/PessimisticLockingExtendedScopeTestSuite.java
index 238589c..51a9106 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/PessimisticLockingExtendedScopeTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/PessimisticLockingExtendedScopeTestSuite.java
@@ -110,7 +110,7 @@
         }
         final EntyA a = new EntyA();
 
-        final Actor actor = new Actor<EntyA>() {
+        final Actor<EntyA> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
@@ -152,7 +152,7 @@
         }
         final EntyA a = new EntyA();
 
-        final Actor actor = new Actor<EntyA>() {
+        final Actor<EntyA> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
@@ -193,7 +193,7 @@
         }
         final Equipment eq = new Equipment();
 
-        final Actor actor = new Actor<Equipment>() {
+        final Actor<Equipment> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
@@ -241,7 +241,7 @@
         }
         final Employee emp = new Employee();
 
-        final Actor actor = new Actor<Employee>() {
+        final Actor<Employee> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
@@ -282,7 +282,7 @@
         }
         final EntyA entyA = new EntyA();
 
-        final Actor actor = new Actor<EntyA>() {
+        final Actor<EntyA> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
@@ -333,7 +333,7 @@
         }
         final EntyA entyA = new EntyA();
 
-        final Actor actor = new Actor<EntyA>() {
+        final Actor<EntyA> actor = new Actor<>() {
 
             @Override
             public void setup(EntityManager em) {
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/fetchgroup/AdvancedFetchGroupJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/fetchgroup/AdvancedFetchGroupJunitTest.java
index 862e60c..0a31dbd 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/fetchgroup/AdvancedFetchGroupJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/advanced/fetchgroup/AdvancedFetchGroupJunitTest.java
@@ -29,9 +29,7 @@
 
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.descriptors.FetchGroupManager;
-import org.eclipse.persistence.internal.jpa.EntityManagerImpl;
 import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl;
-import org.eclipse.persistence.sessions.UnitOfWork;
 import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
 import org.eclipse.persistence.testing.models.jpa.advanced.fetchgroup.AdvancedFetchGroupTableCreator;
 import org.eclipse.persistence.testing.models.jpa.advanced.fetchgroup.ChestProtector;
@@ -146,8 +144,8 @@
             EntityManager em = createEntityManager();
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "HeightAndWidth");
-            Class PadsClass = Pads.class;
-            Pads pads = (Pads) em.find(PadsClass, padsId, properties);
+            Class<Pads> PadsClass = Pads.class;
+            Pads pads = em.find(PadsClass, padsId, properties);
 
             try {
                 verifyFetchedField(PadsClass.getDeclaredField("height"), pads, 35.5);
@@ -170,8 +168,8 @@
             EntityManager em = createEntityManager();
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "AgeGroup");
-            Class chestProtectorClass = ChestProtector.class;
-            ChestProtector chestProtector = (ChestProtector) em.find(chestProtectorClass, chestProtectorId, properties);
+            Class<ChestProtector> chestProtectorClass = ChestProtector.class;
+            ChestProtector chestProtector = em.find(chestProtectorClass, chestProtectorId, properties);
 
             try {
                 verifyFetchedField(chestProtectorClass.getField("ageGroup"), chestProtector, AgeGroup.INTERMEDIATE);
@@ -192,8 +190,8 @@
             EntityManager em = createEntityManager();
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "MSRP");
-            Class PadsClass = Pads.class;
-            Pads pads = (Pads) em.find(PadsClass, padsId, properties);
+            Class<Pads> PadsClass = Pads.class;
+            Pads pads = em.find(PadsClass, padsId, properties);
 
             try {
                 verifyFetchedField(PadsClass.getField("msrp"), pads, 999.99);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/beanvalidation/BeanValidationJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/beanvalidation/BeanValidationJunitTest.java
index c7e068ff..8d465c9 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/beanvalidation/BeanValidationJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/beanvalidation/BeanValidationJunitTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 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
@@ -132,7 +132,7 @@
         } catch (ConstraintViolationException e) {
             assertTrue("Transaction not marked for roll back when ConstraintViolation is thrown", getRollbackOnly(em)) ;
             Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
-            ConstraintViolation constraintViolation = constraintViolations.iterator().next();
+            ConstraintViolation<?> constraintViolation = constraintViolations.iterator().next();
             Object invalidValue = constraintViolation.getInvalidValue();
             assertTrue("Invalid value should be " + invalidName, invalidName.equals(invalidValue));
             gotConstraintViolations = true;
@@ -166,7 +166,7 @@
         } catch (ConstraintViolationException e) {
             assertTrue("Transaction not marked for roll back when ConstraintViolation is thrown", getRollbackOnly(em)) ;
             Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
-            ConstraintViolation constraintViolation = constraintViolations.iterator().next();
+            ConstraintViolation<?> constraintViolation = constraintViolations.iterator().next();
             Object invalidValue = constraintViolation.getInvalidValue();
             assertTrue("Invalid value should be " + invalidName, invalidName.equals(invalidValue));
             gotConstraintViolations = true;
@@ -204,7 +204,7 @@
         } catch (ConstraintViolationException e) {
             assertTrue("Transaction not marked for roll back when ConstraintViolation is thrown", getRollbackOnly(em)) ;
             Set<ConstraintViolation<?>> constraintViolations = e.getConstraintViolations();
-            ConstraintViolation constraintViolation = constraintViolations.iterator().next();
+            ConstraintViolation<?> constraintViolation = constraintViolations.iterator().next();
             Object invalidValue = constraintViolation.getInvalidValue();
             assertTrue("Invalid value should be " + low_salary, invalidName.equals(invalidValue));
             gotConstraintViolations = true;
@@ -269,17 +269,17 @@
             commitTransaction(em);
           } catch (RuntimeException e) {
             assertFalse("Transaction not marked for roll back when ConstraintViolation is thrown", isTransactionActive(em));;
-            Object cause = e.getCause();
+            Throwable cause = e.getCause();
             while(cause != null) {
                 if (cause instanceof ConstraintViolationException){
                     ConstraintViolationException cve = (ConstraintViolationException)cause;
                     Set<ConstraintViolation<?>> constraintViolations = cve.getConstraintViolations();
-                    ConstraintViolation constraintViolation = constraintViolations.iterator().next();
+                    ConstraintViolation<?> constraintViolation = constraintViolations.iterator().next();
                     assertTrue("Invalid value should be " + invalidName, invalidName.equals(constraintViolation.getInvalidValue() ) );
                     gotConstraintViolations = true;
                     break;
                 }else
-                    cause = ((Throwable)cause).getCause();
+                    cause = cause.getCause();
             }
         } finally {
             if (isTransactionActive(em)) {
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/complexaggregate/ComplexAggregateTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/complexaggregate/ComplexAggregateTestSuite.java
index c4d9d1c..56e3b11 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/complexaggregate/ComplexAggregateTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/complexaggregate/ComplexAggregateTestSuite.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -34,7 +34,6 @@
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.descriptors.changetracking.ChangeTracker;
 import org.eclipse.persistence.internal.descriptors.changetracking.AttributeChangeListener;
-import org.eclipse.persistence.internal.helper.Helper;
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.internal.sessions.DatabaseSessionImpl;
 import org.eclipse.persistence.testing.framework.JoinedAttributeTestHelper;
@@ -322,9 +321,9 @@
 
             World w = em.find(World.class, world.getId());
 
-            Collection css = w.getCitySlickers();
+            Collection<CitySlicker> css = w.getCitySlickers();
             css.toString();
-            Collection cds = w.getCountryDwellers();
+            Collection<CountryDweller> cds = w.getCountryDwellers();
             cds.toString();
 
             // Check the ordering
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTestSuite.java
index 9d8469a..2830c0f 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/composite/advanced/EntityManagerJUnitTestSuite.java
@@ -70,7 +70,6 @@
 import jakarta.persistence.spi.LoadState;
 import jakarta.persistence.spi.ProviderUtil;
 
-import junit.framework.TestCase;
 import org.eclipse.persistence.config.CacheUsage;
 import org.eclipse.persistence.config.CacheUsageIndirectionPolicy;
 import org.eclipse.persistence.config.CascadePolicy;
@@ -105,6 +104,7 @@
 import org.eclipse.persistence.internal.jpa.jdbc.DataSourceImpl;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.internal.sessions.DatabaseSessionImpl;
+import org.eclipse.persistence.internal.sessions.ObjectChangeSet;
 import org.eclipse.persistence.internal.sessions.RepeatableWriteUnitOfWork;
 import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl;
 import org.eclipse.persistence.internal.weaving.PersistenceWeaved;
@@ -115,7 +115,6 @@
 import org.eclipse.persistence.jpa.JpaQuery;
 import org.eclipse.persistence.jpa.PersistenceProvider;
 import org.eclipse.persistence.logging.SessionLog;
-import org.eclipse.persistence.mappings.AggregateObjectMapping;
 import org.eclipse.persistence.mappings.DatabaseMapping;
 import org.eclipse.persistence.platform.server.was.WebSphere_7_Platform;
 import org.eclipse.persistence.queries.CursoredStreamPolicy;
@@ -145,7 +144,6 @@
 import org.eclipse.persistence.sessions.UnitOfWork;
 import org.eclipse.persistence.sessions.broker.SessionBroker;
 import org.eclipse.persistence.sessions.changesets.ChangeRecord;
-import org.eclipse.persistence.sessions.changesets.ObjectChangeSet;
 import org.eclipse.persistence.sessions.changesets.UnitOfWorkChangeSet;
 import org.eclipse.persistence.sessions.server.ClientSession;
 import org.eclipse.persistence.sessions.server.ConnectionPolicy;
@@ -3828,9 +3826,9 @@
         if(!manager_NotInCache.getLastName().endsWith("_Updated")) {
             errorMsg = errorMsg + "manager_NotInCache lastName NOT updated; ";
         }
-        Iterator it = manager_NotInCache.getManagedEmployees().iterator();
+        Iterator<Employee> it = manager_NotInCache.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_1_NotInCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_1_NotInCache lastName NOT updated; ";
@@ -3853,7 +3851,7 @@
         }
         it = manager_InCache.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_1_InCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_1_InCache lastName NOT updated; ";
@@ -3876,7 +3874,7 @@
         }
         it = manager_New.getManagedEmployees().iterator();
         while(it.hasNext()) {
-            Employee emp = (Employee)it.next();
+            Employee emp = it.next();
             if(emp.getId() == employee_2_NotInCache_id) {
                 if(!emp.getLastName().endsWith("_Updated")) {
                     errorMsg = errorMsg + "employee_2_NotInCache_id lastName NOT updated; ";
@@ -4922,7 +4920,7 @@
         EntityManager em = createEntityManager();
         beginTransaction(em);
         try {
-            Map m1 = em.getProperties();
+            Map<String, Object> m1 = em.getProperties();
             m1.remove("eclipselink.weaving");
         } catch (UnsupportedOperationException use) {
             return;
@@ -5380,12 +5378,12 @@
         query.setHint(QueryHints.BATCH_SIZE, "10");
 
         ReadAllQuery raq = (ReadAllQuery)query.getDatabaseQuery();
-        List expressions = raq.getBatchReadAttributeExpressions();
+        List<Expression> expressions = raq.getBatchReadAttributeExpressions();
         assertTrue(expressions.size() == 2);
-        Expression exp = (Expression)expressions.get(0);
+        Expression exp = expressions.get(0);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
-        exp = (Expression)expressions.get(1);
+        exp = expressions.get(1);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
 
@@ -5400,9 +5398,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
@@ -5494,9 +5492,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
@@ -9320,9 +9318,9 @@
             beginTransaction(em);
             try {
                 emp = em.find(Employee.class, id1);
-                Iterator it = emp.getManagedEmployees().iterator();
+                Iterator<Employee> it = emp.getManagedEmployees().iterator();
                 while (it.hasNext()) {
-                    Employee managedEmp = (Employee) it.next();
+                    Employee managedEmp = it.next();
                     it.remove();
                     managedEmp.setManager(null);
                     em.remove(managedEmp);
@@ -10341,14 +10339,14 @@
             // if altering the test, make sure that emp still references (directly or through other objects) all the updated objects, so that all of them are copied.
             Map oldValueMap = copyGroupUpdated.getCopies();
             // using ChangeRecords bring back the original state of the object
-            Iterator itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
+            Iterator<Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet>> itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = dbs.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
-                    if(!((org.eclipse.persistence.internal.sessions.ObjectChangeSet)changeSet).shouldBeDeleted() && !changeSet.isNew()) {
+                    org.eclipse.persistence.internal.sessions.ObjectChangeSet changeSet = entry.getValue();
+                    if(!changeSet.shouldBeDeleted() && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
                             Object oldValueObject = oldValueMap.get(object);
@@ -10366,12 +10364,12 @@
             // now compare oldValue objects with corresponding backup objects
             itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = dbs.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
-                    if(!((org.eclipse.persistence.internal.sessions.ObjectChangeSet)changeSet).shouldBeDeleted() && !changeSet.isNew()) {
+                    ObjectChangeSet changeSet = entry.getValue();
+                    if(!changeSet.shouldBeDeleted() && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
                             Object oldValueObject = oldValueMap.get(object);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/config/ConfigPUTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/config/ConfigPUTestSuite.java
index a43dcb6..aff6d2f 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/config/ConfigPUTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/config/ConfigPUTestSuite.java
@@ -92,7 +92,7 @@
         PersistenceUnit pu = new PersistenceUnitImpl("ConfigPUTestSuite", Thread.currentThread().getContextClassLoader());
 
         // Need to get the user specified database properties.
-        Map properties = JUnitTestCaseHelper.getDatabaseProperties();
+        Map<String, String> properties = JUnitTestCaseHelper.getDatabaseProperties();
         pu.setProperty(JDBC_DRIVER, properties.get(JDBC_DRIVER));
         pu.setProperty(JDBC_URL, properties.get(JDBC_URL));
         pu.setProperty(JDBC_USER, properties.get(JDBC_USER));
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedCriteriaQueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedCriteriaQueryTestSuite.java
index 6d237cc..7dab206 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedCriteriaQueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedCriteriaQueryTestSuite.java
@@ -244,7 +244,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             CriteriaQuery<Tuple> cq = qb.createQuery(Tuple.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.multiselect(from.get("id"), from.get("firstName"));
             cq.where(qb.and(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")), qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName"))));
             TypedQuery<Tuple> typedQuery = em.createQuery(cq);
@@ -473,7 +473,7 @@
             CriteriaBuilder qbuilder = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cquery =qbuilder.createQuery(Employee.class);
             Root<Employee> emp = cquery.from(Employee.class);
-            ParameterExpression pe = qbuilder.parameter(java.util.Collection.class, "param");
+            ParameterExpression<Collection> pe = qbuilder.parameter(java.util.Collection.class, "param");
             cquery.where(emp.join("responsibilities").in(pe));
             List<Employee> result = em.createQuery(cquery).setParameter("param",respons).getResultList();
             assertFalse("testInParameterCollection failed: No Employees were returned", result.isEmpty());
@@ -1682,7 +1682,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(0);
@@ -1691,7 +1691,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheByExactPrimaryKey);
@@ -1780,7 +1780,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -1789,7 +1789,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheThenDatabase);
@@ -1819,7 +1819,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -1828,7 +1828,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheOnly);
@@ -1856,7 +1856,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -1869,7 +1869,7 @@
             em = createEntityManager();
             beginTransaction(em);
             cq = qb.createQuery(Employee.class);
-             Root from = cq.from(Employee.class);
+             Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.QUERY_TYPE, QueryType.ReadObject);
@@ -1917,8 +1917,8 @@
             CriteriaBuilder qbuilder = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cquery = qbuilder.createQuery(Employee.class);
             Root<Employee> customer = cquery.from(Employee.class);
-            Path pathToIgnore = customer.get("manager").get("address");
-            Join manager = customer.join("manager", JoinType.LEFT);
+            Path<Object> pathToIgnore = customer.get("manager").get("address");
+            Join<Object, Object> manager = customer.join("manager", JoinType.LEFT);
 
             TypedQuery<Employee> tquery = em.createQuery(cquery);
             List<Employee> result = tquery.getResultList();
@@ -1942,7 +1942,7 @@
             CriteriaBuilder qbuilder = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cquery = qbuilder.createQuery(Employee.class);
             Root<Employee> customer = cquery.from(Employee.class);
-            Path pathToIgnore = customer.get("manager").get("address");
+            Path<Object> pathToIgnore = customer.get("manager").get("address");
             customer.fetch("manager", JoinType.LEFT);
 
             TypedQuery<Employee> tquery = em.createQuery(cquery);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedQueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedQueryTestSuite.java
index cedf268..31bf9f3 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedQueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/AdvancedQueryTestSuite.java
@@ -145,7 +145,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(0);
@@ -195,7 +195,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             CriteriaQuery<Tuple> cq = qb.createQuery(Tuple.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.multiselect(from.get("id"), from.get("firstName"));
             cq.where(qb.and(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")), qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName"))));
             TypedQuery<Tuple> typedQuery = em.createQuery(cq);
@@ -426,7 +426,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(0);
@@ -435,7 +435,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheByExactPrimaryKey);
@@ -465,7 +465,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -474,7 +474,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheThenDatabase);
@@ -504,7 +504,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -513,7 +513,7 @@
             counter = new QuerySQLTracker(getServerSession());
             // Query by primary key.
             cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("firstName"), qb.parameter(from.get("firstName").getModel().getBindableJavaType(), "firstName")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.CACHE_USAGE, CacheUsage.CheckCacheOnly);
@@ -541,7 +541,7 @@
         try {
             // Load an employee into the cache.
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Query query = em.createQuery(cq);
             List result = query.getResultList();
             Employee employee = (Employee)result.get(result.size() - 1);
@@ -554,7 +554,7 @@
             em = createEntityManager();
             beginTransaction(em);
             cq = qb.createQuery(Employee.class);
-             Root from = cq.from(Employee.class);
+             Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("id"), qb.parameter(from.get("id").getModel().getBindableJavaType(), "id")));
             query = em.createQuery(cq);
             query.setHint(QueryHints.QUERY_TYPE, QueryType.ReadObject);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuite.java
index acf19b9..073ba4e 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuite.java
@@ -160,7 +160,7 @@
             int numRead = emps.size();
 
             // "SELECT e FROM Employee e WHERE :arg1=:arg2");
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             cq.where(qb.equal(qb.parameter(Integer.class, "arg1"), qb.parameter(Integer.class, "arg2")));
             query = em.createQuery(cq);
 
@@ -192,7 +192,7 @@
             int numRead = emps.size();
 
             // "SELECT e FROM Employee e WHERE 1=1");
-            CriteriaQuery cq = qb.createQuery(Employee.class);
+            CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             cq.where(qb.equal(qb.literal(1), 1));
             emps = em.createQuery(cq).getResultList();
 
@@ -221,8 +221,8 @@
         CriteriaQuery<Tuple> criteria = qb.createTupleQuery();
 
         Root<Employee> emp = criteria.from(Employee.class);
-        Path unusedTupleElement = emp.get("normalHours"); // Receives IllegalArgumentException if metamodel is used
-        Path lastName = emp.get("lastName");
+        Path<Object> unusedTupleElement = emp.get("normalHours"); // Receives IllegalArgumentException if metamodel is used
+        Path<Object> lastName = emp.get("lastName");
         criteria.multiselect(lastName, emp.get("firstName"));
 
         TypedQuery<Tuple> query = em.createQuery(criteria);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuiteBase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuiteBase.java
index 3412de8..b845553 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuiteBase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaSimpleTestSuiteBase.java
@@ -371,7 +371,7 @@
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = wrapper.from(cq, Employee.class);
         wrapper.fetch(root, Employee_phoneNumbers, JoinType.LEFT);
-        List result = em.createQuery(cq).getResultList();
+        List<Employee> result = em.createQuery(cq).getResultList();
 
         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
         ObjectOutputStream stream = new ObjectOutputStream(byteStream);
@@ -455,7 +455,7 @@
             clearCache();
 
             //"SELECT OBJECT(emp) FROM Employee emp"
-            List result = em.createQuery(em.getCriteriaBuilder().createQuery(Employee.class)).getResultList();
+            List<Employee> result = em.createQuery(em.getCriteriaBuilder().createQuery(Employee.class)).getResultList();
 
             assertTrue("Base Test Case Failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -479,7 +479,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where(qb.equal( qb.abs(wrapper.get(root, Employee_salary)), expectedResult.getSalary()) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("ABS test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -515,7 +515,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.between(wrapper.<Employee,Comparable>get(root, Employee_id),
                     qb.<Comparable>literal(empId), qb.<Comparable>literal(employee.getId()) ) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Between test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -544,7 +544,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.equal(wrapper.get(root, Employee_firstName), qb.concat(qb.literal(partOne), qb.literal(partTwo))) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Concat test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -610,7 +610,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.like(qb.concat(wrapper.get(root, Employee_firstName), qb.literal("Smith") ), partOne+"Smith") );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Concat test with constraints failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -645,7 +645,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.like(qb.concat("Smith", wrapper.get(root, Employee_firstName) ), "Smith" + partOne) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Concat test with constraints failed" , comparer.compareObjects(result, expectedResult));
         } finally {
@@ -681,7 +681,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Long> result = em.createQuery(cq).getResultList();
             System.out.println(" results are :"+result);
 
             qb = em.getCriteriaBuilder();
@@ -717,7 +717,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.equal( wrapper.get(root, Employee_firstName), qb.concat(qb.literal(partOne), qb.concat( qb.literal(partTwo), qb.literal(partThree)) ) ) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Concat test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -776,7 +776,7 @@
             cq.where( qb.equal(wrapper.get(root, Employee_lastName), qb.literal(emp.getLastName())));
             beginTransaction(em);
             try {
-                List result = em.createQuery(cq).getResultList();
+                List<String> result = em.createQuery(cq).getResultList();
 
                 assertTrue("Failed to return null value", result.contains(null));
             } finally {
@@ -852,7 +852,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             Predicate firstOr = qb.or(qb.equal(wrapper.get(root, Employee_id), emp1.getId()), qb.equal(wrapper.get(root, Employee_id), emp2.getId()));
             cq.where( qb.or(firstOr, qb.equal(wrapper.get(root, Employee_id), emp3.getId())) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Double OR test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -877,7 +877,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.equal(wrapper.get(root, Employee_firstName), expectedResult.getFirstName() ) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Equals test failed", comparer.compareObjects(expectedResult, result));
         } finally {
@@ -905,7 +905,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Join<Employee, Employee> managedEmp =  wrapper.join(wrapper.from(cq, Employee.class), Employee_managedEmployees);
             cq.where( qb.equal(wrapper.get((Path) wrapper.get(managedEmp, Employee_address), Address_city), "Ottawa" ) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Equals test with Join failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -933,7 +933,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Join<Employee,PhoneNumber> phones = wrapper.join(wrapper.from(cq, Employee.class), Employee_phoneNumbers);
             cq.where( qb.equal(phones, qb.parameter(PhoneNumber.class, "1") ) );
-            List result = em.createQuery(cq).setParameter("1", phoneNumber).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", phoneNumber).getResultList();
 
             assertTrue("CollectionMemberIdentifierEqualsTest failed", comparer.compareObjects(expectedResult, result));
         } finally {
@@ -956,7 +956,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.equal(root, qb.parameter(Employee.class, "1") ) );
-            List result = em.createQuery(cq).setParameter("1", expectedResult).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", expectedResult).getResultList();
 
             assertTrue("abstractSchemaIdentifierEqualsTest failed", comparer.compareObjects(expectedResult, result));
         } finally {
@@ -983,7 +983,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.notEqual(root, qb.parameter(Employee.class, "1") ) );
-            List result = em.createQuery(cq).setParameter("1", emp).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", emp).getResultList();
 
             assertTrue("abstractSchemaIdentifierNotEqualsTest failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1019,7 +1019,7 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = wrapper.from(cq, Employee.class);
-            Join phone = wrapper.join(root, Employee_phoneNumbers);
+            Join<Employee, Object> phone = wrapper.join(root, Employee_phoneNumbers);
             Predicate firstAnd = qb.and( qb.equal(wrapper.get(phone, PhoneNumber_areaCode), empPhoneNumbers.getAreaCode()),
                     qb.equal(wrapper.get(root, Employee_firstName), expectedResult.getFirstName()));
             cq.where( qb.and(firstAnd, qb.equal(wrapper.get(root, Employee_lastName), expectedResult.getLastName())) );
@@ -1064,7 +1064,7 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             cq.where( qb.in(wrapper.get(wrapper.from(cq, Employee.class), Employee_id)).value(expectedResult.getId()) );
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple In Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1089,7 +1089,7 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             cq.where(wrapper.get(wrapper.from(cq, Employee.class), Employee_id).in(qb.parameter(List.class, "result")));
-            List result = em.createQuery(cq).setParameter("result", expectedResultList).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("result", expectedResultList).getResultList();
 
             assertTrue("Simple In Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1117,7 +1117,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.equal( qb.length(wrapper.get(root, Employee_firstName)) , expectedResult.getFirstName().length()) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Length Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1142,7 +1142,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.like( wrapper.get(root, Employee_firstName), partialFirstName) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Like Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1175,7 +1175,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.like( wrapper.get(root, Employee_firstName), qb.parameter(String.class, "1")) );
 
-            List result = em.createQuery(cq).setParameter("1", partialFirstName).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", partialFirstName).getResultList();
 
             assertTrue("Simple Like Test with Parameter failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1220,7 +1220,7 @@
         }
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter("pattern", patternString).setParameter("esc", escChar).getResultList();
+            List<Address> result = em.createQuery(cq).setParameter("pattern", patternString).setParameter("esc", escChar).getResultList();
 
             assertTrue("Simple Escape Underscore test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1254,7 +1254,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.not(qb.between(wrapper.get(root, Employee_id), emp1.getId(), emp2.getId())) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Not Between Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1280,7 +1280,7 @@
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             cq.where( qb.notEqual(wrapper.get(wrapper.from(cq, Employee.class), Employee_id), emp.getId()) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Like Test with Parameter failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1315,7 +1315,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.not(qb.in(wrapper.get(root, Employee_id)).value(emp.getId())) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Not In Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1349,7 +1349,7 @@
             Root<Employee> root = wrapper.from(cq, Employee.class);
             cq.where( qb.notLike(wrapper.get(root, Employee_firstName), partialFirstName ) );
 
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Not Like Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1377,7 +1377,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Or followed by And Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1404,13 +1404,13 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = wrapper.from(cq, Employee.class);
-        jakarta.persistence.criteria.Expression empFName = wrapper.get(root, Employee_firstName);
+        jakarta.persistence.criteria.Expression<Object> empFName = wrapper.get(root, Employee_firstName);
         Predicate andOpp = qb.and(qb.equal(empFName, "Bob"), qb.equal(wrapper.get(root, Employee_lastName), "Smith"));
         cq.where( qb.or( qb.equal(empFName, "John"), andOpp ) );
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Or followed by And With Static Names Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1432,12 +1432,12 @@
         //"SELECT OBJECT(emp) FROM Employee emp WHERE emp.id = " + emp1.getId() + "OR emp.id = " + emp2.getId()
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
-        jakarta.persistence.criteria.Expression empId = wrapper.get(wrapper.from(cq, Employee.class), Employee_id);
+        jakarta.persistence.criteria.Expression<Object> empId = wrapper.get(wrapper.from(cq, Employee.class), Employee_id);
         cq.where( qb.or( qb.equal(empId, emp1.getId()), qb.equal(empId, emp2.getId()) ) );
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
             clearCache();
 
             assertTrue("Simple Or Test failed", comparer.compareObjects(result, expectedResult));
@@ -1476,7 +1476,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter(parameterName, expectedResult.getFirstName()).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter(parameterName, expectedResult.getFirstName()).getResultList();
 
             assertTrue("Simple Parameter Test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1552,7 +1552,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse Abs test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1579,7 +1579,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse Concat test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1602,7 +1602,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse Equals test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1625,7 +1625,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse Length test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1664,7 +1664,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter("1", parameters.get(0)).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", parameters.get(0)).getResultList();
 
             assertTrue("Simple Reverse Parameter test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1701,7 +1701,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse Square Root test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1729,7 +1729,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Reverse SubString test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1766,7 +1766,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Square Root test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -1791,7 +1791,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
             assertTrue("Simple SubString test failed", comparer.compareObjects(result, expectedResult));
         } finally {
             rollbackTransaction(em);
@@ -1988,7 +1988,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Mod test failed", comparer.compareObjects(result, expectedResult));
 
@@ -2034,7 +2034,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Is empty test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2064,7 +2064,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple is not empty test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2108,7 +2108,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Address> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Escape Underscore test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2138,7 +2138,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple small Project Member Of Projects test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2175,7 +2175,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter("1", smallProject).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", smallProject).getResultList();
 
             assertTrue("Simple small Project NOT Member Of Projects test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2208,7 +2208,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Long> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Select Count One To One test failed", expectedResult.elementAt(0).equals(result.get(0)));
         } finally {
@@ -2244,7 +2244,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Address> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple Select One To One test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2281,7 +2281,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<PhoneNumber> result = em.createQuery(cq).getResultList();
 
             assertTrue("Simple select Phonenumber Declared In IN Clause test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2372,7 +2372,7 @@
         sq.select(qb.min(subroot.<Number>get("number")));//number is a string? not sure this will work.
 
         Root<Employee> root = wrapper.from(cq, Employee.class);
-        Join phone = wrapper.join(root, Employee_phoneNumbers);
+        Join<Employee, Object> phone = wrapper.join(root, Employee_phoneNumbers);
         cq.where(qb.equal(wrapper.get(phone, PhoneNumber_number), qb.all(sq)));
 
         beginTransaction(em);
@@ -2539,7 +2539,7 @@
                 qb.parameter(BigDecimal.class, "1").as(Comparable.class), qb.parameter(Integer.class, "2").as(Comparable.class)));
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter("1", empId1).setParameter("2", emp2.getId()).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", empId1).setParameter("2", emp2.getId()).getResultList();
 
             assertTrue("Simple select between with parameter test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2582,7 +2582,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).setParameter("1", empId1).setParameter("2", emp2.getId()).getResultList();
+            List<Employee> result = em.createQuery(cq).setParameter("1", empId1).setParameter("2", emp2.getId()).getResultList();
 
             assertTrue("Simple select between with parameter test failed", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2602,7 +2602,7 @@
         cq.where(qb.equal(wrapper.get(wrapper.from(cq, Employee.class), Employee_status), Employee.EmployeeStatus.FULL_TIME));
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
             result.size();
         } finally {
             rollbackTransaction(em);
@@ -2624,7 +2624,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Project> result = em.createQuery(cq).getResultList();
 
             assertTrue("SimpleTypeTest", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2655,7 +2655,7 @@
         cq.orderBy(qb.asc(wrapper.get(root, Employee_firstName)));
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<String> result = em.createQuery(cq).getResultList();
 
             assertTrue("SimpleTypeTest", comparer.compareObjects(result, expectedResult));
         } finally {
@@ -2674,10 +2674,10 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
-            assertTrue("Incorrect Employee returned", ((Employee)result.get(0)).getFirstName().equals("Bob"));
+            assertTrue("Incorrect Employee returned", result.get(0).getFirstName().equals("Bob"));
 
         } finally {
             rollbackTransaction(em);
@@ -2701,7 +2701,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Object> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
             assertTrue("Incorrect Employee returned", result.get(0).equals("Bob"));
@@ -2725,10 +2725,10 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
-            assertTrue("Incorrect Employee returned", ((Employee)result.get(0)).getFirstName().equals("Bob"));
+            assertTrue("Incorrect Employee returned", result.get(0).getFirstName().equals("Bob"));
         } finally {
             rollbackTransaction(em);
             closeEntityManager(em);
@@ -2751,7 +2751,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Object> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
             assertTrue("Incorrect Employee returned", result.get(0).equals("Robert"));
@@ -2780,10 +2780,10 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Employee> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
-            assertTrue("Incorrect Employee returned", ((Employee)result.get(0)).getFirstName().equals("Bob"));
+            assertTrue("Incorrect Employee returned", result.get(0).getFirstName().equals("Bob"));
         } finally {
             rollbackTransaction(em);
             closeEntityManager(em);
@@ -2811,7 +2811,7 @@
 
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq).getResultList();
+            List<Object> result = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect number of results returned.", result.size() == 1);
             assertTrue("Incorrect Employee returned", result.get(0).equals("Robert"));
@@ -2845,7 +2845,7 @@
         cq1.where(qb1.equal(exp, 5000));
         beginTransaction(em);
         try {
-            List result = em.createQuery(cq1).getResultList();
+            List<Employee> result = em.createQuery(cq1).getResultList();
             assertTrue("LargeProject cast failed.", comparer.compareObjects(result, expectedResult));
         } finally {
             rollbackTransaction(em);
@@ -2902,7 +2902,7 @@
             jakarta.persistence.criteria.Expression exp = wrapper.get((Path)join.as(BlueLight.class), BlueLight_discount);
             cq1.where(qb1.equal(exp, 10) );
 
-            List result = em.createQuery(cq1).getResultList();
+            List<BeerConsumer> result = em.createQuery(cq1).getResultList();
             assertTrue("LargeProject cast failed.", comparer.compareObjects(result, expectedResult));
         } finally {
             if (isTransactionActive(em)) {
@@ -2956,7 +2956,7 @@
             jakarta.persistence.criteria.Expression exp = wrapper.get((Path)join.as(SportsCar.class), SportsCar_maxSpeed);
             cq1.where(qb1.equal(exp, 200) );
 
-            List result = em.createQuery(cq1).getResultList();
+            List<Person> result = em.createQuery(cq1).getResultList();
             assertTrue("OneToOne cast failed.", comparer.compareObjects(result, expectedResult));
         } finally {
             if (isTransactionActive(em)) {
@@ -2976,7 +2976,7 @@
         CriteriaQuery<Tuple> criteria = qb.createTupleQuery();
 
         Root<Employee> emp = wrapper.from(criteria, Employee.class);
-        jakarta.persistence.criteria.Expression exp = wrapper.get(emp, Employee_lastName);
+        jakarta.persistence.criteria.Expression<Object> exp = wrapper.get(emp, Employee_lastName);
 
         criteria.multiselect(exp, qb.count(exp));
         criteria.where(qb.conjunction());
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaUnitTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaUnitTestSuite.java
index 506f200..40ff3e5 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaUnitTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/criteria/JUnitCriteriaUnitTestSuite.java
@@ -20,7 +20,6 @@
 import java.util.Vector;
 import java.util.Iterator;
 
-import junit.framework.TestCase;
 import org.junit.Assert;
 import junit.framework.Test;
 import junit.framework.TestSuite;
@@ -178,7 +177,7 @@
             //SELECT OBJECT(employee) FROM Employee employee WHERE employee.firstName = :firstname
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
-            Root from = cq.from(Employee.class);
+            Root<Employee> from = cq.from(Employee.class);
             cq.where(qb.equal(from.get("firstName"), qb.parameter(String.class, "firstname")));
             Query query = em.createQuery(cq);
 
@@ -223,7 +222,7 @@
         cq.from(Employee.class).join("address", JoinType.LEFT);
         cq.distinct(true);
 
-        List result = em.createQuery(cq).getResultList();
+        List<Employee> result = em.createQuery(cq).getResultList();
 
 
         assertTrue("Outer join was not properly added to the query", initialSize + 1 == result.size());
@@ -272,10 +271,10 @@
            CriteriaBuilder qb = em.getCriteriaBuilder();
            CriteriaQuery<String> cq = qb.createQuery(String.class);
            Root<Employee> root = cq.from(Employee.class);
-           Join phone = root.join("phoneNumbers");
+           Join<Object, Object> phone = root.join("phoneNumbers");
            cq.select(phone.get("areaCode"));
            cq.where(qb.equal(phone.get("areaCode"), "613"));
-           List result = em.createQuery(cq).getResultList();
+           List<String> result = em.createQuery(cq).getResultList();
 
            Assert.assertTrue("SimpleSelectPhoneNumberAreaCode test failed !", comparer.compareObjects(result,expectedResult));
         } finally {
@@ -302,7 +301,7 @@
            Join<Employee, PhoneNumber> sqo = sqc.join("phoneNumbers");
            sq.select(sqo);
            cquery.where(qbuilder.not(qbuilder.exists(sq)));
-           List result = em.createQuery(cquery).getResultList();
+           List<Employee> result = em.createQuery(cquery).getResultList();
            Assert.assertTrue("testExistWithJoin test failed !", comparer.compareObjects(result,expected));
       } finally {
           rollbackTransaction(em);
@@ -348,10 +347,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<String> cq = qb.createQuery(String.class);
             Root<Employee> root = cq.from(Employee.class);
-            Join joinedPhone = root.join("phoneNumbers");
+            Join<Object, Object> joinedPhone = root.join("phoneNumbers");
             cq.select(joinedPhone.get("areaCode"));
             cq.where(qb.and(qb.equal(joinedPhone.get("areaCode"), "613")), qb.equal(joinedPhone.get("owner").get("firstName"), firstName));
-            List result = em.createQuery(cq).getResultList();
+            List<String> result = em.createQuery(cq).getResultList();
 
             Assert.assertTrue("SimpleSelectPhoneNumberAreaCodeWithEmployee test failed !", comparer.compareObjects(result,expectedResult));
         } finally {
@@ -395,12 +394,12 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<String> cq = qb.createQuery(String.class);
             Root<Employee> root = cq.from(Employee.class);
-            Join joinedPhone = root.join("phoneNumbers");
+            Join<Object, Object> joinedPhone = root.join("phoneNumbers");
             cq.select(joinedPhone.get("number"));
             //cq.where(qb.equal(joinedPhone.get("areaCode"), areaCode).add(qb.equal(joinedPhone.get("owner").get("id"), root.get("id"))).add(qb.equal(root.get("firstName"), firstName)));
             Predicate firstAnd = qb.and(qb.equal(joinedPhone.get("areaCode"), areaCode), qb.equal(joinedPhone.get("owner").get("id"), root.get("id")));
             cq.where(qb.and( firstAnd, qb.equal(root.get("firstName"), firstName)));
-            List result = em.createQuery(cq).getResultList();
+            List<String> result = em.createQuery(cq).getResultList();
 
             Assert.assertTrue("SimpleSelectPhoneNumberAreaCodeWithEmployee test failed !", comparer.compareObjects(result,expectedResult));
         } finally {
@@ -442,12 +441,12 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<String> cq = qb.createQuery(String.class);
             Root<Employee> root = cq.from(Employee.class);
-            Join joinedPhone = root.join("phoneNumbers");
+            Join<Object, Object> joinedPhone = root.join("phoneNumbers");
             cq.select(joinedPhone.get("number"));
             Predicate firstNameEquality = qb.equal(joinedPhone.get("owner").get("firstName"), firstName);
             Predicate areaCodeEquality =qb.equal(joinedPhone.get("areaCode"), areaCode);
             cq.where( qb.and(firstNameEquality, areaCodeEquality) );
-            List result = em.createQuery(cq).getResultList();
+            List<String> result = em.createQuery(cq).getResultList();
 
             Assert.assertTrue("SimpleSelectPhoneNumberAreaCodeWithEmployee test failed !", comparer.compareObjects(result,expectedResult));
         } finally {
@@ -521,7 +520,7 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Tuple> cq = qb.createTupleQuery();
             Root<Employee> rootEmp = cq.from(Employee.class);
-            Join joinedManager = rootEmp.join("manager", JoinType.LEFT);
+            Join<Object, Object> joinedManager = rootEmp.join("manager", JoinType.LEFT);
             cq.multiselect(rootEmp.get("id"), joinedManager.get("id"));
 
             Query query = em.createQuery(cq);
@@ -554,9 +553,9 @@
             clearCache();
             //"SELECT e.id FROM Employee e group by e.id"
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery(Integer.class);
+            CriteriaQuery<Integer> cq = qb.createQuery(Integer.class);
             Root<Employee> rootEmp = cq.from(Employee.class);
-            Join joinedManager = rootEmp.join("manager", JoinType.LEFT);
+            Join<Object, Object> joinedManager = rootEmp.join("manager", JoinType.LEFT);
             cq.select(rootEmp.get("id"));
 
             Query query = em.createQuery(cq);
@@ -626,7 +625,7 @@
                 cq.multiselect(rootEmp, rootAddress);
                 cq.where(qb.and( qb.equal(rootAddress.get("city"), "Ottawa"), qb.equal(rootEmp.get("address").get("country"), rootAddress.get("country"))));
 
-                List resultList =  em.createQuery(cq).getResultList();
+                List<Tuple> resultList =  em.createQuery(cq).getResultList();
             } finally {
                 rollbackTransaction(em);
                 closeEntityManager(em);
@@ -653,12 +652,12 @@
             em.flush();
             //"SELECT DISTINCT e.address FROM Employee e"
             CriteriaBuilder qb = em.getCriteriaBuilder();
-            CriteriaQuery cq = qb.createQuery();
+            CriteriaQuery<Object> cq = qb.createQuery();
             Root<Employee> rootEmp = cq.from(Employee.class);
             cq.select(rootEmp.get("address"));
             cq.distinct(true);
 
-            List resultList =  em.createQuery(cq).getResultList();
+            List<Object> resultList =  em.createQuery(cq).getResultList();
         }finally{
             rollbackTransaction(em);
         }
@@ -683,7 +682,7 @@
             Root<Employee> from = cq.from(Employee.class);
             EntityType<Employee> Emp_ = em.getMetamodel().entity(Employee.class);
             cq.multiselect( qb.min(from.get(Emp_.getSingularAttribute("salary", int.class))));
-            List resultList =  em.createQuery(cq).getResultList();
+            List<?> resultList =  em.createQuery(cq).getResultList();
             Object resultObject = resultList.get(0);
             assertTrue("constructor expression test expected DataHolder object, got " + resultObject,(resultObject instanceof DataHolder));
             assertEquals("Expected DataHolder to contain int value of -100, Got :" + resultObject, -100, ((DataHolder)resultObject).getPrimitiveInt());
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerJUnitTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerJUnitTestSuite.java
index 06d5c5d..c644250 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerJUnitTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerJUnitTestSuite.java
@@ -2663,12 +2663,12 @@
         query.setHint(QueryHints.BATCH, "e.manager.phoneNumbers");
 
         ReadAllQuery raq = (ReadAllQuery)query.getDatabaseQuery();
-        List expressions = raq.getBatchReadAttributeExpressions();
+        List<Expression> expressions = raq.getBatchReadAttributeExpressions();
         assertTrue(expressions.size() == 2);
-        Expression exp = (Expression)expressions.get(0);
+        Expression exp = expressions.get(0);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
-        exp = (Expression)expressions.get(1);
+        exp = expressions.get(1);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
 
@@ -2683,9 +2683,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
@@ -2759,9 +2759,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
@@ -5263,13 +5263,13 @@
             // if altering the test, make sure that emp still references (directly or through other objects) all the updated objects, so that all of them are copied.
             Map oldValueMap = copyGroupUpdated.getCopies();
             // using ChangeRecords bring back the original state of the object
-            Iterator itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
+            Iterator<Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet>> itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = session.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
+                    ObjectChangeSet changeSet = entry.getValue();
                     if(!(deleted.contains(object)) && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
@@ -5290,11 +5290,11 @@
             // now compare oldValue objects with corresponding backup objects
             itChangeSets = ((org.eclipse.persistence.internal.sessions.UnitOfWorkChangeSet)listener.uowChangeSet).getCloneToObjectChangeSet().entrySet().iterator();
             while(itChangeSets.hasNext()) {
-                Map.Entry entry = (Map.Entry)itChangeSets.next();
+                Map.Entry<Object, org.eclipse.persistence.internal.sessions.ObjectChangeSet> entry = itChangeSets.next();
                 Object object = entry.getKey();
                 ClassDescriptor descriptor = session.getDescriptor(object);
                 if(!descriptor.isAggregateDescriptor()) {
-                    ObjectChangeSet changeSet = (ObjectChangeSet)entry.getValue();
+                    ObjectChangeSet changeSet = entry.getValue();
                     if(!(deleted.contains(object)) && !changeSet.isNew()) {
                         List<ChangeRecord> changes = changeSet.getChanges();
                         if(changes != null && !changes.isEmpty()) {
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerTLRJUnitTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerTLRJUnitTestSuite.java
index 2085d10..ffc2a65 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerTLRJUnitTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/EntityManagerTLRJUnitTestSuite.java
@@ -2521,12 +2521,12 @@
         query.setHint(QueryHints.BATCH, "e.manager.phoneNumbers");
 
         ReadAllQuery raq = (ReadAllQuery)query.getDatabaseQuery();
-        List expressions = raq.getBatchReadAttributeExpressions();
+        List<Expression> expressions = raq.getBatchReadAttributeExpressions();
         assertTrue(expressions.size() == 2);
-        Expression exp = (Expression)expressions.get(0);
+        Expression exp = expressions.get(0);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
-        exp = (Expression)expressions.get(1);
+        exp = expressions.get(1);
         assertTrue(exp.isQueryKeyExpression());
         assertTrue(exp.getName().equals("phoneNumbers"));
 
@@ -2541,9 +2541,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
@@ -2617,9 +2617,9 @@
 
         beginTransaction(em);
         emp = em.find(Employee.class, id1);
-        Iterator it = emp.getManagedEmployees().iterator();
+        Iterator<Employee> it = emp.getManagedEmployees().iterator();
         while (it.hasNext()){
-            Employee managedEmp = (Employee)it.next();
+            Employee managedEmp = it.next();
             it.remove();
             managedEmp.setManager(null);
             em.remove(managedEmp);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/JoinedAttributeAdvancedJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/JoinedAttributeAdvancedJunitTest.java
index fed6cdd..2fd374f 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/JoinedAttributeAdvancedJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/fieldaccess/advanced/JoinedAttributeAdvancedJunitTest.java
@@ -394,16 +394,16 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("lastName").equal("Way").or(raq.getExpressionBuilder().get("lastName").equal("Jones")));
         Employee emp = (Employee)((Vector)getDbSession().executeQuery(raq)).firstElement();
         emp.getPhoneNumbers();
-        for (Iterator iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
-            ((PhoneNumber)iterator.next()).getOwner();
+        for (Iterator<PhoneNumber> iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
+            iterator.next().getOwner();
         }
 
         raq = new ReadAllQuery(Address.class);
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
@@ -459,16 +459,16 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().notEmpty("phoneNumbers"));
         Employee emp = (Employee)((Vector)getDbSession().executeQuery(raq)).firstElement();
         emp.getPhoneNumbers();
-        for (Iterator iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
-            ((PhoneNumber)iterator.next()).getOwner();
+        for (Iterator<PhoneNumber> iterator = emp.getPhoneNumbers().iterator(); iterator.hasNext();){
+            iterator.next().getOwner();
         }
 
         raq = new ReadAllQuery(Address.class);
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            Employee addrEmp = (Employee)iterator.next();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            Employee addrEmp = iterator.next();
             addrEmp.getAddress();
             addrEmp.getPhoneNumbers().size(); // as the report query will join in all phones to all emps, make sure we can compare.
         }
@@ -540,8 +540,8 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
@@ -603,8 +603,8 @@
         raq.setSelectionCriteria(raq.getExpressionBuilder().get("city").like("%ttawa%"));
         Address addr = (Address)((Vector)getDbSession().executeQuery(raq)).firstElement();
         addr.getEmployees();
-        for (Iterator iterator = addr.getEmployees().iterator(); iterator.hasNext();){
-            ((Employee)iterator.next()).getAddress();
+        for (Iterator<Employee> iterator = addr.getEmployees().iterator(); iterator.hasNext();){
+            iterator.next().getAddress();
         }
 
         getDbSession().getIdentityMapAccessor().initializeAllIdentityMaps();
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/EntityManagerJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/EntityManagerJUnitTestCase.java
index 8802556..8a238ae 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/EntityManagerJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/EntityManagerJUnitTestCase.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
@@ -120,9 +120,9 @@
         Person p = new Person();
         p.setName("Evil Knievel");
 
-        Car c = new SportsCar();
+        SportsCar c = new SportsCar();
         c.setDescription("Ferrari");
-        ((SportsCar) c).setMaxSpeed(200);
+        c.setMaxSpeed(200);
         p.setCar(c);
 
         try {
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/TablePerClassInheritanceJUnitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/TablePerClassInheritanceJUnitTest.java
index b8d4b7a..7522f85 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/TablePerClassInheritanceJUnitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/inheritance/TablePerClassInheritanceJUnitTest.java
@@ -202,10 +202,10 @@
         assertTrue("The elimination was not a direct elimination", directElimination.isDirectElimination());
 
         // Validate the weapon that was used for the direct elimination.
-        Weapon weapon = ((DirectElimination) directElimination).getDirectWeapon();
+        DirectWeapon weapon = ((DirectElimination) directElimination).getDirectWeapon();
         assertNotNull("The direct elimination's weapon was null", weapon);
         assertTrue("The direct elimination's weapon was not a direct weapon", weapon.isDirectWeapon());
-        assertTrue("The direct elimination's weapon was not a gun", ((DirectWeapon) weapon).isGun());
+        assertTrue("The direct elimination's weapon was not a gun", weapon.isGun());
 
         closeEntityManager(em);
     }
@@ -253,10 +253,10 @@
         assertTrue("The elimination was not an idirect elimination", indirectElimination.isIndirectElimination());
 
         // Validate the weapon that was used for the direct elimination.
-        Weapon weapon = ((IndirectElimination) indirectElimination).getIndirectWeapon();
+        IndirectWeapon weapon = ((IndirectElimination) indirectElimination).getIndirectWeapon();
         assertNotNull("The indirect elimination's weapon was null", weapon);
         assertTrue("The indirect elimination's weapon was not an idirect weapon", weapon.isIndirectWeapon());
-        assertTrue("The indirect elimination's weapon was not a bomb", ((IndirectWeapon) weapon).isBomb());
+        assertTrue("The indirect elimination's weapon was not a bomb", weapon.isBomb());
 
         closeEntityManager(em);
     }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpaadvancedproperties/JPAAdvPropertiesJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpaadvancedproperties/JPAAdvPropertiesJUnitTestCase.java
index 6c5560d..84d5fcf 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpaadvancedproperties/JPAAdvPropertiesJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpaadvancedproperties/JPAAdvPropertiesJUnitTestCase.java
@@ -28,6 +28,7 @@
 import junit.framework.TestSuite;
 import org.eclipse.persistence.expressions.Expression;
 import org.eclipse.persistence.expressions.ExpressionBuilder;
+import org.eclipse.persistence.sessions.SessionEventListener;
 import org.eclipse.persistence.sessions.server.ServerSession;
 import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
 import org.eclipse.persistence.testing.models.jpa.jpaadvancedproperties.Customer;
@@ -98,7 +99,7 @@
             em.remove(em.find(org.eclipse.persistence.testing.models.jpa.jpaadvancedproperties.Customer.class, customerId));
             commitTransaction(em);
 
-            List listeners = session.getEventManager().getListeners();
+            List<SessionEventListener> listeners = session.getEventManager().getListeners();
             boolean doseCustomizedSessionEventListenerExists=false;
             for (int i =0;i<listeners.size();i++){
                 Object aListener = listeners.get(i);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexAggregateTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexAggregateTestSuite.java
index 2325516..c4c5f2d 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexAggregateTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexAggregateTestSuite.java
@@ -550,7 +550,7 @@
 
         // Need to create the expected result manually, because using the
         // TopLink query API would run into the same issue 2497.
-        List expectedResult = Arrays.asList(new Long[] {1L, 0L,
+        List<Long> expectedResult = Arrays.asList(new Long[] {1L, 0L,
                 0L, 1L});
         Collections.sort(expectedResult);
 
@@ -578,7 +578,7 @@
 
         // Need to create the expected result manually, because using the
         // TopLink query API would run into the same issue 2497.
-        List expectedResult = Arrays.asList(new Long[] {2L, 5L, 3L});
+        List<Long> expectedResult = Arrays.asList(new Long[] {2L, 5L, 3L});
         Collections.sort(expectedResult);
 
         String jpql = "SELECT COUNT(p) FROM Employee e LEFT JOIN e.phoneNumbers p WHERE e.lastName LIKE 'S%' GROUP BY e.lastName";
@@ -619,7 +619,7 @@
 
             // Need to create the expected result manually, because using the
             // TopLink query API would run into the same issue 6155093.
-            List expectedResult = Arrays.asList(new Long[] {1L});
+            List<Long> expectedResult = Arrays.asList(new Long[] {1L});
             Collections.sort(expectedResult);
 
             // COUNT DISTINCT with inner join
@@ -676,7 +676,7 @@
 
         EntityManager em = createEntityManager();
 
-        List expectedResult = Arrays.asList(new Long[] { 0L, 1L, 0L, 0L });
+        List<Long> expectedResult = Arrays.asList(new Long[] { 0L, 1L, 0L, 0L });
 
         String jpql = "SELECT COUNT(cc) FROM Customer c LEFT JOIN c.CCustomers cc GROUP BY c.name order by c.name";
         Query q = em.createQuery(jpql);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexTestSuite.java
index ceb449a..8244e9a 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLComplexTestSuite.java
@@ -1036,7 +1036,7 @@
         query.setParameter("id1", empWithOutManager.getId());
         query.setParameter("id2", empWithManager.getId());
         List result = query.getResultList();
-        List expectedResult = Arrays.asList(new Employee[] {empWithManager.getManager()});
+        List<Employee> expectedResult = Arrays.asList(new Employee[] {empWithManager.getManager()});
         Assert.assertTrue("Complex Join test failed", comparer.compareObjects(result, expectedResult));
 
         // Select the related manager of empWithOutManager and empWithManager
@@ -1084,7 +1084,7 @@
         query.setParameter("id1", empWithOutManager.getId());
         query.setParameter("id2", empWithManager.getId());
         List result = query.getResultList();
-        List expectedResult = Arrays.asList(new Employee[] {empWithManager.getManager()});
+        List<Employee> expectedResult = Arrays.asList(new Employee[] {empWithManager.getManager()});
         Assert.assertTrue("Complex Join test failed", comparer.compareObjects(result, expectedResult));
 
         // Select the related manager of empWithOutManager and empWithManager
@@ -1363,7 +1363,7 @@
         // find an employee with managed employees
         for (Iterator i = emps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
-            Collection managed = e.getManagedEmployees();
+            Collection<Employee> managed = e.getManagedEmployees();
             if ((managed != null) && (managed.size() > 0)) {
                 emp = e;
                 break;
@@ -1377,13 +1377,13 @@
         LongHolder result = (LongHolder)query.getSingleResult();
 
         // calculate expected result
-        Collection managed = emp.getManagedEmployees();
+        Collection<Employee> managed = emp.getManagedEmployees();
         int count = 0;
         int sum = 0;
         if (managed != null) {
             count = managed.size();
-            for (Iterator i = managed.iterator(); i.hasNext();) {
-                Employee e = (Employee)i.next();
+            for (Iterator<Employee> i = managed.iterator(); i.hasNext();) {
+                Employee e = i.next();
                 sum += e.getSalary();
             }
         }
@@ -1401,7 +1401,7 @@
         List<EmployeeDetail> expectedResult = new ArrayList<EmployeeDetail>();
         for (Iterator i = emps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
-            Collection managed = e.getManagedEmployees();
+            Collection<Employee> managed = e.getManagedEmployees();
             if ((managed != null) && (managed.size() > 0)) {
                 EmployeeDetail d = new EmployeeDetail(
                     e.getFirstName(), e.getLastName(), Long.valueOf(managed.size()));
@@ -1648,7 +1648,7 @@
         // find an employees with projects
         for (Iterator i = allEmps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
-            Collection projects = e.getProjects();
+            Collection<Project> projects = e.getProjects();
             if ((projects != null) && (projects.size() > 0)) {
                 expectedResult.add(e.getId());
             }
@@ -1670,7 +1670,7 @@
         // find an employees with projects
         for (Iterator i = allEmps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
-            Collection projects = e.getProjects();
+            Collection<Project> projects = e.getProjects();
             if ((projects == null) || (projects.size() == 0)) {
                 expectedResult.add(e.getId());
             }
@@ -1712,15 +1712,15 @@
         for (Iterator i = allEmps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
             // Get Dealers
-            Collection dealers = e.getDealers();
+            Collection<Dealer> dealers = e.getDealers();
             if (dealers != null && dealers.size() > 0) {
-                for (Iterator dealerIter = dealers.iterator(); dealerIter.hasNext();) {
-                    Dealer d = (Dealer)dealerIter.next();
+                for (Iterator<Dealer> dealerIter = dealers.iterator(); dealerIter.hasNext();) {
+                    Dealer d = dealerIter.next();
                     // Get Customers.
-                    Collection customers = d.getCustomers();
+                    Collection<Customer> customers = d.getCustomers();
                     if (customers != null && customers.size() > 0) {
-                        for (Iterator custIter = customers.iterator(); custIter.hasNext();) {
-                            Customer c = (Customer)custIter.next();
+                        for (Iterator<Customer> custIter = customers.iterator(); custIter.hasNext();) {
+                            Customer c = custIter.next();
                             // Verify Budget
                             if (c.getBudget() > 0) {
                                 expectedResult.add(e.getId());
@@ -1781,7 +1781,7 @@
         // find an employees with projects
         for (Iterator i = allEmps.iterator(); i.hasNext();) {
             Employee e = (Employee)i.next();
-            Collection projects = e.getProjects();
+            Collection<Project> projects = e.getProjects();
             if ((projects != null) && (projects.size() > 0)) {
                 expectedResult.add(e);
             }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLParameterTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLParameterTestSuite.java
index 444351a..5dc1265 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLParameterTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/jpql/JUnitJPQLParameterTestSuite.java
@@ -15,23 +15,20 @@
 
 package org.eclipse.persistence.testing.tests.jpa.jpql;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
 import java.util.Vector;
 
+import jakarta.persistence.Parameter;
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 import jakarta.persistence.Query;
 import jakarta.persistence.EntityManager;
 
-import org.eclipse.persistence.testing.models.jpa.advanced.Address;
-import org.eclipse.persistence.testing.models.jpa.advanced.Department;
 import org.eclipse.persistence.testing.models.jpa.advanced.Employee;
 import org.eclipse.persistence.testing.models.jpa.advanced.Jigsaw;
 import org.eclipse.persistence.testing.models.jpa.advanced.JigsawPiece;
-import org.eclipse.persistence.testing.models.jpa.advanced.PhoneNumber;
 import org.eclipse.persistence.testing.models.jpa.advanced.EmployeePopulator;
 import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
 import org.eclipse.persistence.sessions.DatabaseSession;
@@ -39,7 +36,7 @@
 import org.eclipse.persistence.config.QueryHints;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.testing.models.jpa.advanced.AdvancedTableCreator;
-import org.eclipse.persistence.testing.models.relationshipmaintenance.Dept;
+
 /**
  * <p>
  * <b>Purpose</b>: Test EJBQL parameter functionality.
@@ -194,7 +191,7 @@
         assertNotNull(em);
         Query query = em.createNamedQuery("findAllEmployeesOrderById");
         assertNotNull(query);
-        Set parameters = query.getParameters();
+        Set<Parameter<?>> parameters = query.getParameters();
         assertNotNull(parameters);
         assertEquals("Parameters size should be 0", 0, parameters.size());
     }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsAdvancedJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsAdvancedJUnitTestCase.java
index c64e259..3006c78 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsAdvancedJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsAdvancedJUnitTestCase.java
@@ -2050,8 +2050,8 @@
     }
 
     public void testDeleteAll(){
-        Map descriptors = getServerSession(m_persistenceUnit).getDescriptors();
-        ClassDescriptor descriptor = (ClassDescriptor)descriptors.get(Department.class);
+        Map<Class<?>, ClassDescriptor> descriptors = getServerSession(m_persistenceUnit).getDescriptors();
+        ClassDescriptor descriptor = descriptors.get(Department.class);
         OneToManyMapping mapping = (OneToManyMapping)descriptor.getMappingForAttributeName("equipment");
         assertFalse("<delete-all> xml did not work correctly", mapping.mustDeleteReferenceObjectsOneByOne());
     }
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsDynamicAdvancedJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsDynamicAdvancedJUnitTestCase.java
index e991d8b..c75a82e 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsDynamicAdvancedJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsDynamicAdvancedJUnitTestCase.java
@@ -54,9 +54,7 @@
 
 import org.eclipse.persistence.jpa.JpaEntityManager;
 import org.eclipse.persistence.jpa.dynamic.JPADynamicHelper;
-import org.eclipse.persistence.mappings.CollectionMapping;
 import org.eclipse.persistence.mappings.DatabaseMapping;
-import org.eclipse.persistence.mappings.DirectCollectionMapping;
 import org.eclipse.persistence.mappings.ForeignReferenceMapping;
 
 import org.eclipse.persistence.queries.DoesExistQuery;
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsMultitenantJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsMultitenantJUnitTestCase.java
index 2df84f1..f04dfa9 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsMultitenantJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/EntityMappingsMultitenantJUnitTestCase.java
@@ -47,7 +47,6 @@
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Contract;
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.MafiaFamily;
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Mafioso;
-import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Mafioso.Gender;
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Mason;
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Party;
 import org.eclipse.persistence.testing.models.jpa.xml.advanced.multitenant.Riding;
@@ -842,7 +841,7 @@
 
     public void testTablePerTenantC() {
         // Set the tenant through EMF properties.
-        Map properties = JUnitTestCaseHelper.getDatabaseProperties();
+        Map<String, String> properties = JUnitTestCaseHelper.getDatabaseProperties();
         properties.put(PersistenceUnitProperties.EXCLUDE_ECLIPSELINK_ORM_FILE, "true");
         properties.put(PersistenceUnitProperties.MULTITENANT_SHARED_EMF, "false");
         properties.put(PersistenceUnitProperties.SESSION_NAME, "extended-multi-tenant-C");
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/fetchgroup/EntityMappingsFetchGroupJunitTest.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/fetchgroup/EntityMappingsFetchGroupJunitTest.java
index 87ac30f..a17a3da 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/fetchgroup/EntityMappingsFetchGroupJunitTest.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/advanced/fetchgroup/EntityMappingsFetchGroupJunitTest.java
@@ -143,8 +143,8 @@
             EntityManager em = createEntityManager(m_persistenceUnit);
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "HeightAndWidth");
-            Class PadsClass = Pads.class;
-            Pads pads = (Pads) em.find(PadsClass, padsId, properties);
+            Class<Pads> PadsClass = Pads.class;
+            Pads pads = em.find(PadsClass, padsId, properties);
 
             try {
                 verifyFetchedField(PadsClass.getDeclaredField("height"), pads, 35.5);
@@ -167,8 +167,8 @@
             EntityManager em = createEntityManager(m_persistenceUnit);
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "AgeGroup");
-            Class ChestProtecterClass = ChestProtector.class;
-            ChestProtector chestProtector = (ChestProtector) em.find(ChestProtecterClass, chestProtectorId, properties);
+            Class<ChestProtector> ChestProtecterClass = ChestProtector.class;
+            ChestProtector chestProtector = em.find(ChestProtecterClass, chestProtectorId, properties);
 
             try {
                 verifyFetchedField(ChestProtecterClass.getField("ageGroup"), chestProtector, AgeGroup.INTERMEDIATE);
@@ -189,8 +189,8 @@
             EntityManager em = createEntityManager(m_persistenceUnit);
             Map properties = new HashMap();
             properties.put(QueryHints.FETCH_GROUP_NAME, "MSRP");
-            Class PadsClass = Pads.class;
-            Pads pads = (Pads) em.find(PadsClass, padsId, properties);
+            Class<Pads> PadsClass = Pads.class;
+            Pads pads = em.find(PadsClass, padsId, properties);
 
             try {
                 verifyFetchedField(PadsClass.getField("msrp"), pads, 999.99);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/inherited/EntityMappingsInheritedJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/inherited/EntityMappingsInheritedJUnitTestCase.java
index cf9495d..284c60b 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/inherited/EntityMappingsInheritedJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/inherited/EntityMappingsInheritedJUnitTestCase.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
@@ -29,6 +29,7 @@
 import java.sql.Date;
 import java.sql.Timestamp;
 import java.util.Calendar;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
@@ -41,7 +42,6 @@
 import org.eclipse.persistence.sessions.DatabaseSession;
 
 import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
-import org.eclipse.persistence.testing.models.jpa.xml.inherited.Consumer;
 import org.eclipse.persistence.testing.models.jpa.xml.inherited.Official;
 import org.eclipse.persistence.testing.models.jpa.xml.inherited.Accredidation;
 import org.eclipse.persistence.testing.models.jpa.xml.inherited.Birthday;
@@ -732,10 +732,10 @@
             beginTransaction(em);
 
             BeerConsumer cm = em.find(BeerConsumer.class, beerConsumerId);
-            java.util.Collection phones = cm.getTelephoneNumbers().values();
+            Collection<TelephoneNumber> phones = cm.getTelephoneNumbers().values();
             assertTrue("Wrong phonenumbers associated with BeerConsumer", phones.size() == 2);
-            for (Iterator iterator = phones.iterator(); iterator.hasNext();){
-                    TelephoneNumber phone = (TelephoneNumber)(iterator.next());
+            for (Iterator<TelephoneNumber> iterator = phones.iterator(); iterator.hasNext();){
+                    TelephoneNumber phone = iterator.next();
                     assertTrue("Wrong owner of the telephone",phone.getBeerConsumer().getId() == beerConsumerId);
             }
 
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/advanced/EntityMappingsMergeAdvancedJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/advanced/EntityMappingsMergeAdvancedJUnitTestCase.java
index f91bebf..369ed24 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/advanced/EntityMappingsMergeAdvancedJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/advanced/EntityMappingsMergeAdvancedJUnitTestCase.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
@@ -92,24 +92,24 @@
     // The test compares the mappings's types for each class with the corresponding class from packageToCompare.
     // The test should be altered accordingly in case the two classes are no longer use the same mappings types.
     public void testMappingsTypes() throws ClassNotFoundException {
-        Map descriptors = getServerSession().getDescriptors();
+        Map<Class<?>, ClassDescriptor> descriptors = getServerSession().getDescriptors();
         String errorMsg = "";
         for (int i=0; i<classNames.length; i++) {
             String classErrorMsg = "";
             String className = packageName + classNames[i];
             String classToCompareName = packageToCompareName + classNames[i];
-            Class cls = Class.forName(className);
-            Class clsToCompare = Class.forName(classToCompareName);
-            ClassDescriptor desc = (ClassDescriptor)descriptors.get(cls);
-            ClassDescriptor descToCompare = (ClassDescriptor)descriptors.get(clsToCompare);
-            Vector mappings = desc.getMappings();
-            Vector mappingsToCompare = descToCompare.getMappings();
+            Class<?> cls = Class.forName(className);
+            Class<?> clsToCompare = Class.forName(classToCompareName);
+            ClassDescriptor desc = descriptors.get(cls);
+            ClassDescriptor descToCompare = descriptors.get(clsToCompare);
+            Vector<DatabaseMapping> mappings = desc.getMappings();
+            Vector<DatabaseMapping> mappingsToCompare = descToCompare.getMappings();
             if(mappings.size() != mappingsToCompare.size()) {
                 classErrorMsg = classErrorMsg +  "Number of mappings is different; ";
                 continue;
             }
             for(int j=0; j<mappings.size(); j++) {
-                DatabaseMapping mapping = (DatabaseMapping)mappings.elementAt(j);
+                DatabaseMapping mapping = mappings.elementAt(j);
                 String attributeName = mapping.getAttributeName();
                 DatabaseMapping mappingToCompare = descToCompare.getMappingForAttributeName(attributeName);
                 if(!mapping.getClass().equals(mappingToCompare.getClass())) {
@@ -126,8 +126,8 @@
     }
 
     public void testIgnoredTransientAnnotation(){
-        Map descriptors = getServerSession().getDescriptors();
-        ClassDescriptor descriptor = (ClassDescriptor)descriptors.get(Employee.class);
+        Map<Class<?>, ClassDescriptor> descriptors = getServerSession().getDescriptors();
+        ClassDescriptor descriptor = descriptors.get(Employee.class);
         DatabaseMapping mapping = descriptor.getMappingForAttributeName("lastName");
         assertTrue("No mapping for attribute that was set as @Transient, in a metadata complete entity.", mapping !=null);
         assertTrue("Incorrect mapping for attribute that was set as @Transient, in a metadata complete entity.", mapping.isDirectToFieldMapping());
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/inherited/EntityMappingsMergeInheritedJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/inherited/EntityMappingsMergeInheritedJUnitTestCase.java
index ed73fbb..c8ebb8f 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/inherited/EntityMappingsMergeInheritedJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/merge/inherited/EntityMappingsMergeInheritedJUnitTestCase.java
@@ -19,6 +19,7 @@
 package org.eclipse.persistence.testing.tests.jpa.xml.merge.inherited;
 
 import java.sql.Date;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
@@ -239,10 +240,10 @@
             beginTransaction(em);
 
             BeerConsumer cm = em.find(BeerConsumer.class, beerConsumerId);
-            java.util.Collection phones = cm.getTelephoneNumbers().values();
+            Collection<TelephoneNumber> phones = cm.getTelephoneNumbers().values();
             assertTrue("Wrong phonenumbers associated with BeerConsumer", phones.size() == 2);
-            for (Iterator iterator = phones.iterator(); iterator.hasNext();){
-                    TelephoneNumber phone = (TelephoneNumber)(iterator.next());
+            for (Iterator<TelephoneNumber> iterator = phones.iterator(); iterator.hasNext();){
+                    TelephoneNumber phone = iterator.next();
                     assertTrue("Wrong owner of the telephone",phone.getBeerConsumer().getId() == beerConsumerId);
             }
 
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/relationships/unidirectional/EntityMappingsUnidirectionalRelationshipsJUnitTestCase.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/relationships/unidirectional/EntityMappingsUnidirectionalRelationshipsJUnitTestCase.java
index a043ea1..00c96c8 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/relationships/unidirectional/EntityMappingsUnidirectionalRelationshipsJUnitTestCase.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa/xml/relationships/unidirectional/EntityMappingsUnidirectionalRelationshipsJUnitTestCase.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
@@ -187,11 +187,11 @@
         EntityManager em = createEntityManager();
         Employee employee = em.find(Employee.class, otmEmployeeId);
         assertTrue("Error reading Employee", employee.getId() == otmEmployeeId);
-        Collection phones = employee.getPhoneNumbers();
+        Collection<PhoneNumber> phones = employee.getPhoneNumbers();
         assertTrue("Employee didn't have correct number of phone numbers", phones.size()==2);
         boolean phonesMatched = true;
-        for(Iterator ite = phones.iterator(); ite.hasNext();){
-          PhoneNumber phone = (PhoneNumber)ite.next();
+        for(Iterator<PhoneNumber> ite = phones.iterator(); ite.hasNext();){
+          PhoneNumber phone = ite.next();
           if(phone.getId()!=otmPhone1Id && phone.getId()!=otmPhone2Id)
           {
             phonesMatched = false;
@@ -344,11 +344,11 @@
         EntityManager em = createEntityManager();
         Employee employee = em.find(Employee.class, mtmEmployeeId);
         assertTrue("Error reading Employee", employee.getId() == mtmEmployeeId);
-        Collection projects = employee.getProjects();
+        Collection<Project> projects = employee.getProjects();
         assertTrue("Employee didn't have correct number of projects", projects.size()==2);
         boolean projectsMatched = true;
-        for(Iterator ite = projects.iterator(); ite.hasNext();){
-          Project project = (Project)ite.next();
+        for(Iterator<Project> ite = projects.iterator(); ite.hasNext();){
+          Project project = ite.next();
           if(project.getId()!=mtmProject1Id && project.getId()!=mtmProject2Id)
           {
             projectsMatched = false;
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryCastTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryCastTestSuite.java
index 179e238..0da30e5 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryCastTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryCastTestSuite.java
@@ -170,11 +170,11 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Company> cq = qb.createQuery(Company.class);
             Root<Company> root = cq.from(Company.class);
-            Join vehicleJoin = root.join("vehicles");
-            Join boatJoin = qb.treat(vehicleJoin, Boat.class);
+            Join<Object, Object> vehicleJoin = root.join("vehicles");
+            Join<Object, Boat> boatJoin = qb.treat(vehicleJoin, Boat.class);
             cq.where(qb.equal(boatJoin.get("model"), "speed"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Company> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned, expected 1 but returned "+resultList.size(), resultList.size() == 1);
         } finally {
@@ -226,11 +226,11 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Company> cq = qb.createQuery(Company.class);
             Root<Company> root = cq.from(Company.class);
-            Join vehicleJoin = root.join("vehicles");
-            Join nonFueledJoin = qb.treat(vehicleJoin, NonFueledVehicle.class);
+            Join<Object, Object> vehicleJoin = root.join("vehicles");
+            Join<Object, NonFueledVehicle> nonFueledJoin = qb.treat(vehicleJoin, NonFueledVehicle.class);
             cq.where(qb.equal(nonFueledJoin.get("color"), "Blue"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Company> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -280,11 +280,11 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
             Root<Employee> root = cq.from(Employee.class);
-            Join projectsJoin = root.join("projects");
-            Join largeProjectJoin = qb.treat(projectsJoin, LargeProject.class);
+            Join<Object, Object> projectsJoin = root.join("projects");
+            Join<Object, LargeProject> largeProjectJoin = qb.treat(projectsJoin, LargeProject.class);
             cq.where(qb.gt(largeProjectJoin.get("budget"), 100));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Employee> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -332,10 +332,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Vehicle> cq = qb.createQuery(Vehicle.class);
             Root<Vehicle> root = cq.from(Vehicle.class);
-            Root boatRoot = qb.treat(root, Boat.class);
+            Root<Boat> boatRoot = qb.treat(root, Boat.class);
             cq.where(qb.equal(boatRoot.get("model"), "speed"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Vehicle> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -391,7 +391,7 @@
             Root<NonFueledVehicle> nonFueledVehicleRoot = qb.treat(root, NonFueledVehicle.class);
             cq.where(qb.equal(nonFueledVehicleRoot.get("color"), "Blue"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Vehicle> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
@@ -441,10 +441,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Project> cq = qb.createQuery(Project.class);
             Root<Project> root = cq.from(Project.class);
-            Root largeProjectRoot = qb.treat(root, LargeProject.class);
+            Root<LargeProject> largeProjectRoot = qb.treat(root, LargeProject.class);
             cq.where(qb.gt(largeProjectRoot.get("budget"), 100));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Project> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -477,10 +477,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Project> cq = qb.createQuery(Project.class);
             Root<Project> root = cq.from(Project.class);
-            Root largeProjectRoot = qb.treat(root, LargeProject.class);
+            Root<LargeProject> largeProjectRoot = qb.treat(root, LargeProject.class);
             cq.select(largeProjectRoot.get("budget"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Project> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -536,10 +536,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<BeerConsumer> cq = qb.createQuery(BeerConsumer.class);
             Root<BeerConsumer> root = cq.from(BeerConsumer.class);
-            Join blueLightJoin = qb.treat(root.join("blueBeersToConsume"), BlueLight.class);
+            Join<Object, BlueLight> blueLightJoin = qb.treat(root.join("blueBeersToConsume"), BlueLight.class);
             cq.where(qb.equal(blueLightJoin.get("discount"), 10));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<BeerConsumer> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -587,10 +587,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Company> cq = qb.createQuery(Company.class);
             Root<Company> root = cq.from(Company.class);
-            Join boatJoin = qb.treat(root.join("vehicles"), Boat.class);
+            Join<Object, Boat> boatJoin = qb.treat(root.join("vehicles"), Boat.class);
             cq.where(qb.or(qb.equal(boatJoin.get("model"), "speed"), qb.equal(boatJoin.get("model"), "fishing")));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Company> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
@@ -638,11 +638,11 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Company> cq = qb.createQuery(Company.class);
             Root<Company> root = cq.from(Company.class);
-            Join b = qb.treat(root.join("vehicles", JoinType.LEFT), Boat.class);
-            Join f = qb.treat(root.join("vehicles", JoinType.LEFT), FueledVehicle.class);
+            Join<Object, Boat> b = qb.treat(root.join("vehicles", JoinType.LEFT), Boat.class);
+            Join<Object, FueledVehicle> f = qb.treat(root.join("vehicles", JoinType.LEFT), FueledVehicle.class);
             cq.where(qb.or(qb.equal(b.get("model"), "fishing"), qb.equal(f.get("fuelType"), "unleaded")));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Company> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
@@ -702,10 +702,10 @@
             CriteriaQuery<Company> cq = qb.createQuery(Company.class);
             cq.distinct(true);
             Root<Company> root = cq.from(Company.class);
-            Join b = qb.treat(root.join("vehicles", JoinType.LEFT), Bus.class);
+            Join<Object, Bus> b = qb.treat(root.join("vehicles", JoinType.LEFT), Bus.class);
             cq.where(qb.equal(b.get("busDriver").get("name"), "Driver"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Company> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -751,11 +751,11 @@
             CriteriaQuery<Person> cq = qb.createQuery(Person.class);
             cq.distinct(true);
             Root<Person> root = cq.from(Person.class);
-            Join s = qb.treat(root.join("car", JoinType.LEFT), SportsCar.class);
-            Join j = qb.treat(root.join("car", JoinType.LEFT), Jalopy.class);
+            Join<Object, SportsCar> s = qb.treat(root.join("car", JoinType.LEFT), SportsCar.class);
+            Join<Object, Jalopy> j = qb.treat(root.join("car", JoinType.LEFT), Jalopy.class);
             cq.where(qb.or(qb.equal(s.get("maxSpeed"), 200), qb.equal(j.get("percentRust"), 20)));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Person> resultList = em.createQuery(cq).getResultList();
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
             if (this.isTransactionActive(em)){
@@ -803,10 +803,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Number> cq = qb.createQuery(Number.class);
             Root<Employee> root = cq.from(Employee.class);
-            Join l = qb.treat(root.join("projects"), LargeProject.class);
+            Join<Object, LargeProject> l = qb.treat(root.join("projects"), LargeProject.class);
             cq.select(qb.max(l.get("budget")));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Number> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect result size returned", resultList.size() == 1);
             assertTrue("Incorrect results returned", (Double)resultList.get(0) == 1000);
@@ -860,11 +860,11 @@
             Root<Employee> root = cq.from(Employee.class);
             Subquery<Number> sq = cq.subquery(Number.class);
             Root<Employee> sRoot = sq.from(Employee.class);
-            Join l = qb.treat(root.join("projects"), LargeProject.class);
+            Join<Object, LargeProject> l = qb.treat(root.join("projects"), LargeProject.class);
             sq.select(qb.max(l.get("budget")));
             cq.where(qb.gt(root.<Number>get("salary"), sq));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Employee> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect result size returned", resultList.size() == 1);
         } finally {
@@ -907,11 +907,11 @@
             CriteriaQuery<Person> cq = qb.createQuery(Person.class);
             Root<Person> root = cq.from(Person.class);
             root.fetch("car");
-            Join s = qb.treat(root.join("car"), SportsCar.class);
+            Join<Object, SportsCar> s = qb.treat(root.join("car"), SportsCar.class);
             cq.where(qb.equal(s.get("maxSpeed"), 200));
 
-            List resultList = em.createQuery(cq).getResultList();
-            Person person = (Person)resultList.get(0);
+            List<Person> resultList = em.createQuery(cq).getResultList();
+            Person person = resultList.get(0);
             assertTrue("Incorrect result size returned", resultList.size() == 1);
             assertNotNull("The car was not fetched.", person.car);
         } finally {
@@ -957,7 +957,7 @@
             Root<Car> root = cq.from(Car.class);
             cq.where(qb.or(qb.equal( qb.treat(root, SportsCar.class).get("maxSpeed"), 200), qb.equal( qb.treat(root, Jalopy.class).get("percentRust"), 20)));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Car> resultList = em.createQuery(cq).getResultList();
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
             if (this.isTransactionActive(em)){
@@ -997,7 +997,7 @@
             Root<TireInfo> root = cq.from(TireInfo.class);
             cq.where(qb.or(qb.equal( qb.treat(root, PerformanceTireInfo.class).get("speedRating"), 110), qb.equal( qb.treat(root, PassengerPerformanceTireInfo.class).get("speedRating"), 120)));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<TireInfo> resultList = em.createQuery(cq).getResultList();
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
             if (this.isTransactionActive(em)){
@@ -1044,10 +1044,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Person> cq = qb.createQuery(Person.class);
             Root<Person> root = cq.from(Person.class);
-            Join s = qb.treat(root.join("car"), SportsCar.class);
+            Join<Object, SportsCar> s = qb.treat(root.join("car"), SportsCar.class);
             cq.select(s.get("maxSpeed"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Person> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -1092,10 +1092,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Bus> cq = qb.createQuery(Bus.class);
             Root<Bus> root = cq.from(Bus.class);
-            Join b = qb.treat(root.join("tires"), PerformanceTireInfo.class);
+            Join<Object, PerformanceTireInfo> b = qb.treat(root.join("tires"), PerformanceTireInfo.class);
             cq.select(b.get("speedRating"));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Bus> resultList = em.createQuery(cq).getResultList();
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
             if (this.isTransactionActive(em)){
@@ -1144,7 +1144,7 @@
             Root<Person> root = cq.from(Person.class);
             cq.where(qb.equal(qb.treat(root.get("car"), SportsCar.class).get("maxSpeed"), 200));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Person> resultList = em.createQuery(cq).getResultList();
 
             assertTrue("Incorrect results returned", resultList.size() == 1);
         } finally {
@@ -1189,10 +1189,10 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Bus> cq = qb.createQuery(Bus.class);
             Root<Bus> root = cq.from(Bus.class);
-            Join b = qb.treat(root.join("tires"), PerformanceTireInfo.class);
+            Join<Object, PerformanceTireInfo> b = qb.treat(root.join("tires"), PerformanceTireInfo.class);
             cq.where(qb.greaterThan(qb.treat(root.get("tires"), PerformanceTireInfo.class).<Integer>get("speedRating"), 100));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Bus> resultList = em.createQuery(cq).getResultList();
             assertTrue("Incorrect results returned", resultList.size() == 2);
         } finally {
             if (this.isTransactionActive(em)){
@@ -1248,14 +1248,14 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Person> cq = qb.createQuery(Person.class);
             Root<Person> root = cq.from(Person.class);
-            Join c = root.join("car");
+            Join<Object, Object> c = root.join("car");
             cq.where(qb.and( qb.equal(c.get("color"), "Red"),
                              qb.or( qb.equal(qb.treat(c, SportsCar.class).get("maxSpeed"), 200),
                                      qb.equal(qb.treat(c, Jalopy.class).get("percentRust"), 20)
                                    )
                             ));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Person> resultList = em.createQuery(cq).getResultList();
             assertEquals("Incorrect results returned", 2, resultList.size());
         } finally {
             if (this.isTransactionActive(em)){
@@ -1298,14 +1298,14 @@
             CriteriaBuilder qb = em.getCriteriaBuilder();
             CriteriaQuery<Bus> cq = qb.createQuery(Bus.class);
             Root<Bus> root = cq.from(Bus.class);
-            Join t = root.join("tires");
+            Join<Object, Object> t = root.join("tires");
             cq.where(qb.and( qb.gt(t.get("pressure"), 0),
                              qb.or( qb.equal(qb.treat(t, PassengerPerformanceTireInfo.class).get("maxSpeed"), 200),
                                      qb.equal(qb.treat(t, OffRoadTireInfo.class).get("name"), "doesNotExist")
                                    )
                             ));
 
-            List resultList = em.createQuery(cq).getResultList();
+            List<Bus> resultList = em.createQuery(cq).getResultList();
             assertEquals("Incorrect results returned", 1, resultList.size());
         } finally {
             if (this.isTransactionActive(em)){
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryTestSuite.java
index 9cc7c3d..7433fa9 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/CriteriaQueryTestSuite.java
@@ -36,7 +36,6 @@
 import jakarta.persistence.metamodel.EntityType;
 
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.eclipse.persistence.internal.jpa.EJBQueryImpl;
@@ -123,9 +122,9 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("address");
+        Join<Object, Object> address = root.join("address");
         address.on(qb.equal(address.get("city"), "Ottawa"));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -144,9 +143,9 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join phoneNumber = root.join("phoneNumbers");
+        Join<Object, Object> phoneNumber = root.join("phoneNumbers");
         phoneNumber.on(qb.equal(phoneNumber.get("areaCode"), "613"));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -166,10 +165,10 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee>cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("address", JoinType.LEFT);
+        Join<Object, Object> address = root.join("address", JoinType.LEFT);
         address.on(qb.equal(address.get("city"), "Ottawa"));
         cq.where(qb.isNotNull(address.get("postalCode")));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -196,7 +195,7 @@
         CriteriaBuilder qb = jpaEM.getCriteriaBuilder();
         CriteriaQuery<Employee>cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("manager", JoinType.LEFT).join("address", JoinType.LEFT);
+        Join<Object, Object> address = root.join("manager", JoinType.LEFT).join("address", JoinType.LEFT);
         address.on(qb.equal(address.get("city"), "Ottawa"));
         cq.where(qb.isNotNull(address.get("postalCode")));
         EJBQueryImpl testQuery = (EJBQueryImpl)jpaEM.createQuery(cq);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/EntityGraphTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/EntityGraphTestSuite.java
index f99a3dd..ebe77dd 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/EntityGraphTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/EntityGraphTestSuite.java
@@ -38,7 +38,7 @@
 
 public class EntityGraphTestSuite extends JUnitTestCase {
     protected boolean m_reset = false;
-    protected Map guaranteedIds = new HashMap<Class, Object>();
+    protected Map<Class, Object> guaranteedIds = new HashMap<Class, Object>();
 
     public EntityGraphTestSuite() {}
 
@@ -101,7 +101,7 @@
 
     public void testsubclassSubgraphs(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Project.class);
+        EntityGraph<Project> employeeGraph = em.createEntityGraph(Project.class);
         employeeGraph.addSubclassSubgraph(LargeProject.class).addAttributeNodes("budget");
         employeeGraph.addAttributeNodes("description");
         List<Project> result = em.createQuery("Select p from Project p where type(p) = LargeProject").setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList();
@@ -115,7 +115,7 @@
 
     public void testEmbeddedFetchGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addSubgraph("period").addAttributeNodes("startDate");
         Employee result = (Employee) em.createQuery("Select e from Employee e").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -130,7 +130,7 @@
 
     public void testNestedEmbeddedFetchGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph fetchGraph = em.createEntityGraph(Runner.class);
+        EntityGraph<Runner> fetchGraph = em.createEntityGraph(Runner.class);
         fetchGraph.addSubgraph("info").addSubgraph("status").addAttributeNodes("runningStatus");
         Runner result = (Runner)em.createQuery("Select r from Runner r").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, fetchGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -146,7 +146,7 @@
 
     public void testLoadGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addAttributeNodes("address");
         Employee result = (Employee) em.createQuery("Select e from Employee e").setMaxResults(1).setHint(QueryHints.JPA_LOAD_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -157,7 +157,7 @@
 
     public void testEmbeddedFetchGroupRefresh(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addSubgraph("period").addAttributeNodes("startDate");
         Employee result = (Employee) em.createQuery("Select e from Employee e order by e.salary desc").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -169,7 +169,7 @@
 
     public void testMapKeyFetchGroupRefresh(){
         EntityManager em = createEntityManager();
-        EntityGraph runnerGraph = em.createEntityGraph(Runner.class);
+        EntityGraph<Runner> runnerGraph = em.createEntityGraph(Runner.class);
         runnerGraph.addKeySubgraph("shoes");
         Runner result = (Runner) em.createQuery("Select r from Runner r join r.shoes s").setHint(QueryHints.JPA_FETCH_GRAPH, runnerGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/QueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/QueryTestSuite.java
index 9d99597..b65b098 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/QueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/QueryTestSuite.java
@@ -21,9 +21,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import jakarta.persistence.ColumnResult;
 import jakarta.persistence.EntityManager;
-import jakarta.persistence.EntityManagerFactory;
 import jakarta.persistence.LockModeType;
 import jakarta.persistence.Parameter;
 import jakarta.persistence.PersistenceException;
@@ -31,19 +29,18 @@
 import jakarta.persistence.TypedQuery;
 import jakarta.persistence.criteria.CriteriaBuilder;
 import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Expression;
 import jakarta.persistence.criteria.From;
 import jakarta.persistence.criteria.JoinType;
 import jakarta.persistence.criteria.Root;
 
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.eclipse.persistence.exceptions.QueryException;
 import org.eclipse.persistence.testing.framework.junit.JUnitTestCase;
 import org.eclipse.persistence.testing.models.jpa21.advanced.AdvancedTableCreator;
 import org.eclipse.persistence.testing.models.jpa21.advanced.Employee;
-import org.eclipse.persistence.testing.models.jpa21.advanced.EmployeePopulator;
 import org.eclipse.persistence.testing.models.jpa21.advanced.Item;
 import org.eclipse.persistence.testing.models.jpa21.advanced.Order;
 
@@ -132,7 +129,7 @@
     public void testTypedQueryParameter(){
         EntityManager em = createEntityManager();
         TypedQuery<Employee> query = em.createQuery("select e from Employee e where e.firstName = :firstName", Employee.class);
-        Parameter parameter = query.getParameter("firstName");
+        Parameter<?> parameter = query.getParameter("firstName");
         assertTrue("Parameter did not return correct type", parameter.getParameterType().equals(String.class));
     }
 
@@ -219,8 +216,8 @@
     public void testCriteriaGetGroupList(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qb = em.getCriteriaBuilder();
-        CriteriaQuery query = qb.createQuery(Employee.class);
-        List groupList = query.getGroupList();
+        CriteriaQuery<Employee> query = qb.createQuery(Employee.class);
+        List<Expression<?>> groupList = query.getGroupList();
         assertNotNull("getGroupList returned null.", groupList);
     }
 
@@ -244,7 +241,7 @@
     public void testCriteriaGetJoinType(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qbuilder = em.getCriteriaBuilder();
-        CriteriaQuery query = qbuilder.createQuery(Employee.class);
+        CriteriaQuery<Employee> query = qbuilder.createQuery(Employee.class);
         Root<Employee> employee = query.from(Employee.class);
         JoinType jt =  employee.join("phoneNumbers", JoinType.LEFT).getJoinType();
         assertEquals("The join type was incorect.", jt, JoinType.LEFT);
@@ -253,7 +250,7 @@
     public void testCriteriaIsCorelated(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qbuilder = em.getCriteriaBuilder();
-        CriteriaQuery query = qbuilder.createQuery(Employee.class);
+        CriteriaQuery<Employee> query = qbuilder.createQuery(Employee.class);
         From<Employee, Employee> employee = query.from(Employee.class);
         boolean isCorr = employee.isCorrelated();
         assertFalse(isCorr);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/StoredProcedureQueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/StoredProcedureQueryTestSuite.java
index 93dbd87..556768f 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/StoredProcedureQueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa21/advanced/StoredProcedureQueryTestSuite.java
@@ -16,7 +16,6 @@
 package org.eclipse.persistence.testing.tests.jpa21.advanced;
 
 import java.util.List;
-import java.util.Set;
 
 import jakarta.persistence.EntityManager;
 import jakarta.persistence.Parameter;
@@ -27,12 +26,7 @@
 import junit.framework.TestSuite;
 import junit.framework.Test;
 
-import org.eclipse.persistence.internal.helper.DatabaseField;
-import org.eclipse.persistence.internal.jpa.StoredProcedureQueryImpl;
-import org.eclipse.persistence.jpa.JpaEntityManager;
-
 import org.eclipse.persistence.queries.ResultSetMappingQuery;
-import org.eclipse.persistence.queries.SQLCall;
 import org.eclipse.persistence.queries.ColumnResult;
 import org.eclipse.persistence.queries.ConstructorResult;
 import org.eclipse.persistence.queries.EntityResult;
@@ -241,8 +235,8 @@
                 query.setParameter("old_p_code_v", postalCodeTypo);
 
                 // Make these calls to test the getParameter call with a name.
-                Parameter paramNew = query.getParameter("new_p_code_v");
-                Parameter paramOld = query.getParameter("old_p_code_v");
+                Parameter<?> paramNew = query.getParameter("new_p_code_v");
+                Parameter<?> paramOld = query.getParameter("old_p_code_v");
 
                 Object results = query.getSingleResult();
             } catch (IllegalStateException e) {
@@ -953,9 +947,9 @@
                 query.setParameter(2, 2);
 
                 // Make this call to test the getParameter call with a position.
-                Parameter param1 = query.getParameter(1);
-                Parameter param2 = query.getParameter(2);
-                Parameter param3 = query.getParameter(3);
+                Parameter<?> param1 = query.getParameter(1);
+                Parameter<?> param2 = query.getParameter(2);
+                Parameter<?> param3 = query.getParameter(3);
 
             } catch (IllegalArgumentException e) {
                 if (isTransactionActive(em)){
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/CriteriaQueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/CriteriaQueryTestSuite.java
index ceccf1b..7f4cbef 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/CriteriaQueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/CriteriaQueryTestSuite.java
@@ -36,7 +36,6 @@
 import jakarta.persistence.metamodel.EntityType;
 
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.eclipse.persistence.internal.jpa.EJBQueryImpl;
@@ -123,9 +122,9 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("address");
+        Join<Object, Object> address = root.join("address");
         address.on(qb.equal(address.get("city"), "Ottawa"));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -144,9 +143,9 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee> cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join phoneNumber = root.join("phoneNumbers");
+        Join<Object, Object> phoneNumber = root.join("phoneNumbers");
         phoneNumber.on(qb.equal(phoneNumber.get("areaCode"), "613"));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -166,10 +165,10 @@
         CriteriaBuilder qb = em.getCriteriaBuilder();
         CriteriaQuery<Employee>cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("address", JoinType.LEFT);
+        Join<Object, Object> address = root.join("address", JoinType.LEFT);
         address.on(qb.equal(address.get("city"), "Ottawa"));
         cq.where(qb.isNotNull(address.get("postalCode")));
-        List testResult = em.createQuery(cq).getResultList();
+        List<Employee> testResult = em.createQuery(cq).getResultList();
 
         clearCache();
         closeEntityManager(em);
@@ -196,7 +195,7 @@
         CriteriaBuilder qb = jpaEM.getCriteriaBuilder();
         CriteriaQuery<Employee>cq = qb.createQuery(Employee.class);
         Root<Employee> root = cq.from(Employee.class);
-        Join address = root.join("manager", JoinType.LEFT).join("address", JoinType.LEFT);
+        Join<Object, Object> address = root.join("manager", JoinType.LEFT).join("address", JoinType.LEFT);
         address.on(qb.equal(address.get("city"), "Ottawa"));
         cq.where(qb.isNotNull(address.get("postalCode")));
         EJBQueryImpl testQuery = (EJBQueryImpl)jpaEM.createQuery(cq);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/EntityGraphTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/EntityGraphTestSuite.java
index c15dfb1..0e634fd 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/EntityGraphTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/EntityGraphTestSuite.java
@@ -38,7 +38,7 @@
 
 public class EntityGraphTestSuite extends JUnitTestCase {
     protected boolean m_reset = false;
-    protected Map guaranteedIds = new HashMap<>();
+    protected Map<Object, Object> guaranteedIds = new HashMap<>();
 
     public EntityGraphTestSuite() {}
 
@@ -101,7 +101,7 @@
 
     public void testsubclassSubgraphs(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Project.class);
+        EntityGraph<Project> employeeGraph = em.createEntityGraph(Project.class);
         employeeGraph.addSubclassSubgraph(LargeProject.class).addAttributeNodes("budget");
         employeeGraph.addAttributeNodes("description");
         List<Project> result = em.createQuery("Select p from Project p where type(p) = LargeProject").setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList();
@@ -115,7 +115,7 @@
 
     public void testEmbeddedFetchGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addSubgraph("period").addAttributeNodes("startDate");
         Employee result = (Employee) em.createQuery("Select e from Employee e").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -130,7 +130,7 @@
 
     public void testNestedEmbeddedFetchGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph fetchGraph = em.createEntityGraph(Runner.class);
+        EntityGraph<Runner> fetchGraph = em.createEntityGraph(Runner.class);
         fetchGraph.addSubgraph("info").addSubgraph("status").addAttributeNodes("runningStatus");
         Runner result = (Runner)em.createQuery("Select r from Runner r").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, fetchGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -146,7 +146,7 @@
 
     public void testLoadGroup(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addAttributeNodes("address");
         Employee result = (Employee) em.createQuery("Select e from Employee e").setMaxResults(1).setHint(QueryHints.JPA_LOAD_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -157,7 +157,7 @@
 
     public void testEmbeddedFetchGroupRefresh(){
         EntityManager em = createEntityManager();
-        EntityGraph employeeGraph = em.createEntityGraph(Employee.class);
+        EntityGraph<Employee> employeeGraph = em.createEntityGraph(Employee.class);
         employeeGraph.addSubgraph("period").addAttributeNodes("startDate");
         Employee result = (Employee) em.createQuery("Select e from Employee e order by e.salary desc").setMaxResults(1).setHint(QueryHints.JPA_FETCH_GRAPH, employeeGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
@@ -169,7 +169,7 @@
 
     public void testMapKeyFetchGroupRefresh(){
         EntityManager em = createEntityManager();
-        EntityGraph runnerGraph = em.createEntityGraph(Runner.class);
+        EntityGraph<Runner> runnerGraph = em.createEntityGraph(Runner.class);
         runnerGraph.addKeySubgraph("shoes");
         Runner result = (Runner) em.createQuery("Select r from Runner r join r.shoes s").setHint(QueryHints.JPA_FETCH_GRAPH, runnerGraph).getResultList().get(0);
         PersistenceUnitUtil util = em.getEntityManagerFactory().getPersistenceUnitUtil();
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/QueryTestSuite.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/QueryTestSuite.java
index f4fc7b3..438d405 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/QueryTestSuite.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/jpa22/advanced/QueryTestSuite.java
@@ -29,12 +29,12 @@
 import jakarta.persistence.TypedQuery;
 import jakarta.persistence.criteria.CriteriaBuilder;
 import jakarta.persistence.criteria.CriteriaQuery;
+import jakarta.persistence.criteria.Expression;
 import jakarta.persistence.criteria.From;
 import jakarta.persistence.criteria.JoinType;
 import jakarta.persistence.criteria.Root;
 
 import junit.framework.Test;
-import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
 import org.eclipse.persistence.exceptions.QueryException;
@@ -129,7 +129,7 @@
     public void testTypedQueryParameter(){
         EntityManager em = createEntityManager();
         TypedQuery<Employee> query = em.createQuery("select e from Employee e where e.firstName = :firstName", Employee.class);
-        Parameter parameter = query.getParameter("firstName");
+        Parameter<?> parameter = query.getParameter("firstName");
         assertTrue("Parameter did not return correct type", parameter.getParameterType().equals(String.class));
     }
 
@@ -216,8 +216,8 @@
     public void testCriteriaGetGroupList(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qb = em.getCriteriaBuilder();
-        CriteriaQuery query = qb.createQuery(Employee.class);
-        List groupList = query.getGroupList();
+        CriteriaQuery<Employee> query = qb.createQuery(Employee.class);
+        List<Expression<?>> groupList = query.getGroupList();
         assertNotNull("getGroupList returned null.", groupList);
     }
 
@@ -241,7 +241,7 @@
     public void testCriteriaGetJoinType(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qbuilder = em.getCriteriaBuilder();
-        CriteriaQuery query = qbuilder.createQuery(Employee.class);
+        CriteriaQuery<Employee> query = qbuilder.createQuery(Employee.class);
         Root<Employee> employee = query.from(Employee.class);
         JoinType jt =  employee.join("phoneNumbers", JoinType.LEFT).getJoinType();
         assertEquals("The join type was incorect.", jt, JoinType.LEFT);
@@ -250,7 +250,7 @@
     public void testCriteriaIsCorelated(){
         EntityManager em = createEntityManager();
         CriteriaBuilder qbuilder = em.getCriteriaBuilder();
-        CriteriaQuery query = qbuilder.createQuery(Employee.class);
+        CriteriaQuery<Employee> query = qbuilder.createQuery(Employee.class);
         From<Employee, Employee> employee = query.from(Employee.class);
         boolean isCorr = employee.isCorrelated();
         assertFalse(isCorr);
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/EmployeeWeavingTestModel.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/EmployeeWeavingTestModel.java
index 020af85..78572a5 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/EmployeeWeavingTestModel.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/EmployeeWeavingTestModel.java
@@ -96,9 +96,9 @@
         suite.setName("EmployeeWeavedReadObjectTestSuite");
         suite.setDescription("This suite test the reading of each object in the employee weaved performance model.");
 
-        Class employeeClass = Employee.class;
-        Class largeProjectClass = LargeProject.class;
-        Class smallProjectClass = SmallProject.class;
+        Class<Employee> employeeClass = Employee.class;
+        Class<LargeProject> largeProjectClass = LargeProject.class;
+        Class<SmallProject> smallProjectClass = SmallProject.class;
         PopulationManager manager = PopulationManager.getDefaultManager();
 
         suite.addTest(new ReadObjectTest(manager.getObject(employeeClass, "0001")));
@@ -123,9 +123,9 @@
         suite.setName("EmployeeWeavedUpdateTestSuite");
         suite.setDescription("This suite tests the updating of each object in the employee demo.");
 
-        Class employeeClass = Employee.class;
-        Class largeProjectClass = LargeProject.class;
-        Class smallProjectClass = SmallProject.class;
+        Class<Employee> employeeClass = Employee.class;
+        Class<LargeProject> largeProjectClass = LargeProject.class;
+        Class<SmallProject> smallProjectClass = SmallProject.class;
         PopulationManager manager = PopulationManager.getDefaultManager();
 
         suite.addTest(new UnitOfWorkBasicUpdateObjectTest(manager.getObject(employeeClass, "0001")));
diff --git a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/SimpleWeavingTestModel.java b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/SimpleWeavingTestModel.java
index 0e3fa01..81c6de3 100644
--- a/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/SimpleWeavingTestModel.java
+++ b/jpa/eclipselink.jpa.test/src/it/java/org/eclipse/persistence/testing/tests/weaving/SimpleWeavingTestModel.java
@@ -18,6 +18,7 @@
 import java.util.*;
 
 // TopLink Testing Framework
+import junit.framework.Test;
 import org.eclipse.persistence.testing.framework.*;
 
 public class SimpleWeavingTestModel extends TestModel {
@@ -29,7 +30,7 @@
     @Override
     public void addTests() {
         junit.framework.TestSuite testsuite = (junit.framework.TestSuite)SimpleWeaverTestSuite.suite();
-        for (Enumeration e = testsuite.tests(); e.hasMoreElements();) {
+        for (Enumeration<Test> e = testsuite.tests(); e.hasMoreElements();) {
             junit.framework.TestCase testcase =    (junit.framework.TestCase)e.nextElement();
             addTest(new JUnitTestCase(testcase));
         }
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/query/TestJoinFetch.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/query/TestJoinFetch.java
index d531a2d..d0877f0 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/query/TestJoinFetch.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/query/TestJoinFetch.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2021 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2005, 2015 SAP. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -217,8 +217,8 @@
                         "fetch-joined hobbies were not attached to the entity after query execution.");
             }
 
-            for (Object emp : result) {
-                Employee emp1 = (Employee) emp;
+            for (Employee emp : result) {
+                Employee emp1 = emp;
                 Employee compareEmp = employeeStore.get(emp1.getId());
 
                 Comparator<Hobby> comp = new Comparator<Hobby>() {
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployeePatent.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployeePatent.java
index 6e445a8..60731f2 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployeePatent.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployeePatent.java
@@ -172,8 +172,8 @@
         for (final Patent testPatent : testPatents) {
             checkMap.put(testPatent.getId(), testPatent);
         }
-        for (final Iterator iter = patents.iterator(); iter.hasNext();) {
-            final Patent patent = (Patent) iter.next();
+        for (final Iterator<Patent> iter = patents.iterator(); iter.hasNext();) {
+            final Patent patent = iter.next();
             final Patent check = checkMap.get(patent.getId());
             verify(check != null, "retrieved unknown patent with name >>" + patent.getId().getName() + "<<.");
             verify(check.getDescription().equals(patent.getDescription()), "patent with name >>" + patent.getId().getName()
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployee_Review.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployee_Review.java
index af9f391..bb4fa53 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployee_Review.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestEmployee_Review.java
@@ -61,7 +61,7 @@
             env.beginTransaction(em);
             Employee employee = em.find(Employee.class, 7);
             verify(employee != null, "employee not found");
-            Set reviews = employee.getReviews();
+            Set<Review> reviews = employee.getReviews();
             verify(reviews.size() == 2, "set has wrong size");
             verify(reviews.contains(_review1), "missing review 1");
             verify(reviews.contains(_review2), "missing review 2");
@@ -90,11 +90,11 @@
             env.beginTransaction(em);
             Employee employee = em.find(Employee.class, 7);
             verify(employee != null, "employee not found");
-            Set reviews = employee.getReviews();
+            Set<Review> reviews = employee.getReviews();
             verify(reviews.size() == 2, "set has wrong size");
             verify(reviews.contains(_review1), "missing review 1");
             verify(reviews.contains(_review2), "missing review 2");
-            Iterator iter = reviews.iterator();
+            Iterator<Review> iter = reviews.iterator();
             while (iter.hasNext()) {
                 verify(em.contains(iter.next()), "review in collection not contained in em");
             }
@@ -120,7 +120,7 @@
             }
             Employee employee = em.find(Employee.class, 7);
             verify(employee != null, "employee not found");
-            Set reviews = employee.getReviews();
+            Set<Review> reviews = employee.getReviews();
             try {
                 reviews.size();
                 if (failureExpected) {
@@ -145,7 +145,7 @@
             Employee employee = em.find(Employee.class, 7);
             verify(employee != null, "employee not found");
             employee = AbstractBaseTest.serializeDeserialize(employee);
-            Set reviews = employee.getReviews();
+            Set<Review> reviews = employee.getReviews();
             try {
                 reviews.size();
                 flop("missing persistence exception");
@@ -169,7 +169,7 @@
             env.beginTransaction(em);
             Employee employee = em.find(Employee.class, 7);
             verify(employee != null, "employee not found");
-            Set reviews = employee.getReviews();
+            Set<Review> reviews = employee.getReviews();
             // touch the set
             verify(reviews.size() == 2, "set has wrong size");
             env.rollbackTransactionAndClear(em);
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestMultipleRelationships.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestMultipleRelationships.java
index 2948c15..00c0492 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestMultipleRelationships.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestMultipleRelationships.java
@@ -117,18 +117,18 @@
         try {
             env.beginTransaction(em);
             Employee hans = em.find(Employee.class, HANS_ID);
-            Set reviews = hans.getReviews();
+            Set<Review> reviews = hans.getReviews();
             verify(reviews != null, "Hans has no reviews");
             verify(reviews.size() == 2, "Hans has wrong number of reviews");
             verify(reviews.contains(PASSION), "Hans has no passion!");
             verify(reviews.contains(PERFORMANCE), "Hans has no performance!");
-            Set projects = hans.getProjects();
+            Set<Project> projects = hans.getProjects();
             verify(projects != null, "Hans has no projects");
             verify(projects.size() == 3, "Hans has wrong number of projects");
             verify(projects.contains(PUHLEN), "Hans misses project " + PUHLEN.getName());
             verify(projects.contains(PINSELN), "Hans misses project " + PINSELN.getName());
             verify(projects.contains(FALTEN), "Hans misses project " + FALTEN.getName());
-            Collection patents = hans.getPatents();
+            Collection<Patent> patents = hans.getPatents();
             verify(patents != null, "Hans has no patens");
             verify(patents.size() == 2, "Hans has wrong number of patents");
             verify(patents.contains(PHONOGRAPGH), "Hans misses patent " + PHONOGRAPGH.getId().getName());
@@ -147,17 +147,17 @@
         try {
             env.beginTransaction(em);
             Employee hans = em.find(Employee.class, HANS_ID);
-            Collection patents = hans.getPatents();
+            Collection<Patent> patents = hans.getPatents();
             patents.remove(PHONOGRAPGH);
             env.commitTransactionAndClear(em);
             env.beginTransaction(em);
             hans = em.find(Employee.class, HANS_ID);
-            Set reviews = hans.getReviews();
+            Set<Review> reviews = hans.getReviews();
             verify(reviews != null, "Hans has no reviews");
             verify(reviews.size() == 2, "Hans has wrong number of reviews");
             verify(reviews.contains(PASSION), "Hans has no passion!");
             verify(reviews.contains(PERFORMANCE), "Hans has no performance!");
-            Set projects = hans.getProjects();
+            Set<Project> projects = hans.getProjects();
             verify(projects != null, "Hans has no projects");
             verify(projects.size() == 3, "Hans has wrong number of projects");
             verify(projects.contains(PUHLEN), "Hans misses project " + PUHLEN.getName());
@@ -185,19 +185,19 @@
             env.commitTransactionAndClear(em);
             env.beginTransaction(em);
             hans = em.find(Employee.class, HANS_ID);
-            Set reviews = hans.getReviews();
+            Set<Review> reviews = hans.getReviews();
             verify(reviews != null, "Hans has no reviews");
             verify(reviews.size() == 3, "Hans has wrong number of reviews");
             verify(reviews.contains(PASSION), "Hans has no passion!");
             verify(reviews.contains(PERFORMANCE), "Hans has no performance!");
             verify(reviews.contains(PROFICIENCY), "Hans has no performance!");
-            Set projects = hans.getProjects();
+            Set<Project> projects = hans.getProjects();
             verify(projects != null, "Hans has no projects");
             verify(projects.size() == 3, "Hans has wrong number of projects");
             verify(projects.contains(PUHLEN), "Hans misses project " + PUHLEN.getName());
             verify(projects.contains(PINSELN), "Hans misses project " + PINSELN.getName());
             verify(projects.contains(FALTEN), "Hans misses project " + FALTEN.getName());
-            Collection patents = hans.getPatents();
+            Collection<Patent> patents = hans.getPatents();
             verify(patents != null, "Hans has no patens");
             verify(patents.size() == 2, "Hans has wrong number of patents");
             verify(patents.contains(PHONOGRAPGH), "Hans misses patent " + PHONOGRAPGH.getId().getName());
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestNode.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestNode.java
index a2644cb..a79a4f5 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestNode.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestNode.java
@@ -129,7 +129,7 @@
             children = root2.getChildren();
             verify(children.contains(child), "child not contained in set of children");
             root1 = em.find(Node.class, root1Id);
-            Set children1 = root1.getChildren();
+            Set<Node> children1 = root1.getChildren();
             verify(children1 == null || children1.isEmpty(), "children of root1 not null or empty");
             env.rollbackTransactionAndClear(em);
         } finally {
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestPatentReview.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestPatentReview.java
index f9998d0..fc1e30e 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestPatentReview.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestPatentReview.java
@@ -47,10 +47,10 @@
             em.persist(patent);
             em.persist(patentReview);
             env.commitTransactionAndClear(em);
-            Object found = em.find(PatentReview.class, 17);
+            PatentReview found = em.find(PatentReview.class, 17);
             verify(found != null, "nothing found");
             verify(found instanceof PatentReview, "wrong instance: " + found.getClass().getName());
-            PatentReview review = (PatentReview) found;
+            PatentReview review = found;
             verify(review.getPatent() != null, "patent is null");
             Patent pat = review.getPatent();
             PatentId id = pat.getId();
diff --git a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestUnidirectionalOneToMany.java b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestUnidirectionalOneToMany.java
index 037acbe..5bd0746 100644
--- a/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestUnidirectionalOneToMany.java
+++ b/jpa/eclipselink.jpa.wdf.test/src/it/java/org/eclipse/persistence/testing/tests/wdf/jpa1/relation/TestUnidirectionalOneToMany.java
@@ -160,11 +160,11 @@
             env.beginTransaction(em);
             Employee emp = em.find(Employee.class, EMP_ID);
             verify(emp != null, "employee not found");
-            Set reviews = emp.getReviews();
+            Set<Review> reviews = emp.getReviews();
             verify(reviews != null, "reviews are null");
             verify(reviews.size() == 3, "not exactly 3 reviews but " + reviews.size());
-            Iterator iter = reviews.iterator();
-            Review review = (Review) iter.next();
+            Iterator<Review> iter = reviews.iterator();
+            Review review = iter.next();
             int removedId = review.getId();
             // there are no managed relationships -> we have to remove the reviews on both sides
             em.remove(review);
@@ -224,8 +224,8 @@
             Employee emp = em.find(Employee.class, EMP_ID);
             verify(emp != null, "employee not found");
             Set<Review> reviews = emp.getReviews();
-            Iterator iter = reviews.iterator();
-            Review review = (Review) iter.next();
+            Iterator<Review> iter = reviews.iterator();
+            Review review = iter.next();
             int removedId = review.getId();
             // there are no managed relationships -> we have to remove the reviews on both sides
             em.remove(review);
diff --git a/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java b/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
index 63a5a1e..f7abc4e 100644
--- a/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
+++ b/jpa/org.eclipse.persistence.jpa.modelgen/src/main/java/org/eclipse/persistence/internal/jpa/modelgen/objects/PersistenceUnit.java
@@ -372,7 +372,7 @@
     public String getPersistenceUnitProperty(final String name) {
         Object objVal = persistenceUnitProperties.get(name);
         if (objVal instanceof String) {
-            return String.class.cast(objVal);
+            return (String) objVal;
         } else {
             return objVal != null ? objVal.toString() : null;
         }
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner1Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner1Bean.java
index 16b5906..8fc2d5c 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner1Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner1Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner2Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner2Bean.java
index e8e9f54..3d1e4a2 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner2Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner2Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner3Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner3Bean.java
index 8657ea7..4dd793e 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner3Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner3Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner4Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner4Bean.java
index 9aaaf2a..027951b 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner4Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner4Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner5Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner5Bean.java
index fbd1a45..017deb8 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner5Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner5Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner6Bean.java b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner6Bean.java
index 0ae4b96..86eba32 100644
--- a/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner6Bean.java
+++ b/jpa/org.eclipse.persistence.jpa.test.framework/src/main/java/org/eclipse/persistence/testing/framework/server/TestRunner6Bean.java
@@ -59,9 +59,10 @@
         // load the test class and create an instance
         TestCase testInstance = null;
         try {
-            Class testClass = getClass().getClassLoader().loadClass(className);
-            Constructor c = testClass.getConstructor(new Class[] { String.class });
-            testInstance = (TestCase) c.newInstance(new Object[] { test });
+            @SuppressWarnings({"unchecked"})
+            Class<? extends TestCase> testClass = (Class<? extends TestCase>) getClass().getClassLoader().loadClass(className);
+            Constructor<? extends TestCase> c = testClass.getConstructor(new Class[] { String.class });
+            testInstance = c.newInstance(new Object[] { test });
         } catch (ClassNotFoundException e) {
             throw new EJBException(e);
         } catch (NoSuchMethodException e) {
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/CMP3Policy.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/CMP3Policy.java
index a7034d2..bb3feb6 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/CMP3Policy.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/CMP3Policy.java
@@ -111,7 +111,7 @@
      * @param allMappings
      */
     protected void addReadOnlyMappings(ClassDescriptor aDescriptor, DatabaseField field, List allMappings) {
-        List readOnlyMappings = aDescriptor.getObjectBuilder().getReadOnlyMappingsForField(field);
+        List<DatabaseMapping> readOnlyMappings = aDescriptor.getObjectBuilder().getReadOnlyMappingsForField(field);
 
         if (readOnlyMappings != null) {
             allMappings.addAll(readOnlyMappings);
@@ -261,7 +261,7 @@
                     DatabaseField targetKey = refmapping.getSourceToTargetKeyFields().get(pkElementArray[index].getDatabaseField());
                     CMPPolicy refPolicy = refmapping.getReferenceDescriptor().getCMPPolicy();
                     if (refPolicy.isCMP3Policy()){
-                        Class aPKClass = refPolicy.getPKClass();
+                        Class<Object> aPKClass = refPolicy.getPKClass();
                         if ((aPKClass != null) && (aPKClass != fieldValue.getClass()) && (!aPKClass.isAssignableFrom(fieldValue.getClass()))) {
                             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { aPKClass, fieldValue.getClass() }));
                         }
@@ -363,11 +363,11 @@
         fieldToAccessorMap = new HashMap<DatabaseField,KeyElementAccessor>();
         int numberOfIDFields = aDescriptor.getPrimaryKeyFields().size();
         pkAttributes = new KeyElementAccessor[numberOfIDFields];
-        Iterator attributesIter = aDescriptor.getPrimaryKeyFields().iterator();
+        Iterator<DatabaseField> attributesIter = aDescriptor.getPrimaryKeyFields().iterator();
 
         // Used fields in case it is an embedded class
         for (int i = 0; attributesIter.hasNext(); i++) {
-            DatabaseField field = (DatabaseField)attributesIter.next();
+            DatabaseField field = attributesIter.next();
 
             // We need to check all mappings for this field, not just the writable one and instead of
             // having multiple sections of duplicate code we'll just add the writable mapping directly
@@ -747,7 +747,7 @@
                 DatabaseField targetKey = refmapping.getSourceToTargetKeyFields().get(accessor.getDatabaseField());
                 CMPPolicy refPolicy = refmapping.getReferenceDescriptor().getCMPPolicy();
                 if (refPolicy.isCMP3Policy()){
-                    Class pkClass = refPolicy.getPKClass();
+                    Class<Object> pkClass = refPolicy.getPKClass();
                     if ((pkClass != null) && (pkClass != fieldValue.getClass()) && (!pkClass.isAssignableFrom(fieldValue.getClass()))) {
                         throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { refPolicy.getPKClass(), fieldValue.getClass() }));
                     }
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EJBQueryImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EJBQueryImpl.java
index b85637d..e4cb5f9 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EJBQueryImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EJBQueryImpl.java
@@ -323,7 +323,7 @@
                     throw QueryException.invalidContainerClass(containerClass, ClassConstants.Collection_Class);
                 }
             } else if (query.isReadObjectQuery()) {
-                List resultList = new ArrayList<>();
+                List<Object> resultList = new ArrayList<>();
                 Object result = executeReadQuery();
                 if (result != null) {
                     resultList.add(executeReadQuery());
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryDelegate.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryDelegate.java
index 0a7a598..36aa485 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryDelegate.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryDelegate.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.
  * Copyright (c) 1998, 2019 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -222,7 +222,7 @@
                     AbstractSession tempSession = setupImpl.deploy(realLoader, serverSessionProperties);
                     // discard all but non server session properties from server
                     // session properties.
-                    Map tempProperties = EntityManagerFactoryProvider.keepSpecifiedProperties(tempSession.getProperties(), supportedNonServerSessionProperties);
+                    Map<String, Object> tempProperties = EntityManagerFactoryProvider.keepSpecifiedProperties(tempSession.getProperties(), supportedNonServerSessionProperties);
                     // keep only non server session properties - the rest will
                     // be either cached in the server session or ignored
                     properties = splitProperties[0];
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryProvider.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryProvider.java
index 49aee1f..21a9f30 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryProvider.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerFactoryProvider.java
@@ -315,7 +315,7 @@
      * @return the target object
      */
     public static <K, V> Map<K, V> keepSpecifiedProperties(Map<K, V> source, Collection<K> keysToBeKept){
-        Map target = new HashMap<>();
+        Map<K, V> target = new HashMap<>();
         if (source != null){
             target.putAll(source);
             Iterator<Map.Entry<K, V>> it = source.entrySet().iterator();
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerImpl.java
index b572ab7..48acbca 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerImpl.java
@@ -901,7 +901,7 @@
             primaryKey = id;
         } else {
             CMPPolicy policy = descriptor.getCMPPolicy();
-            Class pkClass = policy.getPKClass();
+            Class<Object> pkClass = policy.getPKClass();
             if ((pkClass != null) && (pkClass != id.getClass()) && (!BasicTypeHelperImpl.getInstance().isStrictlyAssignableFrom(pkClass, id.getClass()))) {
                 throw new IllegalArgumentException(ExceptionLocalization.buildMessage("invalid_pk_class", new Object[] { descriptor.getCMPPolicy().getPKClass(), id.getClass() }));
             }
@@ -2010,7 +2010,7 @@
                 throw new IllegalArgumentException(ExceptionLocalization.buildMessage("not_an_entity", new Object[] { null }));
             }
 
-            UnitOfWork uow = getActivePersistenceContext(checkForTransaction(true)); // Throws TransactionRequiredException if no active transaction.
+            UnitOfWorkImpl uow = getActivePersistenceContext(checkForTransaction(true)); // Throws TransactionRequiredException if no active transaction.
 
             if (!contains(entity, uow)) {
                 throw new IllegalArgumentException(ExceptionLocalization.buildMessage("cant_lock_not_managed_object", new Object[] { entity }));
@@ -2025,7 +2025,7 @@
                     || lockMode.name().equals(ObjectLevelReadQuery.PESSIMISTIC_FORCE_INCREMENT)) {
 
                 // return if the entity has previously been pessimistically locked
-                if (((UnitOfWorkImpl)uow).isPessimisticLocked(entity)) {
+                if (uow.isPessimisticLocked(entity)) {
                     return;
                 }
 
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerSetupImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerSetupImpl.java
index 48c2c0b..c9ab4c3 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerSetupImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityManagerSetupImpl.java
@@ -2093,7 +2093,7 @@
                 // The transformer is capable of altering domain classes to handle a LAZY hint for OneToOne mappings.  It will only
                 // be returned if we we are meant to process these mappings.
                 if (enableWeaving) {
-                    Collection persistenceClasses = new ArrayList<>();
+                    Collection<MetadataClass> persistenceClasses = new ArrayList<>();
                     MetadataAsmFactory factory = new MetadataAsmFactory(new MetadataLogger(session), classLoaderToUse);
                     if (shouldBuildProject) {
                         // If deploying from a sessions-xml it is still desirable to allow the classes to be weaved.
@@ -4480,7 +4480,7 @@
         EntityManagerSetupImpl newSetupImpl = new EntityManagerSetupImpl(uniqueName, sessionName);
         newSetupImpl.setIsInContainerMode(isInContainerMode);
         newSetupImpl.enableWeaving = enableWeaving;
-        Map refreshProperties = new HashMap<>();
+        Map<Object, Object> refreshProperties = new HashMap<>();
         refreshProperties.putAll(getSession().getProperties());
         if (properties != null){
             refreshProperties.putAll(properties);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/QueryHintsHandler.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/QueryHintsHandler.java
index a3fb2e5..85bd951 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/QueryHintsHandler.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/QueryHintsHandler.java
@@ -767,7 +767,7 @@
             } else if (valueToApply.equals(QueryType.ValueRead)) {
                 newQuery = new ValueReadQuery();
             } else {
-                Class queryClass = loadClass((String)valueToApply, query, loader);
+                Class<?> queryClass = loadClass((String)valueToApply, query, loader);
                 newQuery = (DatabaseQuery)newInstance(queryClass, query, QueryHints.QUERY_TYPE);
             }
             newQuery.copyFromQuery(query);
@@ -2115,7 +2115,7 @@
                 if (valueToApply instanceof Class) {
                     redirector = newInstance((Class)valueToApply, query, QueryHints.QUERY_REDIRECTOR);
                 } else if (valueToApply instanceof String) {
-                    Class redirectorClass = loadClass((String)valueToApply, query, loader);
+                    Class<?> redirectorClass = loadClass((String)valueToApply, query, loader);
                     redirector = newInstance(redirectorClass, query, QueryHints.QUERY_REDIRECTOR);
                 }
                 query.setRedirector((QueryRedirector)redirector);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/ArchiveFactoryImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/ArchiveFactoryImpl.java
index 08a5811..31071f5 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/ArchiveFactoryImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/ArchiveFactoryImpl.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
@@ -97,7 +97,7 @@
                 result = new JarFileArchive(rootUrl, new JarFile(f), descriptorLocation);
             }
         } else if ("jar".equals(protocol)) { // NOI18N
-            JarURLConnection conn = JarURLConnection.class.cast(rootUrl.openConnection());
+            JarURLConnection conn = (JarURLConnection) rootUrl.openConnection();
             conn.setUseCaches(false);
             JarEntry je = conn.getJarEntry();
             if (je == null) {
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/DirectoryInsideJarURLArchive.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/DirectoryInsideJarURLArchive.java
index 41fb63d..e615b65 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/DirectoryInsideJarURLArchive.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/DirectoryInsideJarURLArchive.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
@@ -66,7 +66,7 @@
         rootURL = url;
         this.descriptorLocation = descriptorLocation;
         JarURLConnection conn =
-                JarURLConnection.class.cast(url.openConnection());
+                (JarURLConnection) url.openConnection();
         jarFile = conn.getJarFile();
         logger.logp(Level.FINER, "DirectoryInsideJarURLArchive",
                 "DirectoryInsideJarURLArchive", "jarFile = {0}", jarFile);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JPAInitializer.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JPAInitializer.java
index 2c04bc0..1729c24 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JPAInitializer.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JPAInitializer.java
@@ -206,7 +206,7 @@
      * that we will be deploying.
      */
     protected Set loadEntityClasses(Collection entityNames, ClassLoader classLoader) {
-        Set entityClasses = new HashSet<>();
+        Set<Object> entityClasses = new HashSet<>();
 
         // Load the classes using the loader passed in
         AbstractSessionLog.getLog().log(SessionLog.FINER, SessionLog.JPA, "cmp_loading_entities_using_loader", classLoader);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JavaSECMPInitializer.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JavaSECMPInitializer.java
index 24a982e..2b0407b 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JavaSECMPInitializer.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/JavaSECMPInitializer.java
@@ -181,7 +181,7 @@
             try {
                 Class[] argsClasses = new Class[] { URL[].class, ClassLoader.class, Collection.class, boolean.class };
                 Object[] args = new Object[] { urlPath, currentLoader, col, shouldOverrideLoadClassForCollectionMembers };
-                Constructor classLoaderConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(TempEntityLoader.class, argsClasses, true));
+                Constructor<TempEntityLoader> classLoaderConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(TempEntityLoader.class, argsClasses, true));
                 tempLoader = (ClassLoader) AccessController.doPrivileged(new PrivilegedInvokeConstructor(classLoaderConstructor, args));
             } catch (PrivilegedActionException privilegedException) {
                 throw new PersistenceException(EntityManagerSetupException.failedToInstantiateTemporaryClassLoader(privilegedException));
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/MetamodelImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/MetamodelImpl.java
index 99ec4ee..f5f8713 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/MetamodelImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/MetamodelImpl.java
@@ -108,7 +108,7 @@
     private boolean isInitialized = false;
 
     /** Default elementType Class when we the type cannot be determined for unsupported mappings such as Transformation and VariableOneToOne */
-    public static final Class DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS = Object.class;
+    public static final Class<Object> DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS = Object.class;
 
     public MetamodelImpl(AbstractSession session) {
         this.session = session;
@@ -443,7 +443,7 @@
         // Handle all IdentifiableTypes (after all ManagedTypes have been created)
         // Assign all superType fields on all IdentifiableTypes (only after all managedType objects have been created)
         for(ManagedTypeImpl<?> potentialIdentifiableType : managedTypes.values()) {
-            Class aClass = potentialIdentifiableType.getJavaType(classLoader);
+            Class<?> aClass = potentialIdentifiableType.getJavaType(classLoader);
             /**
              * The superclass for top-level types is Object - however we set [null] as the supertype for root types.
              * 1) We are constrained by the fact that the spec requires that a superType be an IdentifiableType.
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/SingularAttributeImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/SingularAttributeImpl.java
index 2d5b699..fb69f05 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/SingularAttributeImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/SingularAttributeImpl.java
@@ -34,7 +34,6 @@
 import org.eclipse.persistence.mappings.DatabaseMapping;
 import org.eclipse.persistence.mappings.ForeignReferenceMapping;
 import org.eclipse.persistence.mappings.VariableOneToOneMapping;
-import org.eclipse.persistence.mappings.foundation.AbstractDirectMapping;
 import org.eclipse.persistence.mappings.structures.ReferenceMapping;
 
 /**
@@ -225,7 +224,7 @@
                         // This exception will be warned about below
                         if(null == aJavaType) {
                             AbstractSessionLog.getLog().log(SessionLog.FINEST, SessionLog.METAMODEL, "metamodel_attribute_class_type_is_null", this);
-                            return MetamodelImpl.DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS;
+                            return (Class<T>) MetamodelImpl.DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS;
                         }
                     }
                 }
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/TypeImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/TypeImpl.java
index 406336b..add57cb 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/TypeImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/metamodel/TypeImpl.java
@@ -62,7 +62,7 @@
         if(null == javaClass && null == javaClassName) {
             AbstractSessionLog.getLog().log(SessionLog.FINEST, SessionLog.METAMODEL, "metamodel_typeImpl_javaClass_should_not_be_null", this, null); // exporting (this) outside the constructor breaks concurrency
             // Default to Object to avoid a NPE - in the case where javaClass is not set or not set yet via Project.convertClassNamesToClasses()
-            this.javaClass = MetamodelImpl.DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS;
+            this.javaClass = (Class<X>) MetamodelImpl.DEFAULT_ELEMENT_TYPE_FOR_UNSUPPORTED_MAPPINGS;
         } else {
             this.javaClassName = javaClassName;
             this.javaClass = javaClass;
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaBuilderImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaBuilderImpl.java
index 0b12f94..79f59b4 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaBuilderImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaBuilderImpl.java
@@ -556,7 +556,7 @@
                 throw new IllegalArgumentException(ExceptionLocalization.buildMessage("PREDICATE_PASSED_TO_EVALUATION"));
             }
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().equal(true), list, "equals");
     }
@@ -618,7 +618,7 @@
     @Override
     public Predicate equal(Expression<?> x, Expression<?> y){
 
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().equal(((InternalSelection)y).getCurrentNode()), list, "equals");
@@ -638,7 +638,7 @@
         if (((InternalSelection)x).getCurrentNode() == null || ((InternalSelection)y).getCurrentNode() == null){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().notEqual(((InternalSelection)y).getCurrentNode()), list, "not equal");
@@ -661,7 +661,7 @@
         }
         if (y instanceof ParameterExpression) return this.equal(x, (ParameterExpression)y);
 
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(this.internalLiteral(y));
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().equal(y), list, "equal");
@@ -682,7 +682,7 @@
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
         if (y instanceof ParameterExpression) return this.notEqual(x, (ParameterExpression)y);
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(this.internalLiteral(y));
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().notEqual(y), list, "not equal");
@@ -704,7 +704,7 @@
         if (((InternalSelection)x).getCurrentNode() == null || ((InternalSelection)y).getCurrentNode() == null){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().greaterThan(((InternalSelection)y).getCurrentNode()), list, "greaterThan");
@@ -743,7 +743,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null || ((ExpressionImpl)y).getCurrentNode() == null){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().greaterThanEqual(((ExpressionImpl)y).getCurrentNode()), list, "greaterThanEqual");
@@ -764,7 +764,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null || ((ExpressionImpl)y).getCurrentNode() == null){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().lessThanEqual(((ExpressionImpl)y).getCurrentNode()), list, "lessThanEqual");
@@ -785,7 +785,7 @@
     @Override
     public <Y extends Comparable<? super Y>> Predicate between(Expression<? extends Y> v, Expression<? extends Y> x, Expression<? extends Y> y){
 
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(v);
         list.add(x);
         list.add(y);
@@ -808,7 +808,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null ){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(expressionY);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().greaterThan(((ExpressionImpl)expressionY).getCurrentNode()), list, "greaterThan");
@@ -830,7 +830,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null ){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(expressionY);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().lessThan(((ExpressionImpl)expressionY).getCurrentNode()), list, "lessThan");
@@ -852,7 +852,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null ){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(expressionY);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().greaterThanEqual(((ExpressionImpl)expressionY).getCurrentNode()), list, "greaterThanEqual");
@@ -874,7 +874,7 @@
         if (((ExpressionImpl)x).getCurrentNode() == null ){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("OPERATOR_EXPRESSION_IS_CONJUNCTION"));
         }
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(expressionY);
         return new CompoundExpressionImpl(this.metamodel, ((ExpressionImpl)x).getCurrentNode().lessThanEqual(((ExpressionImpl)expressionY).getCurrentNode()), list, "lessThanEqual");
@@ -894,7 +894,7 @@
      */
     @Override
     public <Y extends Comparable<? super Y>> Predicate between(Expression<? extends Y> v, Y x, Y y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(v);
         list.add(this.internalLiteral(x));
         list.add(this.internalLiteral(y));
@@ -902,7 +902,7 @@
     }
 
     protected List<Expression<?>> buildList(Expression<?>... expressions){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         for(Expression<?> exp : expressions){
             list.add(exp);
         }
@@ -922,7 +922,7 @@
      */
     @Override
     public Predicate gt(Expression<? extends Number> x, Expression<? extends Number> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().greaterThan(((InternalSelection)y).getCurrentNode()), list, "gt");
@@ -955,7 +955,7 @@
      */
     @Override
     public Predicate ge(Expression<? extends Number> x, Expression<? extends Number> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().greaterThanEqual(((InternalSelection)y).getCurrentNode()), list, "ge");
@@ -973,7 +973,7 @@
      */
     @Override
     public Predicate le(Expression<? extends Number> x, Expression<? extends Number> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().lessThanEqual(((InternalSelection)y).getCurrentNode()), list, "le");
@@ -991,7 +991,7 @@
      */
     @Override
     public Predicate gt(Expression<? extends Number> x, Number y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(internalLiteral(y));
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().greaterThan(y), list, "gt");
@@ -1024,7 +1024,7 @@
      */
     @Override
     public Predicate ge(Expression<? extends Number> x, Number y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(internalLiteral(y));
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)x).getCurrentNode().greaterThanEqual(y), list, "ge");
@@ -1130,7 +1130,7 @@
      */
     @Override
     public <N extends Number> Expression<N> diff(Expression<? extends N> x, Expression<? extends N> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         return new FunctionExpressionImpl(this.metamodel, x.getJavaType(), ExpressionMath.subtract(((InternalSelection)x).getCurrentNode(), ((InternalSelection)y).getCurrentNode()), list, "diff");
@@ -1175,7 +1175,7 @@
      */
     @Override
     public <N extends Number> Expression<N> diff(Expression<? extends N> x, N y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(this.internalLiteral(y));
         return new FunctionExpressionImpl(this.metamodel, y.getClass(), ExpressionMath.subtract(((InternalSelection)x).getCurrentNode(), y), list, "diff");
@@ -1220,7 +1220,7 @@
      */
     @Override
     public <N extends Number> Expression<N> diff(N x, Expression<? extends N> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         ExpressionImpl literal = (ExpressionImpl) this.internalLiteral(x);
         list.add(literal);
         list.add(y);
@@ -1308,7 +1308,7 @@
      */
     @Override
     public Expression<Integer> mod(Integer x, Expression<Integer> y){
-        Expression xExp = internalLiteral(x);
+        Expression<Integer> xExp = internalLiteral(x);
         return new FunctionExpressionImpl(this.metamodel, ClassConstants.INTEGER, ExpressionMath.mod(((InternalSelection)xExp).getCurrentNode(),((InternalSelection)y).getCurrentNode()), buildList(xExp,y), "mod");
     }
 
@@ -1800,7 +1800,7 @@
      */
     @Override
     public Predicate notLike(Expression<String> x, String pattern){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(this.internalLiteral(pattern));
 
@@ -1853,7 +1853,7 @@
      */
     @Override
     public Expression<String> concat(Expression<String> x, Expression<String> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(y);
         org.eclipse.persistence.expressions.Expression xNode = ((InternalSelection)x).getCurrentNode();
@@ -1877,7 +1877,7 @@
      */
     @Override
     public Expression<String> concat(Expression<String> x, String y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(x);
         list.add(this.internalLiteral(y));
         return new FunctionExpressionImpl(this.metamodel, ClassConstants.STRING, ((InternalSelection)x).getCurrentNode().concat(y), list, CONCAT);
@@ -1895,7 +1895,7 @@
      */
     @Override
     public Expression<String> concat(String x, Expression<String> y){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         ExpressionImpl literal = (ExpressionImpl) this.internalLiteral(x);
         list.add(literal);
         list.add(y);
@@ -2224,7 +2224,7 @@
      */
     @Override
     public <T> In<T> in(Expression<? extends T> expression){
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(expression);
         return new InImpl(metamodel, (ExpressionImpl) expression, new ArrayList<>(), list);
     }
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaQueryImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaQueryImpl.java
index 1a76351..df2fa38 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaQueryImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/CriteriaQueryImpl.java
@@ -672,7 +672,7 @@
         } else {
             ReportQuery reportQuery = null;
             if (this.queryResult.equals(ResultType.TUPLE)) {
-                List list = new ArrayList<>();
+                List<Object> list = new ArrayList<>();
                 list.add(this.selection);
                 reportQuery = new TupleQuery(list);
             } else {
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/ExpressionImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/ExpressionImpl.java
index 26955f5..a0fbb47 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/ExpressionImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/ExpressionImpl.java
@@ -78,7 +78,7 @@
 
     @Override
     public Predicate in(Object... values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.in(values), list, "in");
     }
@@ -99,7 +99,7 @@
                 // and route the execution to the right method
                 return in((Expression<Collection<?>>) values[0]);
             }
-            List list = new ArrayList<>();
+            List<Expression<?>> list = new ArrayList<>();
             list.add(this);
             if (values.length == 1 && ((InternalExpression) values[0]).isSubquery()) {
                 list.add(values[0]);
@@ -130,7 +130,7 @@
      */
     @Override
     public Predicate in(Collection<?> values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new InImpl(this.metamodel, this, values, list);
     }
@@ -142,7 +142,7 @@
      */
     @Override
     public Predicate in(Expression<Collection<?>> values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(values);
         list.add(this);
         return new InImpl(metamodel, this, (ExpressionImpl)values, list);
@@ -150,7 +150,7 @@
 
     @Override
     public Predicate isNotNull() {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.notNull(), list, "not null");
     }
@@ -158,7 +158,7 @@
 
     @Override
     public Predicate isNull() {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.isNull(), list, "is null");
     }
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/JoinImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/JoinImpl.java
index 9a17e67..354a951 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/JoinImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/JoinImpl.java
@@ -112,7 +112,7 @@
         if (((ExpressionImpl)this.on).isPredicate()) return (Predicate)this.on;
 
         //see queryBuilder.isTrue(this.on);
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this.on);
         return new CompoundExpressionImpl(this.metamodel, ((InternalSelection)this.on).getCurrentNode().equal(true), list, "equals");
     }
@@ -140,7 +140,7 @@
                         ((CompoundExpressionImpl)restrictions[i]).getCurrentNode());
                 ((CompoundExpressionImpl)a).setParentNode(currentNode);
                 ((CompoundExpressionImpl)restrictions[i]).setParentNode(currentNode);
-                ArrayList list = new ArrayList<>();
+                List<Expression<?>> list = new ArrayList<>();
                 list.add(a);
                 list.add(restrictions[i]);
                 a = new PredicateImpl(this.metamodel, currentNode, list, BooleanOperator.AND);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/SubQueryImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/SubQueryImpl.java
index fac2310..bd8c8f1 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/SubQueryImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/querydef/SubQueryImpl.java
@@ -476,7 +476,7 @@
 
     @Override
     public Predicate in(Object... values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.in(values), list, "in");
     }
@@ -489,7 +489,7 @@
      */
     @Override
     public Predicate in(Expression<?>... values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         for (Expression exp: values){
             if (!((InternalExpression)exp).isLiteral() && !((InternalExpression) exp).isParameter()){
@@ -509,7 +509,7 @@
      */
     @Override
     public Predicate in(Collection<?> values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.in(values), list, "in");
     }
@@ -521,14 +521,14 @@
      */
     @Override
     public Predicate in(Expression<Collection<?>> values) {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.in(((InternalSelection)values).getCurrentNode()), list, "in");
     }
 
     @Override
     public Predicate isNotNull() {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.notNull(), list, "not null");
     }
@@ -536,7 +536,7 @@
 
     @Override
     public Predicate isNull() {
-        List list = new ArrayList<>();
+        List<Expression<?>> list = new ArrayList<>();
         list.add(this);
         return new CompoundExpressionImpl(this.metamodel, this.currentNode.isNull(), list, "is null");
     }
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/transaction/TransactionImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/transaction/TransactionImpl.java
index 8eec1c4..47699a5 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/transaction/TransactionImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/transaction/TransactionImpl.java
@@ -43,7 +43,7 @@
 
     // The transactional connection we use
     Connection connection;
-    static Class proxyClass = Proxy.getProxyClass(Connection.class.getClassLoader(), new Class[] { Connection.class });
+    static Class<?> proxyClass = Proxy.getProxyClass(Connection.class.getClassLoader(), new Class[] { Connection.class });
 
     // The enlisted data source
     DataSourceImpl dataSource;
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
index 6b3f246..9943cf5 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/weaving/TransformerFactory.java
@@ -193,7 +193,7 @@
 
                 classDetails.getVirtualAccessMethods().addAll(descriptor.getVirtualAttributeMethods());
 
-                List unMappedAttributes = storeAttributeMappings(metaClass, classDetails, descriptor.getMappings(), weaveValueHoldersForClass);
+                List<DatabaseMapping> unMappedAttributes = storeAttributeMappings(metaClass, classDetails, descriptor.getMappings(), weaveValueHoldersForClass);
                 classDetailsMap.put(classDetails.getClassName() ,classDetails);
 
                 classDetails.setShouldWeaveConstructorOptimization((classDetails.getDescribedClass().getFields().size() - (descriptor.getMappings().size() - unMappedAttributes.size()))<=0);
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/tools/weaving/jpa/StaticWeaveClassTransformer.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/tools/weaving/jpa/StaticWeaveClassTransformer.java
index a2cd1a4..82227aa 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/tools/weaving/jpa/StaticWeaveClassTransformer.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/tools/weaving/jpa/StaticWeaveClassTransformer.java
@@ -112,7 +112,7 @@
             if (persistenceUnitsList==null) {
                 throw PersistenceUnitLoadingException.couldNotGetUnitInfoFromUrl(inputArchiveURL);
             }
-            Map emptyMap = new HashMap<>(0);
+            Map<Object, Object> emptyMap = new HashMap<>(0);
             Iterator<SEPersistenceUnitInfo> persistenceUnitsIterator = persistenceUnitsList.iterator();
             while (persistenceUnitsIterator.hasNext()) {
                 SEPersistenceUnitInfo unitInfo = persistenceUnitsIterator.next();
diff --git a/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/internal/AuctionPersistenceContextTests.java b/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/internal/AuctionPersistenceContextTests.java
index 91f1c02..5fe75eb 100644
--- a/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/internal/AuctionPersistenceContextTests.java
+++ b/jpa/org.eclipse.persistence.jpars/src/it/java/org/eclipse/persistence/jpars/test/internal/AuctionPersistenceContextTests.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
@@ -20,8 +20,8 @@
 import java.util.Map;
 
 import jakarta.persistence.EntityManagerFactory;
-import jakarta.xml.bind.JAXBContext;
 
+import org.eclipse.persistence.jaxb.JAXBContext;
 import org.eclipse.persistence.jpa.JpaHelper;
 import org.eclipse.persistence.jpa.rs.PersistenceContext;
 import org.eclipse.persistence.jpa.rs.PersistenceFactoryBase;
@@ -59,7 +59,7 @@
         JAXBContext jaxbContext = context.getJAXBContext();
         assertNotNull(jaxbContext);
 
-        org.eclipse.persistence.jaxb.JAXBContext contextImpl = (org.eclipse.persistence.jaxb.JAXBContext) jaxbContext;
+        org.eclipse.persistence.jaxb.JAXBContext contextImpl = jaxbContext;
 
         assertEquals(4, contextImpl.getXMLContext().getSession(0).getDescriptors().size());
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/AccessorFactoryWrapper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/AccessorFactoryWrapper.java
index a8f3338..917918a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/AccessorFactoryWrapper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/AccessorFactoryWrapper.java
@@ -41,7 +41,7 @@
 
     public AccessorFactoryWrapper(Object factory) {
         this.accessorFactory = factory;
-        Class accessorClass = factory.getClass();
+        Class<? extends Object> accessorClass = factory.getClass();
         try {
             createPropertyAccessorMethod = PrivilegedAccessHelper.getDeclaredMethod(accessorClass, ACCESSOR_FACTORY_CREATE_PROPERTY_ACCESSOR, new Class[]{Class.class, Method.class, Method.class});
             createFieldAccessorMethod = PrivilegedAccessHelper.getDeclaredMethod(accessorClass, ACCESSOR_FACTORY_CREATE_FIELD_ACCESSOR, new Class[]{Class.class, Field.class, boolean.class});
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/DomHandlerConverter.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/DomHandlerConverter.java
index a984216..2e8ab6b 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/DomHandlerConverter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/DomHandlerConverter.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
@@ -70,8 +70,8 @@
             ConversionManager cMgr = session.getDatasourcePlatform().getConversionManager();
             Class<? extends DomHandler> domHandlerClass = PrivilegedAccessHelper.getClassForName(domHandlerClassName, true, cMgr.getLoader());
 
-            Constructor cons = PrivilegedAccessHelper.getDeclaredConstructorFor(domHandlerClass, new Class[]{}, true);
-            this.domHandler = (DomHandler)PrivilegedAccessHelper.invokeConstructor(cons, new Object[]{});
+            Constructor<? extends DomHandler> cons = PrivilegedAccessHelper.getDeclaredConstructorFor(domHandlerClass, new Class[]{}, true);
+            this.domHandler = PrivilegedAccessHelper.invokeConstructor(cons, new Object[]{});
 
             Method createUnmarshallerMethod = PrivilegedAccessHelper.getDeclaredMethod(domHandlerClass, "createUnmarshaller", new Class[]{ValidationEventHandler.class});
             resultType = PrivilegedAccessHelper.getMethodReturnType(createUnmarshallerMethod);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/IDResolverWrapper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/IDResolverWrapper.java
index 6a40d82..ae91903 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/IDResolverWrapper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/IDResolverWrapper.java
@@ -49,7 +49,7 @@
 
     public IDResolverWrapper(Object sunResolver) {
         this.resolver = sunResolver;
-        Class resolverClass = sunResolver.getClass();
+        Class<? extends Object> resolverClass = sunResolver.getClass();
 
         try {
             this.bindMethod = PrivilegedAccessHelper.getMethod(resolverClass, BIND_METHOD_NAME, BIND_PARAMS, false);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBSetMethodAttributeAccessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBSetMethodAttributeAccessor.java
index 2a3a733..8647016 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBSetMethodAttributeAccessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBSetMethodAttributeAccessor.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
@@ -38,7 +38,7 @@
 public class JAXBSetMethodAttributeAccessor extends MethodAttributeAccessor {
     String parameterTypeAsString;
     ClassLoader loader;
-    Class attributeClassification = CoreClassConstants.OBJECT;
+    Class<Object> attributeClassification = CoreClassConstants.OBJECT;
 
     /**
      * This constructor sets the set method input parameter type (as string) as
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JaxbClassLoader.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JaxbClassLoader.java
index 4fa2933..c92de7e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JaxbClassLoader.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JaxbClassLoader.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
@@ -124,7 +124,7 @@
     }
 
     public Class generateClass(String className, byte[] bytes) {
-        Class theClass = this.defineClass(className, bytes, 0, bytes.length);
+        Class<?> theClass = this.defineClass(className, bytes, 0, bytes.length);
         generatedClasses.put(className, theClass);
         return theClass;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java
index 675d9ef..2eb1aa2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/XMLJavaTypeConverter.java
@@ -49,8 +49,8 @@
  * @see jakarta.xml.bind.annotation.adapters.XmlAdapter
  */
 public class XMLJavaTypeConverter extends org.eclipse.persistence.oxm.mappings.converters.XMLConverterAdapter {
-    protected Class boundType = Object.class;
-    protected Class valueType = Object.class;
+    protected Class<Object> boundType = Object.class;
+    protected Class<Object> valueType = Object.class;
     protected Class<?> xmlAdapterClass;
     protected String xmlAdapterClassName;
     protected XmlAdapter xmlAdapter;
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/json/schema/JsonSchemaGenerator.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/json/schema/JsonSchemaGenerator.java
index 316e56b..dca1c3f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/json/schema/JsonSchemaGenerator.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/json/schema/JsonSchemaGenerator.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
@@ -144,7 +144,7 @@
         if(rootClass.isArray() || isCollection(rootClass)) {
             schema.setType(JsonType.ARRAY);
             schema.setItems(new Property());
-            Class itemType = Object.class;
+            Class<Object> itemType = Object.class;
 
             if(rootClass.isArray()) {
                 itemType = rootClass.getComponentType();
@@ -454,7 +454,7 @@
                     String propertyName = getNameForFragment(frag);
 
                     XMLField targetField = (XMLField) mapping.getSourceToTargetKeyFieldAssociations().get(nextField);
-                    Class type = CoreClassConstants.STRING;
+                    Class<String> type = CoreClassConstants.STRING;
                     if(reference != null) {
                         type = getTypeForTargetField(targetField, reference);
                     }
@@ -627,7 +627,7 @@
                     XPathFragment frag = nextField.getXPathFragment();
                     String propName = getNameForFragment(frag);
                     XMLField targetField = (XMLField) mapping.getSourceToTargetKeyFieldAssociations().get(nextField);
-                    Class type = CoreClassConstants.STRING;
+                    Class<String> type = CoreClassConstants.STRING;
                     if(reference != null) {
                         type = getTypeForTargetField(targetField, reference);
                     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalArrayValue.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalArrayValue.java
index 2da76b1..8436aa2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalArrayValue.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalArrayValue.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
@@ -46,9 +46,9 @@
             int arraySize = Array.getLength(array);
             adaptedValue = new ArrayList<T>(arraySize);
             for(int x=0; x<arraySize; x++) {
-                ManyValue<?, Object> manyValue = PrivilegedAccessHelper.newInstanceFromClass(componentClass());
+                T manyValue = PrivilegedAccessHelper.newInstanceFromClass(componentClass());
                 manyValue.setItem(Array.get(array, x));
-                adaptedValue.add((T) manyValue);
+                adaptedValue.add(manyValue);
             }
         } catch(Exception e) {
             throw new RuntimeException(e);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalCollectionValue.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalCollectionValue.java
index e2f5bfd..4f8a1e9 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalCollectionValue.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MultiDimensionalCollectionValue.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -54,9 +54,9 @@
             Collection<T> collection = (Collection<T>) item;
             adaptedValue = new ArrayList<T>(collection.size());
             for(Object stringArray : collection) {
-                ManyValue<?, Object> stringArrayValue = PrivilegedAccessHelper.newInstanceFromClass(componentClass());
+                T stringArrayValue = PrivilegedAccessHelper.newInstanceFromClass(componentClass());
                 stringArrayValue.setItem(stringArray);
-                adaptedValue.add((T) stringArrayValue);
+                adaptedValue.add(stringArrayValue);
             }
         } catch(Exception e) {
             throw new RuntimeException(e);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBContext.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBContext.java
index 4a97ca5..7c99942 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBContext.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBContext.java
@@ -63,6 +63,7 @@
 import org.eclipse.persistence.exceptions.JAXBException;
 import org.eclipse.persistence.internal.core.helper.CoreClassConstants;
 import org.eclipse.persistence.internal.helper.ConversionManager;
+import org.eclipse.persistence.internal.helper.DatabaseField;
 import org.eclipse.persistence.internal.jaxb.JAXBSchemaOutputResolver;
 import org.eclipse.persistence.internal.jaxb.JaxbClassLoader;
 import org.eclipse.persistence.internal.jaxb.ObjectGraphImpl;
@@ -723,7 +724,7 @@
     public ObjectGraph createObjectGraph(String typeName) {
         ClassLoader loader = this.contextInput.classLoader;
         try {
-            Class cls = PrivilegedAccessHelper.getClassForName(typeName, true, loader);
+            Class<Object> cls = PrivilegedAccessHelper.getClassForName(typeName, true, loader);
             return createObjectGraph(cls);
         } catch (Exception ex) {
             throw ConversionException.couldNotBeConvertedToClass(typeName, Class.class, ex);
@@ -878,7 +879,7 @@
             while (tokenizer.hasMoreElements()) {
                 String path = tokenizer.nextToken();
                 try {
-                    Class objectFactory = classLoader.loadClass(path + ".ObjectFactory");
+                    Class<?> objectFactory = classLoader.loadClass(path + ".ObjectFactory");
                     if (isJAXB2ObjectFactory(objectFactory, classLoader)) {
                         classes.add(objectFactory);
                         foundMetadata = true;
@@ -1022,7 +1023,7 @@
                 }
             }
 
-            XMLPlatform platform = new SAXPlatform();
+            XMLPlatform<org.eclipse.persistence.internal.oxm.XMLUnmarshaller> platform = new SAXPlatform();
             platform.getConversionManager().setLoader(loader);
             XMLContext xmlContext = new XMLContext((Project) proj, loader, sessionEventListeners());
 
@@ -1054,7 +1055,7 @@
             if (jTypes != null) {
                 for (JavaType javaType : jTypes.getJavaType()) {
                     try {
-                        Class jClass = classLoader.loadClass(getQualifiedJavaTypeName(javaType.getName(), xmlBindings.getPackageName()));
+                        Class<?> jClass = classLoader.loadClass(getQualifiedJavaTypeName(javaType.getName(), xmlBindings.getPackageName()));
                         if (!additionalClasses.contains(jClass)) {
                             additionalClasses.add(jClass);
                         }
@@ -1068,7 +1069,7 @@
 
         private boolean isJAXB2ObjectFactory(Class objectFactoryClass, ClassLoader classLoader) {
             try {
-                Class xmlRegistry = PrivilegedAccessHelper.getClassForName("jakarta.xml.bind.annotation.XmlRegistry", false, classLoader);
+                Class<Object> xmlRegistry = PrivilegedAccessHelper.getClassForName("jakarta.xml.bind.annotation.XmlRegistry", false, classLoader);
                 if (objectFactoryClass.isAnnotationPresent(xmlRegistry)) {
                     return true;
                 }
@@ -1205,7 +1206,7 @@
                 }
             }
 
-            XMLPlatform platform = new SAXPlatform();
+            XMLPlatform<org.eclipse.persistence.internal.oxm.XMLUnmarshaller> platform = new SAXPlatform();
             platform.getConversionManager().setLoader(loader);
             XMLContext xmlContext = new XMLContext((Project) proj, loader, sessionEventListeners());
 
@@ -1254,7 +1255,7 @@
 
                 for (JavaType javaType : jTypes.getJavaType()) {
                     try {
-                        Class nextClass = classLoader.loadClass(getQualifiedJavaTypeName(javaType.getName(), xmlBindings.getPackageName()));
+                        Class<?> nextClass = classLoader.loadClass(getQualifiedJavaTypeName(javaType.getName(), xmlBindings.getPackageName()));
                         if (!(existingClasses.contains(nextClass))) {
                             TypeMappingInfo typeMappingInfo = new TypeMappingInfo();
                             typeMappingInfo.setType(nextClass);
@@ -1348,11 +1349,11 @@
         }
 
         private Class getBoundTypeForXmlAdapterClass(Class adapterClass) {
-            Class boundType = Object.class;
+            Class<Object> boundType = Object.class;
 
             for (Method method : PrivilegedAccessHelper.getDeclaredMethods(adapterClass)) {
                 if (method.getName().equals("marshal")) {
-                    Class returnType = PrivilegedAccessHelper.getMethodReturnType(method);
+                    Class<Object> returnType = PrivilegedAccessHelper.getMethodReturnType(method);
                     if (!returnType.getName().equals(boundType.getName())) {
                         boundType = returnType;
                         break;
@@ -1364,7 +1365,7 @@
 
         private void updateNamespaces() {
 
-            Collection descriptors = xmlContext.getSession().getDescriptors().values();
+            Collection<ClassDescriptor> descriptors = xmlContext.getSession().getDescriptors().values();
 
             for (Object descriptor : descriptors) {
                 Descriptor desc = (Descriptor) descriptor;
@@ -1393,7 +1394,7 @@
 
             for (Object mapping : mappings) {
                 DatabaseMapping nextMapping = (DatabaseMapping) mapping;
-                Vector fields = nextMapping.getFields();
+                Vector<DatabaseField> fields = nextMapping.getFields();
                 updateResolverForFields(fields, nr);
                 Descriptor refDesc = (Descriptor) nextMapping.getReferenceDescriptor();
                 if (refDesc != null && !processed.contains(refDesc)) {
@@ -1412,7 +1413,7 @@
 
         private void updateResolverForFields(Collection fields, org.eclipse.persistence.internal.oxm.NamespaceResolver nr) {
             for (Object field1 : fields) {
-                Field field = (XMLField) field1;
+                Field<XMLConversionManager, NamespaceResolver> field = (XMLField) field1;
                 XPathFragment currentFragment = field.getXPathFragment();
 
                 while (currentFragment != null) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
index fef80cf..26cba23 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/AnnotationsProcessor.java
@@ -74,6 +74,7 @@
 import jakarta.xml.bind.annotation.XmlType;
 import jakarta.xml.bind.annotation.XmlType.DEFAULT;
 import jakarta.xml.bind.annotation.XmlValue;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
 import javax.xml.namespace.QName;
@@ -508,7 +509,7 @@
         typeMappingInfosToGeneratedClasses = new HashMap<TypeMappingInfo, Class>();
         typeMappingInfosToSchemaTypes = new HashMap<TypeMappingInfo, QName>();
         elementDeclarations = new HashMap<String, Map<QName, ElementDeclaration>>();
-        Map globalElements = new HashMap<QName, ElementDeclaration>();
+        Map<QName, ElementDeclaration> globalElements = new HashMap<>();
         elementDeclarations.put(XmlElementDecl.GLOBAL.class.getName(), globalElements);
         localElements = new ArrayList<ElementDeclaration>();
 
@@ -815,17 +816,17 @@
                     info.setXmlNameTransformer(nsInfoXmlNameTransformer);
                 } else if (helper.isAnnotationPresent(javaClass, XmlNameTransformer.class)) {
                     XmlNameTransformer xmlNameTransformer = (XmlNameTransformer) helper.getAnnotation(javaClass, XmlNameTransformer.class);
-                    Class nameTransformerClass = xmlNameTransformer.value();
+                    Class<? extends XMLNameTransformer> nameTransformerClass = xmlNameTransformer.value();
                     try {
-                        info.setXmlNameTransformer((XMLNameTransformer) nameTransformerClass.getConstructor().newInstance());
+                        info.setXmlNameTransformer(nameTransformerClass.getConstructor().newInstance());
                     } catch (ReflectiveOperationException ex) {
                         throw JAXBException.exceptionWithNameTransformerClass(nameTransformerClass.getName(), ex);
                     }
                 } else if (helper.isAnnotationPresent(javaClass.getPackage(), XmlNameTransformer.class)) {
                     XmlNameTransformer xmlNameTransformer = (XmlNameTransformer) helper.getAnnotation(javaClass.getPackage(), XmlNameTransformer.class);
-                    Class nameTransformerClass = xmlNameTransformer.value();
+                    Class<? extends XMLNameTransformer> nameTransformerClass = xmlNameTransformer.value();
                     try {
-                        info.setXmlNameTransformer((XMLNameTransformer) nameTransformerClass.getConstructor().newInstance());
+                        info.setXmlNameTransformer(nameTransformerClass.getConstructor().newInstance());
                     } catch (ReflectiveOperationException ex) {
                         throw JAXBException.exceptionWithNameTransformerClass(nameTransformerClass.getName(), ex);
                     }
@@ -2064,7 +2065,7 @@
         if (helper.isAnnotationPresent(javaHasAnnotations, XmlPath.class)) {
             XmlPath xmlPath = (XmlPath) helper.getAnnotation(javaHasAnnotations, XmlPath.class);
             property.setXmlPath(xmlPath.value());
-            Field tempField = new XMLField(xmlPath.value());
+            Field<XMLConversionManager, NamespaceResolver> tempField = new XMLField(xmlPath.value());
             boolean isAttribute = tempField.getLastXPathFragment().isAttribute();
             property.setIsAttribute(isAttribute);
             // set schema name
@@ -3215,8 +3216,8 @@
     public HashMap<String, Property> getPropertyMapFromArrayList(ArrayList<Property> props) {
         HashMap propMap = new HashMap(props.size());
 
-        for (Object next : props) {
-            propMap.put(((Property)next).getPropertyName(), next);
+        for (Property next : props) {
+            propMap.put(next.getPropertyName(), next);
         }
         return propMap;
     }
@@ -3286,7 +3287,7 @@
         }
 
         info.setClassName(javaClass.getQualifiedName());
-        Class restrictionClass = String.class;
+        Class<?> restrictionClass = String.class;
         QName restrictionBase = getSchemaTypeFor(helper.getJavaClass(restrictionClass));
 
         if (helper.isAnnotationPresent(javaClass, XmlEnum.class)) {
@@ -3808,7 +3809,7 @@
             String url;
             String localName;
             String defaultValue = null;
-            Class scopeClass = jakarta.xml.bind.annotation.XmlElementDecl.GLOBAL.class;
+            Class<XmlElementDecl.GLOBAL> scopeClass = jakarta.xml.bind.annotation.XmlElementDecl.GLOBAL.class;
 
             if (xmlEltDecl != null) {
                 url = xmlEltDecl.getNamespace();
@@ -3884,7 +3885,7 @@
 
             if (helper.isAnnotationPresent(next, XmlJavaTypeAdapter.class)) {
                 XmlJavaTypeAdapter typeAdapter = (XmlJavaTypeAdapter) helper.getAnnotation(next, XmlJavaTypeAdapter.class);
-                Class typeAdapterClass = typeAdapter.value();
+                Class<? extends XmlAdapter> typeAdapterClass = typeAdapter.value();
                 declaration.setJavaTypeAdapterClass(typeAdapterClass);
 
                 Class declJavaType = CompilerHelper.getTypeFromAdapterClass(typeAdapterClass);
@@ -4011,12 +4012,12 @@
         if(elem == null){
             return false;
         }
-        List annotations = (List<JavaAnnotation>) elem.getAnnotations();
+        List<JavaAnnotation> annotations = (List<JavaAnnotation>) elem.getAnnotations();
         if (annotations == null || annotations.isEmpty()) {
             return false;
         }
-        for (Object annotation : annotations) {
-            String nextName = ((JavaAnnotation) annotation).getName();
+        for (JavaAnnotation annotation : annotations) {
+            String nextName = annotation.getName();
             if (nextName.startsWith(JAVAX_XML_BIND_ANNOTATION)
                     || nextName.startsWith(OXM_ANNOTATIONS)
                     || nextName.equals(CompilerHelper.XML_LOCATION_ANNOTATION_NAME)
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/CompilerHelper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/CompilerHelper.java
index ebece96..e7fcb90 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/CompilerHelper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/CompilerHelper.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,7 @@
 import jakarta.xml.bind.Unmarshaller;
 import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlList;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper;
@@ -334,13 +335,13 @@
      */
     static Class getTypeFromAdapterClass(Class adapterClass) {
         if (adapterClass != null) {
-            Class declJavaType = Object.class;
+            Class<Object> declJavaType = Object.class;
             // look for marshal method
             Method[] tacMethods = PrivilegedAccessHelper.getMethods(adapterClass);
             for (int i = 0; i < tacMethods.length; i++) {
                 Method method = tacMethods[i];
                 if (method.getName().equals("marshal")) {
-                    Class returnType = PrivilegedAccessHelper.getMethodReturnType(method);
+                    Class<Object> returnType = PrivilegedAccessHelper.getMethodReturnType(method);
                     if (!(returnType == declJavaType)) {
                         declJavaType = returnType;
                         return declJavaType;
@@ -413,7 +414,7 @@
                             if (nextAnnotation instanceof XmlJavaTypeAdapter) {
                                 Class typeClass = ((XmlJavaTypeAdapter) nextAnnotation).type();
                                 if (typeClass.getName().equals("jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter$DEFAULT")) {
-                                    Class adapterClass = ((XmlJavaTypeAdapter) nextAnnotation).value();
+                                    Class<? extends XmlAdapter> adapterClass = ((XmlJavaTypeAdapter) nextAnnotation).value();
                                     return getTypeFromAdapterClass(adapterClass);
                                 }
                                 return typeClass;
@@ -462,7 +463,7 @@
                         return PrivilegedAccessHelper.getClassForName(actualType);
                     } else {
                         String adapterClassName = element.getXmlJavaTypeAdapter().getValue();
-                        Class adapterClass = PrivilegedAccessHelper.getClassForName(adapterClassName);
+                        Class<Object> adapterClass = PrivilegedAccessHelper.getClassForName(adapterClassName);
                         return getTypeFromAdapterClass(adapterClass);
                     }
                 }
@@ -472,7 +473,7 @@
 
                     final Type tmiType = tmi.getType();
                     if (isCollectionType(tmiType)) {
-                        final Class itemType = PrivilegedAccessHelper.getClassForName(actualType);
+                        final Class<Object> itemType = PrivilegedAccessHelper.getClassForName(actualType);
                         Type parameterizedType = new ParameterizedType() {
                             Type[] typeArgs = { itemType };
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Generator.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Generator.java
index 5f3209b..1ecdd16 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Generator.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Generator.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
@@ -28,6 +28,7 @@
 import javax.xml.namespace.QName;
 
 import org.eclipse.persistence.core.sessions.CoreProject;
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.internal.oxm.Constants;
 import org.eclipse.persistence.internal.oxm.mappings.Descriptor;
 import org.eclipse.persistence.internal.oxm.schema.SchemaModelProject;
@@ -44,6 +45,8 @@
 import org.eclipse.persistence.oxm.NamespaceResolver;
 import org.eclipse.persistence.oxm.XMLContext;
 import org.eclipse.persistence.oxm.XMLMarshaller;
+import org.eclipse.persistence.sessions.DatabaseSession;
+import org.eclipse.persistence.sessions.Login;
 import org.eclipse.persistence.sessions.Project;
 
 /**
@@ -205,8 +208,8 @@
         processAdditionalElements(additionalGlobalElements, annotationsProcessor);
 
         schemaGenerator.generateSchema(annotationsProcessor.getTypeInfoClasses(), annotationsProcessor.getTypeInfos(), annotationsProcessor.getUserDefinedSchemaTypes(), annotationsProcessor.getPackageToPackageInfoMappings(), annotationsProcessor.getGlobalElements(), annotationsProcessor.getArrayClassesToGeneratedClasses());
-        CoreProject proj = new SchemaModelProject();
-        XMLContext context = new XMLContext((Project)proj);
+        Project proj = new SchemaModelProject();
+        XMLContext context = new XMLContext(proj);
         XMLMarshaller marshaller = context.createMarshaller();
         Descriptor schemaDescriptor = (Descriptor)proj.getDescriptor(Schema.class);
 
@@ -226,8 +229,8 @@
         processAdditionalElements(additionalGlobalElements, annotationsProcessor);
 
         schemaGenerator.generateSchema(annotationsProcessor.getTypeInfoClasses(), annotationsProcessor.getTypeInfos(), annotationsProcessor.getUserDefinedSchemaTypes(), annotationsProcessor.getPackageToPackageInfoMappings(), annotationsProcessor.getGlobalElements(), annotationsProcessor.getArrayClassesToGeneratedClasses(), outputResolver);
-        CoreProject proj = new SchemaModelProject();
-        XMLContext context = new XMLContext((Project)proj);
+        Project proj = new SchemaModelProject();
+        XMLContext context = new XMLContext(proj);
         XMLMarshaller marshaller = context.createMarshaller();
 
         Descriptor schemaDescriptor = (Descriptor)proj.getDescriptor(Schema.class);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
index 30100f5..7b32eb8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MappingsGenerator.java
@@ -51,6 +51,8 @@
 import org.eclipse.persistence.core.mappings.converters.CoreConverter;
 import org.eclipse.persistence.core.queries.CoreAttributeGroup;
 import org.eclipse.persistence.core.sessions.CoreProject;
+import org.eclipse.persistence.descriptors.ClassDescriptor;
+import org.eclipse.persistence.descriptors.InheritancePolicy;
 import org.eclipse.persistence.dynamic.DynamicClassLoader;
 import org.eclipse.persistence.exceptions.DescriptorException;
 import org.eclipse.persistence.exceptions.JAXBException;
@@ -58,7 +60,10 @@
 import org.eclipse.persistence.internal.descriptors.InstanceVariableAttributeAccessor;
 import org.eclipse.persistence.internal.descriptors.InstantiationPolicy;
 import org.eclipse.persistence.internal.descriptors.MethodAttributeAccessor;
+import org.eclipse.persistence.internal.descriptors.ObjectBuilder;
 import org.eclipse.persistence.internal.descriptors.VirtualAttributeAccessor;
+import org.eclipse.persistence.internal.helper.DatabaseField;
+import org.eclipse.persistence.internal.helper.DatabaseTable;
 import org.eclipse.persistence.internal.jaxb.AccessorFactoryWrapper;
 import org.eclipse.persistence.internal.jaxb.CustomAccessorAttributeAccessor;
 import org.eclipse.persistence.internal.jaxb.DefaultElementConverter;
@@ -103,9 +108,12 @@
 import org.eclipse.persistence.internal.oxm.mappings.VariableXPathCollectionMapping;
 import org.eclipse.persistence.internal.oxm.mappings.VariableXPathObjectMapping;
 import org.eclipse.persistence.internal.oxm.mappings.XMLContainerMapping;
+import org.eclipse.persistence.internal.oxm.record.UnmarshalRecord;
+import org.eclipse.persistence.internal.oxm.record.XMLTransformationRecord;
 import org.eclipse.persistence.internal.queries.ContainerPolicy;
 import org.eclipse.persistence.internal.security.PrivilegedAccessHelper;
 import org.eclipse.persistence.internal.security.PrivilegedClassForName;
+import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.jaxb.JAXBEnumTypeConverter;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.javamodel.Helper;
@@ -126,12 +134,16 @@
 import org.eclipse.persistence.jaxb.xmlmodel.XmlTransformation.XmlWriteTransformer;
 import org.eclipse.persistence.logging.AbstractSessionLog;
 import org.eclipse.persistence.logging.SessionLog;
+import org.eclipse.persistence.mappings.AttributeAccessor;
 import org.eclipse.persistence.mappings.DatabaseMapping;
 import org.eclipse.persistence.mappings.converters.Converter;
 import org.eclipse.persistence.oxm.XMLConstants;
 import org.eclipse.persistence.oxm.XMLDescriptor;
 import org.eclipse.persistence.oxm.XMLField;
+import org.eclipse.persistence.oxm.XMLMarshaller;
+import org.eclipse.persistence.oxm.XMLUnmarshaller;
 import org.eclipse.persistence.oxm.mappings.FixedMimeTypePolicy;
+import org.eclipse.persistence.oxm.mappings.MimeTypePolicy;
 import org.eclipse.persistence.oxm.mappings.UnmarshalKeepAsElementPolicy;
 import org.eclipse.persistence.oxm.mappings.XMLAnyAttributeMapping;
 import org.eclipse.persistence.oxm.mappings.XMLAnyCollectionMapping;
@@ -151,15 +163,18 @@
 import org.eclipse.persistence.oxm.mappings.XMLTransformationMapping;
 import org.eclipse.persistence.oxm.mappings.XMLVariableXPathCollectionMapping;
 import org.eclipse.persistence.oxm.mappings.XMLVariableXPathObjectMapping;
+import org.eclipse.persistence.oxm.mappings.converters.XMLConverter;
 import org.eclipse.persistence.oxm.mappings.converters.XMLListConverter;
 import org.eclipse.persistence.oxm.mappings.nullpolicy.AbstractNullPolicy;
 import org.eclipse.persistence.oxm.mappings.nullpolicy.IsSetNullPolicy;
 import org.eclipse.persistence.oxm.mappings.nullpolicy.NullPolicy;
 import org.eclipse.persistence.oxm.mappings.nullpolicy.XMLNullRepresentationType;
+import org.eclipse.persistence.oxm.record.XMLRecord;
 import org.eclipse.persistence.oxm.schema.XMLSchemaClassPathReference;
 import org.eclipse.persistence.oxm.schema.XMLSchemaReference;
 import org.eclipse.persistence.queries.AttributeGroup;
 import org.eclipse.persistence.sessions.Project;
+import org.eclipse.persistence.sessions.Session;
 
 /**
  * INTERNAL:
@@ -265,7 +280,7 @@
             if (tInfo.getXmlCustomizer() != null) {
                 String customizerClassName = tInfo.getXmlCustomizer();
                 try {
-                    Class customizerClass = PrivilegedAccessHelper.getClassForName(customizerClassName, true, helper.getClassLoader());
+                    Class<Object> customizerClass = PrivilegedAccessHelper.getClassForName(customizerClassName, true, helper.getClassLoader());
                     DescriptorCustomizer descriptorCustomizer = (DescriptorCustomizer) PrivilegedAccessHelper.newInstanceFromClass(customizerClass);
                     descriptorCustomizer.customize((XMLDescriptor)tInfo.getDescriptor());
                 } catch (IllegalAccessException iae) {
@@ -892,7 +907,7 @@
             if(componentType.isArray()) {
                 JavaClass baseComponentType = getBaseComponentType(componentType);
                 if (baseComponentType.isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
+                    Class<Object> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
                     accessor.setComponentClass(primitiveClass);
                 } else {
                     accessor.setComponentClassName(baseComponentType.getQualifiedName());
@@ -1014,7 +1029,7 @@
     }
 
     private InverseReferenceMapping generateInverseReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespace) {
-        InverseReferenceMapping invMapping = new XMLInverseReferenceMapping();
+        InverseReferenceMapping<AbstractSession, AttributeAccessor, ContainerPolicy, ClassDescriptor, DatabaseField, DatabaseMapping, org.eclipse.persistence.internal.oxm.record.XMLRecord> invMapping = new XMLInverseReferenceMapping();
         boolean isCollection = helper.isCollectionType(property.getType());
 
         if (isCollection) {
@@ -1063,7 +1078,7 @@
      * @return
      */
     public TransformationMapping generateTransformationMapping(Property property, Descriptor descriptor, NamespaceInfo namespace) {
-        TransformationMapping mapping = new XMLTransformationMapping();
+        TransformationMapping<AbstractSession, AttributeAccessor, ContainerPolicy, ClassDescriptor, DatabaseField, XMLTransformationRecord, XMLRecord> mapping = new XMLTransformationMapping();
         if (property.isMethodProperty()) {
             if (property.getGetMethodName() == null) {
                 // handle case of set with no get method
@@ -1107,8 +1122,8 @@
     }
 
     public ChoiceObjectMapping generateChoiceMapping(Property property, Descriptor descriptor, NamespaceInfo namespace) {
-        ChoiceObjectMapping mapping = new XMLChoiceObjectMapping();
-        initializeXMLMapping((XMLChoiceObjectMapping)mapping, property);
+        XMLChoiceObjectMapping mapping = new XMLChoiceObjectMapping();
+        initializeXMLMapping(mapping, property);
 
         boolean isIdRef = property.isXmlIdRef();
         Iterator<Property> choiceProperties = property.getChoiceProperties().iterator();
@@ -1130,8 +1145,8 @@
             }
             if (next.getXmlJoinNodes() != null) {
                 // handle XmlJoinNodes
-                List<Field> srcFlds = new ArrayList<>();
-                List<Field> tgtFlds = new ArrayList<>();
+                List<XMLField> srcFlds = new ArrayList<>();
+                List<XMLField> tgtFlds = new ArrayList<>();
                 for (XmlJoinNode xmlJoinNode: next.getXmlJoinNodes().getXmlJoinNode()) {
                     srcFlds.add(new XMLField(xmlJoinNode.getXmlPath()));
                     tgtFlds.add(new XMLField(xmlJoinNode.getReferencedXmlPath()));
@@ -1154,11 +1169,11 @@
                 }
                 mapping.addChoiceElement(srcXPath.getXPath(), type.getQualifiedName(), tgtXPath);
             } else {
-                Field xpath;
+                XMLField xpath;
                 if (next.getXmlPath() != null) {
                     xpath = new XMLField(next.getXmlPath());
                 } else {
-                    xpath = getXPathForField(next, namespace, (!(this.typeInfo.containsKey(type.getQualifiedName()))) || next.isMtomAttachment() || type.isEnum(), false);
+                    xpath = (XMLField) getXPathForField(next, namespace, (!(this.typeInfo.containsKey(type.getQualifiedName()))) || next.isMtomAttachment() || type.isEnum(), false);
                 }
                 mapping.addChoiceElement(xpath, type.getQualifiedName());
                 if(!originalType.getQualifiedName().equals(type.getQualifiedName())) {
@@ -1167,7 +1182,7 @@
                     }
                     mapping.addConverter(xpath, converter);
                 }
-                Mapping nestedMapping = (Mapping) mapping.getChoiceElementMappings().get(xpath);
+                XMLMapping nestedMapping = mapping.getChoiceElementMappings().get(xpath);
                 if(nestedMapping instanceof BinaryDataMapping){
                     ((BinaryDataMapping)nestedMapping).getNullPolicy().setNullRepresentedByEmptyNode(false);
                 }
@@ -1193,7 +1208,7 @@
             if(componentType.isArray()) {
                 JavaClass baseComponentType = getBaseComponentType(componentType);
                 if (baseComponentType.isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
+                    Class<?> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
                     accessor.setComponentClass(primitiveClass);
                 } else {
                     accessor.setComponentClassName(baseComponentType.getQualifiedName());
@@ -1567,7 +1582,7 @@
             if(componentType.isArray()) {
                 JavaClass baseComponentType = getBaseComponentType(componentType);
                 if (baseComponentType.isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
+                    Class<Object> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
                     accessor.setComponentClass(primitiveClass);
                 } else {
                     accessor.setComponentClassName(baseComponentType.getQualifiedName());
@@ -1795,7 +1810,7 @@
         JavaClass itemType = property.getActualType();
         if(collectionType != null && helper.isCollectionType(collectionType)){
             try{
-                Class declaredClass = PrivilegedAccessHelper.getClassForName(itemType.getQualifiedName(), false, helper.getClassLoader());
+                Class<Object> declaredClass = PrivilegedAccessHelper.getClassForName(itemType.getQualifiedName(), false, helper.getClassLoader());
                 mapping.setAttributeElementClass(declaredClass);
             }catch (Exception e) {
             }
@@ -1870,8 +1885,8 @@
         return mapping;
     }
     public AnyAttributeMapping generateAnyAttributeMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo) {
-        AnyAttributeMapping mapping = new XMLAnyAttributeMapping();
-        initializeXMLMapping((XMLAnyAttributeMapping)mapping, property);
+        XMLAnyAttributeMapping mapping = new XMLAnyAttributeMapping();
+        initializeXMLMapping(mapping, property);
         initializeXMLContainerMapping(mapping, property.getType().isArray());
 
         // if the XPath is set (via xml-path) use it
@@ -1891,7 +1906,7 @@
     }
 
     public AnyObjectMapping generateAnyObjectMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo)  {
-        AnyObjectMapping mapping = new XMLAnyObjectMapping();
+        AnyObjectMapping<AbstractSession, AttributeAccessor, ContainerPolicy, XMLConverter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, UnmarshalKeepAsElementPolicy, XMLUnmarshaller, XMLRecord> mapping = new XMLAnyObjectMapping();
         initializeXMLMapping((XMLMapping)mapping, property);
 
         // if the XPath is set (via xml-path) use it
@@ -2104,11 +2119,11 @@
                         directCollectionMapping.getContainerPolicy(), helper.getClassLoader());
                 String componentClassName = theType.getComponentType().getQualifiedName();
                 if (theType.getComponentType().isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(componentClassName);
+                    Class<Object> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(componentClassName);
                     accessor.setComponentClass(primitiveClass);
                     directCollectionMapping.setAttributeAccessor(accessor);
 
-                    Class declaredClass = XMLConversionManager.getObjectClass(primitiveClass);
+                    Class<Object> declaredClass = XMLConversionManager.getObjectClass(primitiveClass);
                     directCollectionMapping.setAttributeElementClass(declaredClass);
                 } else {
                     accessor.setComponentClassName(componentClassName);
@@ -2178,7 +2193,7 @@
 
     public CompositeCollectionMapping generateCompositeCollectionMapping(Property property, Descriptor descriptor, JavaClass javaClass, NamespaceInfo namespaceInfo, String referenceClassName) {
         boolean nestedArray = false;
-        CompositeCollectionMapping mapping = new XMLCompositeCollectionMapping();
+        CompositeCollectionMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, UnmarshalKeepAsElementPolicy, XMLUnmarshaller, XMLRecord> mapping = new XMLCompositeCollectionMapping();
         initializeXMLMapping((XMLMapping)mapping, property);
         initializeXMLContainerMapping(mapping, property.getType().isArray());
 
@@ -2210,7 +2225,7 @@
                 accessor.setAdaptedClassName(referenceClassName);
                 JavaClass baseComponentType = getBaseComponentType(componentType);
                 if (baseComponentType.isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
+                    Class<Object> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
                     accessor.setComponentClass(primitiveClass);
                 } else {
                     accessor.setComponentClassName(baseComponentType.getQualifiedName());
@@ -2278,11 +2293,11 @@
             JAXBArrayAttributeAccessor accessor = new JAXBArrayAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy(), helper.getClassLoader());
             String componentClassName = collectionType.getComponentType().getQualifiedName();
             if (collectionType.getComponentType().isPrimitive()){
-                Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(componentClassName);
+                Class<?> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(componentClassName);
                 accessor.setComponentClass(primitiveClass);
                 mapping.setAttributeAccessor(accessor);
 
-                Class declaredClass = XMLConversionManager.getObjectClass(primitiveClass);
+                Class<?> declaredClass = XMLConversionManager.getObjectClass(primitiveClass);
                 mapping.setAttributeElementClass(declaredClass);
             } else {
                 accessor.setComponentClassName(componentClassName);
@@ -2290,7 +2305,7 @@
 
                 JavaClass componentType = collectionType.getComponentType();
                 try{
-                    Class declaredClass = PrivilegedAccessHelper.getClassForName(componentType.getRawName(), false, helper.getClassLoader());
+                    Class<?> declaredClass = PrivilegedAccessHelper.getClassForName(componentType.getRawName(), false, helper.getClassLoader());
                     mapping.setAttributeElementClass(declaredClass);
                 }catch (Exception e) {}
             }
@@ -2299,7 +2314,7 @@
             if (args.size() >0){
                 JavaClass itemType = (JavaClass)args.iterator().next();
                 try {
-                    Class declaredClass = PrivilegedAccessHelper.getClassForName(itemType.getRawName(), false, helper.getClassLoader());
+                    Class<?> declaredClass = PrivilegedAccessHelper.getClassForName(itemType.getRawName(), false, helper.getClassLoader());
                     if(declaredClass != String.class){
                         mapping.setAttributeElementClass(declaredClass);
                     }
@@ -2509,9 +2524,9 @@
     }
 
     public void generateMappings() {
-        Iterator javaClasses = this.typeInfo.keySet().iterator();
+        Iterator<String> javaClasses = this.typeInfo.keySet().iterator();
         while (javaClasses.hasNext()) {
-            String next = (String)javaClasses.next();
+            String next = javaClasses.next();
             JavaClass javaClass = helper.getJavaClass(next);
             TypeInfo info = this.typeInfo.get(next);
             if (info.isEnumerationType()) {
@@ -2650,7 +2665,7 @@
      * @param referenceClass
      */
     public CollectionReferenceMapping generateXMLCollectionReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass) {
-        CollectionReferenceMapping mapping = new XMLCollectionReferenceMapping();
+        CollectionReferenceMapping<AbstractSession, AttributeAccessor, ContainerPolicy, ClassDescriptor, DatabaseField, UnmarshalRecord, XMLField, XMLRecord> mapping = new XMLCollectionReferenceMapping();
         initializeXMLMapping((XMLMapping)mapping, property);
 
         initializeXMLContainerMapping(mapping, property.getType().isArray());
@@ -2668,7 +2683,7 @@
                 accessor.setAdaptedClassName(referenceClassName);
                 JavaClass baseComponentType = getBaseComponentType(componentType);
                 if (baseComponentType.isPrimitive()){
-                    Class primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
+                    Class<Object> primitiveClass = XMLConversionManager.getDefaultManager().convertClassNameToClass(baseComponentType.getRawName());
                     accessor.setComponentClass(primitiveClass);
                 } else {
                     accessor.setComponentClassName(baseComponentType.getQualifiedName());
@@ -2736,7 +2751,7 @@
      * @param referenceClass
      */
     public ObjectReferenceMapping generateXMLObjectReferenceMapping(Property property, Descriptor descriptor, NamespaceInfo namespaceInfo, JavaClass referenceClass) {
-        ObjectReferenceMapping mapping = new XMLObjectReferenceMapping();
+        ObjectReferenceMapping<AbstractSession, AttributeAccessor, ContainerPolicy, ClassDescriptor, DatabaseField, UnmarshalRecord, XMLField, XMLRecord> mapping = new XMLObjectReferenceMapping();
         initializeXMLMapping((XMLMapping)mapping, property);
         mapping.setReferenceClassName(referenceClass.getQualifiedName());
 
@@ -3004,7 +3019,7 @@
                              typeMappingInfoToGeneratedClasses.put(nextElement.getTypeMappingInfo(), generatedClass);
                          }
                          try{
-                             Class declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
+                             Class<Object> declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
                              this.qNamesToDeclaredClasses.put(next, declaredClass);
                          }catch(Exception e){
                          }
@@ -3018,7 +3033,7 @@
                                 typeMappingInfoToGeneratedClasses.put(nextElement.getTypeMappingInfo(), generatedClass);
                             }
                             try{
-                                Class declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
+                                Class<Object> declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
                                 this.qNamesToDeclaredClasses.put(next, declaredClass);
                             }catch(Exception ex) {
 
@@ -3035,7 +3050,7 @@
                     this.classToGeneratedClasses.put(type.getJavaClassName(), generatedClass);
                 }
                 try{
-                    Class declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
+                    Class<Object> declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
                     this.qNamesToDeclaredClasses.put(next, declaredClass);
                 }catch(Exception e){
 
@@ -3099,7 +3114,7 @@
 
           this.qNamesToGeneratedClasses.put(next, generatedClass);
           try{
-              Class declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
+              Class<Object> declaredClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
               this.qNamesToDeclaredClasses.put(next, declaredClass);
           }catch(Exception e){
 
@@ -3113,7 +3128,7 @@
 
 
               if(nextElement.isList()){
-                  DirectCollectionMapping mapping = new XMLCompositeDirectCollectionMapping();
+                  DirectCollectionMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, XMLUnmarshaller, XMLRecord> mapping = new XMLCompositeDirectCollectionMapping();
                   mapping.setAttributeName("value");
                   mapping.setXPath("text()");
                   mapping.setUsesSingleNode(true);
@@ -3123,7 +3138,7 @@
                       mapping.setValueConverter(buildJAXBEnumTypeConverter(mapping, (EnumTypeInfo)type));
                   }else{
                       try{
-                          Class fieldElementClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
+                          Class<Object> fieldElementClass = PrivilegedAccessHelper.getClassForName(nextClassName, false, helper.getClassLoader());
                           mapping.setFieldElementClass(fieldElementClass);
                       }catch(ClassNotFoundException e){
                       }
@@ -3138,7 +3153,7 @@
                   desc.addMapping((CoreMapping)mapping);
               } else{
                   if(nextElement.getJavaTypeName().equals(OBJECT_CLASS_NAME)){
-                      CompositeObjectMapping mapping = new XMLCompositeObjectMapping();
+                      CompositeObjectMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, UnmarshalKeepAsElementPolicy, XMLUnmarshaller, XMLRecord> mapping = new XMLCompositeObjectMapping();
                       mapping.setAttributeName("value");
                       mapping.setSetMethodName("setValue");
                       mapping.setGetMethodName("getValue");
@@ -3148,7 +3163,7 @@
 
                       desc.addMapping((CoreMapping)mapping);
                   }else if(isBinaryData(nextElement.getJavaType())){
-                        BinaryDataMapping mapping = new XMLBinaryDataMapping();
+                        BinaryDataMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, MimeTypePolicy, Session, XMLUnmarshaller, XMLRecord> mapping = new XMLBinaryDataMapping();
                         mapping.setAttributeName("value");
                         mapping.setXPath(".");
                       ((Field)mapping.getField()).setSchemaType(Constants.BASE_64_BINARY_QNAME);
@@ -3168,7 +3183,7 @@
                       desc.addMapping((CoreMapping)mapping);
 
                   }else{
-                      DirectMapping mapping = new XMLDirectMapping();
+                      DirectMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, XMLUnmarshaller, XMLRecord> mapping = new XMLDirectMapping();
                       mapping.setNullValueMarshalled(true);
                       mapping.setAttributeName("value");
                       mapping.setXPath("text()");
@@ -3421,7 +3436,7 @@
                 XMLConversionManager mgr = new XMLConversionManager();
                 mgr.setLoader(helper.getClassLoader());
                 // handle parameter type
-                Class typeClass = mgr.convertClassNameToClass(typeStr);
+                Class<Object> typeClass = mgr.convertClassNameToClass(typeStr);
                 // handle parameter value
                 Object parameterValue = mgr.convertObject(valueStr, typeClass);
                 parameters.add(parameterValue);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Property.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Property.java
index 3fc9a11..7ca65dc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Property.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/Property.java
@@ -29,6 +29,7 @@
 import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.internal.oxm.XMLConversionManager;
 import org.eclipse.persistence.jaxb.compiler.facets.Facet;
 import org.eclipse.persistence.internal.jaxb.GenericsClassHelper;
 import org.eclipse.persistence.internal.oxm.XPathFragment;
@@ -43,6 +44,7 @@
 import org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes;
 import org.eclipse.persistence.jaxb.xmlmodel.XmlMarshalNullRepresentation;
 import org.eclipse.persistence.jaxb.xmlmodel.XmlTransformation;
+import org.eclipse.persistence.oxm.NamespaceResolver;
 import org.eclipse.persistence.oxm.XMLField;
 
 /**
@@ -1124,7 +1126,7 @@
         if (getXmlPath() == null) {
             return false;
         }
-        Field field = new XMLField(getXmlPath());
+        Field<XMLConversionManager, NamespaceResolver> field = new XMLField(getXmlPath());
         XPathFragment frag = field.getXPathFragment();
         // loop until we have the last non-null, non-attribute, non-text fragment
         while (true) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/SchemaGenerator.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/SchemaGenerator.java
index dcea6d8..d9128c5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/SchemaGenerator.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/SchemaGenerator.java
@@ -42,6 +42,7 @@
 import org.eclipse.persistence.internal.jaxb.many.MapValue;
 import org.eclipse.persistence.internal.oxm.Constants;
 import org.eclipse.persistence.internal.oxm.Namespace;
+import org.eclipse.persistence.internal.oxm.XMLConversionManager;
 import org.eclipse.persistence.internal.oxm.XPathFragment;
 import org.eclipse.persistence.internal.oxm.mappings.Field;
 import org.eclipse.persistence.internal.oxm.schema.model.All;
@@ -1550,7 +1551,7 @@
             return null;
         }
         // create the XPathFragment(s) for the path
-        Field xfld = new XMLField(property.getXmlPath());
+        Field<XMLConversionManager, NamespaceResolver> xfld = new XMLField(property.getXmlPath());
         xfld.setNamespaceResolver(schema.getNamespaceResolver());
         xfld.initialize();
         // build the schema components for the xml-path
@@ -2322,7 +2323,7 @@
     private void addXmlJoinNodesToSchema(Property property, TypeDefParticle compositor, Schema schema, ComplexType type) {
         for (XmlJoinNode xmlJoinNode : property.getXmlJoinNodes().getXmlJoinNode()) {
             // create the XPathFragment(s) for the path
-            Field xfld = new XMLField(xmlJoinNode.getXmlPath());
+            Field<XMLConversionManager, NamespaceResolver> xfld = new XMLField(xmlJoinNode.getXmlPath());
             xfld.setNamespaceResolver(schema.getNamespaceResolver());
             xfld.initialize();
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/XMLProcessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/XMLProcessor.java
index 82252c4..55ddd68 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/XMLProcessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/XMLProcessor.java
@@ -142,7 +142,7 @@
         // process each XmlBindings in the map
         XmlBindings xmlBindings;
         for (String packageName : xmlBindingMap.keySet()) {
-            ArrayList classesToProcess = pkgToClassMap.get(packageName);
+            ArrayList<JavaClass> classesToProcess = pkgToClassMap.get(packageName);
             if (classesToProcess == null) {
                 getLogger().logWarning("jaxb_metadata_warning_no_classes_to_process", new Object[] { packageName });
                 continue;
@@ -176,7 +176,7 @@
             }
 
             // build an array of JavaModel classes to process
-            JavaClass[] javaClasses = (JavaClass[]) classesToProcess.toArray(new JavaClass[classesToProcess.size()]);
+            JavaClass[] javaClasses = classesToProcess.toArray(new JavaClass[classesToProcess.size()]);
 
             // handle xml-enums
             // build a map of enum class names to XmlEnum objects
@@ -379,14 +379,14 @@
 
         }
         for (String packageName : xmlBindingMap.keySet()) {
-            ArrayList classesToProcess = pkgToClassMap.get(packageName);
+            ArrayList<JavaClass> classesToProcess = pkgToClassMap.get(packageName);
             if (classesToProcess == null) {
                 getLogger().logWarning("jaxb_metadata_warning_no_classes_to_process", new Object[] { packageName });
                 continue;
             }
 
             xmlBindings = xmlBindingMap.get(packageName);
-            JavaClass[] javaClasses = (JavaClass[]) classesToProcess.toArray(new JavaClass[classesToProcess.size()]);
+            JavaClass[] javaClasses = classesToProcess.toArray(new JavaClass[classesToProcess.size()]);
             // post-build the TypeInfo objects
             javaClasses = aProcessor.postBuildTypeInfo(javaClasses);
 
@@ -1086,8 +1086,8 @@
         }
         // handle null policy
         if (xmlAttribute.getXmlAbstractNullPolicy() != null) {
-            JAXBElement jaxbElt = xmlAttribute.getXmlAbstractNullPolicy();
-            oldProperty.setNullPolicy((XmlAbstractNullPolicy) jaxbElt.getValue());
+            JAXBElement<? extends XmlAbstractNullPolicy> jaxbElt = xmlAttribute.getXmlAbstractNullPolicy();
+            oldProperty.setNullPolicy(jaxbElt.getValue());
         }
         // set user-defined properties
         if (xmlAttribute.getXmlProperties() != null  && xmlAttribute.getXmlProperties().getXmlProperty().size() > 0) {
@@ -1300,8 +1300,8 @@
         }
         // handle null policy
         if (xmlElement.getXmlAbstractNullPolicy() != null) {
-            JAXBElement jaxbElt = xmlElement.getXmlAbstractNullPolicy();
-            oldProperty.setNullPolicy((XmlAbstractNullPolicy) jaxbElt.getValue());
+            JAXBElement<? extends XmlAbstractNullPolicy> jaxbElt = xmlElement.getXmlAbstractNullPolicy();
+            oldProperty.setNullPolicy(jaxbElt.getValue());
         }
         // set user-defined properties
         if (xmlElement.getXmlProperties() != null  && xmlElement.getXmlProperties().getXmlProperty().size() > 0) {
@@ -1567,8 +1567,8 @@
         }
         // handle null policy
         if (xmlValue.getXmlAbstractNullPolicy() != null) {
-            JAXBElement jaxbElt = xmlValue.getXmlAbstractNullPolicy();
-            oldProperty.setNullPolicy((XmlAbstractNullPolicy) jaxbElt.getValue());
+            JAXBElement<? extends XmlAbstractNullPolicy> jaxbElt = xmlValue.getXmlAbstractNullPolicy();
+            oldProperty.setNullPolicy(jaxbElt.getValue());
         }
         // set user-defined properties
         if (xmlValue.getXmlProperties() != null  && xmlValue.getXmlProperties().getXmlProperty().size() > 0) {
@@ -1700,7 +1700,7 @@
         XmlBindings xmlBindings;
         for (String packageName : xmlBindingMap.keySet()) {
             xmlBindings = xmlBindingMap.get(packageName);
-            ArrayList classes = new ArrayList<JavaClass>();
+            ArrayList<JavaClass> classes = new ArrayList<JavaClass>();
             // add binding classes - the Java Model will be used to get a
             // JavaClass via class name
             JavaTypes jTypes = xmlBindings.getJavaTypes();
@@ -1737,7 +1737,7 @@
                 if (allExistingClasses != null) {
                     allExistingClasses.add(jClass);
                 } else {
-                    ArrayList classes = new ArrayList<JavaClass>();
+                    ArrayList<JavaClass> classes = new ArrayList<JavaClass>();
                     classes.add(jClass);
                     theMap.put(pkg, classes);
                 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/DynamicJAXBContextFactory.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/DynamicJAXBContextFactory.java
index 4d273ee..011980b 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/DynamicJAXBContextFactory.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/DynamicJAXBContextFactory.java
@@ -18,6 +18,8 @@
 import java.util.Map;
 
 import jakarta.xml.bind.JAXBException;
+
+import javax.xml.namespace.QName;
 import javax.xml.transform.Source;
 
 import org.eclipse.persistence.internal.core.helper.CoreClassConstants;
@@ -357,11 +359,11 @@
     private static void fixDateTimeConversion(DynamicJAXBContext ctx) {
         XMLConversionManager conversionManager = (XMLConversionManager) ctx.getXMLContext().getSession().getDatasourcePlatform().getConversionManager();
 
-        Map defaultXmlTypes = XMLConversionManager.getDefaultXMLTypes();
+        Map<QName, Class<?>> defaultXmlTypes = XMLConversionManager.getDefaultXMLTypes();
         defaultXmlTypes.remove(Constants.DATE_TIME_QNAME);
         defaultXmlTypes.put(Constants.DATE_TIME_QNAME, CoreClassConstants.XML_GREGORIAN_CALENDAR);
 
-        Map defaultJavaTypes = XMLConversionManager.getDefaultJavaTypes();
+        Map<Class<?>, QName> defaultJavaTypes = XMLConversionManager.getDefaultJavaTypes();
         defaultJavaTypes.remove(CoreClassConstants.CALENDAR);
         defaultJavaTypes.put(CoreClassConstants.XML_GREGORIAN_CALENDAR, Constants.DATE_TIME_QNAME);
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/metadata/OXMMetadata.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/metadata/OXMMetadata.java
index aba5f54..97c2e98 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/metadata/OXMMetadata.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/dynamic/metadata/OXMMetadata.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
@@ -79,7 +79,7 @@
                     JavaType type = iterator.next();
                     //Check to see if it's a static class or if should be treated as dynamic
                     try {
-                        Class staticClass = dynamicClassLoader.getParent().loadClass(Helper.getQualifiedJavaTypeName(type.getName(), pkgName));
+                        Class<?> staticClass = dynamicClassLoader.getParent().loadClass(Helper.getQualifiedJavaTypeName(type.getName(), pkgName));
                         oxmJavaClasses.add(new JavaClassImpl(staticClass, null));
                     } catch(Exception ex) {
                         type.setName(Helper.getQualifiedJavaTypeName(type.getName(), pkgName));
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/AnnotationProxy.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/AnnotationProxy.java
index 9a05322..738e5f8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/AnnotationProxy.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/AnnotationProxy.java
@@ -151,7 +151,7 @@
             return null;
         }
 
-        Class returnType = method.getReturnType();
+        Class<?> returnType = method.getReturnType();
         Object value = getComponents().get(method.getName());
 
         if (value == null && returnType == boolean.class) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/oxm/OXMJavaClassImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/oxm/OXMJavaClassImpl.java
index e0f0bb2..14b048f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/oxm/OXMJavaClassImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/oxm/OXMJavaClassImpl.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
@@ -536,8 +536,8 @@
             // Only try class lookup if this is a JDK class, because
             // we won't ever find classes for dynamically generated types.
             try {
-                Class thisClass = PrivilegedAccessHelper.getClassForName(thisJavaName);
-                Class argClass = PrivilegedAccessHelper.getClassForName(argJavaName);
+                Class<Object> thisClass = PrivilegedAccessHelper.getClassForName(thisJavaName);
+                Class<Object> argClass = PrivilegedAccessHelper.getClassForName(argJavaName);
                 return thisClass.isAssignableFrom(argClass);
             } catch (Exception e) {
                 return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaFieldImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaFieldImpl.java
index 2b7a518..7d1dbc6 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaFieldImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaFieldImpl.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
@@ -101,7 +101,7 @@
 
     @Override
     public JavaClass getResolvedType() {
-        Class fieldType = jField.getType();
+        Class<?> fieldType = jField.getType();
         Type genericType = jField.getGenericType();
 
         if (genericType instanceof ParameterizedType) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaMethodImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaMethodImpl.java
index e2149f8..d4b4071 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaMethodImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaMethodImpl.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
@@ -116,14 +116,14 @@
     }
 
     public JavaClass getResolvedType() {
-        Class returnType = PrivilegedAccessHelper.getMethodReturnType(jMethod);
+        Class<Object> returnType = PrivilegedAccessHelper.getMethodReturnType(jMethod);
         return javaModelImpl.getClass(returnType);
     }
 
     @Override
     public JavaClass getReturnType() {
         Type type = jMethod.getGenericReturnType();
-        Class returnType = PrivilegedAccessHelper.getMethodReturnType(jMethod);
+        Class<Object> returnType = PrivilegedAccessHelper.getMethodReturnType(jMethod);
         if (type instanceof ParameterizedType) {
             ParameterizedType pType = (ParameterizedType) type;
             return new JavaClassImpl(pType, returnType, javaModelImpl);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelImpl.java
index 40cb698..19440c8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelImpl.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
@@ -93,12 +93,12 @@
     public JavaClass getClass(String className) {
         try {
             if (className.contains("[")) {
-                Class clazz = Class.forName(className);
+                Class<?> clazz = Class.forName(className);
                 if (clazz != null) {
                     return getClass(clazz);
                 }
             }
-            Class clazz = this.classLoader.loadClass(className);
+            Class<?> clazz = this.classLoader.loadClass(className);
             return getClass(clazz);
         } catch(ClassNotFoundException e) {
             throw JAXBException.classNotFoundException(className);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBWithJSONTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBWithJSONTestCases.java
index ca9e4cf..a2c82e7 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBWithJSONTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBWithJSONTestCases.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
@@ -36,7 +36,6 @@
 import jakarta.json.stream.JsonParser;
 import jakarta.xml.bind.JAXBElement;
 import jakarta.xml.bind.Marshaller;
-import jakarta.xml.bind.PropertyException;
 import jakarta.xml.bind.Unmarshaller;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.Source;
@@ -519,7 +518,7 @@
     public void generateJSONSchema(List<InputStream> controlSchemas) throws Exception {
         MyStreamSchemaOutputResolver outputResolver = new MyStreamSchemaOutputResolver();
 
-        Class theClass = getWriteControlObject().getClass();
+        Class<? extends Object> theClass = getWriteControlObject().getClass();
         if(getWriteControlObject() instanceof JAXBElement){
              theClass = ((JAXBElement) getWriteControlObject()).getValue().getClass();
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/PropertyTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/PropertyTypeTestCases.java
index 68f61de..529acde 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/PropertyTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/PropertyTypeTestCases.java
@@ -65,7 +65,7 @@
         testObject.booleanListTest.add(Boolean.TRUE);
 
         QName rootQName = new QName("root");
-        JAXBElement jaxbElement = new JAXBElement<Object>(rootQName,Object.class, testObject);
+        JAXBElement<Object> jaxbElement = new JAXBElement<Object>(rootQName,Object.class, testObject);
         return jaxbElement;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlelementdecl/emptystringns/EmptyStringNSTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlelementdecl/emptystringns/EmptyStringNSTestCases.java
index 651a37a..8e060e1 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlelementdecl/emptystringns/EmptyStringNSTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlelementdecl/emptystringns/EmptyStringNSTestCases.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
@@ -35,7 +35,7 @@
     protected Object getControlObject() {
         ObjectFactory objectFactory = new ObjectFactory();
         TestObject testObject = objectFactory.createTestObject();
-        JAXBElement elem = new JAXBElement<TestObject>(new QName("testObject"), TestObject.class, testObject);
+        JAXBElement<TestObject> elem = new JAXBElement<TestObject>(new QName("testObject"), TestObject.class, testObject);
 
         return elem;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/Data.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/Data.java
index 7aa1922..9f1fe47 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/Data.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/Data.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
@@ -53,8 +53,8 @@
         }
 
         String subDataS = "\n";
-        for (Iterator iterator = subData.iterator(); iterator.hasNext();) {
-            SubData type = (SubData) iterator.next();
+        for (Iterator<SubData> iterator = subData.iterator(); iterator.hasNext();) {
+            SubData type = iterator.next();
             subDataS += "\t" + type.toString() + "\n";
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/DataNT.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/DataNT.java
index b8036be..024e5da 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/DataNT.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmllocation/DataNT.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
@@ -14,14 +14,12 @@
 //  - rbarkhouse - 08 September 2011 - 2.4 - Initial implementation
 package org.eclipse.persistence.testing.jaxb.annotations.xmllocation;
 
-import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
 import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlTransient;
 
 import org.eclipse.persistence.oxm.annotations.XmlLocation;
 import org.xml.sax.Locator;
@@ -53,8 +51,8 @@
         }
 
         String subDataS = "\n";
-        for (Iterator iterator = subData.iterator(); iterator.hasNext();) {
-            SubDataNT type = (SubDataNT) iterator.next();
+        for (Iterator<SubDataNT> iterator = subData.iterator(); iterator.hasNext();) {
+            SubDataNT type = iterator.next();
             subDataS += "\t" + type.toString() + "\n";
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/BinderTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/BinderTestCases.java
index 8cc8eb1..fb7fc99 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/BinderTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/BinderTestCases.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
@@ -21,13 +21,12 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.jaxb.JAXBBinder;
 import org.eclipse.persistence.jaxb.JAXBContextFactory;
-import org.eclipse.persistence.oxm.XMLBinder;
 import org.eclipse.persistence.platform.xml.XMLParser;
 import org.eclipse.persistence.platform.xml.XMLPlatformFactory;
 import org.eclipse.persistence.testing.oxm.XMLTestCase;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 
 public class BinderTestCases extends XMLTestCase {
 
@@ -47,7 +46,7 @@
 
     public void testUnmarshal() throws Exception {
         JAXBContext jc = JAXBContextFactory.createContext(new Class[] {Customer.class}, null);
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
         Customer test = (Customer) binder.unmarshal(getControlDocument());
 
         assertEquals(getControlObject(), test);
@@ -55,7 +54,7 @@
 
     public void testMarshal() throws Exception {
         JAXBContext jc = JAXBContextFactory.createContext(new Class[] {Customer.class}, null);
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
 
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/QNameRoot.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/QNameRoot.java
index e2cfff0..87f3ab1 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/QNameRoot.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/QNameRoot.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
@@ -65,7 +65,7 @@
             return false;
         }
 
-        List testNameList = test.getNameList();
+        List<QName> testNameList = test.getNameList();
         int itemsSize = nameList.size();
         if(itemsSize != testNameList.size()) {
             return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/XPathsRoot.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/XPathsRoot.java
index b18ab4c..446db90 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/XPathsRoot.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/XPathsRoot.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
@@ -14,7 +14,6 @@
 //     Blaise Doughan - 2.3 - initial implementation
 package org.eclipse.persistence.testing.jaxb.annotations.xmlpath.predicate;
 
-import java.awt.ItemSelectable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -83,7 +82,7 @@
             return false;
         }
 
-        List testItems = test.getItems();
+        List<Object> testItems = test.getItems();
         int itemsSize = items.size();
         if(itemsSize != testItems.size()) {
             return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/BinderTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/BinderTestCases.java
index 8f5a914..d3fdcfe 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/BinderTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/BinderTestCases.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
@@ -24,6 +24,7 @@
 import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.testing.oxm.XMLTestCase;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 
 public class BinderTestCases extends XMLTestCase {
 
@@ -43,7 +44,7 @@
 
     public void testUnmarshal() throws Exception {
         JAXBContext jc = JAXBContextFactory.createContext(new Class[] {Customer.class}, null);
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
         Customer test = (Customer) binder.unmarshal(getControlDocument());
 
         assertEquals(getControlObject(), test);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/QNameRoot.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/QNameRoot.java
index bbfe309..cac926f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/QNameRoot.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/QNameRoot.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
@@ -65,7 +65,7 @@
             return false;
         }
 
-        List testNameList = test.getNameList();
+        List<QName> testNameList = test.getNameList();
         int itemsSize = nameList.size();
         if(itemsSize != testNameList.size()) {
             return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/XPathsRoot.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/XPathsRoot.java
index 055a853..321bd35 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/XPathsRoot.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlpath/predicate/ns/XPathsRoot.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
@@ -14,7 +14,6 @@
 //     Blaise Doughan - 2.3 - initial implementation
 package org.eclipse.persistence.testing.jaxb.annotations.xmlpath.predicate.ns;
 
-import java.awt.ItemSelectable;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -83,7 +82,7 @@
             return false;
         }
 
-        List testItems = test.getItems();
+        List<Object> testItems = test.getItems();
         int itemsSize = items.size();
         if(itemsSize != testItems.size()) {
             return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/hashcode/BinderWithHashCodeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/hashcode/BinderWithHashCodeTestCases.java
index 158bd5e..a4bd6f6 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/hashcode/BinderWithHashCodeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/hashcode/BinderWithHashCodeTestCases.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
@@ -14,7 +14,6 @@
 //     Matt MacIvor - 2.3 - initial implementation
 package org.eclipse.persistence.testing.jaxb.binder.hashcode;
 
-import java.io.File;
 import java.io.StringReader;
 
 import jakarta.xml.bind.Binder;
@@ -45,7 +44,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{Employee.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         Employee emp = (Employee)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -54,6 +53,6 @@
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/jaxbelement/BinderWithJAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/jaxbelement/BinderWithJAXBElementTestCases.java
index 1c4dc22..1ff5a5e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/jaxbelement/BinderWithJAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/jaxbelement/BinderWithJAXBElementTestCases.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
@@ -14,7 +14,6 @@
 //     Matt MacIvor - 2.3
 package org.eclipse.persistence.testing.jaxb.binder.jaxbelement;
 
-import java.io.File;
 import java.io.StringReader;
 
 import jakarta.xml.bind.Binder;
@@ -46,13 +45,13 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{Employee.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
-        JAXBElement emp = binder.unmarshal(parser.parse(new StringReader(xml)), Employee.class);
-        ((Employee)emp.getValue()).id = 456;
+        JAXBElement<Employee> emp = binder.unmarshal(parser.parse(new StringReader(xml)), Employee.class);
+        emp.getValue().id = 456;
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nscollison/NamespaceCollisionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nscollison/NamespaceCollisionTestCases.java
index d285a0d..95e2f55 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nscollison/NamespaceCollisionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nscollison/NamespaceCollisionTestCases.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
@@ -14,7 +14,6 @@
 //     Matt MacIvor - 2.3
 package org.eclipse.persistence.testing.jaxb.binder.nscollison;
 
-import java.io.File;
 import java.io.StringReader;
 
 import jakarta.xml.bind.Binder;
@@ -46,15 +45,15 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{Employee.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
-        JAXBElement elem = binder.unmarshal(parser.parse(new StringReader(xml)), Employee.class);
-        Employee emp = (Employee)elem.getValue();
+        JAXBElement<Employee> elem = binder.unmarshal(parser.parse(new StringReader(xml)), Employee.class);
+        Employee emp = elem.getValue();
         emp.address.city = "Toronto";
 
         binder.updateXML(emp.address);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyCompositeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyCompositeTestCases.java
index cceca70..135e00b 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyCompositeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyCompositeTestCases.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
@@ -14,7 +14,6 @@
 //     Matt MacIvor - 2.4 - initial implementation
 package org.eclipse.persistence.testing.jaxb.binder.nullpolicy;
 
-import java.io.File;
 import java.io.StringReader;
 
 import jakarta.xml.bind.Binder;
@@ -47,7 +46,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{EmployeeCompositeA.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         EmployeeCompositeA emp = (EmployeeCompositeA)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -60,9 +59,9 @@
         XMLTransformer transformer = XMLPlatformFactory.getInstance().getXMLPlatform().newXMLTransformer();
         transformer.transform(controlDocument, System.out);
 
-        transformer.transform((Node)binder.getXMLNode(emp), System.out);
+        transformer.transform(binder.getXMLNode(emp), System.out);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyTestCases.java
index 33d9135..258ab19 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/binder/nullpolicy/BinderWithNullPolicyTestCases.java
@@ -14,15 +14,12 @@
 //     Matt MacIvor - 2.3 - initial implementation
 package org.eclipse.persistence.testing.jaxb.binder.nullpolicy;
 
-import java.io.File;
 import java.io.StringReader;
 
 import jakarta.xml.bind.Binder;
 import jakarta.xml.bind.JAXBContext;
-import javax.xml.transform.stream.StreamResult;
 
 import org.eclipse.persistence.jaxb.JAXBContextFactory;
-import org.eclipse.persistence.oxm.XMLConstants;
 import org.eclipse.persistence.platform.xml.XMLParser;
 import org.eclipse.persistence.platform.xml.XMLPlatform;
 import org.eclipse.persistence.platform.xml.XMLPlatformFactory;
@@ -48,7 +45,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{EmployeeA.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         EmployeeA emp = (EmployeeA)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -58,7 +55,7 @@
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 
     public void testXsiNilNullMarshal() throws Exception {
@@ -68,7 +65,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{EmployeeB.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         EmployeeB emp = (EmployeeB)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -78,7 +75,7 @@
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 
     public void testXsiNilUnmarshalMarshalValue() throws Exception {
@@ -88,7 +85,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{EmployeeB.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         EmployeeB emp = (EmployeeB)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -98,7 +95,7 @@
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 
     public void testEmptyNode() throws Exception {
@@ -108,7 +105,7 @@
 
         JAXBContext ctx = JAXBContextFactory.createContext(new Class[]{EmployeeC.class}, null);
 
-        Binder binder = ctx.createBinder();
+        Binder<Node> binder = ctx.createBinder();
 
         EmployeeC emp = (EmployeeC)binder.unmarshal(parser.parse(new StringReader(xml)));
 
@@ -118,6 +115,6 @@
         binder.updateXML(emp);
 
         JAXBXMLComparer comparer = new JAXBXMLComparer();
-        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, ((Node)binder.getXMLNode(emp)).getOwnerDocument()));
+        assertTrue("Marshalled document does not match the control document.", comparer.isNodeEqual(controlDocument, binder.getXMLNode(emp).getOwnerDocument()));
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/DifferentClassLoaderTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/DifferentClassLoaderTestCases.java
index 27e952d..f7910b1 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/DifferentClassLoaderTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/DifferentClassLoaderTestCases.java
@@ -14,14 +14,12 @@
 // Denise Smith - September 10 /2009
 package org.eclipse.persistence.testing.jaxb.classloader;
 
-import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
 
 import org.eclipse.persistence.jaxb.JAXBContextFactory;
 
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbcontext.withjaxbindex.ClassA;
 
 public class DifferentClassLoaderTestCases extends JAXBWithJSONTestCases {
 
@@ -43,7 +41,7 @@
         URLClassLoader classLoaderA = new URLClassLoader(urls);
 
 
-        Class classAClass = classLoaderA.loadClass("org.eclipse.persistence.testing.jaxb.classloader.ClassA");
+        Class<?> classAClass = classLoaderA.loadClass("org.eclipse.persistence.testing.jaxb.classloader.ClassA");
         ClassLoader test = classAClass.getClassLoader();
         classes[1] = classAClass;
         rootClass = classAClass;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/InnerClassTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/InnerClassTestCases.java
index 6e10e8c..5be5694 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/InnerClassTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/InnerClassTestCases.java
@@ -14,7 +14,6 @@
 // Oracle = 2.2 - Initial implementation
 package org.eclipse.persistence.testing.jaxb.classloader;
 
-import java.io.File;
 import java.net.URL;
 import java.net.URLClassLoader;
 
@@ -33,7 +32,7 @@
         urls[0] = Thread.currentThread().getContextClassLoader().getResource("org/eclipse/persistence/testing/jaxb/classloader/innerClass.jar");
         URLClassLoader classLoader = new URLClassLoader(urls);
 
-        Class classAClass = classLoader.loadClass("org.eclipse.persistence.testing.jaxb.classloader.ClassWithInnerClass");
+        Class<?> classAClass = classLoader.loadClass("org.eclipse.persistence.testing.jaxb.classloader.ClassWithInnerClass");
 
         classes[0] = classAClass;
         JAXBContext ctx = JAXBContextFactory.createContext(classes, null, Thread.currentThread().getContextClassLoader());
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/XmlElementsEnumTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/XmlElementsEnumTestCases.java
index a51524b..f0bfc7a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/XmlElementsEnumTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/classloader/XmlElementsEnumTestCases.java
@@ -32,7 +32,7 @@
         urls[0] = Thread.currentThread().getContextClassLoader().getResource("org/eclipse/persistence/testing/jaxb/classloader/enum.jar");
         URLClassLoader classLoader = new URLClassLoader(urls);
 
-        Class classAClass = classLoader.loadClass("org.eclipse.persistence.testing.jaxb.classloader.Root");
+        Class<?> classAClass = classLoader.loadClass("org.eclipse.persistence.testing.jaxb.classloader.Root");
 
         classes[0] = classAClass;
         JAXBContext ctx = JAXBContextFactory.createContext(classes, null, classLoader);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromOXMTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromOXMTestCases.java
index 9ee7a3b..b273610 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromOXMTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromOXMTestCases.java
@@ -14,17 +14,13 @@
 //     rbarkhouse - 2.2 - initial implementation
 package org.eclipse.persistence.testing.jaxb.dynamic;
 
-import java.io.File;
-import java.io.IOException;
 import java.io.InputStream;
 import java.lang.reflect.UndeclaredThrowableException;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.util.ArrayList;
-import java.util.GregorianCalendar;
 import java.util.HashMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
 import java.util.Vector;
 
@@ -35,42 +31,27 @@
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.Source;
 import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamSource;
 
 import junit.framework.TestCase;
 
-import org.eclipse.persistence.config.DescriptorCustomizer;
-import org.eclipse.persistence.descriptors.ClassDescriptor;
-import org.eclipse.persistence.descriptors.ClassExtractor;
 import org.eclipse.persistence.dynamic.DynamicEntity;
 import org.eclipse.persistence.internal.oxm.XMLConversionManager;
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContext;
 import org.eclipse.persistence.jaxb.dynamic.DynamicJAXBContextFactory;
-import org.eclipse.persistence.mappings.transformers.AttributeTransformerAdapter;
-import org.eclipse.persistence.mappings.transformers.FieldTransformerAdapter;
 import org.eclipse.persistence.oxm.XMLConstants;
 import org.eclipse.persistence.oxm.XMLDescriptor;
-import org.eclipse.persistence.oxm.XMLField;
 import org.eclipse.persistence.oxm.mappings.XMLDirectMapping;
-import org.eclipse.persistence.sessions.Record;
-import org.eclipse.persistence.sessions.Session;
 import org.eclipse.persistence.testing.jaxb.dynamic.util.Computer;
-import org.eclipse.persistence.testing.jaxb.dynamic.util.ComputerAdapter;
 import org.eclipse.persistence.testing.jaxb.dynamic.util.LinkAdapter;
 import org.eclipse.persistence.testing.jaxb.dynamic.util.LinkAdapterString;
 import org.w3c.dom.CDATASection;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
-import org.xml.sax.EntityResolver;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
 
 public class DynamicJAXBFromOXMTestCases extends TestCase {
 
@@ -1253,8 +1234,8 @@
         DynamicEntity readCompany = (DynamicEntity) jaxbContext.createUnmarshaller().unmarshal(companyDoc);
 
         ArrayList<DynamicEntity> readEmployees = readCompany.get("employees");
-        for (Iterator iterator = readEmployees.iterator(); iterator.hasNext();) {
-            DynamicEntity emp = (DynamicEntity) iterator.next();
+        for (Iterator<DynamicEntity> iterator = readEmployees.iterator(); iterator.hasNext();) {
+            DynamicEntity emp = iterator.next();
             DynamicEntity add = emp.get("address");
 
             String idString = ((Integer)emp.get("id")).toString();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/Employee.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/Employee.java
index 61ea2a7..7d2ca5a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/Employee.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/Employee.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
@@ -18,8 +18,6 @@
 import java.util.Map;
 import javax.xml.namespace.QName;
 
-import org.eclipse.persistence.testing.oxm.mappings.anyattribute.withoutgroupingelement.Root;
-
 public class Employee {
     public Map<QName, String> stuff;
 
@@ -48,8 +46,8 @@
             return false;
         }
 
-        Map thisStuff = this.stuff;
-        Map otherStuff = empObj.stuff;
+        Map<QName, String> thisStuff = this.stuff;
+        Map<QName, String> otherStuff = empObj.stuff;
 
         if (thisStuff == null) {
             return (otherStuff == null || otherStuff.size() == 0);
@@ -63,7 +61,7 @@
             return false;
         }
 
-        Iterator values1 = thisStuff.keySet().iterator();
+        Iterator<QName> values1 = thisStuff.keySet().iterator();
         while(values1.hasNext()) {
             Object key1 = values1.next();
             Object value1 = thisStuff.get(key1);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/XmlAnyAttributeSubTypeMapModel.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/XmlAnyAttributeSubTypeMapModel.java
index 0e6af94..148d56e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/XmlAnyAttributeSubTypeMapModel.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/mappings/anyattribute/XmlAnyAttributeSubTypeMapModel.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
@@ -39,8 +39,8 @@
             return false;
         }
 
-        Map thisChildren = this.children;
-        Map otherChildren = modelObj.children;
+        Map<QName, String> thisChildren = this.children;
+        Map<QName, String> otherChildren = modelObj.children;
 
         if (thisChildren == null) {
             return (otherChildren == null || otherChildren.size() == 0);
@@ -54,7 +54,7 @@
             return false;
         }
 
-        Iterator values1 = thisChildren.keySet().iterator();
+        Iterator<QName> values1 = thisChildren.keySet().iterator();
         while(values1.hasNext()) {
             Object key1 = values1.next();
             Object value1 = thisChildren.get(key1);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlanyelement/xmlelementrefs2/Customer.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlanyelement/xmlelementrefs2/Customer.java
index f17b2fd..49b3bb9 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlanyelement/xmlelementrefs2/Customer.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlanyelement/xmlelementrefs2/Customer.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
@@ -20,9 +20,7 @@
 import java.util.ListIterator;
 
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.annotation.XmlAnyElement;
 import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlElementRef;
 import jakarta.xml.bind.annotation.XmlElementRefs;
 import jakarta.xml.bind.annotation.XmlMixed;
@@ -49,7 +47,7 @@
         StringBuffer sb = new StringBuffer();
         sb.append("Employee [" + id + "] " + name + "\n");
 
-        for (Iterator iterator = contacts.iterator(); iterator.hasNext();) {
+        for (Iterator<Object> iterator = contacts.iterator(); iterator.hasNext();) {
             Object o = iterator.next();
             try {
                 JAXBElement e = (JAXBElement) o;
@@ -75,8 +73,8 @@
         if (!(this.name.equals(c.name))) return false;
 
         // Compare contacts
-        ListIterator e1 = this.contacts.listIterator();
-        ListIterator e2 = c.contacts.listIterator();
+        ListIterator<Object> e1 = this.contacts.listIterator();
+        ListIterator<Object> e2 = c.contacts.listIterator();
         while (e1.hasNext() && e2.hasNext()) {
             Object o1 = e1.next();
             Object o2 = e2.next();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryNonLocalTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryNonLocalTestCases.java
index 9132642..8b8783a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryNonLocalTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryNonLocalTestCases.java
@@ -25,7 +25,6 @@
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
@@ -43,7 +42,7 @@
     @Override
     protected Object getControlObject() {
         QName name = new QName("foos");
-        JAXBElement jaxbElement = new JAXBElement<Integer>(name, Integer.class, 5);
+        JAXBElement<Integer> jaxbElement = new JAXBElement<Integer>(name, Integer.class, 5);
         return jaxbElement;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryTestCases.java
index 9b51632..1f38439 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlregistry/XmlRegistryTestCases.java
@@ -25,7 +25,6 @@
 import javax.xml.transform.Source;
 import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
@@ -82,7 +81,7 @@
 
         FooBar foobar = new FooBar();
         QName name = new QName("foo");
-        JAXBElement jaxbElement = new JAXBElement<String>(name, String.class, "This is some foo.");
+        JAXBElement<String> jaxbElement = new JAXBElement<String>(name, String.class, "This is some foo.");
         return jaxbElement;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmltransient/ContactInfo.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmltransient/ContactInfo.java
index 107c43c..96393f2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmltransient/ContactInfo.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmltransient/ContactInfo.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
@@ -51,7 +51,7 @@
             return false;
         }
 
-        List testList = ((ContactInfo)obj).addresses;
+        List<Address> testList = ((ContactInfo)obj).addresses;
 
         if(addresses == null && testList != null){
             return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/helper/JAXBHelperTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/helper/JAXBHelperTestCases.java
index b0745bc..84eca2f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/helper/JAXBHelperTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/helper/JAXBHelperTestCases.java
@@ -30,6 +30,7 @@
 import org.eclipse.persistence.oxm.XMLUnmarshaller;
 
 import junit.framework.TestCase;
+import org.w3c.dom.Node;
 
 public class JAXBHelperTestCases extends TestCase {
     private JAXBContext jaxbContext;
@@ -60,7 +61,7 @@
     }
 
     public void testCastToJAXBBinder() throws Exception {
-        Binder binder = jaxbContext.createBinder();
+        Binder<Node> binder = jaxbContext.createBinder();
         assertTrue(JAXBHelper.getBinder(binder) instanceof JAXBBinder);
     }
 
@@ -93,12 +94,12 @@
     }
 
     public void testUnwrapJAXBBinderToJAXBImpl() throws Exception {
-        Binder binder = jaxbContext.createBinder();
+        Binder<Node> binder = jaxbContext.createBinder();
         assertTrue(JAXBHelper.unwrap(binder, JAXBBinder.class) instanceof JAXBBinder);
     }
 
     public void testUnwrapJAXBBinderToXMLBinder() throws Exception {
-        Binder binder = jaxbContext.createBinder();
+        Binder<Node> binder = jaxbContext.createBinder();
         assertTrue(JAXBHelper.unwrap(binder, XMLBinder.class) instanceof XMLBinder);
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/inheritance/JAXBInheritanceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/inheritance/JAXBInheritanceTestCases.java
index 5ca6d80..d1e5607 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/inheritance/JAXBInheritanceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/inheritance/JAXBInheritanceTestCases.java
@@ -14,18 +14,14 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.testing.jaxb.inheritance;
 
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
-import javax.xml.transform.Result;
-import javax.xml.transform.stream.StreamResult;
 import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.json.JsonSchemaOutputResolver;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
 public class JAXBInheritanceTestCases extends JAXBWithJSONTestCases {
@@ -85,7 +81,7 @@
         if(isUnmarshalTest()) {
             InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
             StreamSource ss = new StreamSource(instream);
-            JAXBElement testObject = getJAXBUnmarshaller().unmarshal(ss, A.class);
+            JAXBElement<A> testObject = getJAXBUnmarshaller().unmarshal(ss, A.class);
             Object value = testObject.getValue();
             instream.close();
             assertTrue(value instanceof E);
@@ -98,7 +94,7 @@
             log(testObject.toString());
 
             JAXBElement controlObj = (JAXBElement)getControlObject();
-            JAXBElement testObj = testObject;
+            JAXBElement<A> testObj = testObject;
             compareJAXBElementObjects(controlObj, testObj);
         }
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlattribute/MapCollectionToXmlAttribute.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlattribute/MapCollectionToXmlAttribute.java
index 9f30ef1..800c810 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlattribute/MapCollectionToXmlAttribute.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlattribute/MapCollectionToXmlAttribute.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
@@ -41,8 +41,8 @@
             if(model.items.size() != items.size()) {
                 return false;
             }
-            Iterator items1 = model.items.iterator();
-            Iterator items2 = items.iterator();
+            Iterator<String> items1 = model.items.iterator();
+            Iterator<String> items2 = items.iterator();
             while(items1.hasNext()) {
                 if(!(items1.next().equals(items2.next()))) {
                     System.out.println("returning false");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlelementwrapper/Hockey.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlelementwrapper/Hockey.java
index bac3fcc..ad936bb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlelementwrapper/Hockey.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmlelementwrapper/Hockey.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
@@ -53,8 +53,8 @@
         if(h.team.size() != team.size()) {
             return false;
         }
-        Iterator teams1 = h.team.iterator();
-        Iterator teams2 = team.iterator();
+        Iterator<String> teams1 = h.team.iterator();
+        Iterator<String> teams2 = team.iterator();
         while(teams1.hasNext()) {
             if(!(teams1.next().equals(teams2.next()))) {
                 System.out.println("returning false");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmllist/Hockey.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmllist/Hockey.java
index f448649..b90ad82 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmllist/Hockey.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/javadoc/xmllist/Hockey.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
@@ -44,8 +44,8 @@
         if(example3.teams.size() != teams.size()) {
             return false;
         }
-        Iterator teams1 = example3.teams.iterator();
-        Iterator teams2 = teams.iterator();
+        Iterator<String> teams1 = example3.teams.iterator();
+        Iterator<String> teams2 = teams.iterator();
         while(teams1.hasNext()) {
             if(!(teams1.next().equals(teams2.next()))) {
                 System.out.println("returning false");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/complex/JAXBElementComplexTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/complex/JAXBElementComplexTestCases.java
index a2bdf88..e1b9104 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/complex/JAXBElementComplexTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/complex/JAXBElementComplexTestCases.java
@@ -31,7 +31,7 @@
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/complex/employee.xml";
     private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/complex/employee.json";
     private final static String CONTROL_ELEMENT_NAME = "employee";
-    private final static Class targetClass = Object.class;
+    private final static Class<Object> targetClass = Object.class;
 
     public JAXBElementComplexTestCases(String name) throws Exception {
         super(name);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/ElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/ElementTestCases.java
index 2852b20..24d3226 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/ElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/ElementTestCases.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
@@ -40,7 +40,7 @@
             doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
             Element elm = doc.createElementNS("AGroupDef/annotation", "rootchild");
             elm.setTextContent("");
-            JAXBElement  obj = factory.createRoot(elm);
+            JAXBElement<Object> obj = factory.createRoot(elm);
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/TextNodeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/TextNodeTestCases.java
index 2b153da..0e5bc07 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/TextNodeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/TextNodeTestCases.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
@@ -14,7 +14,6 @@
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
 
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 import org.w3c.dom.Document;
@@ -42,7 +41,7 @@
             Element elm = doc.createElementNS(null, "abcdef");
             elm.setTextContent("thetext");
             Object value = elm;
-            JAXBElement  obj = factory.createDoc(value);
+            JAXBElement<Object> obj = factory.createDoc(value);
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/DocumentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/DocumentTestCases.java
index 9795bcf..76b910b 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/DocumentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/DocumentTestCases.java
@@ -14,19 +14,12 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import javax.print.Doc;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.oxm.XMLConstants;
+import javax.xml.namespace.QName;
+
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbelement.dom.ObjectFactory;
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class DocumentTestCases extends JAXBWithJSONTestCases{
 
@@ -48,7 +41,7 @@
         try {
 
             doc = parser.parse(this.getClass().getClassLoader().getResourceAsStream(XML_RESOURCE_ORIGINAL));
-            JAXBElement  obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc);
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc);
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementEmptyTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementEmptyTestCases.java
index 8e3712c..138c09e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementEmptyTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementEmptyTestCases.java
@@ -14,10 +14,8 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
+
 import javax.xml.namespace.QName;
 import javax.xml.parsers.DocumentBuilderFactory;
 
@@ -46,7 +44,7 @@
             doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
             Element elm = doc.createElementNS("AGroupDef/annotation", "rootchild");
             elm.setTextContent("");
-            JAXBElement  obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, elm);
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, elm);
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementFragmentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementFragmentTestCases.java
index 291d688..5926a35 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementFragmentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementFragmentTestCases.java
@@ -14,20 +14,12 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import javax.print.Doc;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
 import jakarta.xml.bind.Marshaller;
 import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.jaxb.MarshallerProperties;
-import org.eclipse.persistence.oxm.XMLConstants;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbelement.dom.ObjectFactory;
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ElementFragmentTestCases extends JAXBWithJSONTestCases{
 
@@ -49,7 +41,7 @@
         Document doc;
         try {
             doc = parser.parse(this.getClass().getClassLoader().getResourceAsStream(XML_RESOURCE_ORIGINAL));
-            JAXBElement  obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc.getDocumentElement());
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc.getDocumentElement());
             return obj;
         } catch (Exception e) {
             fail("An exception was thrown.");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementNoNamespaceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementNoNamespaceTestCases.java
index a3b68ea..88737d7 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementNoNamespaceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementNoNamespaceTestCases.java
@@ -14,19 +14,12 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import javax.print.Doc;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.oxm.XMLConstants;
+import javax.xml.namespace.QName;
+
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbelement.dom.ObjectFactory;
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ElementNoNamespaceTestCases extends JAXBWithJSONTestCases{
 
@@ -46,7 +39,7 @@
         Document doc;
         try {
             doc = parser.parse(this.getClass().getClassLoader().getResourceAsStream(XML_RESOURCE_ORIGINAL));
-            JAXBElement  obj = new JAXBElement<Object>(new QName("mynewname"), Object.class, doc.getDocumentElement());
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("mynewname"), Object.class, doc.getDocumentElement());
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementSameNamespaceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementSameNamespaceTestCases.java
index 4851ecb..c921ffb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementSameNamespaceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementSameNamespaceTestCases.java
@@ -14,19 +14,12 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import javax.print.Doc;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.oxm.XMLConstants;
+import javax.xml.namespace.QName;
+
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbelement.dom.ObjectFactory;
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ElementSameNamespaceTestCases extends JAXBWithJSONTestCases{
 
@@ -46,7 +39,7 @@
         Document doc;
         try {
             doc = parser.parse(this.getClass().getClassLoader().getResourceAsStream(XML_RESOURCE_ORIGINAL));
-            JAXBElement  obj = new JAXBElement<Object>(new QName("namespace1", "mynewname"), Object.class, doc.getDocumentElement());
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("namespace1", "mynewname"), Object.class, doc.getDocumentElement());
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementTestCases.java
index 67bd732..e122ced 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/dom/nofactory/ElementTestCases.java
@@ -14,19 +14,12 @@
 //     Denise Smith - October 2012
 package org.eclipse.persistence.testing.jaxb.jaxbelement.dom.nofactory;
 
-import javax.print.Doc;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Marshaller;
-import javax.xml.namespace.QName;
-import javax.xml.parsers.DocumentBuilderFactory;
 
-import org.eclipse.persistence.oxm.XMLConstants;
+import javax.xml.namespace.QName;
+
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.jaxbelement.dom.ObjectFactory;
 import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 public class ElementTestCases extends JAXBWithJSONTestCases{
 
@@ -46,7 +39,7 @@
         Document doc;
         try {
             doc = parser.parse(this.getClass().getClassLoader().getResourceAsStream(XML_RESOURCE_ORIGINAL));
-            JAXBElement  obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc.getDocumentElement());
+            JAXBElement<Object> obj = new JAXBElement<Object>(new QName("mynamespace", "mynewname"), Object.class, doc.getDocumentElement());
             return obj;
         } catch (Exception e) {
             e.printStackTrace();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/enumeration/JAXBElementEnumTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/enumeration/JAXBElementEnumTestCases.java
index 923b64d..a3c202e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/enumeration/JAXBElementEnumTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/enumeration/JAXBElementEnumTestCases.java
@@ -27,7 +27,7 @@
 public class JAXBElementEnumTestCases extends JAXBElementTestCases {
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/enum/coin.xml";
     private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/enum/coin.json";
-    private final static Class targetClass = Coin.class;
+    private final static Class<Coin> targetClass = Coin.class;
 
     public JAXBElementEnumTestCases(String name) throws Exception {
         super(name);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/nil/JAXBElementNilTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/nil/JAXBElementNilTestCases.java
index 0bd3885..019b142 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/nil/JAXBElementNilTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/nil/JAXBElementNilTestCases.java
@@ -25,7 +25,7 @@
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/nil/employee.xml";
     private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/nil/employee.json";
     private final static String CONTROL_ELEMENT_NAME = "employee-name";
-    private final static Class targetClass = String.class;
+    private final static Class<String> targetClass = String.class;
 
     public JAXBElementNilTestCases(String name) throws Exception {
         super(name);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementSimpleTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementSimpleTestCases.java
index 462c71c..dd38772 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementSimpleTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementSimpleTestCases.java
@@ -25,7 +25,7 @@
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/simple/employee.xml";
     private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/jaxb/jaxbelement/simple/employee.json";
     private final static String CONTROL_ELEMENT_NAME = "employee-name";
-    private final static Class targetClass = String.class;
+    private final static Class<String> targetClass = String.class;
 
     public JAXBElementSimpleTestCases(String name) throws Exception {
         super(name);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/JSONMarshalUnmarshalTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/JSONMarshalUnmarshalTestCases.java
index aeb9e8f..34d5f30 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/JSONMarshalUnmarshalTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/JSONMarshalUnmarshalTestCases.java
@@ -146,7 +146,7 @@
     public void generateJSONSchema(List<InputStream> controlSchemas) throws Exception {
         MyStreamSchemaOutputResolver outputResolver = new MyStreamSchemaOutputResolver();
 
-        Class theClass = getWriteControlObject().getClass();
+        Class<? extends Object> theClass = getWriteControlObject().getClass();
         if(theClass == JAXBElement.class){
              theClass = ((JAXBElement) getWriteControlObject()).getValue().getClass();
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementInheritanceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementInheritanceTestCases.java
index 263fc51..63f20c2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementInheritanceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementInheritanceTestCases.java
@@ -48,7 +48,7 @@
 
     @Override
     public Object getReadControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, (AddressNoRoot)getControlObject());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, (AddressNoRoot)getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementJAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementJAXBElementTestCases.java
index 4a404e9..cbc1464 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementJAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementJAXBElementTestCases.java
@@ -40,20 +40,20 @@
 
     @Override
     public Object getReadControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName("street"), AddressNoRoot.class, new AddressNoRoot());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName("street"), AddressNoRoot.class, new AddressNoRoot());
         return jbe;
     }
 
 
     @Override
     protected Object getJSONReadControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, getAddress());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, getAddress());
         return jbe;
     }
 
     @Override
     protected Object getControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, getAddress());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, getAddress());
         return jbe;
 
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementTestCases.java
index 3fc7b9f..9950a81 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/JSONAttributeNoXmlRootElementTestCases.java
@@ -18,7 +18,6 @@
 import javax.xml.namespace.QName;
 import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.JAXBUnmarshaller;
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
@@ -42,14 +41,14 @@
 
     @Override
     public Object getReadControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName("street"), AddressNoRoot.class, new AddressNoRoot());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName("street"), AddressNoRoot.class, new AddressNoRoot());
         return jbe;
     }
 
 
     @Override
     protected Object getJSONReadControlObject() {
-        JAXBElement jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, (AddressNoRoot) getControlObject());
+        JAXBElement<AddressNoRoot> jbe = new JAXBElement<AddressNoRoot>(new QName(""), AddressNoRoot.class, (AddressNoRoot) getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/SimpleBeanAttrNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/SimpleBeanAttrNullTestCases.java
index ff3d6bd..070f537 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/SimpleBeanAttrNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/attribute/SimpleBeanAttrNullTestCases.java
@@ -16,9 +16,7 @@
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
-import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.JAXBUnmarshaller;
 import org.eclipse.persistence.jaxb.MarshallerProperties;
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
@@ -47,14 +45,14 @@
 
     @Override
     public Object getReadControlObject() {
-        JAXBElement jbe = new JAXBElement<SimpleBean>(new QName("simpleBean"), SimpleBean.class, new SimpleBean());
+        JAXBElement<SimpleBean> jbe = new JAXBElement<SimpleBean>(new QName("simpleBean"), SimpleBean.class, new SimpleBean());
         return jbe;
     }
 
 
     @Override
     protected Object getJSONReadControlObject() {
-        JAXBElement jbe = new JAXBElement<SimpleBean>(new QName(""), SimpleBean.class,  new SimpleBean());
+        JAXBElement<SimpleBean> jbe = new JAXBElement<SimpleBean>(new QName(""), SimpleBean.class,  new SimpleBean());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/emptyroot/EmptyNullMarshalUnmarshalTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/emptyroot/EmptyNullMarshalUnmarshalTestCases.java
index fc3cd27..970532f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/emptyroot/EmptyNullMarshalUnmarshalTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/emptyroot/EmptyNullMarshalUnmarshalTestCases.java
@@ -62,7 +62,7 @@
 
     public void testJAXBElementNullValueIncludeRootTrue() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, null );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, null );
         Marshaller m = ctx.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true);
         m.marshal(obj, sw);
@@ -71,7 +71,7 @@
 
     public void testJAXBElementNullValueIncludeRootFalse() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, null );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, null );
 
         Marshaller m = ctx.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);
@@ -81,7 +81,7 @@
 
     public void testJAXBElementEmptyValueIncludeRootTrue() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
         Marshaller m = ctx.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true);
         m.marshal(obj, sw);
@@ -91,7 +91,7 @@
 
     public void testJAXBElementEmptyValueIncludeRootFalse() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
 
         Marshaller m = ctx.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);
@@ -102,7 +102,7 @@
 
     public void testJAXBElementEmptyValueNoRootIncludeRootTrue() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new RootNoXmlRootElement() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new RootNoXmlRootElement() );
         Marshaller m = ctxNoRoot.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, true);
         m.marshal(obj, sw);
@@ -112,7 +112,7 @@
 
     public void testJAXBElementEmptyValueNoRootIncludeRootFalse() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new RootNoXmlRootElement() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new RootNoXmlRootElement() );
 
         Marshaller m = ctxNoRoot.createMarshaller();
         m.setProperty(MarshallerProperties.JSON_INCLUDE_ROOT, false);
@@ -160,8 +160,8 @@
 
     public void testListJAXBElementIncludeRootTrue() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
-        JAXBElement obj2 = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj2 = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
         List theList = new ArrayList();
         theList.add(obj);
         theList.add(obj2);
@@ -174,8 +174,8 @@
 
     public void testListJAXBElementIncludeRootFalse() throws Exception{
         StringWriter sw = new StringWriter();
-        JAXBElement obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
-        JAXBElement obj2 = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
+        JAXBElement<Object> obj2 = new JAXBElement<Object>(new QName(XMLConstants.EMPTY_STRING),Object.class, new Root() );
         List theList = new ArrayList();
         theList.add(obj);
         theList.add(obj2);
@@ -308,7 +308,7 @@
         Unmarshaller unmarshaller = ctx.createUnmarshaller();
         unmarshaller.setProperty(UnmarshallerProperties.JSON_INCLUDE_ROOT, true);
         StringReader reader = new StringReader("[{}]");
-        JAXBElement o = unmarshaller.unmarshal(new StreamSource(reader), Root.class);
+        JAXBElement<Root> o = unmarshaller.unmarshal(new StreamSource(reader), Root.class);
         //assertTrue (o instanceof JAXBElement);
         //JAXBElement controlObj = new JAXBElement(new QName(XMLConstants.EMPTY_STRING),Root.class, new Root() );
         //compareJAXBElementObjects(controlObj, (JAXBElement)o);
@@ -329,7 +329,7 @@
         Unmarshaller unmarshaller = ctx.createUnmarshaller();
         unmarshaller.setProperty(UnmarshallerProperties.JSON_INCLUDE_ROOT, false);
         StringReader reader = new StringReader("[{}]");
-        JAXBElement o = unmarshaller.unmarshal(new StreamSource(reader),Root.class);
+        JAXBElement<Root> o = unmarshaller.unmarshal(new StreamSource(reader),Root.class);
 
         assertTrue(o.getDeclaredType().equals(Root.class));
         assertTrue(o.getName().equals(new QName("")));
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootFalseWithXMLRootElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootFalseWithXMLRootElementTestCases.java
index 17df0ac..64ff57a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootFalseWithXMLRootElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootFalseWithXMLRootElementTestCases.java
@@ -60,7 +60,7 @@
     @Override
     public Object getReadControlObject(){
         QName name = new QName("");
-        JAXBElement jbe = new JAXBElement<AddressWithRootElement>(name, AddressWithRootElement.class, (AddressWithRootElement)getControlObject());
+        JAXBElement<AddressWithRootElement> jbe = new JAXBElement<AddressWithRootElement>(name, AddressWithRootElement.class, (AddressWithRootElement)getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootTrueWithXMLRootElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootTrueWithXMLRootElementTestCases.java
index f445859..3ed4b80 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootTrueWithXMLRootElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/IncludeRootTrueWithXMLRootElementTestCases.java
@@ -44,7 +44,7 @@
     @Override
     public Object getReadControlObject() {
         QName name = new QName("addressWithRootElement");
-        JAXBElement jbe = new JAXBElement<AddressWithRootElement>(name, AddressWithRootElement.class, (AddressWithRootElement)getControlObject());
+        JAXBElement<AddressWithRootElement> jbe = new JAXBElement<AddressWithRootElement>(name, AddressWithRootElement.class, (AddressWithRootElement)getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementNSTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementNSTestCases.java
index 297b0dd..6122fd3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementNSTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementNSTestCases.java
@@ -51,7 +51,7 @@
     @Override
     public Object getReadControlObject(){
         QName name = new QName("");
-        JAXBElement jbe = new JAXBElement<Address>(name, Address.class, (Address)getControlObject());
+        JAXBElement<Address> jbe = new JAXBElement<Address>(name, Address.class, (Address)getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementTestCases.java
index e19d132..4cc0e22 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/norootelement/NoRootElementTestCases.java
@@ -49,7 +49,7 @@
     @Override
     public Object getReadControlObject(){
         QName name = new QName("addressWithRootElement");
-        JAXBElement jbe = new JAXBElement<Address>(name, Address.class, (Address)getControlObject());
+        JAXBElement<Address> jbe = new JAXBElement<Address>(name, Address.class, (Address)getControlObject());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementArrayTestCases.java
index deaf6d9..3f6cb30 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementArrayTestCases.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -19,9 +19,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Iterator;
-import java.util.LinkedHashSet;
 import java.util.List;
-import java.util.Set;
 import java.util.UUID;
 
 import jakarta.xml.bind.JAXBElement;
@@ -76,7 +74,7 @@
     public void testUnmarshal() throws Exception {
         InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(controlJSONLocation);
         Collection<WithoutXmlRootElementRoot>  test = (Collection<WithoutXmlRootElementRoot>) jsonUnmarshaller.unmarshal(new StreamSource(inputStream), WithoutXmlRootElementRoot.class).getValue();
-        Iterator testIter = test.iterator();
+        Iterator<WithoutXmlRootElementRoot> testIter = test.iterator();
         inputStream.close();
         Collection<WithoutXmlRootElementRoot> control = getReadControlObject().getValue();
         Iterator<WithoutXmlRootElementRoot> controlIter = control.iterator();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementSetTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementSetTestCases.java
index 16969ab..c69d659 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementSetTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementSetTestCases.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -71,7 +71,7 @@
     public void testUnmarshal() throws Exception {
         InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(controlJSONLocation);
         Collection<WithoutXmlRootElementRoot>  test = (Collection<WithoutXmlRootElementRoot>) jsonUnmarshaller.unmarshal(new StreamSource(inputStream), WithoutXmlRootElementRoot.class).getValue();
-        Iterator testIter = test.iterator();
+        Iterator<WithoutXmlRootElementRoot> testIter = test.iterator();
         inputStream.close();
         Collection<WithoutXmlRootElementRoot> control = getControlObject();
         Iterator<WithoutXmlRootElementRoot> controlIter = control.iterator();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNonRootTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNonRootTestCases.java
index 052cd53..86cd684 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNonRootTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNonRootTestCases.java
@@ -162,7 +162,7 @@
         test.add("ccc");
         listofObjects.setStringMyList(test);
 
-        LinkedList stringQueue = new LinkedList<String>();
+        LinkedList<String> stringQueue = new LinkedList<String>();
         stringQueue.add("ddd");
         stringQueue.add("eee");
         listofObjects.setStringQueue(stringQueue);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullContainerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullContainerTestCases.java
index c190a4c..9862d74 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullContainerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullContainerTestCases.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
@@ -26,6 +26,7 @@
 import org.w3c.dom.Document;
 
 import junit.framework.TestCase;
+import org.w3c.dom.Node;
 
 public class NullContainerTestCases extends TestCase {
 
@@ -46,7 +47,7 @@
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
         Document document = db.newDocument();
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
         binder.marshal(ncr, document);
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullIteratorListTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullIteratorListTestCases.java
index b7eefc6..db1bc9f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullIteratorListTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullIteratorListTestCases.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
@@ -26,6 +26,7 @@
 import org.w3c.dom.Document;
 
 import junit.framework.TestCase;
+import org.w3c.dom.Node;
 
 public class NullIteratorListTestCases extends TestCase {
 
@@ -52,7 +53,7 @@
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
         Document document = db.newDocument();
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
         binder.marshal(nilr, document);
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullSetsMapTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullSetsMapTestCases.java
index ec0bce9..4757690 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullSetsMapTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/NullSetsMapTestCases.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
@@ -27,6 +27,7 @@
 import org.w3c.dom.Document;
 
 import junit.framework.TestCase;
+import org.w3c.dom.Node;
 
 public class NullSetsMapTestCases extends TestCase {
 
@@ -49,7 +50,7 @@
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
         Document document = db.newDocument();
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
         binder.marshal(nsmr, document);
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/nomappings/NoMappingsTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/nomappings/NoMappingsTestCases.java
index d638a70..0862ccb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/nomappings/NoMappingsTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/nomappings/NoMappingsTestCases.java
@@ -45,13 +45,13 @@
 
     @Override
     public Object getJSONReadControlObject() {
-        JAXBElement jbe = new JAXBElement<SomeClass>(new QName(""), SomeClass.class, new SomeClass());
+        JAXBElement<SomeClass> jbe = new JAXBElement<SomeClass>(new QName(""), SomeClass.class, new SomeClass());
         return jbe;
     }
 
     @Override
     public Object getReadControlObject() {
-        JAXBElement jbe = new JAXBElement<SomeClass>(new QName("someClass"), SomeClass.class, new SomeClass());
+        JAXBElement<SomeClass> jbe = new JAXBElement<SomeClass>(new QName("someClass"), SomeClass.class, new SomeClass());
         return jbe;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/rs/JAXBElementsGenericListTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/rs/JAXBElementsGenericListTestCases.java
index 14b991f..9fa7f7d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/rs/JAXBElementsGenericListTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/rs/JAXBElementsGenericListTestCases.java
@@ -28,8 +28,6 @@
 import junit.framework.TestCase;
 
 import org.eclipse.persistence.jaxb.rs.MOXyJsonProvider;
-import org.eclipse.persistence.testing.jaxb.rs.model.Bar;
-import org.eclipse.persistence.testing.jaxb.rs.model.Foo;
 
 /**
  * Tests {@code List<JAXBElement<String>>} marshal/unmarshal via MOXyJsonPrivder.
@@ -81,8 +79,8 @@
         }
 
         for (int i = 0; i < list1.size(); i++) {
-            JAXBElement element1 = list1.get(i);
-            JAXBElement element2 = list2.get(i);
+            JAXBElement<String> element1 = list1.get(i);
+            JAXBElement<String> element2 = list2.get(i);
 
             if (!equalsJAXBElements(element1, element2)) {
                 return false;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentByteArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentByteArrayTestCases.java
index ee6fbf5..3acd495 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentByteArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentByteArrayTestCases.java
@@ -14,7 +14,6 @@
 // mmacivor - April 25/2008 - 1.0M8 - Initial implementation
 package org.eclipse.persistence.testing.jaxb.simpledocument;
 
-import org.eclipse.persistence.testing.jaxb.JAXBTestCases;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
 import jakarta.xml.bind.JAXBElement;
@@ -39,7 +38,7 @@
 
         @Override
         protected Object getControlObject() {
-            JAXBElement value = new ByteArrayObjectFactory().createBase64Root();
+            JAXBElement<Byte[]> value = new ByteArrayObjectFactory().createBase64Root();
             value.setValue(new Byte[]{(byte) 1, (byte) 2, (byte) 3, (byte) 4, (byte) 5, (byte) 6, (byte) 7});
             return value;
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentDateTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentDateTestCases.java
index 9d5e2bc..0678e8e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentDateTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentDateTestCases.java
@@ -17,7 +17,6 @@
 import java.io.StringReader;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.TimeZone;
 
 import jakarta.xml.bind.JAXBElement;
 
@@ -66,7 +65,7 @@
 
         @Override
         protected Object getControlObject() {
-        JAXBElement value = new DateObjectFactory().createDateRoot();
+        JAXBElement<Date> value = new DateObjectFactory().createDateRoot();
 
         Calendar cal = Calendar.getInstance();
         cal.clear();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentIntegerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentIntegerTestCases.java
index ca306d2..c8d2b40 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentIntegerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentIntegerTestCases.java
@@ -42,7 +42,7 @@
 
         @Override
         protected Object getControlObject() {
-            JAXBElement value = new IntegerObjectFactory().createIntegerRoot();
+            JAXBElement<Integer> value = new IntegerObjectFactory().createIntegerRoot();
             value.setValue(27);
             return value;
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentStringTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentStringTestCases.java
index 4fef127..3421dd2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentStringTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/SimpleDocumentStringTestCases.java
@@ -42,7 +42,7 @@
 
         @Override
         protected Object getControlObject() {
-            JAXBElement value = new StringObjectFactory().createStringRoot();
+            JAXBElement<String> value = new StringObjectFactory().createStringRoot();
             value.setValue("StringValue");
             return value;
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringEmptyElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringEmptyElementTestCases.java
index 7e7f511..698739c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringEmptyElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringEmptyElementTestCases.java
@@ -33,7 +33,7 @@
 
     @Override
     protected Object getControlObject() {
-        JAXBElement value = new StringObjectFactory().createStringRoot();
+        JAXBElement<String> value = new StringObjectFactory().createStringRoot();
         value.setValue("");
         return value;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringNilTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringNilTestCases.java
index 8c2ea74..92b883a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringNilTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/simpledocument/StringNilTestCases.java
@@ -38,7 +38,7 @@
 
     @Override
     protected Object getControlObject() {
-        JAXBElement value = new StringObjectFactory().createStringRoot();
+        JAXBElement<String> value = new StringObjectFactory().createStringRoot();
         value.setValue(null);
         value.setNil(true);
         return value;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/Data.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/Data.java
index b018a78..0bee8c3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/Data.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/Data.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
@@ -53,8 +53,8 @@
         }
 
         String subDataS = "\n";
-        for (Iterator iterator = subData.iterator(); iterator.hasNext();) {
-            SubData type = (SubData) iterator.next();
+        for (Iterator<SubData> iterator = subData.iterator(); iterator.hasNext();) {
+            SubData type = iterator.next();
             subDataS += "\t" + type.toString() + "\n";
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/DataNT.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/DataNT.java
index 573cca5..32eae49 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/DataNT.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/sun/xmllocation/DataNT.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
@@ -51,8 +51,8 @@
         }
 
         String subDataS = "\n";
-        for (Iterator iterator = subData.iterator(); iterator.hasNext();) {
-            SubDataNT type = (SubDataNT) iterator.next();
+        for (Iterator<SubDataNT> iterator = subData.iterator(); iterator.hasNext();) {
+            SubDataNT type = iterator.next();
             subDataS += "\t" + type.toString() + "\n";
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/ByteArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/ByteArrayTestCases.java
index 2f239e2..d8c24ca 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/ByteArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/ByteArrayTestCases.java
@@ -81,7 +81,7 @@
     }
 
     public void testTypeMappingInfoToSchemaType() throws Exception{
-        Map theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
+        Map<TypeMappingInfo, QName> theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
         assertNotNull(theMap);
         assertEquals(1, theMap.size());
         assertNotNull(theMap.get(getTypeMappingInfos()[0]));
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceConflictTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceConflictTestCases.java
index d2a655c..b41f7ad 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceConflictTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceConflictTestCases.java
@@ -89,10 +89,10 @@
         jaxbMarshaller.marshal(otherThing, sw);
 
         InputSource is = new InputSource(new StringReader(sw.toString()));
-        Node doc = parser.parse(is);
+        Document doc = parser.parse(is);
         assertNotNull(doc);
         assertTrue(doc instanceof Document);
-        Element root = ((Document)doc).getDocumentElement();
+        Element root = doc.getDocumentElement();
         assertEquals("namespace1",root.getNamespaceURI());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceTestCases.java
index 8363431..f7ac488 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/DefaultTargetNamespaceTestCases.java
@@ -21,7 +21,6 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
@@ -61,7 +60,7 @@
         cust.lastName = "Doe";
         cust.phoneNumber = "123-456-7890";
 
-        JAXBElement elem = new JAXBElement<Customer>(new QName("overridden/namespace", "customer"), Customer.class, cust);
+        JAXBElement<Customer> elem = new JAXBElement<Customer>(new QName("overridden/namespace", "customer"), Customer.class, cust);
         return elem;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/IntegerArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/IntegerArrayTestCases.java
index 2a4b2e0..c58e3f6 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/IntegerArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/IntegerArrayTestCases.java
@@ -82,7 +82,7 @@
     }
 
     public void testTypeMappingInfoToSchemaType() throws Exception{
-        Map theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
+        Map<TypeMappingInfo, QName> theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
         assertNotNull(theMap);
         assertEquals(1, theMap.size());
         assertNotNull(theMap.get(getTypeMappingInfos()[0]));
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/MapStringIntegerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/MapStringIntegerTestCases.java
index 4fd980c..b3bf604 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/MapStringIntegerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/MapStringIntegerTestCases.java
@@ -84,7 +84,7 @@
     }
 
     public void testTypeMappingInfoToSchemaType() throws Exception{
-        Map theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
+        Map<TypeMappingInfo, QName> theMap =((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getTypeMappingInfoToSchemaType();
         assertNotNull(theMap);
         assertEquals(1, theMap.size());
         assertNotNull(theMap.get(getTypeMappingInfos()[0]));
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/PrimitiveByteArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/PrimitiveByteArrayTestCases.java
index a704152..879c00a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/PrimitiveByteArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/PrimitiveByteArrayTestCases.java
@@ -79,7 +79,7 @@
     }
 
     public void testTypeMappingInfoToSchemaType() throws Exception {
-        Map theMap = ((org.eclipse.persistence.jaxb.JAXBContext) jaxbContext).getTypeMappingInfoToSchemaType();
+        Map<TypeMappingInfo, QName> theMap = ((org.eclipse.persistence.jaxb.JAXBContext) jaxbContext).getTypeMappingInfoToSchemaType();
         assertNotNull(theMap);
         assertEquals(1, theMap.size());
         assertNotNull(theMap.get(getTypeMappingInfos()[0]));
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingByteArrayTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingByteArrayTestCases.java
index ccabe03..891796d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingByteArrayTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingByteArrayTestCases.java
@@ -22,6 +22,7 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
@@ -96,7 +97,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(1, descriptors.size());
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingCollectionTestCases.java
index a36aaf6..7e90eac 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingCollectionTestCases.java
@@ -24,6 +24,7 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.MarshallerProperties;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
@@ -134,7 +135,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(1, descriptors.size());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListClassAndTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListClassAndTypeTestCases.java
index 4d94b63..a2654e1 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListClassAndTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListClassAndTypeTestCases.java
@@ -23,6 +23,7 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.Employee;
@@ -108,7 +109,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(2, descriptors.size());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListObjectsTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListObjectsTypeTestCases.java
index 1af72b8..fb884b1 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListObjectsTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListObjectsTypeTestCases.java
@@ -23,6 +23,7 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.Employee;
@@ -107,7 +108,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(2, descriptors.size());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListTypeTestCases.java
index 007a813..88ca501 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingListTypeTestCases.java
@@ -25,12 +25,11 @@
 import jakarta.xml.bind.annotation.XmlList;
 import javax.xml.namespace.QName;
 
-import org.eclipse.persistence.jaxb.JAXBContextFactory;
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.JAXBContextProperties;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.Employee;
-import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestCases;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
 import org.w3c.dom.Element;
 
@@ -141,7 +140,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(4, descriptors.size());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingMapsTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingMapsTestCases.java
index 1dd50ed..3b8cd16 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingMapsTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingMapsTestCases.java
@@ -22,10 +22,10 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestCases;
-import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
 
 public class ConflictingMapsTestCases extends TypeMappingInfoTestCases{
 
@@ -125,7 +125,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(10, descriptors.size());
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringArrayClassesTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringArrayClassesTestCases.java
index b51d286..6e23562 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringArrayClassesTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringArrayClassesTestCases.java
@@ -22,9 +22,9 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
-import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestCases;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
 
 public class ConflictingStringArrayClassesTestCases extends TypeMappingInfoWithJSONTestCases{
@@ -97,7 +97,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(1, descriptors.size());
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringClassTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringClassTestCases.java
index 17afe4c..5b13d69 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringClassTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/ConflictingStringClassTestCases.java
@@ -22,9 +22,9 @@
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
-import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestCases;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
 
 public class ConflictingStringClassTestCases extends TypeMappingInfoWithJSONTestCases{
@@ -89,7 +89,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(1, descriptors.size());
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/NonConflictingListClassAndTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/NonConflictingListClassAndTypeTestCases.java
index 5356cef..77d3b77 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/NonConflictingListClassAndTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/typemappinginfo/collisions/NonConflictingListClassAndTypeTestCases.java
@@ -19,14 +19,13 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.List;
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.jaxb.TypeMappingInfo;
 import org.eclipse.persistence.jaxb.TypeMappingInfo.ElementScope;
-import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoTestCases;
 import org.eclipse.persistence.testing.jaxb.typemappinginfo.TypeMappingInfoWithJSONTestCases;
 
 public class NonConflictingListClassAndTypeTestCases extends TypeMappingInfoWithJSONTestCases{
@@ -94,7 +93,7 @@
     }
 
     public void testDescriptorsSize(){
-        List descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
+        List<ClassDescriptor> descriptors = ((org.eclipse.persistence.jaxb.JAXBContext)jaxbContext).getXMLContext().getSession(0).getProject().getOrderedDescriptors();
         assertEquals(2, descriptors.size());
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/autodetect/AutoDetectMediaTypeTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/autodetect/AutoDetectMediaTypeTestCases.java
index 5102a7a..0a6991a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/autodetect/AutoDetectMediaTypeTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/autodetect/AutoDetectMediaTypeTestCases.java
@@ -18,22 +18,15 @@
 import java.io.InputStream;
 import java.util.ArrayList;
 
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.JAXBException;
-import jakarta.xml.bind.Unmarshaller;
+
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamReader;
 import javax.xml.transform.stream.StreamSource;
 
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.oxm.MediaType;
-import org.eclipse.persistence.testing.jaxb.JAXBTestCases;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.oxm.mappings.choicecollection.ref.Address;
-import org.eclipse.persistence.testing.oxm.mappings.choicecollection.ref.Employee;
-import org.eclipse.persistence.testing.oxm.mappings.choicecollection.ref.PhoneNumber;
-import org.eclipse.persistence.testing.oxm.mappings.choicecollection.ref.Root;
 
 public class AutoDetectMediaTypeTestCases extends JAXBWithJSONTestCases {
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/unmarshaller/autodetect/employee-collection.xml";
@@ -117,7 +110,7 @@
         String systemId = file.toURI().toURL().toExternalForm();
 
         StreamSource ss = new StreamSource(systemId);
-        JAXBElement jbe = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
+        JAXBElement<EmployeeCollection> jbe = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
 
         jsonToObjectTest(jbe.getValue());
 
@@ -128,7 +121,7 @@
         String systemId = file.toURI().toURL().toExternalForm();
 
         StreamSource ss = new StreamSource(systemId);
-        JAXBElement jbe  = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
+        JAXBElement<EmployeeCollection> jbe  = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
         xmlToObjectTest(jbe.getValue());
 
     }
@@ -138,7 +131,7 @@
         String systemId = file.getAbsolutePath();
 
         StreamSource ss = new StreamSource(systemId);
-        JAXBElement jbe = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
+        JAXBElement<EmployeeCollection> jbe = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
 
         jsonToObjectTest(jbe.getValue());
 
@@ -149,7 +142,7 @@
         String systemId = file.getAbsolutePath();
 
         StreamSource ss = new StreamSource(systemId);
-        JAXBElement jbe  = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
+        JAXBElement<EmployeeCollection> jbe  = jaxbUnmarshaller.unmarshal(ss, EmployeeCollection.class);
         xmlToObjectTest(jbe.getValue());
 
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/space/UnmarshalWithSpaceEventTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/space/UnmarshalWithSpaceEventTestCases.java
index 0ef9849..21d98be 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/space/UnmarshalWithSpaceEventTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/unmarshaller/space/UnmarshalWithSpaceEventTestCases.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -18,7 +18,6 @@
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamReader;
 
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
@@ -50,7 +49,7 @@
                 InputStream instream = ClassLoader.getSystemResourceAsStream(resourceName);
                 XMLStreamReader xmlStreamReader = XML_INPUT_FACTORY.createXMLStreamReader(instream);
                 jaxbUnmarshaller.setProperty(UnmarshallerProperties.MEDIA_TYPE, "application/xml");
-                JAXBElement testObject = jaxbUnmarshaller.unmarshal(xmlStreamReader, TestObject.class);
+                JAXBElement<TestObject> testObject = jaxbUnmarshaller.unmarshal(xmlStreamReader, TestObject.class);
                 instream.close();
                 xmlToObjectTest(testObject, getJAXBElementControlObject());
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/composite/MyHashMapAdapter.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/composite/MyHashMapAdapter.java
index d411f68..df7e192 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/composite/MyHashMapAdapter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/composite/MyHashMapAdapter.java
@@ -38,9 +38,9 @@
 
     @Override
     public LinkedHashMap unmarshal(MyHashMapType arg0) throws Exception {
-        LinkedHashMap map = new LinkedHashMap<Integer, String>();
-        for (Iterator typeIt = arg0.entry.iterator(); typeIt.hasNext(); ) {
-            MyHashMapEntryType eType = (MyHashMapEntryType) typeIt.next();
+        LinkedHashMap<Integer, String> map = new LinkedHashMap<Integer, String>();
+        for (Iterator<MyHashMapEntryType> typeIt = arg0.entry.iterator(); typeIt.hasNext(); ) {
+            MyHashMapEntryType eType = typeIt.next();
             map.put(eType.key, eType.value);
         }
         return map;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/map/MyObjectAdapter.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/map/MyObjectAdapter.java
index 0091875..3dc0674 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/map/MyObjectAdapter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmladapter/map/MyObjectAdapter.java
@@ -41,7 +41,7 @@
 
     @Override
     public HashMap<Integer, String> unmarshal(MyObject arg0) throws Exception {
-        HashMap theMap = new HashMap<Integer, String>();
+        HashMap<Integer, String> theMap = new HashMap<Integer, String>();
         List<String> keys = arg0.getKeys();
         List<String> values = arg0.getValues();
         for(int i=0; i<keys.size(); i++){
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/EmployeeLaxCDATA.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/EmployeeLaxCDATA.java
index 47c4119..b6495b5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/EmployeeLaxCDATA.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/EmployeeLaxCDATA.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
@@ -49,12 +49,12 @@
 
         XMLComparer comparer = new XMLComparer();
 
-        Object next1 = element;
-        Object next2 =  emp.element;
+        Element next1 = element;
+        Element next2 =  emp.element;
 
         if((next1 instanceof Element) && (next2 instanceof Element)) {
-            Element nextElem1 = (Element)next1;
-            Element nextElem2 = (Element)next2;
+            Element nextElem1 = next1;
+            Element nextElem2 = next2;
             if(!(comparer.isNodeEqual(nextElem1, nextElem2))) {
                 return false;
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/XmlAnyJAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/XmlAnyJAXBElementTestCases.java
index c776410..d88ff9e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/XmlAnyJAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlanyelement/XmlAnyJAXBElementTestCases.java
@@ -14,13 +14,10 @@
 //     Denise Smith - May 2013
 package org.eclipse.persistence.testing.jaxb.xmlanyelement;
 
-import java.io.InputStream;
 import java.util.ArrayList;
 
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.Marshaller;
-import jakarta.xml.bind.Unmarshaller;
+
 import javax.xml.namespace.QName;
 
 import org.eclipse.persistence.jaxb.MarshallerProperties;
@@ -63,9 +60,9 @@
         Thing thing3 = new Thing();
         thing3.name = "thing3name";
 
-        JAXBElement jb1 = new JAXBElement<Thing>(new QName("something"), Thing.class, thing1);
-        JAXBElement jb2 = new JAXBElement<Thing>(new QName("address"), Thing.class, thing2);
-        JAXBElement jb3 = new JAXBElement<Thing>(new QName("thing"), Thing.class, thing3);
+        JAXBElement<Thing> jb1 = new JAXBElement<Thing>(new QName("something"), Thing.class, thing1);
+        JAXBElement<Thing> jb2 = new JAXBElement<Thing>(new QName("address"), Thing.class, thing2);
+        JAXBElement<Thing> jb3 = new JAXBElement<Thing>(new QName("thing"), Thing.class, thing3);
 
         r.things.add(jb1);
         r.things.add(jb2);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsPopulatedTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsPopulatedTestCases.java
index 40e4d5f..317d0a2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsPopulatedTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsPopulatedTestCases.java
@@ -167,12 +167,12 @@
         XmlElement javaAttribute = new XmlElement();
         javaAttribute.setName("elementName");
         javaAttribute.setJavaAttribute("theJavaAttributeValue");
-        JAXBElement jbe = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute);
+        JAXBElement<XmlElement> jbe = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute);
 
         XmlElement javaAttribute2 = new XmlElement();
         javaAttribute2.setName("elementName2");
         javaAttribute2.setJavaAttribute("theJavaAttributeValue2");
-        JAXBElement jbe2 = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute2);
+        JAXBElement<XmlElement> jbe2 = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute2);
 
         XmlAttribute javaAttribute3 = new XmlAttribute();
         javaAttribute3.setContainerType("someContainerType");
@@ -182,7 +182,7 @@
         javaAttribute3.setReadOnly(Boolean.TRUE);
         javaAttribute3.setRequired(Boolean.TRUE);
 
-        JAXBElement jbe3 = new JAXBElement<XmlAttribute>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-attribute"), XmlAttribute.class, javaAttribute3);
+        JAXBElement<XmlAttribute> jbe3 = new JAXBElement<XmlAttribute>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-attribute"), XmlAttribute.class, javaAttribute3);
         javaAttributes.getJavaAttribute().add(jbe);
 
         javaAttributes.getJavaAttribute().add(jbe3);
@@ -212,7 +212,7 @@
         //unmarshal from JSON
         StringReader sr = new StringReader(sw.toString());
         jaxbUnmarshaller.setProperty(UnmarshallerProperties.MEDIA_TYPE, "application/json");
-        JAXBElement jbe = jaxbUnmarshaller.unmarshal(new StreamSource(sr), XmlBindings.class);
+        JAXBElement<XmlBindings> jbe = jaxbUnmarshaller.unmarshal(new StreamSource(sr), XmlBindings.class);
         Object unmarshalledJSON = jbe.getValue();
 
         //marshal to XML again
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsTestCases.java
index f1dc774..7e1dbed 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlbindings/XMLBindingsTestCases.java
@@ -53,7 +53,7 @@
         XmlElement javaAttribute = new XmlElement();
         javaAttribute.setName("elementName");
         javaAttribute.setJavaAttribute("theJavaAttributeValue");
-        JAXBElement jbe = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute);
+        JAXBElement<XmlElement> jbe = new JAXBElement<XmlElement>(new QName("http://www.eclipse.org/eclipselink/xsds/persistence/oxm", "xml-element"), XmlElement.class, javaAttribute);
         javaAttributes.getJavaAttribute().add(jbe);
         javaType.setJavaAttributes(javaAttributes);
         types.getJavaType().add(javaType);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/order/ElementOrderingTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/order/ElementOrderingTestCases.java
index 39c6f5d..f3549a6 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/order/ElementOrderingTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/order/ElementOrderingTestCases.java
@@ -44,13 +44,13 @@
 
     @Override
     protected Object getJSONReadControlObject() {
-        JAXBElement elem = new JAXBElement<AlbumInfo>(new QName(""), AlbumInfo.class, (AlbumInfo) getWriteControlObject());
+        JAXBElement<AlbumInfo> elem = new JAXBElement<AlbumInfo>(new QName(""), AlbumInfo.class, (AlbumInfo) getWriteControlObject());
         return elem;
     }
 
     @Override
     protected Object getControlObject() {
-        JAXBElement elem = new JAXBElement<AlbumInfo>(new QName("albumInfo"), AlbumInfo.class, (AlbumInfo) getWriteControlObject());
+        JAXBElement<AlbumInfo> elem = new JAXBElement<AlbumInfo>(new QName("albumInfo"), AlbumInfo.class, (AlbumInfo) getWriteControlObject());
         return elem;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/ByteArrayCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/ByteArrayCollectionTestCases.java
index e72d1cb..eb1b4c0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/ByteArrayCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/ByteArrayCollectionTestCases.java
@@ -17,11 +17,10 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.Unmarshaller;
+
 import javax.xml.namespace.QName;
-import org.eclipse.persistence.testing.jaxb.JAXBTestCases;
+
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
 public class ByteArrayCollectionTestCases  extends JAXBWithJSONTestCases {
@@ -56,8 +55,8 @@
         byteArrayList2.add(bytes3);
         byteArrayList2.add(bytes4);
 
-        JAXBElement elem1 = new JAXBElement<List>(new QName("things"), List.class, byteArrayList);
-        JAXBElement elem2 = new JAXBElement<List>(new QName("things"), List.class, byteArrayList2);
+        JAXBElement<List> elem1 = new JAXBElement<List>(new QName("things"), List.class, byteArrayList);
+        JAXBElement<List> elem2 = new JAXBElement<List>(new QName("things"), List.class, byteArrayList2);
 
         theList.add(elem1);
         theList.add(elem2);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/EmployeeSingle.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/EmployeeSingle.java
index 4e191a0..9034552 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/EmployeeSingle.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/EmployeeSingle.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
@@ -25,8 +25,8 @@
     public JAXBElement<Integer> intRoot;
 
     public boolean equals(Object emp) {
-        JAXBElement root1 = this.intRoot;
-        JAXBElement root2 = ((EmployeeSingle)emp).intRoot;
+        JAXBElement<Integer> root1 = this.intRoot;
+        JAXBElement<Integer> root2 = ((EmployeeSingle)emp).intRoot;
 
         return root1.getName().equals(root2.getName()) && root1.getValue().equals(root2.getValue()) && root1.getDeclaredType() == root2.getDeclaredType();
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/XMLElementRefConverterTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/XMLElementRefConverterTestCases.java
index ec64b28..db22df0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/XMLElementRefConverterTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/XMLElementRefConverterTestCases.java
@@ -15,7 +15,6 @@
 package org.eclipse.persistence.testing.jaxb.xmlelementref;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
 
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
@@ -44,7 +43,7 @@
         ComplexType.TestLocal testLocal = new ComplexType.TestLocal(bd);
         ct.setLocal(testLocal);
         QName qname = new QName("clazz/typeDef", "root");
-        JAXBElement jaxbElement = new JAXBElement<ComplexType>(qname, ComplexType.class, ct);
+        JAXBElement<ComplexType> jaxbElement = new JAXBElement<ComplexType>(qname, ComplexType.class, ct);
 
         return jaxbElement;
      }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionNullTestCases.java
index adeea75..87d32eb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionNullTestCases.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
@@ -14,27 +14,20 @@
 //     Denise Smith - February 2012
 package org.eclipse.persistence.testing.jaxb.xmlelementref.collections;
 
-import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import jakarta.activation.DataHandler;
-import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBElement;
-import jakarta.xml.bind.Marshaller;
-import jakarta.xml.bind.Unmarshaller;
+
 import javax.xml.namespace.QName;
-import javax.xml.transform.stream.StreamSource;
 
 import org.eclipse.persistence.jaxb.MarshallerProperties;
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.oxm.XMLConstants;
-import org.eclipse.persistence.testing.jaxb.JAXBTestCases;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
-import org.eclipse.persistence.testing.jaxb.xmlelementref.attachment.Employee;
-import org.eclipse.persistence.testing.jaxb.xmlelementref.attachment.ObjectFactory;
 
 public class ChoiceCollectionNullTestCases extends JAXBWithJSONTestCases{
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/xmlelementref/choicecollectionnull.xml";
@@ -59,9 +52,9 @@
     protected Object getControlObject() {
         Wrapper wrapper = new Wrapper();
         List theList = new ArrayList();
-        JAXBElement jbe = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, null);
+        JAXBElement<DataHandler> jbe = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, null);
         theList.add(jbe);
-        JAXBElement jbe2 = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, null);
+        JAXBElement<DataHandler> jbe2 = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, null);
         theList.add(jbe2);
         wrapper.content = theList;
         return wrapper;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionTestCases.java
index 632e454..66230d0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/collections/ChoiceCollectionTestCases.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
@@ -26,7 +26,6 @@
 import org.eclipse.persistence.jaxb.MarshallerProperties;
 import org.eclipse.persistence.jaxb.UnmarshallerProperties;
 import org.eclipse.persistence.oxm.XMLConstants;
-import org.eclipse.persistence.testing.jaxb.JAXBTestCases;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 
 public class ChoiceCollectionTestCases extends JAXBWithJSONTestCases{
@@ -52,9 +51,9 @@
     protected Object getControlObject() {
         Wrapper wrapper = new Wrapper();
         List theList = new ArrayList();
-        JAXBElement jbe = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, MyAttachmentUnmarshaller.theDataHandler);
+        JAXBElement<DataHandler> jbe = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, MyAttachmentUnmarshaller.theDataHandler);
         theList.add(jbe);
-        JAXBElement jbe2 = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, MyAttachmentUnmarshaller.theDataHandler);
+        JAXBElement<DataHandler> jbe2 = new JAXBElement<DataHandler>(new QName("return"), DataHandler.class, MyAttachmentUnmarshaller.theDataHandler);
         theList.add(jbe2);
         wrapper.content = theList;
         return wrapper;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementrefs/adapter/XmlElementRefsAdapterTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementrefs/adapter/XmlElementRefsAdapterTestCases.java
index d03833d..ac4dd1e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementrefs/adapter/XmlElementRefsAdapterTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementrefs/adapter/XmlElementRefsAdapterTestCases.java
@@ -17,16 +17,15 @@
 import java.util.ArrayList;
 
 import jakarta.xml.bind.Binder;
-import jakarta.xml.bind.DatatypeConverter;
 import jakarta.xml.bind.JAXBElement;
 import javax.xml.namespace.QName;
 
 import org.eclipse.persistence.internal.oxm.Constants;
 import org.eclipse.persistence.internal.oxm.XMLConversionManager;
-import org.eclipse.persistence.platform.xml.XMLComparer;
 import org.eclipse.persistence.testing.jaxb.JAXBWithJSONTestCases;
 import org.eclipse.persistence.testing.jaxb.JAXBXMLComparer;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 
 public class XmlElementRefsAdapterTestCases extends JAXBWithJSONTestCases{
 
@@ -77,7 +76,7 @@
     }
 
     public void testBinder() throws Exception{
-        Binder binder = jaxbContext.createBinder();
+        Binder<Node> binder = jaxbContext.createBinder();
         Document doc = parser.parse(ClassLoader.getSystemResourceAsStream(XML_RESOURCE));
         Foo unmarshalled =  (Foo)binder.unmarshal(doc);
         byte[] bytes = XMLConversionManager.getDefaultXMLManager().convertObject("001122", byte[].class);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Employee.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Employee.java
index d115abc..31ac27a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Employee.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Employee.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,7 +33,7 @@
                 return false;
             }
             Employee testEmployee = (Employee) object;
-            List testEmployeePhones = testEmployee.phones;
+            List<Object> testEmployeePhones = testEmployee.phones;
             if(phones == null) {
                 return testEmployeePhones == null;
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Root.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Root.java
index 9465156..4981195 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Root.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlidrefs/object/Root.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
@@ -40,7 +40,7 @@
             if(!employee.equals(testRoot.employee)) {
                 return false;
             }
-            List testRootPhoneNumbers = testRoot.phoneNumbers;
+            List<PhoneNumber> testRootPhoneNumbers = testRoot.phoneNumbers;
             if(phoneNumbers == null) {
                 return testRootPhoneNumbers == null;
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlmarshaller/ListenerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlmarshaller/ListenerTestCases.java
index cf8c8e2..71d8412 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlmarshaller/ListenerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlmarshaller/ListenerTestCases.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
@@ -34,11 +34,11 @@
 import javax.xml.stream.XMLStreamWriter;
 import javax.xml.transform.stream.StreamSource;
 
-import org.eclipse.persistence.jaxb.JAXBBinder;
 import org.eclipse.persistence.jaxb.JAXBContextFactory;
 import org.eclipse.persistence.testing.jaxb.xmlmarshaller.ListenerMarshal.MarshalEvent;
 import org.eclipse.persistence.testing.jaxb.xmlmarshaller.ListenerUnmarshal.UnmarshalEvent;
 import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 import org.xml.sax.InputSource;
 import org.xml.sax.helpers.DefaultHandler;
 
@@ -558,7 +558,7 @@
 */
 
     public void testClassCallbacksForBinder() throws Exception {
-        Binder binder = jc.createBinder();
+        Binder<Node> binder = jc.createBinder();
 
         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
         DocumentBuilder db = dbf.newDocumentBuilder();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/qualified/AttributeFormDefaultQualifiedTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/qualified/AttributeFormDefaultQualifiedTestCases.java
index ab6f575..ce67a79 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/qualified/AttributeFormDefaultQualifiedTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/qualified/AttributeFormDefaultQualifiedTestCases.java
@@ -43,7 +43,7 @@
         types[0] = Address.class;
         setTypes(types);
 
-        Map namespaces = new HashMap<String, String>();
+        Map<String, String> namespaces = new HashMap<>();
         namespaces.put("myns","ns0");
         jaxbMarshaller.setProperty(MarshallerProperties.NAMESPACE_PREFIX_MAPPER, namespaces);
         jaxbUnmarshaller.setProperty(UnmarshallerProperties.JSON_NAMESPACE_PREFIX_MAPPER, namespaces);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unqualified/AttributeFormDefaultUnqualifiedTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unqualified/AttributeFormDefaultUnqualifiedTestCases.java
index a18511f..e5eb362 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unqualified/AttributeFormDefaultUnqualifiedTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unqualified/AttributeFormDefaultUnqualifiedTestCases.java
@@ -43,7 +43,7 @@
         types[0] = Address.class;
         setTypes(types);
 
-        Map namespaces = new HashMap<String, String>();
+        Map<String, String> namespaces = new HashMap<>();
         namespaces.put("myns","ns0");
         jaxbMarshaller.setProperty(MarshallerProperties.NAMESPACE_PREFIX_MAPPER, namespaces);
         jaxbUnmarshaller.setProperty(UnmarshallerProperties.JSON_NAMESPACE_PREFIX_MAPPER, namespaces);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unset/AttributeFormDefaultUnsetTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unset/AttributeFormDefaultUnsetTestCases.java
index 83a6ca4..49d3ef8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unset/AttributeFormDefaultUnsetTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlschema/attributeformdefault/unset/AttributeFormDefaultUnsetTestCases.java
@@ -43,7 +43,7 @@
         types[0] = Address.class;
         setTypes(types);
 
-        Map namespaces = new HashMap<String, String>();
+        Map<String, String> namespaces = new HashMap<>();
         namespaces.put("myns","ns0");
         jaxbMarshaller.setProperty(MarshallerProperties.NAMESPACE_PREFIX_MAPPER, namespaces);
         jaxbUnmarshaller.setProperty(UnmarshallerProperties.JSON_NAMESPACE_PREFIX_MAPPER, namespaces);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/OXTestCase.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
index db18a0f..0714109 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/OXTestCase.java
@@ -145,10 +145,10 @@
 
     public XMLContext getXMLContext(Project project) {
         if (platform == Platform.DOC_PRES) {
-            java.util.Collection descriptors = project.getDescriptors().values();
-            java.util.Iterator iter = descriptors.iterator();
+            Collection<ClassDescriptor> descriptors = project.getDescriptors().values();
+            Iterator<ClassDescriptor> iter = descriptors.iterator();
             while (iter.hasNext()) {
-                ClassDescriptor nextDesc = (ClassDescriptor)iter.next();
+                ClassDescriptor nextDesc = iter.next();
                 if (nextDesc instanceof org.eclipse.persistence.oxm.XMLDescriptor) {
                     ((org.eclipse.persistence.oxm.XMLDescriptor)nextDesc).setShouldPreserveDocument(true);
                 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/XMLTestCase.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/XMLTestCase.java
index 11285eb..fa3c048 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/XMLTestCase.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/XMLTestCase.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
@@ -64,7 +64,7 @@
             Object testItem = Array.get(testValue, x);
             if(null == controlItem) {
                 assertEquals(null, testItem);
-                Class controlItemClass = controlItem.getClass();
+                Class<? extends Object> controlItemClass = controlItem.getClass();
                 if(controlItemClass.isArray()) {
                     compareArrays(controlItem, testItem);
                 } else {
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/ClassLoaderTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/ClassLoaderTestCases.java
index f338860..ba52c5d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/ClassLoaderTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/ClassLoaderTestCases.java
@@ -20,7 +20,6 @@
 import junit.textui.TestRunner;
 import org.w3c.dom.Document;
 import org.eclipse.persistence.oxm.*;
-import org.eclipse.persistence.sessions.Project;
 import org.eclipse.persistence.testing.oxm.OXTestCase;
 
 public class ClassLoaderTestCases extends OXTestCase {
@@ -48,30 +47,30 @@
 
     public void testEmployeeClassLoaderWithSessionPath() throws Exception {
         XMLContext employeeXMLContext = new XMLContext("classloader", employeeClassLoader, "org/eclipse/persistence/testing/oxm/classloader/mySessions.xml");
-        Class controlClass = employeeClassLoader.loadClass(EMPLOYEE_CLASS);
+        Class<?> controlClass = employeeClassLoader.loadClass(EMPLOYEE_CLASS);
         Document employeeDocument = parse(EMPLOYEE_XML_RESOURCE);
         XMLUnmarshaller unmarshaller = employeeXMLContext.createUnmarshaller();
         Object employeeObject = unmarshaller.unmarshal(employeeDocument);
-        Class testClass = employeeObject.getClass();
+        Class<? extends Object> testClass = employeeObject.getClass();
     }
 
     public void testEmployeeClassLoader() throws Exception {
         XMLContext employeeXMLContext = getXMLContext(new EmployeeProject(), employeeClassLoader);
-        Class controlClass = employeeClassLoader.loadClass(EMPLOYEE_CLASS);
+        Class<?> controlClass = employeeClassLoader.loadClass(EMPLOYEE_CLASS);
 
         Document employeeDocument = parse(EMPLOYEE_XML_RESOURCE);
         XMLUnmarshaller unmarshaller = employeeXMLContext.createUnmarshaller();
         Object employeeObject = unmarshaller.unmarshal(employeeDocument);
-        Class testClass = employeeObject.getClass();
+        Class<? extends Object> testClass = employeeObject.getClass();
     }
 
     public void testPhoneNumberClassLoader() throws Exception {
         XMLContext phoneNumberXMLContext = getXMLContext(new PhoneNumberProject(), phoneNumberClassLoader);
-        Class controlClass = phoneNumberClassLoader.loadClass(PHONE_NUMBER_CLASS);
+        Class<?> controlClass = phoneNumberClassLoader.loadClass(PHONE_NUMBER_CLASS);
         XMLUnmarshaller unmarshaller = phoneNumberXMLContext.createUnmarshaller();
         Document phoneNumberDocument = parse(PHONE_NUMBER_XML_RESOURCE);
         Object phoneNumberObject = unmarshaller.unmarshal(phoneNumberDocument);
-        Class testClass = phoneNumberObject.getClass();
+        Class<? extends Object> testClass = phoneNumberObject.getClass();
     }
 
     private Document parse(String xmlResource) throws Exception {
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/EmployeeProject.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/EmployeeProject.java
index 5b43eca..d20cd0a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/EmployeeProject.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/EmployeeProject.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
@@ -28,7 +28,7 @@
     private XMLDescriptor getEmployeeDescriptor() {
         try {
             ClassLoader employeeClassLoader = new JARClassLoader("org/eclipse/persistence/testing/oxm/classloader/Employee.jar");
-            Class employeeClass = employeeClassLoader.loadClass("org.eclipse.persistence.testing.oxm.classloader.Employee");
+            Class<?> employeeClass = employeeClassLoader.loadClass("org.eclipse.persistence.testing.oxm.classloader.Employee");
 
             XMLDescriptor xmlDescriptor = new XMLDescriptor();
             xmlDescriptor.setJavaClass(employeeClass);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/JARClassLoader.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/JARClassLoader.java
index 37d250e..333ab9c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/JARClassLoader.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/JARClassLoader.java
@@ -103,9 +103,9 @@
  * and store them in the hashtable.
  */
 protected void extractPackageNames(String jarFileName) {
-    Enumeration stream = this.buildJARFile(jarFileName).entries();
+    Enumeration<? extends ZipEntry> stream = this.buildJARFile(jarFileName).entries();
     while (stream.hasMoreElements()) {
-        String entryName = ((ZipEntry) stream.nextElement()).getName();
+        String entryName = stream.nextElement().getName();
         int endIndex = entryName.lastIndexOf("/");
         // skip over entries for files in the root directory and directories
         if ((endIndex != -1) && (endIndex != (entryName.length() - 1))) {
@@ -174,7 +174,7 @@
  */
 protected Class loadUnresolvedClass(String className) throws ClassNotFoundException {
     // check whether we already loaded the class
-    Class c = this.findLoadedClass(className);
+    Class<?> c = this.findLoadedClass(className);
     if (c != null) {
         return c;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/PhoneNumberProject.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/PhoneNumberProject.java
index 041f124..8451a1f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/PhoneNumberProject.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/PhoneNumberProject.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
@@ -28,7 +28,7 @@
     private XMLDescriptor getPhoneNumberDescriptor() {
         try {
             ClassLoader phoneNumberClassLoader = new JARClassLoader("org/eclipse/persistence/testing/oxm/classloader/PhoneNumber.jar");
-            Class phoneNumberClass = phoneNumberClassLoader.loadClass("org.eclipse.persistence.testing.oxm.classloader.PhoneNumber");
+            Class<?> phoneNumberClass = phoneNumberClassLoader.loadClass("org.eclipse.persistence.testing.oxm.classloader.PhoneNumber");
 
             XMLDescriptor xmlDescriptor = new XMLDescriptor();
             xmlDescriptor.setJavaClass(phoneNumberClass);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/dynamic/DynamicTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/dynamic/DynamicTestCases.java
index dd2cf6e..2335b38 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/dynamic/DynamicTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/dynamic/DynamicTestCases.java
@@ -14,23 +14,17 @@
 //     rbarkhouse - 2009-11-16 14:08:13 - initial implementation
 package org.eclipse.persistence.testing.oxm.dynamic;
 
-import java.io.File;
-import java.io.FileInputStream;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
 
-import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.dynamic.DynamicClassLoader;
-import org.eclipse.persistence.dynamic.DynamicType;
 import org.eclipse.persistence.dynamic.DynamicTypeBuilder;
 import org.eclipse.persistence.internal.dynamic.DynamicEntityImpl;
 import org.eclipse.persistence.oxm.XMLRoot;
 import org.eclipse.persistence.sessions.Project;
-import org.eclipse.persistence.sessions.factories.XMLProjectReader;
-import org.eclipse.persistence.sessions.factories.XMLProjectWriter;
 import org.eclipse.persistence.testing.oxm.mappings.XMLMappingTestCases;
 
 public class DynamicTestCases extends XMLMappingTestCases {
@@ -141,8 +135,8 @@
     }
 
     private Object newInstance(String name) throws Exception {
-        Class theClass = dynamicClassLoader.loadClass(name);
-        Constructor constructor = theClass.getConstructors()[0];
+        Class<?> theClass = dynamicClassLoader.loadClass(name);
+        Constructor<?> constructor = theClass.getConstructors()[0];
 
         return constructor.newInstance();
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/classextractor/CarClassExtractorTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/classextractor/CarClassExtractorTestCases.java
index 9e18cf9..4d03f00 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/classextractor/CarClassExtractorTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/classextractor/CarClassExtractorTestCases.java
@@ -21,10 +21,8 @@
 
 import junit.textui.TestRunner;
 
-import org.eclipse.persistence.oxm.NamespaceResolver;
 import org.eclipse.persistence.testing.oxm.inheritance.Car;
 import org.eclipse.persistence.testing.oxm.inheritance.ParkingLot;
-import org.eclipse.persistence.testing.oxm.inheritance.Vehicle;
 import org.eclipse.persistence.testing.oxm.mappings.XMLWithJSONMappingTestCases;
 
 public class CarClassExtractorTestCases extends XMLWithJSONMappingTestCases {
@@ -42,7 +40,7 @@
 
     @Override
     protected Map<String, String> getNamespaces(){
-        Map map = new HashMap<String, String>();
+        Map<String, String> map = new HashMap<>();
         map.put("mynamespaceuri", "prefix");
         return map;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/anyattribute/reuse/Root.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/anyattribute/reuse/Root.java
index 03b606a..7d195a5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/anyattribute/reuse/Root.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/anyattribute/reuse/Root.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
@@ -20,7 +20,7 @@
 
 public class Root {
 
-    private Map any = new Properties();
+    private Map<Object, Object> any = new Properties();
 
     public Map getAny() {
         return any;
@@ -32,7 +32,7 @@
 
     public boolean equals(Object object) {
         if (object instanceof Root) {
-            Map collection1 = any;
+            Map<Object, Object> collection1 = any;
             Map collection2 = ((Root) object).getAny();
             if (collection1 == null && collection2 == null) {
                 return true;
@@ -49,7 +49,7 @@
             } else if (any.getClass() != ((Root) object).getAny().getClass()) {
                 return false;
             } else {
-                Iterator values1 = any.keySet().iterator();
+                Iterator<Object> values1 = any.keySet().iterator();
                 Iterator values2 = ((Root) object).getAny().keySet().iterator();
                 while (values1.hasNext()) {
                     Object key1 = values1.next();
@@ -69,7 +69,7 @@
         if (any == null) {
             return value;
         }
-        Iterator keys = any.keySet().iterator();
+        Iterator<Object> keys = any.keySet().iterator();
         while (keys.hasNext()) {
             Object key = keys.next();
             value += "\tKey:" + key + " --> Value:" + any.get(key) + "\n";
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyFalseTestCases.java
index 49c1405..6c023f8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyFalseTestCases.java
@@ -34,13 +34,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLCompositeObjectMapping aMapping = (XMLCompositeObjectMapping)aProject.getDescriptor(Team.class)//
         .getMappingForAttributeName("manager");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyTrueTestCases.java
index 3086d01..cb00a4d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNodeNullPolicyTrueTestCases.java
@@ -39,7 +39,7 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(true);
@@ -47,7 +47,7 @@
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);//.EMPTY_NODE);//.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetFalseTestCases.java
index 03742f2..b3a09a0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetFalseTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         //NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetTrueTestCases.java
index 07a6a14..58a482a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentFalseIsSetTrueTestCases.java
@@ -37,14 +37,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         XMLCompositeObjectMapping aMapping = (XMLCompositeObjectMapping) teamDescriptor.getMappingForAttributeName("manager");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentTrueTestCases.java
index 092a1ea..c5abdfc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicyAbsentIsSetAbsentTrueTestCases.java
@@ -40,14 +40,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         //NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetFalseTestCases.java
index 2d4da8d..090ae19 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetFalseTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetTrueTestCases.java
index e67d710..52b631e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyFalseIsSetTrueTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetFalseTestCases.java
index 017e4fc..c7b42da 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetFalseTestCases.java
@@ -48,14 +48,14 @@
         setControlJSON(JSON_RESOURCE);
         setWriteControlDocument(XML_WRITE_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetTrueTestCases.java
index b6bb005..10ba59a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetEmptyTrueIsSetTrueTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetFalseTestCases.java
index 66eceea..b6105c2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetFalseTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(true);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);//.EMPTY_NODE);//.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetTrueTestCases.java
index 083fc98..3deef3d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectIsSetNullPolicySetNillableIsSetTrueTestCases.java
@@ -39,14 +39,14 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(true);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);//.EMPTY_NODE);//.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetManager");
+        aNullPolicy.setIsSetMethodName("isSetManager");
         Project aProject = new CompositeObjectNodeNullPolicyProject(true);
         XMLDescriptor teamDescriptor = (XMLDescriptor) aProject.getDescriptor(Team.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentFalseTestCases.java
index 4299b10..0822e99 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentFalseTestCases.java
@@ -39,11 +39,11 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(false);
+        aNullPolicy.setSetPerformedForAbsentNode(false);
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentTrueTestCases.java
index 41e046b..30ac1cc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicyAbsentIsSetAbsentTrueTestCases.java
@@ -39,11 +39,11 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(true); // default
+        aNullPolicy.setSetPerformedForAbsentNode(true); // default
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicySetEmptyTrueIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicySetEmptyTrueIsSetFalseTestCases.java
index 51dce82..fabd470 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicySetEmptyTrueIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/compositeobject/nillable/CompositeObjectNullPolicySetEmptyTrueIsSetFalseTestCases.java
@@ -40,11 +40,11 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // false=new Manager, true=null
         aNullPolicy.setNullRepresentedByXsiNil(false); // No effect
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(false); // non-default
+        aNullPolicy.setSetPerformedForAbsentNode(false); // non-default
 
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directcollection/nillable/DirectCollectionIsSetNodeNullPolicyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directcollection/nillable/DirectCollectionIsSetNodeNullPolicyTrueTestCases.java
index 0676a6e..bb444b9 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directcollection/nillable/DirectCollectionIsSetNodeNullPolicyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directcollection/nillable/DirectCollectionIsSetNodeNullPolicyTrueTestCases.java
@@ -34,13 +34,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByXsiNil(true);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);
 
-        ((IsSetNullPolicy) aNullPolicy).setIsSetMethodName("isSetTasks");
+        aNullPolicy.setIsSetMethodName("isSetTasks");
 
         Project aProject = new DirectCollectionNodeNullPolicyProject(true);
         ClassDescriptor aDescriptor = aProject.getDescriptor(Employee.class);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyFalseTestCases.java
index d6f3ef3..076efd5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyFalseTestCases.java
@@ -31,13 +31,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // no effect
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyTrueTestCases.java
index 7c277c0..d47508c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNodeNullPolicyTrueTestCases.java
@@ -37,13 +37,13 @@
         setControlJSON(JSON_RESOURCE);
         setControlJSONWrite(JSON_WRITE_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // no effect
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);//.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDescriptor employeeDescriptor = (XMLDescriptor) aProject.getDescriptor(Employee.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
index b6dfdc7..7f0a207 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
@@ -32,13 +32,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(false);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
index 4bd8011..60e8045 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
@@ -32,14 +32,14 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         // Note: setting IsSetPerformedForAbsentNode to true is not valid here
         aNullPolicy.setNullRepresentedByEmptyNode(true); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(false);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyFalseTestCases.java
index 7954809..1799253 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyFalseTestCases.java
@@ -32,13 +32,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // No effect
         // Alter marshal policy state ignored for isSet=false
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(false);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyTrueTestCases.java
index 004888d..0629a09 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetEmptyTrueTestCases.java
@@ -32,13 +32,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(false);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetNonNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetNonNullTestCases.java
index cbc2c04..344da05 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetNonNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyAttributeSetNonNullTestCases.java
@@ -33,13 +33,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(false);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
index fd3aa5e..dca8357 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
@@ -34,13 +34,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE); // no effect when isset=false
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseWithParamsTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseWithParamsTestCases.java
index d625e10..a9957c4 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseWithParamsTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentFalseWithParamsTestCases.java
@@ -34,7 +34,7 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
@@ -49,11 +49,11 @@
         Object[] isSetParameters = {"x","y", Boolean.TRUE, 255, (short) 32767, 1L, 1.0, -1.0f, (byte) 32, 'C'};
         //Object[] isSetParameters = {"x","y"};
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         // Class[]
-        ((IsSetNullPolicy)aNullPolicy).setIsSetParameterTypes(isSetParameterTypes);
+        aNullPolicy.setIsSetParameterTypes(isSetParameterTypes);
         // Object[]
-        ((IsSetNullPolicy)aNullPolicy).setIsSetParameters(isSetParameters);
+        aNullPolicy.setIsSetParameters(isSetParameters);
         Project aProject = new DirectIsSetNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(EmployeeIsSetParams.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
index 451d9bb..d057207 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
@@ -34,13 +34,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
 
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyFalseTestCases.java
index e058a1a..4d64233 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyFalseTestCases.java
@@ -32,13 +32,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE); // no effect when isset=false
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyTrueTestCases.java
index 7033746..511b93b 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetEmptyTrueTestCases.java
@@ -33,13 +33,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetFalseTestCases.java
index 3bf00ee..ba6cc7a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetFalseTestCases.java
@@ -35,13 +35,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
 
         // Add xsi namespace map entry to the resolver (we don't pick up the one on the xml instance doc)
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetTrueTestCases.java
index 584d1f5..d52c0e3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNillableIsSetTrueTestCases.java
@@ -38,13 +38,13 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
         setControlJSONWrite(JSON_WRITE_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
 
         // Add xsi namespace map entry to the resolver (we don't pick up the one on the xml instance doc)
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNonNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNonNullTestCases.java
index 37883cd..6ca4c1f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNonNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetNullPolicyElementSetNonNullTestCases.java
@@ -33,13 +33,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // Alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // No effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // No effect
         // Alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.XSI_NIL); // No effect
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetDefaultTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetDefaultTestCases.java
index 7d1882b..187f8ba 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetDefaultTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetDefaultTestCases.java
@@ -45,13 +45,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect (defaults are only for SDO)
         aNullPolicy.setNullRepresentedByXsiNil(false); // no effect (defaults are only for SDO)
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE); // no effect (defaults are only for SDO)
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNOPTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNOPTestCases.java
index 5c73e55..1e69d00 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNOPTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNOPTestCases.java
@@ -45,13 +45,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNonNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNonNullTestCases.java
index 71a40a5..c9ae3ce 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNonNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNonNullTestCases.java
@@ -45,13 +45,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false); // no effect
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE); // no effect
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNullTestCases.java
index 19baf99..7319f0e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetNullTestCases.java
@@ -45,13 +45,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false); // no effect
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetOtherEmptyTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetOtherEmptyTestCases.java
index 5ab6b17..37f579a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetOtherEmptyTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementDefaultSetOtherEmptyTestCases.java
@@ -46,13 +46,13 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetDefaultNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetDefaultNullTestCases.java
index 427f62e..552fd5e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetDefaultNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetDefaultNullTestCases.java
@@ -47,14 +47,14 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDescriptor employeeDescriptor = (XMLDescriptor) aProject.getDescriptor(Employee.class);
         NamespaceResolver namespaceResolver = new NamespaceResolver();
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNOPTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNOPTestCases.java
index 2e6e2a3..cd93c4a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNOPTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNOPTestCases.java
@@ -44,14 +44,14 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(false);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.ABSENT_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNonNullTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNonNullTestCases.java
index 4a9f423..954e4aa 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNonNullTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetNonNullTestCases.java
@@ -43,8 +43,8 @@
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
         // use default policy with default flags and marshal enum
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetOtherEmptyTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetOtherEmptyTestCases.java
index d7f0f5a..9c40106 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetOtherEmptyTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectIsSetOptionalNodeNullPolicyNonNillableElementNonDefaultSetOtherEmptyTestCases.java
@@ -45,14 +45,14 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new IsSetNullPolicy();
+        IsSetNullPolicy aNullPolicy = new IsSetNullPolicy();
         // alter unmarshal policy state
         aNullPolicy.setNullRepresentedByEmptyNode(true);
         aNullPolicy.setNullRepresentedByXsiNil(false);
         // alter marshal policy state
         aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
 
-        ((IsSetNullPolicy)aNullPolicy).setIsSetMethodName("isSetFirstName");
+        aNullPolicy.setIsSetMethodName("isSetFirstName");
         Project aProject = new DirectNodeNullPolicyProject(true);
         XMLDirectMapping aMapping = (XMLDirectMapping)aProject.getDescriptor(Employee.class)//
         .getMappingForAttributeName("firstName");
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
index 4e9b61b..04669f5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentFalseTestCases.java
@@ -33,9 +33,9 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(false);
+        aNullPolicy.setSetPerformedForAbsentNode(false);
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
index 0340bf6..6a70a20 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeAbsentIsSetAbsentTrueTestCases.java
@@ -33,9 +33,9 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-            AbstractNullPolicy aNullPolicy = new NullPolicy();
+            NullPolicy aNullPolicy = new NullPolicy();
             // Alter unmarshal policy state
-            ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(true);
+            aNullPolicy.setSetPerformedForAbsentNode(true);
             aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
             aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
             // Alter marshal policy state
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeSetEmptyTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeSetEmptyTrueTestCases.java
index 76e4862..a9377a8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeSetEmptyTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyAttributeSetEmptyTrueTestCases.java
@@ -52,9 +52,9 @@
 
     private void updateNullPolicyForAttribute(Project aProject, String attributeName){
 
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(true); // no effect
+        aNullPolicy.setSetPerformedForAbsentNode(true); // no effect
         aNullPolicy.setNullRepresentedByEmptyNode(true); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         //  Alter marshal policy state
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentFalseTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
index 4d0cac8..7dcc753 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentFalseTestCases.java
@@ -33,9 +33,9 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(false);
+        aNullPolicy.setSetPerformedForAbsentNode(false);
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentTrueTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
index cb0da4a..66be678 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/directtofield/nillable/DirectNullPolicyElementAbsentIsSetAbsentTrueTestCases.java
@@ -33,9 +33,9 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        AbstractNullPolicy aNullPolicy = new NullPolicy();
+        NullPolicy aNullPolicy = new NullPolicy();
         // Alter unmarshal policy state
-        ((NullPolicy)aNullPolicy).setSetPerformedForAbsentNode(true);
+        aNullPolicy.setSetPerformedForAbsentNode(true);
         aNullPolicy.setNullRepresentedByEmptyNode(false); // no effect
         aNullPolicy.setNullRepresentedByXsiNil(false);  // no effect
         // Alter marshal policy state
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java
index 56dffc1..0c943b9 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/keybased/multipletargets/Employee.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,7 +31,7 @@
             return false;
         }
         Employee tgtEmp = ((Employee) obj);
-        ArrayList tgtAddresses = tgtEmp.addresses;
+        ArrayList<Address> tgtAddresses = tgtEmp.addresses;
         if (this.addresses == null) {
             return tgtAddresses == null;
         }
@@ -40,8 +40,8 @@
             return false;
         }
 
-        for (Iterator addIt = this.addresses.iterator(); addIt.hasNext(); ) {
-            Address address = (Address) addIt.next();
+        for (Iterator<Address> addIt = this.addresses.iterator(); addIt.hasNext(); ) {
+            Address address = addIt.next();
             if (!(tgtAddresses.contains(address))) {
                 return false;
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/xmlfragmentcollection/Employee.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/xmlfragmentcollection/Employee.java
index 272c3f0..18d3a8f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/xmlfragmentcollection/Employee.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/mappings/xmlfragmentcollection/Employee.java
@@ -54,12 +54,12 @@
         if(size != size2) {
           return false;
         }
-        Iterator nodesIter = xmlnodes.iterator();
-        Iterator empNodesIter = emp.xmlnodes.iterator();
+        Iterator<Node> nodesIter = xmlnodes.iterator();
+        Iterator<Node> empNodesIter = emp.xmlnodes.iterator();
         while(nodesIter.hasNext())
         {
-          Node next = (Node)nodesIter.next();
-          Node next2 = (Node)empNodesIter.next();
+          Node next = nodesIter.next();
+          Node next2 = empNodesIter.next();
            try {
             if(next2.getNodeType() == Node.ATTRIBUTE_NODE && next.getNodeType() == Node.ATTRIBUTE_NODE) {
                 Attr att1 = (Attr)next2;
@@ -116,9 +116,9 @@
         writer.write(" " + lastName);
         TransformerFactory factory = TransformerFactory.newInstance();
         if(xmlnodes != null){
-          Iterator iter = xmlnodes.iterator();
+          Iterator<Node> iter = xmlnodes.iterator();
           while(iter.hasNext()){
-            Node xmlNode = (Node)iter.next();
+            Node xmlNode = iter.next();
             try {
                 Transformer tf = factory.newTransformer();
                 DOMSource source = new DOMSource(xmlNode);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/platform/PlatformCreateDocumentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/platform/PlatformCreateDocumentTestCases.java
index e31b828..a3142d0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/platform/PlatformCreateDocumentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/platform/PlatformCreateDocumentTestCases.java
@@ -16,7 +16,6 @@
 
 import java.io.InputStream;
 
-import junit.framework.TestCase;
 import org.eclipse.persistence.platform.xml.XMLPlatform;
 import org.eclipse.persistence.platform.xml.XMLPlatformFactory;
 import org.eclipse.persistence.platform.xml.XMLPlatformException;
@@ -186,7 +185,7 @@
     }
 
     public void testCreateInvalidXMLPlatform2() throws Exception {
-        Class originalClass = XMLPlatformFactory.getInstance().getXMLPlatformClass();
+        Class<? extends XMLPlatform> originalClass = XMLPlatformFactory.getInstance().getXMLPlatformClass();
         String originalPlatform = System.getProperty("eclipselink.xml.platform");
         XMLPlatformFactory.getInstance().setXMLPlatformClass(null);
         try {
@@ -207,7 +206,7 @@
     }
 
     public void testCreateNullXMLPlatform() throws Exception {
-        Class originalClass = XMLPlatformFactory.getInstance().getXMLPlatformClass();
+        Class<? extends XMLPlatform> originalClass = XMLPlatformFactory.getInstance().getXMLPlatformClass();
         String originalPlatform = System.getProperty("eclipselink.xml.platform");
         if (null == originalPlatform) {
             originalPlatform = "org.eclipse.persistence.platform.xml.jaxp.JAXPPlatform";
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/schemamodelgenerator/GenerateSchemaTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/schemamodelgenerator/GenerateSchemaTestCases.java
index 22afb9c..7af391e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/schemamodelgenerator/GenerateSchemaTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/schemamodelgenerator/GenerateSchemaTestCases.java
@@ -28,6 +28,7 @@
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.internal.oxm.Namespace;
 import org.eclipse.persistence.internal.oxm.XMLConversionManager;
+import org.eclipse.persistence.internal.oxm.XMLUnmarshaller;
 import org.eclipse.persistence.internal.oxm.schema.SchemaModelGenerator;
 import org.eclipse.persistence.internal.oxm.schema.SchemaModelProject;
 import org.eclipse.persistence.internal.oxm.schema.model.Schema;
@@ -73,7 +74,7 @@
      *
      */
     protected void loginProject(Project prj) {
-        XMLPlatform platform = new SAXPlatform();
+        XMLPlatform<XMLUnmarshaller> platform = new SAXPlatform();
         prj.setLogin(new XMLLogin(platform));
         DatabaseSession session = prj.createDatabaseSession();
         session.setLogLevel(SessionLog.OFF);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/xmlmarshaller/twoprojects/TwoProjectsTestSuite.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/xmlmarshaller/twoprojects/TwoProjectsTestSuite.java
index 50840ff..790b5fb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/xmlmarshaller/twoprojects/TwoProjectsTestSuite.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/xmlmarshaller/twoprojects/TwoProjectsTestSuite.java
@@ -19,7 +19,6 @@
 import javax.xml.parsers.DocumentBuilderFactory;
 import java.util.ArrayList;
 
-import junit.framework.TestCase;
 import org.eclipse.persistence.oxm.XMLContext;
 import org.eclipse.persistence.oxm.XMLLogin;
 import org.eclipse.persistence.oxm.XMLMarshaller;
@@ -61,7 +60,7 @@
     public void testAddLoggedInSession() throws Exception {
         XMLContext xmlContext = new XMLContext(new CustomerProject());
         Project empProject = new EmployeeProject();
-        XMLPlatform platform = new SAXPlatform();
+        XMLPlatform<org.eclipse.persistence.internal.oxm.XMLUnmarshaller> platform = new SAXPlatform();
         empProject.setLogin(new XMLLogin(platform));
 
         DatabaseSession employeeSession = empProject.createDatabaseSession();
@@ -88,7 +87,7 @@
         XMLContext xmlContext = new XMLContext(new CustomerProject());
         Project empProject = new EmployeeProject();
 
-        XMLPlatform platform = new SAXPlatform();
+        XMLPlatform<org.eclipse.persistence.internal.oxm.XMLUnmarshaller> platform = new SAXPlatform();
         empProject.setLogin(new XMLLogin(platform));
 
         DatabaseSession employeeSession = empProject.createDatabaseSession();
@@ -114,7 +113,7 @@
         XMLContext xmlContext = new XMLContext(CONTEXT_PATH_SAX);
 
         Project empProject = new EmployeeProject();
-        XMLPlatform platform = new SAXPlatform();
+        XMLPlatform<org.eclipse.persistence.internal.oxm.XMLUnmarshaller> platform = new SAXPlatform();
         empProject.setLogin(new XMLLogin(platform));
 
         DatabaseSession employeeSession = empProject.createDatabaseSession();