use generic Class in core, moxy, sdo (#1324)

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/writing/CommitOrderTest.java b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/writing/CommitOrderTest.java
index d1a10b4..886b1d0 100644
--- a/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/writing/CommitOrderTest.java
+++ b/foundation/eclipselink.core.test/src/it/java/org/eclipse/persistence/testing/tests/writing/CommitOrderTest.java
@@ -51,25 +51,25 @@
 
     @Override
     public void test() {
-        getSession().getProject().setDescriptors(new HashMap());
+        getSession().getProject().setDescriptors(new HashMap<>());
         ((DatabaseSession)getSession()).logout();
         ((DatabaseSession)getSession()).login();
         new EmployeeSystem().addDescriptors(getDatabaseSession());
         orderAResults = getCommitOrderListAsString(getAbstractSession().getCommitManager().getCommitOrder());
 
-        getSession().getProject().setDescriptors(new HashMap());
+        getSession().getProject().setDescriptors(new HashMap<>());
         ((DatabaseSession)getSession()).logout();
         ((DatabaseSession)getSession()).login();
         new InsuranceSystem().addDescriptors(getDatabaseSession());
         orderBResults = getCommitOrderListAsString(getAbstractSession().getCommitManager().getCommitOrder());
 
-        getSession().getProject().setDescriptors(new HashMap());
+        getSession().getProject().setDescriptors(new HashMap<>());
         ((DatabaseSession)getSession()).logout();
         ((DatabaseSession)getSession()).login();
         new OwnershipSystem().addDescriptors(getDatabaseSession());
         orderCResults = getCommitOrderListAsString(getAbstractSession().getCommitManager().getCommitOrder());
 
-        getSession().getProject().setDescriptors(new HashMap());
+        getSession().getProject().setDescriptors(new HashMap<>());
         ((DatabaseSession)getSession()).logout();
         ((DatabaseSession)getSession()).login();
         new InheritanceSystem().addDescriptors(getDatabaseSession());
@@ -103,7 +103,7 @@
     }
 
     protected String getErrorMessage(String resultList) {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         String cr = Helper.cr();
         sb.append("Error: An unexpected commit order was found.");
         sb.append(cr);
@@ -124,10 +124,10 @@
         return sb.toString();
     }
 
-    protected String getCommitOrderListAsString(List<Class> classes) {
-        StringBuffer sb = new StringBuffer();
+    protected String getCommitOrderListAsString(List<Class<?>> classes) {
+        StringBuilder sb = new StringBuilder();
         String cr = Helper.cr();
-        for (Class clazz : classes) {
+        for (Class<?> clazz : classes) {
             sb.append(clazz.getName());
             sb.append(cr);
         }
@@ -135,194 +135,194 @@
     }
 
     protected static String initializeExpectedCommitOrder() {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         String cr = Helper.cr();
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Address" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Address1" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.AddressDescription" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Agent" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Cousin" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Aggregate" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Bicycle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Builder" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Car" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Parent" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Child" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Client" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Company" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Computer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Customer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Dependant" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Employee" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Employee1" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.EvaluationClient" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Manufacturer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.GolfClub" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.GolfClubShaft" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.HomeAddress" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.House" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Job" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Language" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Oid" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Period" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.PeriodDescription" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.ProjectDescription" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Relative" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Responsibility" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.RoomSellingPoint" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.SellingPoint" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.SingleHouse" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.StepChild" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Switch" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchState" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchStateOFF" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchStateON" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.TownHouse" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Transport" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Vehicle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Version" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.Worker" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.WorkingAddress" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.Guardian" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.MailingAddress" + cr);
-        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.Student" + cr);
-        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadAggregate" + cr);
-        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadReferenceData" + cr);
-        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadObject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Diner" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Location" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Restaurant" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Menu" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.MenuItem" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Person" + cr);
-        sb.append("org.eclipse.persistence.testing.models.collections.Waiter" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.Address" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.Employee" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.Child" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.LargeProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.PhoneNumber" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.Project" + cr);
-        sb.append("org.eclipse.persistence.testing.models.employee.domain.SmallProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.AboutToInsertMultiTableObject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.AboutToInsertSingleTableObject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.Address" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.CreditCard" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.EmailAccount" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.Phone" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.Customer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.events.Order" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.A_1_King2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.A_2_1_King2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.A_2_King2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.A_King2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Animal_Matt" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Human" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.JavaProgrammer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Mammal" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Primate" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Programmer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Alligator" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Animal" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Teacher" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Apple" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.BudgettedProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.ProjectWorker" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.BaseProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Company" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Bicycle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Boat" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Car" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.SportsCar" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.SalesRep" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.SoftwareEngineer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Engineer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Person" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Bus" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Cat" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.CompanyWorker" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Computer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Developer_King" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Dog" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Entomologist" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Fruit" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.FueledVehicle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.GrassHopper" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.IBMPC" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Insect" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.LabradorRetriever" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.LadyBug" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Mac" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Mainframe" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.NonFueledVehicle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.PC" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Pear" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Person_King" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.SeniorDeveloper_King" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Vehicle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.inheritance.Worker" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.PolicyHolder" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.Address" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.BicyclePolicy" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.Policy" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.HealthPolicy" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.HousePolicy" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.VehiclePolicy" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.Claim" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.HealthClaim" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.HouseClaim" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.Phone" + cr);
-        sb.append("org.eclipse.persistence.testing.models.insurance.VehicleClaim" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.Employee" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.Computer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.GaurenteedShipment" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.InsuredShipment" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.Shipment" + cr);
-        sb.append("org.eclipse.persistence.testing.models.legacy.Order" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Address" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.BabyMonitor" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Crib" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Baby" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.CompanyCard" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Cubicle" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Employee" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Monitor" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Computer" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.EmergencyExit" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Employee1" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Employee2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Hardware" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Identification" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Keyboard" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Joystick" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Key" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Peripheral" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Phone" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.SecureSystem" + cr);
-        sb.append("org.eclipse.persistence.testing.models.mapping.Shipment" + cr);
-        sb.append("org.eclipse.persistence.testing.models.multipletable.Budget" + cr);
-        sb.append("org.eclipse.persistence.testing.models.multipletable.BusinessProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.multipletable.LargeBusinessProject" + cr);
-        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectB" + cr);
-        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectA" + cr);
-        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectD" + cr);
-        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectC" + cr);
-        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectE" + cr);
-        sb.append("org.eclipse.persistence.testing.models.sequencing.SeqTestClass1" + cr);
-        sb.append("org.eclipse.persistence.testing.models.sequencing.SeqTestClass2" + cr);
-        sb.append("org.eclipse.persistence.testing.models.vehicle.EngineType" + cr);
-        sb.append("org.eclipse.persistence.testing.models.vehicle.FuelType" + cr);
-        sb.append("org.eclipse.persistence.testing.models.vehicle.SportsCar" + cr);
-        sb.append("org.eclipse.persistence.testing.models.vehicle.CarOwner" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.TestClass1" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.options.QueryOptionHistory" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.options.QueryOptionEmployee" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.Brewer" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.Beer" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.Person" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.Bar" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.History" + cr);
-        sb.append("org.eclipse.persistence.testing.tests.queries.report.ReportEmployee" + cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Address").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Address1").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.AddressDescription").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Agent").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Cousin").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Aggregate").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Bicycle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Builder").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Car").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Parent").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Child").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Client").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Company").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Computer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Customer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Dependant").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Employee").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Employee1").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.EvaluationClient").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Manufacturer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.GolfClub").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.GolfClubShaft").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.HomeAddress").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.House").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Job").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Language").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Oid").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Period").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.PeriodDescription").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.ProjectDescription").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Relative").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Responsibility").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.RoomSellingPoint").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.SellingPoint").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.SingleHouse").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.StepChild").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Switch").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchState").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchStateOFF").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.SwitchStateON").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.TownHouse").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Transport").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Vehicle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Version").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.Worker").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.WorkingAddress").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.Guardian").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.MailingAddress").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.aggregate.nested.Student").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadAggregate").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadReferenceData").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.bigbad.BigBadObject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Diner").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Location").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Restaurant").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Menu").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.MenuItem").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Person").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.collections.Waiter").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.Address").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.Employee").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.Child").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.EmploymentPeriod").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.LargeProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.PhoneNumber").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.Project").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.employee.domain.SmallProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.AboutToInsertMultiTableObject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.AboutToInsertSingleTableObject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.Address").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.CreditCard").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.EmailAccount").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.Phone").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.Customer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.events.Order").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.A_1_King2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.A_2_1_King2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.A_2_King2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.A_King2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Animal_Matt").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Human").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.JavaProgrammer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Mammal").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Primate").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Programmer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Alligator").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Animal").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Teacher").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Apple").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.BudgettedProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.ProjectWorker").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.BaseProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Company").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Bicycle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Boat").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Car").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.SportsCar").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.SalesRep").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.SoftwareEngineer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Engineer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Person").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Bus").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Cat").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.CompanyWorker").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Computer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Developer_King").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Dog").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Entomologist").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Fruit").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.FueledVehicle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.GrassHopper").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.IBMPC").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Insect").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.LabradorRetriever").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.LadyBug").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Mac").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Mainframe").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.NonFueledVehicle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.PC").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Pear").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Person_King").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.SeniorDeveloper_King").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Vehicle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.inheritance.Worker").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.PolicyHolder").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.Address").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.BicyclePolicy").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.Policy").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.HealthPolicy").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.HousePolicy").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.VehiclePolicy").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.Claim").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.HealthClaim").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.HouseClaim").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.Phone").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.insurance.VehicleClaim").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.Employee").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.Computer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.GaurenteedShipment").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.InsuredShipment").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.Shipment").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.legacy.Order").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Address").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.BabyMonitor").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Crib").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Baby").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.CompanyCard").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Cubicle").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Employee").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Monitor").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Computer").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.EmergencyExit").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Employee1").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Employee2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Hardware").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Identification").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Keyboard").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Joystick").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Key").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Peripheral").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Phone").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.SecureSystem").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.mapping.Shipment").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.multipletable.Budget").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.multipletable.BusinessProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.multipletable.LargeBusinessProject").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectB").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectA").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectD").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectC").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.ownership.ObjectE").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.sequencing.SeqTestClass1").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.sequencing.SeqTestClass2").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.vehicle.EngineType").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.vehicle.FuelType").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.vehicle.SportsCar").append(cr);
+        sb.append("org.eclipse.persistence.testing.models.vehicle.CarOwner").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.TestClass1").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.options.QueryOptionHistory").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.options.QueryOptionEmployee").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.Brewer").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.Beer").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.Person").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.Bar").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.History").append(cr);
+        sb.append("org.eclipse.persistence.testing.tests.queries.report.ReportEmployee").append(cr);
         return sb.toString();
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Array.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Array.java
index 927febb..a6505ea 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Array.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Array.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
@@ -48,7 +48,7 @@
      * paramterized type of the collection when defined using
      * generics.
      */
-    Class targetClass() default void.class;
+    Class<?> targetClass() default void.class;
 
     /**
      * (Required) The database name of the database array structure type.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CacheInterceptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CacheInterceptor.java
index 45668c6..7ad306c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CacheInterceptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CacheInterceptor.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
@@ -37,5 +37,5 @@
     /**
      * The Class that will be used to intercept EclipseLink's cache access.
      */
-    Class value();
+    Class<?> value();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Converter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Converter.java
index 6e9efe3..53344f4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Converter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Converter.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
@@ -58,5 +58,5 @@
      * (Required) The converter class to be used. This class must implement the
      *  org.eclipse.persistence.mappings.converters.Converter interface.
      */
-    Class converterClass();
+    Class<?> converterClass();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CopyPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CopyPolicy.java
index c2e146d..6190fd0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CopyPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/CopyPolicy.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
@@ -50,5 +50,5 @@
      * This defines the class of the copy policy.  It must specify a class that
      * implements org.eclipse.persistence.descriptors.copying.CopyPolicy
      */
-    Class value();
+    Class<?> value();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Customizer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Customizer.java
index 324d6e4..9550130 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Customizer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Customizer.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
@@ -40,5 +40,5 @@
      * (Required) Defines the name of the descriptor customizer that should be
      * applied to this entity's descriptor.
      */
-    Class value();
+    Class<?> value();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/DiscriminatorClass.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/DiscriminatorClass.java
index 3164777..0221ee1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/DiscriminatorClass.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/DiscriminatorClass.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
@@ -37,5 +37,5 @@
     /**
      * (Required) The class to the instantiated with the given discriminator.
      */
-    Class value();
+    Class<?> value();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/NamedStoredProcedureQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/NamedStoredProcedureQuery.java
index 95c95bc..8e2d9f8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/NamedStoredProcedureQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/NamedStoredProcedureQuery.java
@@ -59,12 +59,12 @@
      * @see #resultClasses
      */
     @Deprecated
-    Class resultClass() default void.class;
+    Class<?> resultClass() default void.class;
 
     /**
      * (Optional) Refers to the classes of the result.
      */
-    Class[] resultClasses() default {};
+    Class<?>[] resultClasses() default {};
 
     /**
      * (Optional) The name of the SQLResultMapping.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ObjectTypeConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ObjectTypeConverter.java
index d9123d4..473d532 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ObjectTypeConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ObjectTypeConverter.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
@@ -57,13 +57,13 @@
      * (Optional) Specify the type stored on the database. The default is
      * inferred from the type of the persistence field or property.
      */
-    Class dataType() default void.class;
+    Class<?> dataType() default void.class;
 
     /**
      * (Optional) Specify the type stored on the entity. The default is inferred
      * from the type of the persistent field or property.
      */
-    Class objectType() default void.class;
+    Class<?> objectType() default void.class;
 
     /**
      * (Required) Specify the conversion values to be used with the object
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Property.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Property.java
index 1b6d269..57075c8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Property.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/Property.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
@@ -84,5 +84,5 @@
      * If specified must be a simple type that could be handled by ConversionManager:
      * numerical, boolean, temporal.
      */
-    Class valueType() default String.class;
+    Class<?> valueType() default String.class;
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/QueryRedirectors.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/QueryRedirectors.java
index 0be8901..00d6f62 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/QueryRedirectors.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/QueryRedirectors.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
@@ -41,7 +41,7 @@
      * it or alternately performing some side effect like auditing.
      *
      */
-    Class allQueries() default void.class;
+    Class<?> allQueries() default void.class;
 
     /**
      * A Default ReadAll Query Redirector will be applied to any executing
@@ -50,7 +50,7 @@
      * it or alternately performing some side effect like auditing.
      * For users executing a JPA Query through the getResultList() API this is the redirector that will be invoked
      *      */
-    Class readAll() default void.class;
+    Class<?> readAll() default void.class;
 
     /**
      * A Default ReadObject Query Redirector will be applied to any executing
@@ -58,7 +58,7 @@
      * Query redirectors allow the user to intercept query execution preventing
      * it or alternately performing some side effect like auditing.
      * For users executing a JPA Query through the getSingleResult() API or EntityManager.find() this is the redirector that will be invoked     */
-    Class readObject() default void.class;
+    Class<?> readObject() default void.class;
 
     /**
      * A Default ReportQuery Redirector will be applied to any executing
@@ -66,7 +66,7 @@
      * Query redirectors allow the user to intercept query execution preventing
      * it or alternately performing some side effect like auditing.
      * For users executing a JPA Query that contains agregate functions or selects multiple entities this is the redirector that will be invoked     */
-    Class report() default void.class;
+    Class<?> report() default void.class;
 
     /**
      * A Default Update Query Redirector will be applied to any executing
@@ -75,7 +75,7 @@
      * Query redirectors allow the user to intercept query execution preventing
      * it or alternately performing some side effect like auditing.
      */
-    Class update() default void.class;
+    Class<?> update() default void.class;
 
     /**
      * A Default Insert Query Redirector will be applied to any executing
@@ -84,7 +84,7 @@
      * Query redirectors allow the user to intercept query execution preventing
      * it or alternately performing some side effect like auditing.
      */
-    Class insert() default void.class;
+    Class<?> insert() default void.class;
 
     /**
      * A Default Delete Object Query Redirector will be applied to any executing
@@ -92,6 +92,6 @@
      * Query redirectors allow the user to intercept query execution preventing
      * it or alternately performing some side effect like auditing.
      */
-    Class delete() default void.class;
+    Class<?> delete() default void.class;
 
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/RangePartitioning.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/RangePartitioning.java
index 371bbc3..ad2d8d9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/RangePartitioning.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/RangePartitioning.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
@@ -66,7 +66,7 @@
     RangePartition[] partitions();
 
     /** The type of the start and end values. */
-    Class partitionValueType() default String.class;
+    Class<?> partitionValueType() default String.class;
 
     /**
      * Defines if queries that do not contain the partition field should be sent
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ReadTransformer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ReadTransformer.java
index fa3fe68..e5cbb3b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ReadTransformer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ReadTransformer.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
@@ -52,7 +52,7 @@
      * be used to create the value to be assigned to the attribute.
      * Either transformerClass or method must be specified, but not both.
      */
-    Class transformerClass() default void.class;
+    Class<?> transformerClass() default void.class;
 
     /**
      * The mapped class must have a method with this name which returns a value
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/SerializedObject.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/SerializedObject.java
index 4eaab47..b6d02a1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/SerializedObject.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/SerializedObject.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
@@ -88,7 +88,7 @@
      * The Class that implements org.eclipse.persistence.descriptors.SerializedObjectPolicy interface.
      * This class must be specified.
      */
-    Class value();
+    Class<?> value();
 
     /**
      * (Optional) The column that holds the serialized object. By default it's a BLOB column named "SOP" in entity's main table.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/StoredProcedureParameter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/StoredProcedureParameter.java
index 1cfd89d..398cd2f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/StoredProcedureParameter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/StoredProcedureParameter.java
@@ -68,7 +68,7 @@
      * (Optional) The type of Java class desired back from the procedure,
      * this is dependent on the type returned from the procedure.
      */
-    Class type() default void.class;
+    Class<?> type() default void.class;
 
     /**
      * (Optional) The JDBC type code, this is dependent on the type returned
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/TypeConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/TypeConverter.java
index 32da97e..cce1836 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/TypeConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/TypeConverter.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
@@ -56,11 +56,11 @@
      * (Optional) Specify the type stored on the database. The default is
      * inferred from the type of the persistence field or property.
      */
-    Class dataType() default void.class;
+    Class<?> dataType() default void.class;
 
     /**
      * (Optional) Specify the type stored on the entity. The default is inferred
      * from the type of the persistent field or property.
      */
-    Class objectType() default void.class;
+    Class<?> objectType() default void.class;
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ValuePartitioning.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ValuePartitioning.java
index 9075372..52679d2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ValuePartitioning.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/ValuePartitioning.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
@@ -62,7 +62,7 @@
     ValuePartition[] partitions();
 
     /** The type of the start and end values. */
-    Class partitionValueType() default String.class;
+    Class<?> partitionValueType() default String.class;
 
     /** The default connection pool is used for any unmapped values. */
     String defaultConnectionPool() default "";
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/VariableOneToOne.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/VariableOneToOne.java
index 67a827c..eb73d4c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/VariableOneToOne.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/VariableOneToOne.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
@@ -51,7 +51,7 @@
      * not specified it will be inferred from the type of the object being
      * referenced.
      */
-    Class targetInterface() default void.class;
+    Class<?> targetInterface() default void.class;
 
     /**
      * (Optional) The operations that must be cascaded to the target of the
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/WriteTransformer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/WriteTransformer.java
index a9696b1..38b9484 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/WriteTransformer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/annotations/WriteTransformer.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 @@
      * public Time buildFieldValue(Object instance, String fieldName, Session session).
      * Either transformerClass or method must be specified, but not both.
      */
-    Class transformerClass() default void.class;
+    Class<?> transformerClass() default void.class;
 
     /**
      * The mapped class must have a method with this name which returns a value
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/descriptors/CoreInheritancePolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/descriptors/CoreInheritancePolicy.java
index eb2fa04..a3c8a43 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/descriptors/CoreInheritancePolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/descriptors/CoreInheritancePolicy.java
@@ -56,7 +56,7 @@
      * INTERNAL:
      * This method is invoked only for the abstract descriptors.
      */
-    public abstract Class classFromRow(ABSTRACT_RECORD record, ABSTRACT_SESSION session);
+    public abstract Class<?> classFromRow(ABSTRACT_RECORD record, ABSTRACT_SESSION session);
 
     /**
      * INTERNAL:
@@ -101,7 +101,7 @@
      * PUBLIC:
      * Return the parent class.
      */
-    public abstract Class getParentClass();
+    public abstract Class<?> getParentClass();
 
     /**
      * INTERNAL:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreAttributeAccessor.java
index fe175b4..68eec65 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreAttributeAccessor.java
@@ -26,7 +26,7 @@
     /**
      * Return the class type of the attribute.
      */
-    Class getAttributeClass();
+    Class<?> getAttributeClass();
 
     /**
      * INTERNAL:
@@ -42,7 +42,7 @@
     /**
      * Allow any initialization to be performed with the descriptor class.
      */
-    void initializeAttributes(Class descriptorClass) throws DescriptorException;
+    void initializeAttributes(Class<?> descriptorClass) throws DescriptorException;
 
     boolean isInstanceVariableAttributeAccessor();
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreMapping.java
index 273b138..8aa15f9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/mappings/CoreMapping.java
@@ -52,7 +52,7 @@
      *
      * @return TODO
      */
-    public abstract Class getAttributeClassification();
+    public abstract Class<?> getAttributeClassification();
 
     /**
      * PUBLIC:
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 843409e..f2869c5 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
@@ -69,7 +69,7 @@
      * The class represented by this AttrbuteGroup.  Used to specify overriding
      * groups for subclasses.
      */
-    protected Class type;
+    protected Class<?> type;
 
     /**
      * To add inheritance support the two following attrbutes are used to create a model of the inheritance tree
@@ -118,7 +118,7 @@
      * INTERNAL:
      * This constructer is to only be used by EclipseLink internally
      */
-    public CoreAttributeGroup(String name, Class type, boolean isValidated) {
+    public CoreAttributeGroup(String name, Class<?> type, boolean isValidated) {
         this(name);
         this.type = type;
         this.isValidated = isValidated;
@@ -540,7 +540,7 @@
         return this.allsubclasses;
     }
 
-    public Class getType() {
+    public Class<?> getType() {
         return type;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeItem.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeItem.java
index c99c3ce..0946753 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeItem.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/core/queries/CoreAttributeItem.java
@@ -266,7 +266,7 @@
         return this.group;
     }
 
-    public ATTRIBUTE_GROUP getGroup(Class type) {
+    public ATTRIBUTE_GROUP getGroup(Class<?> type) {
         if (this.subGroups == null || type == null){
             return null;
         }
@@ -292,12 +292,12 @@
         return this.keyGroups.get(CoreClassConstants.OBJECT);
     }
 
-    public ATTRIBUTE_GROUP getKeyGroup(Class type) {
+    public ATTRIBUTE_GROUP getKeyGroup(Class<?> type) {
         if (this.keyGroups == null || type == null){
             return null;
         }
         ATTRIBUTE_GROUP result = this.keyGroups.get(type);
-        Class currentType = type;
+        Class<?> currentType = type;
         while(result == null && !currentType.equals(CoreClassConstants.OBJECT)){
             currentType = currentType.getSuperclass();
             if (currentType == null){
@@ -321,7 +321,7 @@
      * @return true if the group is the new root.
      */
     protected static boolean orderInheritance(CoreAttributeGroup group, Map<Object, ? extends CoreAttributeGroup> subGroups) {
-        Class type = group.getType();
+        Class<?> type = group.getType();
         if (type != null){
             CoreAttributeGroup superClass = null;
             while (!type.equals(CoreClassConstants.OBJECT) && superClass == null){
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CMPPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CMPPolicy.java
index a329cb5..80de55c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CMPPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CMPPolicy.java
@@ -62,7 +62,7 @@
 
 
     /** Class originally mapped, before anything was generated. */
-    protected Class mappedClass;
+    protected Class<?> mappedClass;
     protected ClassDescriptor descriptor;
 
     /** The object deferral level.  This controls when objects changes will be sent to the Database. */
@@ -128,7 +128,7 @@
      * Define the mapped class. This is the class which was originally mapped in the MW
      *
      */
-    public void setMappedClass(Class newMappedClass) {
+    public void setMappedClass(Class<?> newMappedClass) {
         mappedClass = newMappedClass;
     }
 
@@ -137,7 +137,7 @@
      * Answer the mapped class. This is the class which was originally mapped in the MW
      *
      */
-    public Class getMappedClass() {
+    public Class<?> getMappedClass() {
         return mappedClass;
     }
 
@@ -505,11 +505,11 @@
      * INTERNAL:
      * Return a new instance of the class provided.
      */
-    public Object getClassInstance(Class cls) {
+    public Object getClassInstance(Class<?> cls) {
         if (cls != null){
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
-                    return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(cls));
+                    return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(cls));
                 } else {
                     return org.eclipse.persistence.internal.security.PrivilegedAccessHelper.newInstanceFromClass(cls);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CacheIndex.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CacheIndex.java
index 6fd099c..63c1a4c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CacheIndex.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/CacheIndex.java
@@ -21,6 +21,7 @@
 
 import org.eclipse.persistence.internal.helper.ClassConstants;
 import org.eclipse.persistence.internal.helper.DatabaseField;
+import org.eclipse.persistence.internal.identitymaps.IdentityMap;
 import org.eclipse.persistence.internal.identitymaps.WeakIdentityMap;
 
 /**
@@ -101,8 +102,9 @@
      * This default to a weak cache, and should normally not be changed.
      * For a weak cache, the index will remain until the object gcs from the main cache.
      */
-    public Class getCacheType() {
-        return cacheType;
+    @SuppressWarnings({"unchecked"})
+    public <T extends WeakIdentityMap> Class<T> getCacheType() {
+        return (Class<T>) cacheType;
     }
 
     /**
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 87d9c80..ceedf48 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
@@ -193,7 +193,7 @@
     protected transient String sessionName;
     protected transient Vector constraintDependencies;
     protected transient String amendmentMethodName;
-    protected transient Class amendmentClass;
+    protected transient Class<?> amendmentClass;
     protected String amendmentClassName;
     protected String alias;
     protected boolean shouldBeReadOnly;
@@ -447,7 +447,7 @@
      * this defines that this descriptor has a foreign key constraint to another class and must be inserted after
      * instances of the other class.
      */
-    public void addConstraintDependencies(Class dependencies) {
+    public void addConstraintDependencies(Class<?> dependencies) {
         addConstraintDependency(dependencies);
     }
 
@@ -458,7 +458,7 @@
      * this defines that this descriptor has a foreign key constraint to another class and must be inserted after
      * instances of the other class.
      */
-    public void addConstraintDependency(Class dependencies) {
+    public void addConstraintDependency(Class<?> dependencies) {
         getConstraintDependencies().add(dependencies);
     }
 
@@ -795,7 +795,7 @@
         }
 
         Method method = null;
-        Class[] argTypes = new Class[1];
+        Class<?>[] argTypes = new Class<?>[1];
 
         // BUG#2669585
         // Class argument type must be consistent, descriptor, i.e. instance may be a subclass.
@@ -1052,7 +1052,7 @@
         }
 
         if (this.isChildDescriptor()) {
-            Class parentClass = this.getInheritancePolicy().getParentClass();
+            Class<?> parentClass = this.getInheritancePolicy().getParentClass();
             if (parentClass == this.getJavaClass()) {
                 throw DescriptorException.parentClassIsSelf(this);
             }
@@ -1482,7 +1482,7 @@
      * with class names to a project with classes.
      */
     public void convertClassNamesToClasses(ClassLoader classLoader){
-        Class redirectorClass = null;
+        Class<?> redirectorClass = null;
 
         if (getJavaClassName() != null){
             Class<?> descriptorClass = null;
@@ -1503,7 +1503,7 @@
         }
 
         if (getAmendmentClassName() != null) {
-            Class amendmentClass = null;
+            Class<?> amendmentClass = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
@@ -1521,7 +1521,7 @@
         }
 
         if (copyPolicy == null && getCopyPolicyClassName() != null){
-            Class copyPolicyClass = null;
+            Class<?> copyPolicyClass = null;
             CopyPolicy newCopyPolicy = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
@@ -1531,7 +1531,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(getCopyPolicyClassName(), exception.getException());
                     }
                     try {
-                        newCopyPolicy = (CopyPolicy)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(copyPolicyClass));
+                        newCopyPolicy = (CopyPolicy)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(copyPolicyClass));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.reflectiveExceptionWhileCreatingClassInstance(getCopyPolicyClassName(), exception.getException());
                     }
@@ -1541,17 +1541,15 @@
                 }
             } catch (ClassNotFoundException exc) {
                 throw ValidationException.classNotFoundWhileConvertingClassNames(getCopyPolicyClassName(), exc);
-            } catch (IllegalAccessException ex){
+            } catch (ReflectiveOperationException ex){
                 throw ValidationException.reflectiveExceptionWhileCreatingClassInstance(getCopyPolicyClassName(), ex);
-            } catch (InstantiationException e){
-                throw ValidationException.reflectiveExceptionWhileCreatingClassInstance(getCopyPolicyClassName(), e);
             }
             setCopyPolicy(newCopyPolicy);
         }
 
         if (this.serializedObjectPolicy != null && this.serializedObjectPolicy instanceof SerializedObjectPolicyWrapper) {
             String serializedObjectPolicyClassName = ((SerializedObjectPolicyWrapper)this.serializedObjectPolicy).getSerializedObjectPolicyClassName();
-            Class serializedObjectPolicyClass = null;
+            Class<?> serializedObjectPolicyClass = null;
             SerializedObjectPolicy newSerializedObjectPolicy = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
@@ -1561,7 +1559,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(serializedObjectPolicyClassName, exception.getException());
                     }
                     try {
-                        newSerializedObjectPolicy = (SerializedObjectPolicy)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(serializedObjectPolicyClass));
+                        newSerializedObjectPolicy = (SerializedObjectPolicy)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(serializedObjectPolicyClass));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.reflectiveExceptionWhileCreatingClassInstance(serializedObjectPolicyClassName, exception.getException());
                     }
@@ -1590,7 +1588,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultQueryRedirectorClassName, exception.getException());
                     }
@@ -1615,7 +1613,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReadObjectQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultReadObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultReadObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReadObjectQueryRedirectorClassName, exception.getException());
                     }
@@ -1639,7 +1637,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReadAllQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultReadAllQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultReadAllQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReadAllQueryRedirectorClassName, exception.getException());
                     }
@@ -1663,7 +1661,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReportQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultReportQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultReportQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultReportQueryRedirectorClassName, exception.getException());
                     }
@@ -1687,7 +1685,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultInsertObjectQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultInsertObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultInsertObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultInsertObjectQueryRedirectorClassName, exception.getException());
                     }
@@ -1711,7 +1709,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultUpdateObjectQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultUpdateObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultUpdateObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultUpdateObjectQueryRedirectorClassName, exception.getException());
                     }
@@ -1735,7 +1733,7 @@
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultDeleteObjectQueryRedirectorClassName, exception.getException());
                     }
                     try {
-                        setDefaultDeleteObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(redirectorClass)));
+                        setDefaultDeleteObjectQueryRedirector((QueryRedirector) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(redirectorClass)));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(defaultDeleteObjectQueryRedirectorClassName, exception.getException());
                     }
@@ -2108,7 +2106,7 @@
      * The amendment method will be called on the class before initialization to allow for it to initialize the descriptor.
      * The method must be a public static method on the class.
      */
-    public Class getAmendmentClass() {
+    public Class<?> getAmendmentClass() {
         return amendmentClass;
     }
 
@@ -2429,7 +2427,7 @@
      * Return the class of identity map to be used by this descriptor.
      * The default is the "SoftCacheWeakIdentityMap".
      */
-    public Class getIdentityMapClass() {
+    public <T extends IdentityMap> Class<T> getIdentityMapClass() {
         return getCachePolicy().getIdentityMapClass();
     }
 
@@ -2788,7 +2786,7 @@
      * Return the class of identity map to be used by this descriptor.
      * The default is the "SoftCacheWeakIdentityMap".
      */
-    public Class getRemoteIdentityMapClass() {
+    public <T extends IdentityMap> Class<T> getRemoteIdentityMapClass() {
         return getCachePolicy().getRemoteIdentityMapClass();
     }
 
@@ -4023,7 +4021,7 @@
             if ((getPrimaryKeyFields().size() > 1) || getObjectBuilder().isXMLObjectBuilder()) {
                 setCacheKeyType(CacheKeyType.CACHE_ID);
             } else if ((getPrimaryKeyFields().size() == 1) && (getObjectBuilder().getPrimaryKeyClassifications().size() == 1)) {
-                Class type = getObjectBuilder().getPrimaryKeyClassifications().get(0);
+                Class<?> type = getObjectBuilder().getPrimaryKeyClassifications().get(0);
                 if ((type == null) || type.isArray()) {
                     getCachePolicy().setCacheKeyType(CacheKeyType.CACHE_ID);
                 } else {
@@ -4454,7 +4452,7 @@
             }
         }
 
-        if ((getIdentityMapClass() == ClassConstants.NoIdentityMap_Class) && (getQueryManager().getDoesExistQuery().shouldCheckCacheForDoesExist())) {
+        if ((ClassConstants.NoIdentityMap_Class.equals(getIdentityMapClass())) && (getQueryManager().getDoesExistQuery().shouldCheckCacheForDoesExist())) {
             session.getIntegrityChecker().handleError(DescriptorException.identityMapNotSpecified(this));
         }
 
@@ -4569,7 +4567,7 @@
      * The amendment method will be called on the class before initialization to allow for it to initialize the descriptor.
      * The method must be a public static method on the class.
      */
-    public void setAmendmentClass(Class amendmentClass) {
+    public void setAmendmentClass(Class<?> amendmentClass) {
         this.amendmentClass = amendmentClass;
     }
 
@@ -4645,7 +4643,7 @@
      * As with IdentityMaps an entire class inheritance hierarchy will share the same interceptor.
      * @see org.eclipse.persistence.sessions.interceptors.CacheInterceptor
      */
-    public void setCacheInterceptorClass(Class cacheInterceptorClass) {
+    public void setCacheInterceptorClass(Class<? extends CacheInterceptor> cacheInterceptorClass) {
         getCachePolicy().setCacheInterceptorClass(cacheInterceptorClass);
     }
 
@@ -5060,7 +5058,7 @@
      * descriptor should not be defined for it and relationships should be to the implementor class not the interface,
      * in this case the implementor class can add the interface through its interface policy to map queries on the interface to it.
      */
-    public void setJavaInterface(Class theJavaInterface) {
+    public void setJavaInterface(Class<?> theJavaInterface) {
         javaClass = theJavaInterface;
         descriptorIsForInterface();
     }
@@ -5246,7 +5244,7 @@
      * Set the class of identity map to be used by this descriptor.
      * The default is the "FullIdentityMap".
      */
-    public void setRemoteIdentityMapClass(Class theIdentityMapClass) {
+    public void setRemoteIdentityMapClass(Class<? extends IdentityMap> theIdentityMapClass) {
         getCachePolicy().setRemoteIdentityMapClass(theIdentityMapClass);
     }
 
@@ -5684,7 +5682,7 @@
      * Return true if this descriptor is using CacheIdentityMap
      */
     public boolean shouldUseCacheIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.CacheIdentityMap_Class);
+        return ClassConstants.CacheIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5692,7 +5690,7 @@
      * Return true if this descriptor is using FullIdentityMap
      */
     public boolean shouldUseFullIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.FullIdentityMap_Class);
+        return ClassConstants.FullIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5700,7 +5698,7 @@
      * Return true if this descriptor is using SoftIdentityMap
      */
     public boolean shouldUseSoftIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.SoftIdentityMap_Class);
+        return ClassConstants.SoftIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5708,7 +5706,7 @@
      * Return true if this descriptor is using SoftIdentityMap
      */
     public boolean shouldUseRemoteSoftIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.SoftIdentityMap_Class);
+        return ClassConstants.SoftIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5716,7 +5714,7 @@
      * Return true if this descriptor is using HardCacheWeakIdentityMap.
      */
     public boolean shouldUseHardCacheWeakIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.HardCacheWeakIdentityMap_Class);
+        return ClassConstants.HardCacheWeakIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5724,7 +5722,7 @@
      * Return true if this descriptor is using NoIdentityMap
      */
     public boolean shouldUseNoIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.NoIdentityMap_Class);
+        return ClassConstants.NoIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5751,7 +5749,7 @@
      * Return true if this descriptor is using CacheIdentityMap
      */
     public boolean shouldUseRemoteCacheIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.CacheIdentityMap_Class);
+        return ClassConstants.CacheIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5759,7 +5757,7 @@
      * Return true if this descriptor is using FullIdentityMap
      */
     public boolean shouldUseRemoteFullIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.FullIdentityMap_Class);
+        return ClassConstants.FullIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5767,7 +5765,7 @@
      * Return true if this descriptor is using HardCacheWeakIdentityMap
      */
     public boolean shouldUseRemoteHardCacheWeakIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.HardCacheWeakIdentityMap_Class);
+        return ClassConstants.HardCacheWeakIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5775,7 +5773,7 @@
      * Return true if this descriptor is using NoIdentityMap
      */
     public boolean shouldUseRemoteNoIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.NoIdentityMap_Class);
+        return ClassConstants.NoIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5783,7 +5781,7 @@
      * Return true if this descriptor is using SoftCacheWeakIdentityMap
      */
     public boolean shouldUseRemoteSoftCacheWeakIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.SoftCacheWeakIdentityMap_Class);
+        return ClassConstants.SoftCacheWeakIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5791,7 +5789,7 @@
      * Return true if this descriptor is using WeakIdentityMap
      */
     public boolean shouldUseRemoteWeakIdentityMap() {
-        return (getRemoteIdentityMapClass() == ClassConstants.WeakIdentityMap_Class);
+        return ClassConstants.WeakIdentityMap_Class.equals(getRemoteIdentityMapClass());
     }
 
     /**
@@ -5799,7 +5797,7 @@
      * Return true if this descriptor is using SoftCacheWeakIdentityMap.
      */
     public boolean shouldUseSoftCacheWeakIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.SoftCacheWeakIdentityMap_Class);
+        return ClassConstants.SoftCacheWeakIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5807,7 +5805,7 @@
      * Return true if this descriptor is using WeakIdentityMap
      */
     public boolean shouldUseWeakIdentityMap() {
-        return (getIdentityMapClass() == ClassConstants.WeakIdentityMap_Class);
+        return ClassConstants.WeakIdentityMap_Class.equals(getIdentityMapClass());
     }
 
     /**
@@ -5819,7 +5817,7 @@
         // Check the descriptor: if field-locking is used, cannot do
         // change tracking because field-locking requires backup clone.
         OptimisticLockingPolicy lockingPolicy = getOptimisticLockingPolicy();
-        if (lockingPolicy != null && (lockingPolicy instanceof FieldsLockingPolicy)) {
+        if (lockingPolicy instanceof FieldsLockingPolicy) {
             return false;
         }
         Vector<DatabaseMapping> mappings = getMappings();
@@ -5956,7 +5954,7 @@
      * @see #useFactoryInstantiationPolicy(Class, String, String)
      * @see #useFactoryInstantiationPolicy(Object, String)
      */
-    public void useFactoryInstantiationPolicy(Class factoryClass, String methodName) {
+    public void useFactoryInstantiationPolicy(Class<?> factoryClass, String methodName) {
         getInstantiationPolicy().useFactoryInstantiationPolicy(factoryClass, methodName);
     }
 
@@ -5981,7 +5979,7 @@
      * @see #useFactoryInstantiationPolicy(Object, String)
      * @see #useMethodInstantiationPolicy(String)
      */
-    public void useFactoryInstantiationPolicy(Class factoryClass, String methodName, String factoryMethodName) {
+    public void useFactoryInstantiationPolicy(Class<?> factoryClass, String methodName, String factoryMethodName) {
         getInstantiationPolicy().useFactoryInstantiationPolicy(factoryClass, methodName, factoryMethodName);
     }
 
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 f935994..fd1c9f0 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
@@ -278,7 +278,7 @@
      * backward compatibility.
      */
     protected Method findMethod(int selector) throws DescriptorException {
-        Class[] declarationParameters = new Class[1];
+        Class<?>[] declarationParameters = new Class<?>[1];
         declarationParameters[0] = ClassConstants.DescriptorEvent_Class;
         String methodName = getEventSelectors().get(selector);
 
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 834e849..bc603e1 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
@@ -59,7 +59,7 @@
  * filter expression may be required for concrete and branch querying.
  */
 public class InheritancePolicy extends CoreInheritancePolicy<AbstractRecord, AbstractSession, ClassDescriptor, DatabaseField> implements Serializable, Cloneable {
-    protected Class parentClass;
+    protected Class<?> parentClass;
     protected String parentClassName;
     protected ClassDescriptor parentDescriptor;
     protected List<ClassDescriptor> childDescriptors;
@@ -180,7 +180,7 @@
      * If the root class is concrete then it must also define an indicator.
      * Only the root class's descriptor of the entire inheritance hierarchy can define the class indicator mapping.
      */
-    public void addClassIndicator(Class childClass, Object typeValue) {
+    public void addClassIndicator(Class<?> childClass, Object typeValue) {
         // Note we should think about supporting null values.
         // Store as key and value for bi-directional lookup.
         getClassIndicatorMapping().put(typeValue, childClass);
@@ -342,7 +342,7 @@
      * This method is invoked only for the abstract descriptors.
      */
     @Override
-    public Class classFromRow(AbstractRecord rowFromDatabase, AbstractSession session) throws DescriptorException {
+    public Class<?> classFromRow(AbstractRecord rowFromDatabase, AbstractSession session) throws DescriptorException {
         if (hasClassExtractor()) {
             return getClassExtractor().extractClassFromRow(rowFromDatabase, session);
         }
@@ -361,8 +361,8 @@
      * This method is used to turn the a raw database field value classFieldValue into a Class object.  Used to determine
      * which class objects to build from database results, and for class type expression
      */
-    public Class classFromValue(Object classFieldValue, AbstractSession session) throws DescriptorException {
-        Class concreteClass;
+    public Class<?> classFromValue(Object classFieldValue, AbstractSession session) throws DescriptorException {
+        Class<?> concreteClass;
         if (!shouldUseClassNameAsIndicator()) {
             concreteClass = (Class)getClassIndicatorMapping().get(classFieldValue);
             if (concreteClass == null) {
@@ -755,7 +755,7 @@
      * Returns the indicator field value for the given class
      * If no abstract indicator mapping is specified, use the class name.
      */
-    protected Object getClassIndicatorValue(Class javaClass) {
+    protected Object getClassIndicatorValue(Class<?> javaClass) {
         if (shouldUseClassNameAsIndicator()) {
             return javaClass.getName();
         } else {
@@ -799,7 +799,7 @@
      * Return the parent class.
      */
     @Override
-    public Class getParentClass() {
+    public Class<?> getParentClass() {
         return parentClass;
     }
 
@@ -865,7 +865,7 @@
      * INTERNAL:
      * use aggregate in inheritance
      */
-    public ClassDescriptor getSubclassDescriptor(Class theClass) {
+    public ClassDescriptor getSubclassDescriptor(Class<?> theClass) {
         if (hasChildren()) {
             for (Iterator<ClassDescriptor> enumtr = getChildDescriptors().iterator(); enumtr.hasNext();) {
                 ClassDescriptor childDescriptor = enumtr.next();
@@ -886,7 +886,7 @@
      * INTERNAL:
      * Returns descriptor corresponding to the class owning the policy or its subclass - otherwise null.
      */
-    public ClassDescriptor getDescriptor(Class theClass) {
+    public ClassDescriptor getDescriptor(Class<?> theClass) {
         if(getDescriptor().getJavaClass().equals(theClass)) {
             return getDescriptor();
         } else {
@@ -1238,7 +1238,7 @@
                 if (shouldUseClassNameAsIndicator()) {
                     getClassIndicatorField().setType(ClassConstants.STRING);
                 } else if (!getClassIndicatorMapping().isEmpty()) {
-                    Class type = null;
+                    Class<?> type = null;
                     Iterator fieldValuesEnum = getClassIndicatorMapping().values().iterator();
                     while (fieldValuesEnum.hasNext() && (type == null)) {
                         Object value = fieldValuesEnum.next();
@@ -1345,10 +1345,10 @@
         // The indicator select is prepared in the original query, so can just be executed.
         List<AbstractRecord> classIndicators = ((ExpressionQueryMechanism)query.getQueryMechanism()).selectAllRowsFromTable();
 
-        List<Class> classes = new ArrayList<>();
-        Set<Class> uniqueClasses = new HashSet<>();
+        List<Class<?>> classes = new ArrayList<>();
+        Set<Class<?>> uniqueClasses = new HashSet<>();
         for (AbstractRecord row : classIndicators) {
-            Class concreteClass = classFromRow(row, query.getSession());
+            Class<?> concreteClass = classFromRow(row, query.getSession());
             if (!uniqueClasses.contains(concreteClass)) { // Ensure unique (a distinct is used, but may have been disabled)
                 uniqueClasses.add(concreteClass);
                 classes.add(concreteClass);
@@ -1369,11 +1369,11 @@
             joinedMappingIndexes = new HashMap();
         }
         ClassDescriptor rootDescriptor = query.getDescriptor();
-        for (Class concreteClass : classes) {
+        for (Class<?> concreteClass : classes) {
             if (!uniqueClasses.contains(concreteClass)) {
                 continue;
             }
-            Set<Class> subclasses = new HashSet<>();
+            Set<Class<?>> subclasses = new HashSet<>();
             uniqueClasses.remove(concreteClass);
             subclasses.add(concreteClass);
             ClassDescriptor concreteDescriptor = getDescriptor(concreteClass);
@@ -1410,7 +1410,7 @@
                         mappingIndexes = new HashMap(classes.size());
                         joinedMappingIndexes.put(entry.getKey(), mappingIndexes);
                     }
-                    for (Class subclass : subclasses) {
+                    for (Class<?> subclass : subclasses) {
                         mappingIndexes.put(subclass, entry.getValue());
                     }
                 }
@@ -1426,7 +1426,7 @@
     /**
      * Remove all of the subclasses (and so on) from the set of classes.
      */
-    protected void removeChildren(ClassDescriptor descriptor, Set<Class> classes, Set<Class> subclasses) {
+    protected void removeChildren(ClassDescriptor descriptor, Set<Class<?>> classes, Set<Class<?>> subclasses) {
         for (ClassDescriptor childDescriptor : descriptor.getInheritancePolicy().getChildDescriptors()) {
             classes.remove(childDescriptor.getJavaClass());
             subclasses.add(childDescriptor.getJavaClass());
@@ -1496,7 +1496,7 @@
             return null;
         }
 
-        Class concreteClass = classFromRow(typeRow, query.getSession());
+        Class<?> concreteClass = classFromRow(typeRow, query.getSession());
         ClassDescriptor concreteDescriptor = getDescriptor(concreteClass);
         if (concreteDescriptor == null) {
             throw QueryException.noDescriptorForClassFromInheritancePolicy(query, concreteClass);
@@ -1675,7 +1675,7 @@
      * All children must share the same table as their parent but can add additional tables.
      * All children must share the root descriptor primary key.
      */
-    public void setParentClass(Class parentClass) {
+    public void setParentClass(Class<?> parentClass) {
         this.parentClass = parentClass;
         if (parentClass != null) {
             setParentClassName(parentClass.getName());
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/MethodClassExtractor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/MethodClassExtractor.java
index d44baa5..2b47a24 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/MethodClassExtractor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/MethodClassExtractor.java
@@ -92,7 +92,7 @@
     @Override
     public void initialize(ClassDescriptor descriptor, Session session) throws DescriptorException {
         setDescriptor(descriptor);
-        Class<?>[] declarationParameters = new Class[1];
+        Class<?>[] declarationParameters = new Class<?>[1];
         declarationParameters[0] = ClassConstants.DatabaseRow_Class;
 
         try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ReturningPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ReturningPolicy.java
index 97de2d5..71e4088 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ReturningPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/ReturningPolicy.java
@@ -295,7 +295,7 @@
      * is excluded from INSERT clause during SQL generation.
      * The type may be required to bind the output parameter if not known by the mapping.
      */
-    public void addFieldForInsertReturnOnly(String qualifiedName, Class type) {
+    public void addFieldForInsertReturnOnly(String qualifiedName, Class<?> type) {
         addFieldForInsertReturnOnly(createField(qualifiedName, type));
     }
 
@@ -569,7 +569,7 @@
     /**
      * INTERNAL:
      */
-    protected DatabaseField createField(String qualifiedName, Class type) {
+    protected DatabaseField createField(String qualifiedName, Class<?> type) {
         DatabaseField field = new DatabaseField(qualifiedName);
         field.setType(type);
         return field;
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 bb64517..858bf3d 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
@@ -168,7 +168,7 @@
     public void initialize(AbstractSession session, ClassDescriptor descriptor) {
         //3934266 If changePolicy is ObjectChangeTrackingPolicy or AttributeChangeTrackingPolicy, the class represented
         //by the descriptor must implement ChangeTracker interface.  Otherwise throw an exception.
-        Class javaClass = descriptor.getJavaClass();
+        Class<?> javaClass = descriptor.getJavaClass();
         if (!ChangeTracker.class.isAssignableFrom(javaClass)) {
             session.getIntegrityChecker().handleError(DescriptorException.needToImplementChangeTracker(descriptor));
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/copying/CloneCopyPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/copying/CloneCopyPolicy.java
index cf23711..64cf954 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/copying/CloneCopyPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/copying/CloneCopyPolicy.java
@@ -170,11 +170,11 @@
      */
     @Override
     public void initialize(Session session) throws DescriptorException {
-        final Class javaClass = this.getDescriptor().getJavaClass();
+        final Class<?> javaClass = this.getDescriptor().getJavaClass();
         try {
             // Must allow for null clone method for 9.0.4 deployment XML.
             if (this.getMethodName() != null) {
-                this.setMethod(Helper.getDeclaredMethod(javaClass, this.getMethodName(), new Class[0]));
+                this.setMethod(Helper.getDeclaredMethod(javaClass, this.getMethodName(), new Class<?>[0]));
             }
         } catch (NoSuchMethodException exception) {
             session.getIntegrityChecker().handleError(DescriptorException.noSuchMethodWhileInitializingCopyPolicy(this.getMethodName(), this.getDescriptor(), exception));
@@ -183,7 +183,7 @@
         }
         if (this.getWorkingCopyMethodName() != null) {
             try {
-                this.setWorkingCopyMethod(Helper.getDeclaredMethod(javaClass, this.getWorkingCopyMethodName(), new Class[0]));
+                this.setWorkingCopyMethod(Helper.getDeclaredMethod(javaClass, this.getWorkingCopyMethodName(), new Class<?>[0]));
             } catch (NoSuchMethodException exception) {
                 session.getIntegrityChecker().handleError(DescriptorException.noSuchMethodWhileInitializingCopyPolicy(this.getMethodName(), this.getDescriptor(), exception));
             } catch (SecurityException exception) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/partitioning/RangePartition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/partitioning/RangePartition.java
index b5ded37..9d2cc18 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/partitioning/RangePartition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/partitioning/RangePartition.java
@@ -39,7 +39,7 @@
     protected String partitionValueTypeName;
     protected String connectionPool;
 
-    protected Class partitionValueType;
+    protected Class<?> partitionValueType;
     protected Comparable startValue;
     protected Comparable endValue;
 
@@ -121,14 +121,14 @@
     protected <T> T initObject(Class<T> type, String value) {
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
             try {
-                Constructor<T> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(type, new Class[] {String.class}, false));
+                Constructor<T> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(type, new Class<?>[] {String.class}, false));
                 return AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, new Object[] {value}));
             } catch (PrivilegedActionException exception) {
                 //throwInitObjectException(exception, type, value, isData);
             }
         } else {
             try {
-                Constructor<T> constructor = PrivilegedAccessHelper.getConstructorFor(type, new Class[] {String.class}, false);
+                Constructor<T> constructor = PrivilegedAccessHelper.getConstructorFor(type, new Class<?>[] {String.class}, false);
                 return PrivilegedAccessHelper.invokeConstructor(constructor, new Object[] {value});
             } catch (Exception exception) {
                 //throwInitObjectException(exception, type, value, isData);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISPlatform.java
index e7cf254..983f63f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/eis/EISPlatform.java
@@ -277,7 +277,7 @@
      */
     public void setDOMInRecord(Element dom, jakarta.resource.cci.Record record, EISInteraction call, EISAccessor accessor) {
         if (domMethod == null) {
-            Class<?>[] argumentTypes = (Class<?>[]) new Class[1];
+            Class<?>[] argumentTypes = new Class<?>[1];
             argumentTypes[0] = Element.class;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
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 50c062a..313aea1 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
@@ -446,7 +446,7 @@
      * This is used to convert the row value to a consistent java value.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
         DatabaseField fieldInTarget = getSourceToTargetKeyFields().get(fieldToClassify);
         if (fieldInTarget == null) {
             return null;// Can be registered as multiple table secondary field mapping
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ConversionException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ConversionException.java
index 7a35606..aecf484 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ConversionException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ConversionException.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, 2018 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -24,7 +24,7 @@
  * <P><B>Purpose</B>: Conversion exceptions such as method or class not defined will raise this exception.
  */
 public class ConversionException extends EclipseLinkException {
-    protected Class classToConvertTo;
+    protected Class<?> classToConvertTo;
     protected transient Object sourceObject;
     public final static int COULD_NOT_BE_CONVERTED = 3001;
     public final static int COULD_NOT_BE_CONVERTED_EXTENDED = 3002;
@@ -49,7 +49,7 @@
      * INTERNAL:
      * TopLink exceptions should only be thrown by TopLink.
      */
-    protected ConversionException(String message, Object sourceObject, Class classToConvertTo, Exception exception) {
+    protected ConversionException(String message, Object sourceObject, Class<?> classToConvertTo, Exception exception) {
         super(message, exception);
         setSourceObject(sourceObject);
         setClassToConvertTo(classToConvertTo);
@@ -60,7 +60,7 @@
     // info (stack trace and internal exception over)
     public static ConversionException couldNotBeConverted(Object mapping, Object descriptor, ConversionException exception) {
         Object sourceObject = exception.getSourceObject();
-        Class javaClass = exception.getClassToConvertTo();
+        Class<?> javaClass = exception.getClassToConvertTo();
         Exception original = (Exception)exception.getInternalException();
 
         Object[] args = { sourceObject, sourceObject.getClass(), mapping, descriptor, javaClass };
@@ -71,8 +71,8 @@
         return conversionException;
     }
 
-    public static ConversionException couldNotBeConverted(Object object, Class javaClass) {
-        Class objectClass = null;
+    public static ConversionException couldNotBeConverted(Object object, Class<?> javaClass) {
+        Class<?> objectClass = null;
         if (object!=null) {
             objectClass = object.getClass();
         }
@@ -83,8 +83,8 @@
         return conversionException;
     }
 
-    public static ConversionException couldNotBeConverted(Object object, Class javaClass, Exception exception) {
-        Class objectClass = null;
+    public static ConversionException couldNotBeConverted(Object object, Class<?> javaClass, Exception exception) {
+        Class<?> objectClass = null;
         if (object!=null) {
             objectClass = object.getClass();
         }
@@ -95,7 +95,7 @@
         return conversionException;
     }
 
-    public static ConversionException couldNotBeConvertedToClass(Object object, Class javaClass, Exception exception) {
+    public static ConversionException couldNotBeConvertedToClass(Object object, Class<?> javaClass, Exception exception) {
         Object[] args = { object, object.getClass(), javaClass };
         String message = ExceptionMessageGenerator.buildMessage(ConversionException.class, COULD_NOT_BE_CONVERTED_TO_CLASS, args);
         ConversionException conversionException = new ConversionException(message, object, javaClass, exception);
@@ -144,7 +144,7 @@
         return conversionException;
     }
 
-    public static ConversionException incorrectDateTimeFormat(String dateTimeString, Class classBeingConvertedTo) {
+    public static ConversionException incorrectDateTimeFormat(String dateTimeString, Class<?> classBeingConvertedTo) {
         Object[] args = { dateTimeString };
         String message = ExceptionMessageGenerator.buildMessage(ConversionException.class, INCORRECT_DATE_TIME_FORMAT, args);
         ConversionException conversionException = new ConversionException(message, dateTimeString, classBeingConvertedTo, null);
@@ -160,7 +160,7 @@
      * PUBLIC:
      * Return the class to convert to.
      */
-    public Class getClassToConvertTo() {
+    public Class<?> getClassToConvertTo() {
         return classToConvertTo;
     }
 
@@ -176,7 +176,7 @@
      * INTERNAL:
      * Set the class to convert to.
      */
-    public void setClassToConvertTo(Class classToConvertTo) {
+    public void setClassToConvertTo(Class<?> classToConvertTo) {
         this.classToConvertTo = classToConvertTo;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DatabaseException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DatabaseException.java
index 8a576eb..c271f71 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DatabaseException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DatabaseException.java
@@ -93,7 +93,7 @@
         return databaseException;
     }
 
-    public static DatabaseException configurationErrorNewInstanceIllegalAccessException(IllegalAccessException exception, Class javaClass) {
+    public static DatabaseException configurationErrorNewInstanceIllegalAccessException(IllegalAccessException exception, Class<?> javaClass) {
         Object[] args = { javaClass };
 
         DatabaseException databaseException = new DatabaseException(ExceptionMessageGenerator.buildMessage(DatabaseException.class, CONFIGURATION_ERROR_NEW_INSTANCE_ILLEGAL_ACCESS_EXCEPTION, args));
@@ -102,7 +102,7 @@
         return databaseException;
     }
 
-    public static DatabaseException configurationErrorNewInstanceInstantiationException(InstantiationException exception, Class javaClass) {
+    public static DatabaseException configurationErrorNewInstanceInstantiationException(InstantiationException exception, Class<?> javaClass) {
         Object[] args = { javaClass };
 
         DatabaseException databaseException = new DatabaseException(ExceptionMessageGenerator.buildMessage(DatabaseException.class, CONFIGURATION_ERROR_NEW_INSTANCE_INSTANTIATION_EXCEPTION, args));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DescriptorException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DescriptorException.java
index ac0349b..11b7746 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DescriptorException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/DescriptorException.java
@@ -313,7 +313,7 @@
         return exception;
     }
 
-    public static DescriptorException attributeAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class parameterType, String validTypeName) {
+    public static DescriptorException attributeAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class<?> parameterType, String validTypeName) {
         Object[] args = { mapping.getAttributeName(), parameterType, validTypeName };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, ATTRIBUTE_AND_MAPPING_WITH_TRANSPARENT_INDIRECTION_MISMATCH, args), mapping);
@@ -348,7 +348,7 @@
 
     }
 
-    public static DescriptorException attributeTypeNotValid(CollectionMapping mapping, Class interfaceType) {
+    public static DescriptorException attributeTypeNotValid(CollectionMapping mapping, Class<?> interfaceType) {
         Object[] args = { mapping.getAttributeName(), interfaceType };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, ATTRIBUTE_TYPE_NOT_VALID, args), mapping);
@@ -372,7 +372,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException couldNotInstantiateIndirectContainerClass(Class containerClass, Exception exception) {
+    public static DescriptorException couldNotInstantiateIndirectContainerClass(Class<?> containerClass, Exception exception) {
         Object[] args = { containerClass, Helper.getShortClassName(containerClass) };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, COULD_NOT_INSTANTIATE_INDIRECT_CONTAINER_CLASS, args));
@@ -406,7 +406,7 @@
     }
 
 
-    public static DescriptorException errorAccessingSetMethodOfEntity(Class aClass, String methodName, ClassDescriptor descriptor, Exception underlying) {
+    public static DescriptorException errorAccessingSetMethodOfEntity(Class<?> aClass, String methodName, ClassDescriptor descriptor, Exception underlying) {
         Object[] args = { aClass, methodName };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, INTERNAL_ERROR_SET_METHOD, args), descriptor, underlying);
@@ -414,7 +414,7 @@
     }
 
 
-    public static DescriptorException errorOccuredInAmendmentMethod(Class amendmentClass, String method, Exception exception, ClassDescriptor descriptor) {
+    public static DescriptorException errorOccuredInAmendmentMethod(Class<?> amendmentClass, String method, Exception exception, ClassDescriptor descriptor) {
         Object[] args = { amendmentClass, method };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, ERROR_OCCURED_IN_AMENDMENT_METHOD, args), descriptor, exception);
@@ -726,7 +726,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException incorrectCollectionPolicy(DatabaseMapping mapping, Class attributeClass, Class containerClass) {
+    public static DescriptorException incorrectCollectionPolicy(DatabaseMapping mapping, Class<?> attributeClass, Class<?> containerClass) {
         Object[] args = { attributeClass, containerClass };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, INCORRECT_COLLECTION_POLICY, args), mapping);
@@ -758,7 +758,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidAmendmentMethod(Class amendmentClass, String method, Exception exception, ClassDescriptor descriptor) {
+    public static DescriptorException invalidAmendmentMethod(Class<?> amendmentClass, String method, Exception exception, ClassDescriptor descriptor) {
         Object[] args = { amendmentClass, method, CR };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, INVALID_AMENDMENT_METHOD, args), descriptor, exception);
@@ -766,7 +766,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidAttributeTypeForProxyIndirection(Class attributeType, Class[] targetInterfaces, DatabaseMapping mapping) {
+    public static DescriptorException invalidAttributeTypeForProxyIndirection(Class<?> attributeType, Class<?>[] targetInterfaces, DatabaseMapping mapping) {
         StringBuffer buffer = new StringBuffer();
         for (int i = 0; i < targetInterfaces.length; i++) {
             buffer.append(targetInterfaces[i].getName());
@@ -782,7 +782,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy, Class javaClass) {
+    public static DescriptorException invalidContainerPolicy(org.eclipse.persistence.internal.queries.ContainerPolicy containerPolicy, Class<?> javaClass) {
         Object[] args = { containerPolicy, javaClass };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, INVALID_CONTAINER_POLICY, args));
@@ -822,7 +822,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidGetMethodReturnTypeForProxyIndirection(Class attributeType, Class[] targetInterfaces, DatabaseMapping mapping) {
+    public static DescriptorException invalidGetMethodReturnTypeForProxyIndirection(Class<?> attributeType, Class<?>[] targetInterfaces, DatabaseMapping mapping) {
         StringBuffer buffer = new StringBuffer();
         for (int i = 0; i < targetInterfaces.length; i++) {
             buffer.append(targetInterfaces[i].getName());
@@ -846,7 +846,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidIndirectionContainerClass(org.eclipse.persistence.internal.indirection.ContainerIndirectionPolicy policy, Class containerClass) {
+    public static DescriptorException invalidIndirectionContainerClass(org.eclipse.persistence.internal.indirection.ContainerIndirectionPolicy policy, Class<?> containerClass) {
         Object[] args = { containerClass };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, INVALID_INDIRECTION_CONTAINER_CLASS, args), policy.getMapping());
@@ -870,7 +870,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException invalidSetMethodParameterTypeForProxyIndirection(Class attributeType, Class[] targetInterfaces, DatabaseMapping mapping) {
+    public static DescriptorException invalidSetMethodParameterTypeForProxyIndirection(Class<?> attributeType, Class<?>[] targetInterfaces, DatabaseMapping mapping) {
         StringBuffer buffer = new StringBuffer();
         for (int i = 0; i < targetInterfaces.length; i++) {
             buffer.append(targetInterfaces[i].getName());
@@ -972,7 +972,7 @@
         return exception;
     }
 
-    public static DescriptorException missingIndirectContainerConstructor(Class containerClass) {
+    public static DescriptorException missingIndirectContainerConstructor(Class<?> containerClass) {
         Object[] args = { containerClass.getName(), containerClass.getName() + "()" };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, MISSING_INDIRECT_CONTAINER_CONSTRUCTOR, args));
@@ -1046,7 +1046,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException noConstructorIndirectionContainerClass(org.eclipse.persistence.internal.indirection.ContainerIndirectionPolicy policy, Class containerClass) {
+    public static DescriptorException noConstructorIndirectionContainerClass(org.eclipse.persistence.internal.indirection.ContainerIndirectionPolicy policy, Class<?> containerClass) {
         Object[] args = { containerClass };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, NO_CONSTRUCTOR_INDIRECT_COLLECTION_CLASS, args), policy.getMapping());
@@ -1119,7 +1119,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException noSubClassMatch(Class theClass, DatabaseMapping mapping) {
+    public static DescriptorException noSubClassMatch(Class<?> theClass, DatabaseMapping mapping) {
         Object[] args = { theClass };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, NO_SUB_CLASS_MATCH, args), mapping);
@@ -1359,7 +1359,7 @@
         return exception;
     }
 
-    public static DescriptorException parameterAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class parameterType, String validTypeName) {
+    public static DescriptorException parameterAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class<?> parameterType, String validTypeName) {
         Object[] args = { mapping.getAttributeName(), parameterType, validTypeName };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, PARAMETER_AND_MAPPING_WITH_TRANSPARENT_INDIRECTION_MISMATCH, args), mapping);
@@ -1469,7 +1469,7 @@
         return exception;
     }
 
-    public static DescriptorException returnAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class parameterType, String validTypeName) {
+    public static DescriptorException returnAndMappingWithTransparentIndirectionMismatch(DatabaseMapping mapping, Class<?> parameterType, String validTypeName) {
         Object[] args = { mapping.getAttributeName(), parameterType, validTypeName };
 
         DescriptorException exception = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, RETURN_AND_MAPPING_WITH_TRANSPARENT_INDIRECTION_MISMATCH, args), mapping);
@@ -1925,7 +1925,7 @@
         return descriptorException;
     }
 
-    public static DescriptorException needToImplementFetchGroupTracker(Class aClass, ClassDescriptor descriptor) {
+    public static DescriptorException needToImplementFetchGroupTracker(Class<?> aClass, ClassDescriptor descriptor) {
         Object[] args = { aClass };
 
         DescriptorException descriptorException = new DescriptorException(ExceptionMessageGenerator.buildMessage(DescriptorException.class, NEED_TO_IMPLEMENT_FETCHGROUPTRACKER, args), descriptor);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/OptimisticLockException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/OptimisticLockException.java
index 5a01a62..86a73b3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/OptimisticLockException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/OptimisticLockException.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
@@ -91,7 +91,7 @@
 
     }
 
-    public static OptimisticLockException mustHaveMappingWhenStoredInObject(Class aClass) {
+    public static OptimisticLockException mustHaveMappingWhenStoredInObject(Class<?> aClass) {
         Object[] args = { aClass };
 
         OptimisticLockException optimisticLockException = new OptimisticLockException(ExceptionMessageGenerator.buildMessage(OptimisticLockException.class, MUST_HAVE_MAPPING_WHEN_IN_OBJECT, args));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/QueryException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/QueryException.java
index 98c4e50..255162c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/QueryException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/QueryException.java
@@ -465,7 +465,7 @@
         return queryException;
     }
 
-    public static QueryException couldNotInstantiateContainerClass(Class aClass, Exception exception) {
+    public static QueryException couldNotInstantiateContainerClass(Class<?> aClass, Exception exception) {
         Object[] args = { aClass.toString() };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, COULD_NOT_INSTANTIATE_CONTAINER_CLASS, args));
@@ -474,7 +474,7 @@
         return queryException;
     }
 
-    public static QueryException descriptorIsMissing(Class referenceClass, DatabaseQuery query) {
+    public static QueryException descriptorIsMissing(Class<?> referenceClass, DatabaseQuery query) {
         Object[] args = { referenceClass };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, DESCRIPTOR_IS_MISSING, args), query);
@@ -482,7 +482,7 @@
         return queryException;
     }
 
-    public static QueryException descriptorIsMissingForNamedQuery(Class domainClass, String queryName) {
+    public static QueryException descriptorIsMissingForNamedQuery(Class<?> domainClass, String queryName) {
         Object[] args = { domainClass.getName(), queryName };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, DESCRIPTOR_IS_MISSING_FOR_NAMED_QUERY, args));
@@ -501,7 +501,7 @@
      * Oct 18, 2000 JED
      * Added this method and exception value
      */
-    public static QueryException exampleAndReferenceObjectClassMismatch(Class exampleObjectClass, Class referenceObjectClass, DatabaseQuery query) {
+    public static QueryException exampleAndReferenceObjectClassMismatch(Class<?> exampleObjectClass, Class<?> referenceObjectClass, DatabaseQuery query) {
         Object[] args = { exampleObjectClass, referenceObjectClass };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, EXAMPLE_AND_REFERENCE_OBJECT_CLASS_MISMATCH, args));
@@ -513,7 +513,7 @@
     /**
      * An exception was thrown while initializing the constructor from the class.
      */
-    public static QueryException exceptionWhileInitializingConstructor(Exception thrownException, DatabaseQuery query, Class targetClass) {
+    public static QueryException exceptionWhileInitializingConstructor(Exception thrownException, DatabaseQuery query, Class<?> targetClass) {
         Object[] args = { targetClass, thrownException };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, EXCEPTION_WHILE_LOADING_CONSTRUCTOR, args));
@@ -614,7 +614,7 @@
         return queryException;
     }
 
-    public static QueryException incorrectQueryObjectFound(DatabaseQuery query, Class expectedQueryClass) {
+    public static QueryException incorrectQueryObjectFound(DatabaseQuery query, Class<?> expectedQueryClass) {
         Object[] args = { expectedQueryClass, query.getClass() };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, INCORRECT_QUERY_FOUND, args), query);
@@ -622,7 +622,7 @@
         return queryException;
     }
 
-    public static QueryException invalidContainerClass(Class containerGiven, Class containerRequired) {
+    public static QueryException invalidContainerClass(Class<?> containerGiven, Class<?> containerRequired) {
         Object[] args = { containerGiven, containerRequired };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, INVALID_CONTAINER_CLASS, args));
@@ -784,7 +784,7 @@
         return queryException;
     }
 
-    public static QueryException joiningAcrossInheritanceClassWithMultipleTablesNotSupported(DatabaseQuery query, Class joinClass) {
+    public static QueryException joiningAcrossInheritanceClassWithMultipleTablesNotSupported(DatabaseQuery query, Class<?> joinClass) {
         Object[] args = { query, joinClass };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, JOINING_ACROSS_INHERITANCE_WITH_MULTIPLE_TABLES, args));
@@ -832,7 +832,7 @@
         return validationException;
     }
 
-    public static QueryException methodDoesNotExistInContainerClass(String methodName, Class aClass) {
+    public static QueryException methodDoesNotExistInContainerClass(String methodName, Class<?> aClass) {
         Object[] args = { methodName, aClass };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, METHOD_DOES_NOT_EXIST_IN_CONTAINER_CLASS, args));
@@ -840,7 +840,7 @@
         return queryException;
     }
 
-    public static QueryException methodDoesNotExistOnExpression(String methodName, Class[] argTypes) {
+    public static QueryException methodDoesNotExistOnExpression(String methodName, Class<?>[] argTypes) {
         Object[] args = { methodName, argTypes };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, METHOD_DOES_NOT_EXIST_ON_EXPRESSION, args));
@@ -909,7 +909,7 @@
         return queryException;
     }
 
-    public static QueryException noDescriptorForClassFromInheritancePolicy(DatabaseQuery query, Class referenceClass) {
+    public static QueryException noDescriptorForClassFromInheritancePolicy(DatabaseQuery query, Class<?> referenceClass) {
         Object[] args = { String.valueOf(referenceClass) };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, NO_DESCRIPTOR_FOR_SUBCLASS, args), query);
@@ -949,7 +949,7 @@
         return queryException;
     }
 
-    public static QueryException classPkDoesNotExistInCache(Class theClass, Object primaryKey) {
+    public static QueryException classPkDoesNotExistInCache(Class<?> theClass, Object primaryKey) {
         Object[] args = { theClass, primaryKey };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, CLASS_PK_DOES_NOT_EXIST_IN_CACHE, args));
@@ -999,7 +999,7 @@
         return queryNotDefined(args);
     }
 
-    public static QueryException queryNotDefined(String queryName, Class domainClass) {
+    public static QueryException queryNotDefined(String queryName, Class<?> domainClass) {
         Object[] args = { queryName, domainClass };
         return queryNotDefined(args);
     }
@@ -1052,7 +1052,7 @@
         return queryException;
     }
 
-    public static QueryException redirectionMethodNotDefinedCorrectly(Class methodClass, String methodName, Exception exception, DatabaseQuery query) {
+    public static QueryException redirectionMethodNotDefinedCorrectly(Class<?> methodClass, String methodName, Exception exception, DatabaseQuery query) {
         Object[] args = { methodClass, methodName, CR };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, REDIRECTION_METHOD_NOT_DEFINED_CORRECTLY, args), query);
@@ -1157,7 +1157,7 @@
         return queryException;
     }
 
-    public static QueryException typeMismatchBetweenAttributeAndConstantOnExpression(Class constantClass, Class attributeClass) {
+    public static QueryException typeMismatchBetweenAttributeAndConstantOnExpression(Class<?> constantClass, Class<?> attributeClass) {
         Object[] args = { constantClass, attributeClass };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, TYPE_MISMATCH_BETWEEN_ATTRIBUTE_AND_CONSTANT_ON_EXPRESSION, args));
@@ -1477,7 +1477,7 @@
         return queryException;
     }
 
-    public static QueryException errorInstantiatedClassForQueryHint(Exception exception, DatabaseQuery query, Class theClass, String hint) {
+    public static QueryException errorInstantiatedClassForQueryHint(Exception exception, DatabaseQuery query, Class<?> theClass, String hint) {
         Object[] args = { theClass, hint };
 
         QueryException queryException =
@@ -1577,7 +1577,7 @@
         return queryException;
     }
 
-    public static QueryException couldNotFindCastDescriptor(Class castClass, Expression base) {
+    public static QueryException couldNotFindCastDescriptor(Class<?> castClass, Expression base) {
         Object[] args = { castClass, base };
 
         QueryException queryException = new QueryException(ExceptionMessageGenerator.buildMessage(QueryException.class, COULD_NOT_FIND_CAST_DESCRIPTOR, args));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/SDOException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/SDOException.java
index 8b7469a..bc69de1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/SDOException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/SDOException.java
@@ -494,7 +494,7 @@
      * INTERNAL:
      * Exception when trying to set a property to value that is an unsupported conversion
      */
-    public static SDOException wrongValueForProperty(String typeUri, String typeName, Class valueClass) {
+    public static SDOException wrongValueForProperty(String typeUri, String typeName, Class<?> valueClass) {
         Object[] args = { typeUri, typeName, valueClass.getName() };
         SDOException exception = new SDOException(ExceptionMessageGenerator.buildMessage(SDOException.class, WRONG_VALUE_FOR_PROPERTY, args) );
         exception.setErrorCode(WRONG_VALUE_FOR_PROPERTY);
@@ -673,28 +673,28 @@
          return exception;
      }
 
-     public static SDOException sdoJaxbNoTypeForClass(Class clazz) {
+     public static SDOException sdoJaxbNoTypeForClass(Class<?> clazz) {
          Object[] args = {clazz.toString()};
          SDOException exception = new SDOException(ExceptionMessageGenerator.buildMessage(SDOException.class, SDO_JAXB_NO_TYPE_FOR_CLASS, args));
          exception.setErrorCode(SDO_JAXB_NO_TYPE_FOR_CLASS);
          return exception;
      }
 
-     public static SDOException sdoJaxbNoSchemaReference(Class clazz) {
+     public static SDOException sdoJaxbNoSchemaReference(Class<?> clazz) {
          Object[] args = {clazz.toString()};
          SDOException exception = new SDOException(ExceptionMessageGenerator.buildMessage(SDOException.class, SDO_JAXB_NO_SCHEMA_REFERENCE, args));
          exception.setErrorCode(SDO_JAXB_NO_SCHEMA_REFERENCE);
          return exception;
      }
 
-     public static SDOException sdoJaxbNoSchemaContext(Class clazz) {
+     public static SDOException sdoJaxbNoSchemaContext(Class<?> clazz) {
          Object[] args = {clazz.toString()};
          SDOException exception = new SDOException(ExceptionMessageGenerator.buildMessage(SDOException.class, SDO_JAXB_NO_SCHEMA_CONTEXT, args));
          exception.setErrorCode(SDO_JAXB_NO_SCHEMA_CONTEXT);
          return exception;
      }
 
-     public static SDOException sdoJaxbNoTypeForClassBySchemaContext(Class clazz, QName schemaContext) {
+     public static SDOException sdoJaxbNoTypeForClassBySchemaContext(Class<?> clazz, QName schemaContext) {
          Object[] args = {clazz.toString(), schemaContext.toString()};
          SDOException exception = new SDOException(ExceptionMessageGenerator.buildMessage(SDOException.class, SDO_JAXB_NO_TYPE_FOR_CLASS_BY_SCHEMA_CONTEXT, args));
          exception.setErrorCode(SDO_JAXB_NO_TYPE_FOR_CLASS_BY_SCHEMA_CONTEXT);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ValidationException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ValidationException.java
index 7f8f12b..6f213fe 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ValidationException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/ValidationException.java
@@ -1634,7 +1634,7 @@
     * Possible cause:  An amendment method was called but can not be found.
     * Action:  Check that the required amendment method exists on the class specified.
     */
-    public static ValidationException sessionAmendmentExceptionOccured(Exception exception, String amendmentMethod, String amendmentClass, Class[] parameters) {
+    public static ValidationException sessionAmendmentExceptionOccured(Exception exception, String amendmentMethod, String amendmentClass, Class<?>[] parameters) {
         StringBuffer buf = new StringBuffer(30);
         for (int i = 0; i < (parameters.length - 1); i++) {
             buf.append(parameters[i].getName());
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 ce1b813..365cb69 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
@@ -56,7 +56,7 @@
     /**
      * Return the message for the given exception class and error number.
      */
-    public static String buildMessage(Class exceptionClass, int errorNumber, Object[] arguments) {
+    public static String buildMessage(Class<?> exceptionClass, int errorNumber, Object[] arguments) {
         String shortClassName = Helper.getShortClassName(exceptionClass);
         String message = "";
         ResourceBundle bundle = null;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/Expression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/Expression.java
index 3ff87166..f671f45 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/Expression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/Expression.java
@@ -431,7 +431,7 @@
      *     SQL: LPROJ.PROJ_ID (+)= PROJ.PROJ_ID AND L_PROJ.BUDGET = 1000 AND PROJ.TYPE = "L"
      * </pre></blockquote>
      */
-    public Expression treat(Class castClass) {
+    public Expression treat(Class<?> castClass) {
         return this;
     }
 
@@ -4115,7 +4115,7 @@
      * This is a case where a fast operation in java does not translate to an
      * equally fast operation in SQL, requiring a correlated subselect.
      */
-    public Expression size(Class returnType) {
+    public Expression size(Class<?> returnType) {
         if (((BaseExpression)this).getBaseExpression() == null){
             return SubSelectExpression.createSubSelectExpressionForCount(this, this, null, returnType);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionBuilder.java
index 74fbd80..e5178e6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionBuilder.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
@@ -52,7 +52,7 @@
  */
 public class ExpressionBuilder extends ObjectExpression {
     protected transient AbstractSession session;
-    protected Class queryClass;
+    protected Class<?> queryClass;
     protected SQLSelectStatement statement;
     protected DatabaseTable viewTable;
     protected DatabaseTable aliasedViewTable;
@@ -75,7 +75,7 @@
      * This can be used for the purpose of parallel expressions.
      * This is a type of query that searches on the relationship between to un-related objects.
      */
-    public ExpressionBuilder(Class queryClass) {
+    public ExpressionBuilder(Class<?> queryClass) {
         super();
         this.queryClass = queryClass;
         this.wasQueryClassSetInternally = false;
@@ -219,7 +219,7 @@
     /**
      * INTERNAL:
      */
-    public Class getQueryClass() {
+    public Class<?> getQueryClass() {
         return queryClass;
     }
 
@@ -416,7 +416,7 @@
      * INTERNAL:
      * Set the class which this node represents.
      */
-    public void setQueryClass(Class queryClass) {
+    public void setQueryClass(Class<?> queryClass) {
         this.queryClass = queryClass;
         this.descriptor = null;
     }
@@ -425,7 +425,7 @@
      * INTERNAL:
      * Set the class and descriptor which this node represents.
      */
-    public void setQueryClassAndDescriptor(Class queryClass, ClassDescriptor descriptor) {
+    public void setQueryClassAndDescriptor(Class<?> queryClass, ClassDescriptor descriptor) {
         this.queryClass = queryClass;
         this.descriptor = convertToCastDescriptor(descriptor, session);
     }
@@ -523,7 +523,7 @@
         // The base case
         // The following special case is where there is a parallel builder
         // which has a different reference class as the primary builder.
-        Class queryClass = getQueryClass();
+        Class<?> queryClass = getQueryClass();
         if ((queryClass != null) && ((query == null) || (queryClass != query.getReferenceClass()))) {
            return convertToCastDescriptor( session.getDescriptor(queryClass), session);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionOperator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionOperator.java
index c2873b1..13b435d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionOperator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/expressions/ExpressionOperator.java
@@ -62,7 +62,7 @@
     protected String[] databaseStrings;
     protected boolean isPrefix = false;
     protected boolean isRepeating = false;
-    protected Class nodeClass;
+    protected Class<?> nodeClass;
     protected int type;
     protected int[] argumentIndices = null;
     protected static Map<Integer, ExpressionOperator> allOperators = initializeOperators();
@@ -1242,7 +1242,7 @@
     /**
      * INTERNAL:
      */
-    public Class getNodeClass() {
+    public Class<?> getNodeClass() {
         return nodeClass;
     }
 
@@ -1974,7 +1974,7 @@
             Expression node = null;
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
-                    node = (Expression)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(getNodeClass()));
+                    node = (Expression)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(getNodeClass()));
                 } catch (PrivilegedActionException exception) {
                     return null;
                 }
@@ -2442,7 +2442,7 @@
      * <p>FunctionOperator    RTRIM                 "
      * <p>Node classes given belong to org.eclipse.persistence.internal.expressions.
      */
-    public void setNodeClass(Class nodeClass) {
+    public void setNodeClass(Class<?> nodeClass) {
         this.nodeClass = nodeClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/history/HistoryPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/history/HistoryPolicy.java
index 77199d7..1b377c3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/history/HistoryPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/history/HistoryPolicy.java
@@ -551,7 +551,7 @@
      * Sets the type of all start fields.  Not required to be set as the default
      * of Timestamp is assumed.
      */
-    public void setStartFieldType(Class type) {
+    public void setStartFieldType(Class<?> type) {
         for (DatabaseField existing : startFields) {
             existing.setType(type);
         }
@@ -593,7 +593,7 @@
      * ADVANCED:
      * @see #setStartFieldType
      */
-    public void setEndFieldType(String fieldName, Class type) {
+    public void setEndFieldType(String fieldName, Class<?> type) {
         for (DatabaseField existing : endFields) {
             existing.setType(type);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/indirection/IndirectCollectionsFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/indirection/IndirectCollectionsFactory.java
index ae49887..cef6320 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/indirection/IndirectCollectionsFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/indirection/IndirectCollectionsFactory.java
@@ -35,17 +35,17 @@
     /**
      * Class implementing {@link IndirectList}.
      */
-    public static final Class IndirectList_Class = provider.getListClass();
+    public static final Class<?> IndirectList_Class = provider.getListClass();
 
     /**
      * Class implementing {@link IndirectSet}.
      */
-    public static final Class IndirectSet_Class = provider.getSetClass();
+    public static final Class<?> IndirectSet_Class = provider.getSetClass();
 
     /**
      * Class implementing {@link IndirectMap}.
      */
-    public static final Class IndirectMap_Class = provider.getMapClass();
+    public static final Class<?> IndirectMap_Class = provider.getMapClass();
 
     private IndirectCollectionsFactory() {
         // no instance please
@@ -193,7 +193,7 @@
          *
          * @return class implementing {@link IndirectList}
          */
-        Class getListClass();
+        Class<?> getListClass();
 
         /**
          * Construct an empty {@link IndirectList} with the specified initial capacity
@@ -228,7 +228,7 @@
          *
          * @return class implementing {@link IndirectSet}
          */
-        Class getSetClass();
+        Class<?> getSetClass();
 
         /**
          * Construct an empty {@link IndirectSet} with the specified initial capacity
@@ -260,7 +260,7 @@
          *
          * @return class implementing {@link IndirectMap}
          */
-        Class getMapClass();
+        Class<?> getMapClass();
 
         /**
          * Construct a new, empty {@link IndirectMap} with the specified initial
@@ -296,7 +296,7 @@
     private static final class DefaultProvider implements IndirectCollectionsProvider {
 
         @Override
-        public Class getListClass() {
+        public Class<?> getListClass() {
             return IndirectList.class;
         }
 
@@ -311,7 +311,7 @@
         }
 
         @Override
-        public Class getSetClass() {
+        public Class<?> getSetClass() {
             return IndirectSet.class;
         }
 
@@ -326,7 +326,7 @@
         }
 
         @Override
-        public Class getMapClass() {
+        public Class<?> getMapClass() {
             return IndirectMap.class;
         }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/helper/CoreClassConstants.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/helper/CoreClassConstants.java
index 8fdecc0..b322eb3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/helper/CoreClassConstants.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/helper/CoreClassConstants.java
@@ -38,11 +38,11 @@
 @SuppressWarnings({"rawtypes"})
 public class CoreClassConstants {
 
-    public static final Class ABYTE = Byte[].class;
-    public static final Class APBYTE = byte[].class;
-    public static final Class APCHAR = char[].class;
-    public static final Class ASTRING = String[].class;
-    public static final Class ArrayList_class = ArrayList.class;
+    public static final Class<?> ABYTE = Byte[].class;
+    public static final Class<?> APBYTE = byte[].class;
+    public static final Class<?> APCHAR = char[].class;
+    public static final Class<?> ASTRING = String[].class;
+    public static final Class<?> ArrayList_class = ArrayList.class;
     public static final Class<BigDecimal> BIGDECIMAL = BigDecimal.class;
     public static final Class<BigInteger> BIGINTEGER = BigInteger.class;
     public static final Class<Boolean> BOOLEAN = Boolean.class;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/queries/CoreContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/queries/CoreContainerPolicy.java
index cb1e24b..056a10f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/queries/CoreContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/core/queries/CoreContainerPolicy.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -136,7 +136,7 @@
      * INTERNAL:
      * Set the class used for the container.
      */
-    void setContainerClass(Class containerClass);
+    void setContainerClass(Class<?> containerClass);
 
     /**
      * INTERNAL:
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 2af63c5..c79bdde 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
@@ -38,7 +38,7 @@
  * INTERNAL:
  */
 public class CascadeLockingPolicy {
-    protected Class m_parentClass;
+    protected Class<?> m_parentClass;
     protected ReadObjectQuery m_query;
     protected ClassDescriptor m_descriptor;
     protected ClassDescriptor m_parentDescriptor;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstanceVariableAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstanceVariableAttributeAccessor.java
index b3f52ba..c235a32 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstanceVariableAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstanceVariableAttributeAccessor.java
@@ -42,7 +42,7 @@
      * Returns the class type of the attribute.
      */
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         if (getAttributeField() == null) {
             return null;
         }
@@ -61,7 +61,7 @@
     /**
      * Returns the declared type of attributeField.
      */
-    public Class getAttributeType() {
+    public Class<?> getAttributeType() {
         return attributeField.getType();
     }
 
@@ -100,7 +100,7 @@
      * instanceVariableName is converted to Field type.
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
@@ -160,7 +160,7 @@
                 if (value == null) {
                     // cr 3737  If a null pointer was thrown because we attempted to set a null reference into a
                     // primitive create a primitive of value 0 to set in the object.
-                    Class fieldClass = getAttributeClass();
+                    Class<?> fieldClass = getAttributeClass();
                     if (org.eclipse.persistence.internal.helper.Helper.isPrimitiveWrapper(fieldClass)) {
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                             try {
@@ -209,7 +209,7 @@
                 if (anObject != null) {
                     // cr 3737  If a null pointer was thrown because we attempted to set a null reference into a
                     // primitive create a primitive of value 0 to set in the object.
-                    Class fieldClass = getAttributeClass();
+                    Class<?> fieldClass = getAttributeClass();
                     if (org.eclipse.persistence.internal.helper.Helper.isPrimitiveWrapper(fieldClass) && (value == null)) {
                         if (org.eclipse.persistence.internal.helper.Helper.isPrimitiveWrapper(fieldClass)) {
                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstantiationPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstantiationPolicy.java
index ea8ee55..d192e15 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstantiationPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/InstantiationPolicy.java
@@ -77,7 +77,7 @@
      * The class of the factory. The factory is instantiated by either invoking this class's default
      * (zero-argument) constructor or the factoryMethod specified below.
      */
-    protected Class factoryClass;
+    protected Class<?> factoryClass;
     protected String factoryClassName;
 
     /**
@@ -224,16 +224,16 @@
     /**
      * Build and return the default (zero-argument) constructor for the specified class.
      */
-    protected Constructor buildDefaultConstructorFor(Class javaClass) throws DescriptorException {
+    protected Constructor buildDefaultConstructorFor(Class<?> javaClass) throws DescriptorException {
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
-                    return AccessController.doPrivileged(new PrivilegedGetDeclaredConstructorFor(javaClass, new Class[0], true));
+                    return AccessController.doPrivileged(new PrivilegedGetDeclaredConstructorFor(javaClass, new Class<?>[0], true));
                 } catch (PrivilegedActionException exception) {
                     throw DescriptorException.noSuchMethodWhileInitializingInstantiationPolicy(javaClass.getName() + ".<Default Constructor>", getDescriptor(), exception.getException());
                 }
             } else {
-                return PrivilegedAccessHelper.getDeclaredConstructorFor(javaClass, new Class[0], true);
+                return PrivilegedAccessHelper.getDeclaredConstructorFor(javaClass, new Class<?>[0], true);
             }
         } catch (NoSuchMethodException exception) {
             throw DescriptorException.noSuchMethodWhileInitializingInstantiationPolicy(javaClass.getName() + ".<Default Constructor>", getDescriptor(), exception);
@@ -252,7 +252,7 @@
         return factory;
     }
 
-    public Class getFactoryClass() {
+    public Class<?> getFactoryClass() {
         return factoryClass;
     }
 
@@ -357,7 +357,7 @@
      * Build and return the factory, using the specified static method.
      */
     protected Object buildFactoryUsingStaticMethod() throws DescriptorException {
-        Method factoryMethod = this.buildMethod(this.getFactoryClass(), this.getFactoryMethodName(), new Class[0]);
+        Method factoryMethod = this.buildMethod(this.getFactoryClass(), this.getFactoryMethodName(), new Class<?>[0]);
 
         try {
             // it should be static and zero-argument...
@@ -391,7 +391,7 @@
      * It is either a static on the descriptor class, or it is a non-static on the factory.
      */
     protected void initializeMethod() throws DescriptorException {
-        Class tempClass;
+        Class<?> tempClass;
         if (this.getFactory() != null) {
             tempClass = this.getFactory().getClass();
         } else if (this.getFactoryClass() == null) {
@@ -399,13 +399,13 @@
         } else {
             tempClass = this.getFactoryClass();
         }
-        this.setMethod(this.buildMethod(tempClass, this.getMethodName(), new Class[0]));
+        this.setMethod(this.buildMethod(tempClass, this.getMethodName(), new Class<?>[0]));
     }
 
     /**
      * Build the specified method.
      */
-    protected Method buildMethod(Class methodClass, String methodName, Class[] methodParameterTypes) throws DescriptorException {
+    protected Method buildMethod(Class<?> methodClass, String methodName, Class<?>[] methodParameterTypes) throws DescriptorException {
         try {
             return Helper.getDeclaredMethod(methodClass, methodName, methodParameterTypes);
         } catch (NoSuchMethodException exception) {
@@ -438,7 +438,7 @@
         this.factory = factory;
     }
 
-    protected void setFactoryClass(Class factoryClass) {
+    protected void setFactoryClass(Class<?> factoryClass) {
         this.factoryClass = factoryClass;
     }
 
@@ -464,7 +464,7 @@
         if (factoryClassName == null){
             return;
         }
-        Class factoryClass = null;
+        Class<?> factoryClass = null;
         try{
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
@@ -501,7 +501,7 @@
         setFactoryMethodName(null);
     }
 
-    public void useFactoryInstantiationPolicy(Class factoryClass, String methodName) {
+    public void useFactoryInstantiationPolicy(Class<?> factoryClass, String methodName) {
         setMethodName(methodName);
         setFactory(null);
         setFactoryClass(factoryClass);
@@ -509,7 +509,7 @@
         setFactoryMethodName(null);
     }
 
-    public void useFactoryInstantiationPolicy(Class factoryClass, String methodName, String factoryMethodName) {
+    public void useFactoryInstantiationPolicy(Class<?> factoryClass, String methodName, String factoryMethodName) {
         setMethodName(methodName);
         setFactory(null);
         setFactoryClass(factoryClass);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MethodAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MethodAttributeAccessor.java
index 760983d..3f2bc17 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MethodAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MethodAttributeAccessor.java
@@ -54,7 +54,7 @@
      * Return the return type of the method accessor.
      */
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         if (getGetMethod() == null) {
             return null;
         }
@@ -123,7 +123,7 @@
      * A special check is made to determine if a missing method is a result of failed weaving.
      */
     // Note: SDO overrides this method and will handle a null GetMethod
-    public Class getGetMethodReturnType() throws DescriptorException {
+    public Class<?> getGetMethodReturnType() throws DescriptorException {
         // 323403: If the getMethod is missing - check for "_persistence_*_vh" to see if weaving was expected
         if(null == getGetMethod() && null != getGetMethodName()
             && (getGetMethodName().indexOf(Helper.PERSISTENCE_FIELDNAME_PREFIX) > -1)) {
@@ -160,11 +160,11 @@
         return setMethodName;
     }
 
-    public Class getSetMethodParameterType() {
+    public Class<?> getSetMethodParameterType() {
         return getSetMethodParameterType(0);
     }
 
-    protected Class getSetMethodParameterType(int index) {
+    protected Class<?> getSetMethodParameterType(int index) {
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
             try {
                 return AccessController.doPrivileged(new PrivilegedGetMethodParameterTypes(getSetMethod()))[index];
@@ -177,8 +177,8 @@
         }
     }
 
-    protected Class[] getSetMethodParameterTypes() {
-        return new Class[] {getGetMethodReturnType()};
+    protected Class<?>[] getSetMethodParameterTypes() {
+        return new Class<?>[] {getGetMethodReturnType()};
     }
 
     /**
@@ -186,7 +186,7 @@
      * get and set method names
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         initializeAttributes(theJavaClass, null);
     }
 
@@ -194,7 +194,7 @@
      * Set get and set method after creating these methods by using
      * get and set method names
      */
-    protected void initializeAttributes(Class theJavaClass, Class[] getParameterTypes) throws DescriptorException {
+    protected void initializeAttributes(Class<?> theJavaClass, Class<?>[] getParameterTypes) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
@@ -291,7 +291,7 @@
                 // cr 3737  If a null pointer was thrown because EclipseLink attempted to set a null reference into a
                 // primitive creating a primitive of value 0 to set in the object.
                 // Is this really the best place for this? is this not why we have null-value and conversion-manager?
-                Class fieldClass = getSetMethodParameterType();
+                Class<?> fieldClass = getSetMethodParameterType();
 
                 //Found when fixing Bug2910086
                 if (fieldClass.isPrimitive() && (attributeValue == null)) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MultitenantPrimaryKeyAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MultitenantPrimaryKeyAccessor.java
index ae742af..c1046e1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MultitenantPrimaryKeyAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/MultitenantPrimaryKeyAccessor.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
@@ -39,7 +39,7 @@
     }
 
     @Override
-    public void initializeAttributes(Class javaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> javaClass) throws DescriptorException {
         // Does nothing
     }
 
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 429933b..66e635c 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
@@ -153,7 +153,7 @@
     /** Mapping for the primary key fields. */
     protected List<DatabaseMapping> primaryKeyMappings;
     /** The types for the primary key fields, in same order as descriptor's primary key fields. */
-    protected List<Class> primaryKeyClassifications;
+    protected List<Class<?>> primaryKeyClassifications;
     /** All mapping other than primary key mappings. */
     protected transient List<DatabaseMapping> nonPrimaryKeyMappings;
     /** Expression for querying an object by primary key. */
@@ -815,7 +815,7 @@
             prefechedCacheKey = query.getPrefetchedCacheKeys().get(primaryKey);
         }
         if ((inheritancePolicy != null) && inheritancePolicy.shouldReadSubclasses()) {
-            Class classValue = inheritancePolicy.classFromRow(databaseRow, session);
+            Class<?> classValue = inheritancePolicy.classFromRow(databaseRow, session);
             concreteDescriptor = inheritancePolicy.getDescriptor(classValue);
             if ((concreteDescriptor == null) && query.hasPartialAttributeExpressions()) {
                 concreteDescriptor = this.descriptor;
@@ -3164,13 +3164,13 @@
                     writtenMappings.add(mapping);
                 }
             }
-            List<Class> primaryKeyClassifications = getPrimaryKeyClassifications();
+            List<Class<?>> primaryKeyClassifications = getPrimaryKeyClassifications();
             Platform platform = session.getPlatform(domainObject.getClass());
             // PERF: use index not enumeration
             for (int index = 0; index < size; index++) {
                 // 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 = primaryKeyClassifications.get(index);
+                Class<?> classification = primaryKeyClassifications.get(index);
                 Object value = databaseRow.get(primaryKeyFields.get(index));
                 if (isPrimaryKeyComponentInvalid(value, index)) {
                     if (shouldReturnNullIfNull) {
@@ -3209,7 +3209,7 @@
         if(null == primaryKeyFields) {
             return null;
         }
-        List<Class> primaryKeyClassifications = getPrimaryKeyClassifications();
+        List<Class<?>> primaryKeyClassifications = getPrimaryKeyClassifications();
         int size = primaryKeyFields.size();
         Object[] primaryKeyValues = null;
         CacheKeyType cacheKeyType = this.descriptor.getCachePolicy().getCacheKeyType();
@@ -3223,7 +3223,7 @@
             DatabaseField field = primaryKeyFields.get(index);
 
             // Ensure that the type extracted from the row is the same type as in the object.
-            Class classification = primaryKeyClassifications.get(index);
+            Class<?> classification = primaryKeyClassifications.get(index);
             Object value = databaseRow.get(field);
             if (value != null) {
                 if (value.getClass() != classification) {
@@ -3311,7 +3311,7 @@
         for (int index = 0; index < primaryKeyFields.size(); index++) {
             // 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);
+            Class<?> classification = getPrimaryKeyClassifications().get(index);
             DatabaseField field = primaryKeyFields.get(index);
             Object value = databaseRow.get(field);
             primaryKeyRow.put(field, session.getPlatform(domainObject.getClass()).convertObject(value, classification));
@@ -3459,7 +3459,7 @@
      * Return the classification for the field contained in the mapping.
      * This is used to convert the row value to a consistent java value.
      */
-    public Class getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
         DatabaseMapping mapping = getMappingForField(fieldToClassify);
         if (mapping == null) {
             // Means that the mapping is read-only or the classification is unknown,
@@ -3672,13 +3672,13 @@
      * Return primary key classifications.
      * These are used to ensure a consistent type for the pk values.
      */
-    public List<Class> getPrimaryKeyClassifications() {
+    public List<Class<?>> getPrimaryKeyClassifications() {
         if (primaryKeyClassifications == null) {
             List<DatabaseField> primaryKeyFields = this.descriptor.getPrimaryKeyFields();
             if(null == primaryKeyFields) {
                 return Collections.emptyList();
             }
-            List<Class> classifications = new ArrayList(primaryKeyFields.size());
+            List<Class<?>> classifications = new ArrayList(primaryKeyFields.size());
 
             for (int index = 0; index < primaryKeyFields.size(); index++) {
                 if (getPrimaryKeyMappings().size() < (index + 1)) { // Check for failed initialization to avoid cascaded errors.
@@ -4497,7 +4497,7 @@
      * Set primary key classifications.
      * These are used to ensure a consistent type for the pk values.
      */
-    public void setPrimaryKeyClassifications(List<Class> primaryKeyClassifications) {
+    public void setPrimaryKeyClassifications(List<Class<?>> primaryKeyClassifications) {
         this.primaryKeyClassifications = primaryKeyClassifications;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/PersistenceObjectAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/PersistenceObjectAttributeAccessor.java
index 29dac48..623f80b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/PersistenceObjectAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/PersistenceObjectAttributeAccessor.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
@@ -37,7 +37,7 @@
      * Allow any initialization to be performed with the descriptor class.
      */
     @Override
-    public void initializeAttributes(Class descriptorClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> descriptorClass) throws DescriptorException {
         this.attributeName = attributeName.intern();
         super.initializeAttributes(descriptorClass);
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/QueryArgument.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/QueryArgument.java
index 783adf1..4767a8d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/QueryArgument.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/QueryArgument.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,7 @@
 public class QueryArgument extends TypedAssociation {
 
     /** The type of the query argument */
-    protected Class type;
+    protected Class<?> type;
     protected String typeName;// bug 3256198 types can now be set by name
     protected boolean nullable;
 
@@ -37,7 +37,7 @@
         super();
     }
 
-    public QueryArgument(String argumentName, Object value, Class type) {
+    public QueryArgument(String argumentName, Object value, Class<?> type) {
         super(argumentName, value);
         this.type = type;
     }
@@ -50,7 +50,7 @@
         this.nullable = nullable;
     }
 
-    public Class getType() {
+    public Class<?> getType() {
         return type;
     }
 
@@ -62,7 +62,7 @@
         return typeName;
     }
 
-    public void setType(Class type) {
+    public void setType(Class<?> type) {
         this.type = type;
         if (type != null) {
             this.typeName = type.getName();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/TransformerBasedFieldTransformation.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/TransformerBasedFieldTransformation.java
index 35e3a05..c2f5eac 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/TransformerBasedFieldTransformation.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/TransformerBasedFieldTransformation.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
@@ -30,7 +30,7 @@
  * @since OracleAS TopLink 10<i>g</i> (10.0.3)
  */
 public class TransformerBasedFieldTransformation extends FieldTransformation {
-    protected Class transformerClass;
+    protected Class<?> transformerClass;
     protected String transformerClassName;
     protected FieldTransformer transformer;
 
@@ -46,11 +46,11 @@
         }
     }
 
-    public Class getTransformerClass() {
+    public Class<?> getTransformerClass() {
         return transformerClass;
     }
 
-    public void setTransformerClass(Class transformerClass) {
+    public void setTransformerClass(Class<?> transformerClass) {
         this.transformerClass = transformerClass;
     }
 
@@ -65,10 +65,10 @@
     @Override
     public FieldTransformer buildTransformer() throws Exception {
         if (transformer == null) {
-            Class transformerClass = getTransformerClass();
+            Class<?> transformerClass = getTransformerClass();
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try{
-                    transformer = (FieldTransformer)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(transformerClass));
+                    transformer = (FieldTransformer)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(transformerClass));
                 }catch (PrivilegedActionException ex){
                     throw (Exception)ex.getCause();
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/VirtualAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/VirtualAttributeAccessor.java
index 7324064..a5be569 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/VirtualAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/descriptors/VirtualAttributeAccessor.java
@@ -20,7 +20,7 @@
 
 public class VirtualAttributeAccessor extends MethodAttributeAccessor {
 
-    private Class<Object> valueType = ClassConstants.OBJECT;
+    private Class<?> valueType = ClassConstants.OBJECT;
 
     /**
      * Gets the value of an instance variable in the object.
@@ -35,7 +35,7 @@
      * currently must be Object.class.
      */
     @Override
-    public Class getGetMethodReturnType() {
+    public Class<?> getGetMethodReturnType() {
         return valueType;
     }
 
@@ -45,7 +45,7 @@
      * check and return a different index from the parameter types.
      */
     @Override
-    public Class getSetMethodParameterType() {
+    public Class<?> getSetMethodParameterType() {
         return getSetMethodParameterType(1);
     }
 
@@ -53,8 +53,8 @@
      * Return the set method parameter types.
      */
     @Override
-    protected Class[] getSetMethodParameterTypes() {
-        return new Class[] {String.class, getGetMethodReturnType()};
+    protected Class<?>[] getSetMethodParameterTypes() {
+        return new Class<?>[] {String.class, getGetMethodReturnType()};
     }
 
     /**
@@ -62,8 +62,8 @@
      * get and set method names
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
-        initializeAttributes(theJavaClass, new Class[] { String.class });
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
+        initializeAttributes(theJavaClass, new Class<?>[] { String.class });
     }
 
     @Override
@@ -83,7 +83,7 @@
      * Override the class of the values being stored.
      * @since EclipseLink 2.3
      */
-    public void setValueType(Class value) {
+    public void setValueType(Class<?> value) {
         valueType = value;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ClassTypeExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ClassTypeExpression.java
index bb19b11..7afb3cd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ClassTypeExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ClassTypeExpression.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
@@ -238,7 +238,7 @@
      * return value (a class), as none of the expressions will have a session.
      */
     public ClassDescriptor getContainingDescriptor(ObjectLevelReadQuery query) {
-        Class queryClass = null;
+        Class<?> queryClass = null;
         if (getBaseExpression().isExpressionBuilder()){
             queryClass = ((ExpressionBuilder)getBaseExpression()).getQueryClass();
             return query.getSession().getDescriptor(queryClass);
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 da60d77..75fa6ce 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
@@ -55,7 +55,7 @@
     protected Vector<Expression> children;
     protected ExpressionOperator operator;
     protected transient ExpressionOperator platformOperator;
-    protected Class resultType;
+    protected Class<?> resultType;
 
     public FunctionExpression() {
         this.children = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(2);
@@ -335,7 +335,7 @@
         return platformOperator;
     }
 
-    public Class getResultType() {
+    public Class<?> getResultType() {
         return resultType;
     }
 
@@ -628,7 +628,7 @@
         operator = theOperator;
     }
 
-    public void setResultType(Class resultType) {
+    public void setResultType(Class<?> resultType) {
         this.resultType = resultType;
     }
 
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 3c61281..2010d5f 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
@@ -48,7 +48,7 @@
     protected boolean shouldUseOuterJoin;
 
     /** Allow an expression node to be cast to a subclass or implementation class. */
-    protected Class castClass;
+    protected Class<?> castClass;
 
     /** Defines that this expression has been joined to the source expression. */
     protected Expression joinSource;
@@ -80,7 +80,7 @@
      * </pre>
      */
     @Override
-    public Expression treat(Class castClass){
+    public Expression treat(Class<?> castClass){
         //to be used on expressionBuilders
         QueryKeyExpression clonedExpression = new TreatAsExpression(castClass, this);
         clonedExpression.shouldQueryToManyRelationship = false;
@@ -432,7 +432,7 @@
         return result;
     }
 
-    public Class getCastClass() {
+    public Class<?> getCastClass() {
         return castClass;
     }
 
@@ -719,7 +719,7 @@
         this.onClause = onClause;
     }
 
-    public void setCastClass(Class castClass) {
+    public void setCastClass(Class<?> castClass) {
         this.castClass = castClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ParameterExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ParameterExpression.java
index 9b7a9b8..aa535d3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ParameterExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/ParameterExpression.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
@@ -463,7 +463,7 @@
                     // this is a map key expression, operate on the key
                     ContainerPolicy cp = mapping.getContainerPolicy();
                     Object keyType = cp.getKeyType();
-                    Class keyTypeClass = keyType instanceof Class ? (Class)keyType: ((ClassDescriptor)keyType).getJavaClass();
+                    Class<?> keyTypeClass = keyType instanceof Class<?> ? (Class)keyType: ((ClassDescriptor)keyType).getJavaClass();
                     if (!keyTypeClass.isInstance(value)){
                         throw QueryException.incorrectClassForObjectComparison(baseExpression, value, mapping);
                     }
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 437b7ac..78a7c9d 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
@@ -263,7 +263,7 @@
      * </pre>
      */
     @Override
-    public Expression treat(Class castClass){
+    public Expression treat(Class<?> castClass){
         //to be used in 'where treat(t as PerformanceTireInfo).speedRating > 100'
         QueryKeyExpression clonedExpression = new TreatAsExpression(castClass, this);
         clonedExpression.shouldQueryToManyRelationship = this.shouldQueryToManyRelationship;
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 9ed09d2..52448a5 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
@@ -1415,7 +1415,7 @@
         // Some queries are not on objects but for data, thus no descriptor.
         if (!builder.doesNotRepresentAnObjectInTheQuery()) {
             if (descriptor != null) {
-                Class queryClass = builder.getQueryClass();
+                Class<?> queryClass = builder.getQueryClass();
                 // GF 2333 Only change the descriptor class if:
                 //  1 - it is not set
                 //  2 - if this is an inheritance query
@@ -1612,7 +1612,7 @@
             // CR2114; If this is data level then we don't have a descriptor.
             // We don't have a target class so we must use the root platform. PWK
             // We are not fixing the informix.
-            Class queryClass = null;
+            Class<?> queryClass = null;
             if (descriptor != null) {
                 queryClass = descriptor.getJavaClass();
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SubSelectExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SubSelectExpression.java
index f0b3f51..819e7ee 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SubSelectExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SubSelectExpression.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
@@ -42,7 +42,7 @@
     protected ReportQuery subQuery;
 
     protected String attribute;
-    protected Class returnType;
+    protected Class<?> returnType;
     protected Expression criteriaBase;
 
     public SubSelectExpression() {
@@ -94,7 +94,7 @@
     protected void initializeCountSubQuery(){
         if (criteriaBase != null && (subQuery.getItems() == null || subQuery.getItems().isEmpty())){
             if (baseExpression.getSession() != null && ((ObjectExpression)baseExpression).getDescriptor() != null){
-                Class sourceClass = ((ObjectExpression)baseExpression).getDescriptor().getJavaClass();
+                Class<?> sourceClass = ((ObjectExpression)baseExpression).getDescriptor().getJavaClass();
                 ClassDescriptor descriptor = baseExpression.getSession().getDescriptor(sourceClass);
                 if (descriptor != null){
                     DatabaseMapping mapping = descriptor.getMappingForAttributeName(attribute);
@@ -476,7 +476,7 @@
      * This factory method is used to build a subselect that will do a count.
      * It will count the number of items in baseExpression.anyOf(attribute).
      */
-    public static SubSelectExpression createSubSelectExpressionForCount(Expression outerQueryBaseExpression, Expression outerQueryCriteria, String attribute, Class returnType){
+    public static SubSelectExpression createSubSelectExpressionForCount(Expression outerQueryBaseExpression, Expression outerQueryCriteria, String attribute, Class<?> returnType){
         SubSelectExpression expression = new SubSelectExpression();
         expression.setBaseExpression(outerQueryBaseExpression);
         expression.attribute = attribute;
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 7e52517..2861b8e 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
@@ -313,7 +313,7 @@
         this.typeExpressionBase = (ObjectExpression)typeExpressionBase.copiedVersionFrom(alreadyDone);
     }
 
-    public TreatAsExpression(Class castClass, ObjectExpression baseExpression) {
+    public TreatAsExpression(Class<?> castClass, ObjectExpression baseExpression) {
         super();
         this.name = "Treat as "+castClass;
         this.typeExpressionBase = baseExpression;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/BasicTypeHelperImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/BasicTypeHelperImpl.java
index 05ab571..4f06043 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/BasicTypeHelperImpl.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/BasicTypeHelperImpl.java
@@ -43,9 +43,9 @@
     /** Set of time classes. */
     private static Set timeClasses = new HashSet();
     /** Maps primtives types to their wrapper classes. */
-    private static Map<Class, Class> primitiveToWrapper = new HashMap();
+    private static Map<Class<?>, Class<?>> primitiveToWrapper = new HashMap<>();
     /** Maps wrapper classes to their primitive types. */
-    private static Map<Class, Class> wrapperToPrimitive = new HashMap();
+    private static Map<Class<?>, Class<?>> wrapperToPrimitive = new HashMap<>();
 
     static {
         // Initialize set of integral types plus their wrapper classes
@@ -116,13 +116,13 @@
 
     /** Returns the name of the specified type. */
     public String getTypeName(Object type) {
-        Class clazz = getJavaClass(type);
+        Class<?> clazz = getJavaClass(type);
         return (clazz == null) ? null : clazz.getName();
     }
 
     /** Returns the class object of the specified type. */
     public Class<?> getJavaClass(Object type) {
-        Class clazz = null;
+        Class<?> clazz = null;
         if (type instanceof Class) {
             clazz = (Class)type;
         } else if (type instanceof ClassDescriptor) {
@@ -258,7 +258,7 @@
 
     /** */
     public boolean isEnumType(Object type) {
-        Class clazz = getJavaClass(type);
+        Class<?> clazz = getJavaClass(type);
         return (clazz != null) && (clazz.isEnum());
     }
 
@@ -426,8 +426,8 @@
             return true;
         }
 
-        Class leftClass = getJavaClass(left);
-        Class rightClass = getJavaClass(right);
+        Class<?> leftClass = getJavaClass(left);
+        Class<?> rightClass = getJavaClass(right);
         if ( leftClass.isPrimitive() ){
             leftClass = this.getWrapperClass(leftClass);
         }
@@ -481,12 +481,12 @@
     // Helper methods
 
     /** Returns the primitive for the specified wrapper class. */
-    protected Class getPrimitiveType(Object wrapper) {
+    protected Class<?> getPrimitiveType(Object wrapper) {
         return wrapperToPrimitive.get(wrapper);
     }
 
     /** Returns the wrapper class for the specified primitive. */
-    protected Class getWrapperClass(Object primitive) {
+    protected Class<?> getWrapperClass(Object primitive) {
         return primitiveToWrapper.get(primitive);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ClassConstants.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ClassConstants.java
index 9990569..2810913 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ClassConstants.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ClassConstants.java
@@ -106,9 +106,9 @@
     public static final Class<FunctionExpression> FunctionExpression_Class = FunctionExpression.class;
     public static final Class<ArgumentListFunctionExpression> ArgumentListFunctionExpression_Class = ArgumentListFunctionExpression.class;
     public static final Class<IndirectContainer> IndirectContainer_Class = IndirectContainer.class;
-    public static final Class<IndirectList> IndirectList_Class = IndirectCollectionsFactory.IndirectList_Class;
-    public static final Class<IndirectSet> IndirectSet_Class = IndirectCollectionsFactory.IndirectSet_Class;
-    public static final Class<IndirectMap> IndirectMap_Class = IndirectCollectionsFactory.IndirectMap_Class;
+    public static final Class<IndirectList> IndirectList_Class = (Class<IndirectList>) IndirectCollectionsFactory.IndirectList_Class;
+    public static final Class<IndirectSet> IndirectSet_Class = (Class<IndirectSet>) IndirectCollectionsFactory.IndirectSet_Class;
+    public static final Class<IndirectMap> IndirectMap_Class = (Class<IndirectMap>) IndirectCollectionsFactory.IndirectMap_Class;
     public static final Class<LogicalExpression> LogicalExpression_Class = LogicalExpression.class;
     public static final Class<DatabaseSessionImpl> PublicInterfaceDatabaseSession_Class = DatabaseSessionImpl.class;
     public static final Class<PerformanceProfiler> PerformanceProfiler_Class = PerformanceProfiler.class;
@@ -139,8 +139,8 @@
     public static final Class<FetchGroupTracker> FetchGroupTracker_class = FetchGroupTracker.class;
 
     // Moved from ConversionManager
-    public static final Class AOBJECT = Object[].class;
-    public static final Class ACHAR = Character[].class;
+    public static final Class<?> AOBJECT = Object[].class;
+    public static final Class<?> ACHAR = Character[].class;
     public static final Class<LocalDate> TIME_LDATE = LocalDate.class;
     public static final Class<LocalTime> TIME_LTIME = LocalTime.class;
     public static final Class<LocalDateTime> TIME_LDATETIME = LocalDateTime.class;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ComplexDatabaseType.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ComplexDatabaseType.java
index 7128406..109ac0d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ComplexDatabaseType.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ComplexDatabaseType.java
@@ -42,7 +42,7 @@
     /**
      * Defines the Java class that the complex type maps to.
      */
-    protected Class javaType;
+    protected Class<?> javaType;
     protected String javaTypeName;
 
     public boolean isRecord() {
@@ -110,7 +110,7 @@
      * Set the Java class that the complex type maps to.
      * The mapped class for a Record type, and collection class for Collection type.
      */
-    public void setJavaType(Class javaType) {
+    public void setJavaType(Class<?> javaType) {
         this.javaType = javaType;
         if (javaType != null) {
             javaTypeName = javaType.getName();
@@ -120,7 +120,7 @@
     /**
      * Return the Java class that the complex type maps to.
      */
-    public Class getJavaType() {
+    public Class<?> getJavaType() {
         return javaType;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/Helper.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/Helper.java
index 691ba0d..6e36f08 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/Helper.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/Helper.java
@@ -1087,7 +1087,7 @@
     /**
      *    Returns the object class. If a class is primitive return its non primitive class
      */
-    public static Class getObjectClass(Class javaClass) {
+    public static Class<?> getObjectClass(Class<?> javaClass) {
         return ConversionManager.getObjectClass(javaClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/JPAConversionManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/JPAConversionManager.java
index 5a1fe08..387aa33 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/JPAConversionManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/JPAConversionManager.java
@@ -44,31 +44,31 @@
      * INTERNAL:
      */
     @Override
-    public Object getDefaultNullValue(Class theClass) {
+    public <T> T getDefaultNullValue(Class<T> theClass) {
         Object defaultNullValue = null;
         if (this.defaultNullValues != null){
             defaultNullValue = getDefaultNullValues().get(theClass);
         }
         if (defaultNullValue == null && theClass.isPrimitive()) {
             if(Double.TYPE.equals(theClass)){
-                return 0D;
+                return (T) Double.valueOf(0D);
             }  else if(Long.TYPE.equals(theClass)) {
-                return 0L;
+                return (T) Long.valueOf(0L);
             } else if(Character.TYPE.equals(theClass)){
-                return '\u0000';
+                return (T) Character.valueOf('\u0000');
             } else if(Float.TYPE.equals(theClass)){
-                return 0F;
+                return (T)  Float.valueOf(0F);
             } else if(Short.TYPE.equals(theClass)){
-                return (short) 0;
+                return (T) Short.valueOf((short) 0);
             } else if(Byte.TYPE.equals(theClass)){
-                return (byte) 0;
+                return (T)  Byte.valueOf((byte) 0);
             } else if(Boolean.TYPE.equals(theClass)){
-                return Boolean.FALSE;
+                return (T) Boolean.FALSE;
             } else {
-                return 0;
+                return (T) Integer.valueOf(0);
             }
         } else {
-            return defaultNullValue;
+            return (T) defaultNullValue;
         }
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/TransformerHelper.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/TransformerHelper.java
index cb531de..e004b99 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/TransformerHelper.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/TransformerHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 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,14 +32,14 @@
         return CoreFieldTransformer.BUILD_FIELD_VALUE_METHOD;
     }
 
-    public List<Class[]> getTransformerMethodParameters(boolean isSetTransformerClass) {
-        List<Class[]> methodParameters = new ArrayList<>();
+    public List<Class<?>[]> getTransformerMethodParameters(boolean isSetTransformerClass) {
+        List<Class<?>[]> methodParameters = new ArrayList<>();
         if (isSetTransformerClass) {
-            methodParameters.add(new Class[] {Object.class, String.class, ClassConstants.SessionsSession_Class});
+            methodParameters.add(new Class<?>[] {Object.class, String.class, ClassConstants.SessionsSession_Class});
         } else {
-            methodParameters.add(new Class[0]);
-            methodParameters.add(new Class[] {ClassConstants.PublicInterfaceSession_Class});
-            methodParameters.add(new Class[] {ClassConstants.SessionsSession_Class});
+            methodParameters.add(new Class<?>[0]);
+            methodParameters.add(new Class<?>[] {ClassConstants.PublicInterfaceSession_Class});
+            methodParameters.add(new Class<?>[] {ClassConstants.SessionsSession_Class});
         }
         return methodParameters;
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/AbstractIdentityMap.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/AbstractIdentityMap.java
index d6bd8af..7bcb000 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/AbstractIdentityMap.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/AbstractIdentityMap.java
@@ -381,7 +381,7 @@
      * Recurse = true will include subclasses of myClass in the count.
      */
     @Override
-    public abstract int getSize(Class myClass, boolean recurse);
+    public abstract int getSize(Class<?> myClass, boolean recurse);
 
     /**
      * Get the wrapper object from the cache key associated with the given primary key,
@@ -485,7 +485,7 @@
      * Return the class that this is the map for.
      */
     @Override
-    public Class getDescriptorClass() {
+    public Class<?> getDescriptorClass() {
         if (descriptor == null) {
             return null;
         }
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 3a5b0a4..6670e3a 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
@@ -138,7 +138,7 @@
      * Recurse = true will include subclasses of myClass in the count.
      */
     @Override
-    public int getSize(Class myClass, boolean recurse) {
+    public int getSize(Class<?> myClass, boolean recurse) {
         int count = 0;
         Iterator<CacheKey> keys = this.cacheKeys.values().iterator();
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMap.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMap.java
index 5864381..2d57650 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMap.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/IdentityMap.java
@@ -143,7 +143,7 @@
         /**
      * Return the class that this is the map for.
      */
-    Class getDescriptorClass();
+    Class<?> getDescriptorClass();
 
     /**
      * Return the descriptor that this is the map for.
@@ -165,7 +165,7 @@
      * Return the number of actual objects of type myClass in the IdentityMap.
      * Recurse = true will include subclasses of myClass in the count.
      */
-    int getSize(Class myClass, boolean recurse);
+    int getSize(Class<?> myClass, boolean recurse);
 
     /**
      * Get the wrapper object from the cache key associated with the given primary key,
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 677e2ae..c46c315 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
@@ -83,13 +83,13 @@
     protected static final String MONITOR_PREFIX = SessionProfiler.CacheSize;
 
     /** A table of identity maps with the key being the domain Class. */
-    protected Map<Class, IdentityMap> identityMaps;
+    protected Map<Class<?>, IdentityMap> identityMaps;
 
     /** A table of identity maps with the key being the query */
     protected Map<Object, IdentityMap> queryResults;
 
     /** A map of class to list of queries that need to be invalidated when that class changes. */
-    protected Map<Class, Set> queryResultsInvalidationsByClass;
+    protected Map<Class<?>, Set> queryResultsInvalidationsByClass;
 
     /** A map of indexes on the cache. */
     protected Map<CacheIndex, IdentityMap> cacheIndexes;
@@ -135,7 +135,7 @@
     /**
      * Provides access for setting a deferred lock on an object in the IdentityMap.
      */
-    public CacheKey acquireDeferredLock(Object primaryKey, Class domainClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireDeferredLock(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         CacheKey cacheKey = null;
         if (this.isCacheAccessPreCheckRequired) {
             this.session.startOperationProfile(SessionProfiler.Caching);
@@ -161,7 +161,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLock(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireLock(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         if (primaryKey == null) {
             CacheKey cacheKey = new CacheKey(null);
             cacheKey.acquire();
@@ -192,7 +192,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLockNoWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor) {
+    public CacheKey acquireLockNoWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor) {
         if (primaryKey == null) {
             CacheKey cacheKey = new CacheKey(null);
             cacheKey.acquire();
@@ -223,7 +223,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLockWithWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
+    public CacheKey acquireLockWithWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
         if (primaryKey == null) {
             CacheKey cacheKey = new CacheKey(null);
             cacheKey.acquire();
@@ -282,7 +282,7 @@
      * This will allow multiple users to read the same object but prevent writes to
      * the object while the read lock is held.
      */
-    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         if (primaryKey == null) {
             CacheKey cacheKey = new CacheKey(null);
             cacheKey.acquireReadLock();
@@ -312,7 +312,7 @@
      * the object while the read lock is held.
      * If no readlock can be acquired then do not wait but return null.
      */
-    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         if (primaryKey == null) {
             CacheKey cacheKey = new CacheKey(null);
             cacheKey.acquireReadLock();
@@ -394,13 +394,13 @@
             }
         }
         try {
-            Class[] parameters = new Class[]{ClassConstants.PINT, ClassDescriptor.class, AbstractSession.class, boolean.class};
+            Class<?>[] parameters = new Class<?>[]{ClassConstants.PINT, ClassDescriptor.class, AbstractSession.class, boolean.class};
             Object[] values = new Object[]{size, descriptor, this.session, isIsolated};
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 Constructor<T> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(identityMapClass, parameters, false));
                 IdentityMap map = AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, values));
                 if ((descriptor != null) && (descriptor.getCachePolicy().getCacheInterceptorClass() != null)) {
-                    Constructor<? extends CacheInterceptor> interceptor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(descriptor.getCacheInterceptorClass(), new Class[] { IdentityMap.class, AbstractSession.class }, false));
+                    Constructor<? extends CacheInterceptor> interceptor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(descriptor.getCacheInterceptorClass(), new Class<?>[] { IdentityMap.class, AbstractSession.class }, false));
                     Object params[] = new Object[]{map, this.session};
                     map = AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(interceptor, params));
                 }
@@ -409,7 +409,7 @@
                 Constructor<T> constructor = PrivilegedAccessHelper.<T>getConstructorFor(identityMapClass, parameters, false);
                 IdentityMap map = PrivilegedAccessHelper.<T>invokeConstructor(constructor, values);
                 if ((descriptor != null) && (descriptor.getCacheInterceptorClass() != null)) {
-                    Constructor<? extends CacheInterceptor> interceptor = PrivilegedAccessHelper.getConstructorFor(descriptor.getCacheInterceptorClass(), new Class[] { IdentityMap.class, AbstractSession.class }, false);
+                    Constructor<? extends CacheInterceptor> interceptor = PrivilegedAccessHelper.getConstructorFor(descriptor.getCacheInterceptorClass(), new Class<?>[] { IdentityMap.class, AbstractSession.class }, false);
                     Object params[] = new Object[]{map, this.session};
                     map = PrivilegedAccessHelper.invokeConstructor(interceptor, params);
                 }
@@ -438,8 +438,8 @@
         try {
             manager = (IdentityMapManager)super.clone();
             manager.setIdentityMaps(new ConcurrentHashMap());
-            for (Iterator<Map.Entry<Class, IdentityMap>> iterator = this.identityMaps.entrySet().iterator(); iterator.hasNext();) {
-                Map.Entry<Class, IdentityMap> entry = iterator.next();
+            for (Iterator<Map.Entry<Class<?>, IdentityMap>> iterator = this.identityMaps.entrySet().iterator(); iterator.hasNext();) {
+                Map.Entry<Class<?>, IdentityMap> entry = iterator.next();
                 manager.identityMaps.put(entry.getKey(), (IdentityMap) entry.getValue().clone());
             }
         } catch (CloneNotSupportedException exception) {
@@ -483,7 +483,7 @@
      * Invalidate/remove any results for the class from the query cache.
      * This is used to invalidate the query cache on any change.
      */
-    public void invalidateQueryCache(Class classThatChanged) {
+    public void invalidateQueryCache(Class<?> classThatChanged) {
         if (this.queryResultsInvalidationsByClass == null) {
             return;
         }
@@ -493,7 +493,7 @@
                 this.queryResults.remove(queryKey);
             }
         }
-        Class superClass = classThatChanged.getSuperclass();
+        Class<?> superClass = classThatChanged.getSuperclass();
         if ((superClass != null) && (superClass != ClassConstants.OBJECT)) {
             invalidateQueryCache(superClass);
         }
@@ -504,7 +504,7 @@
      * User API.
      * @param key is the primary key for the object to search for.
      */
-    public boolean containsKey(Object key, Class theClass, ClassDescriptor descriptor) {
+    public boolean containsKey(Object key, Class<?> theClass, ClassDescriptor descriptor) {
         if (key == null) {
             return false;
         }
@@ -529,7 +529,7 @@
     /**
      * Query the cache in-memory.
      */
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
         this.session.startOperationProfile(SessionProfiler.Caching);
         Vector objects = null;
@@ -623,7 +623,7 @@
     /**
      * Invalidate objects meeting selectionCriteria.
      */
-    public void invalidateObjects(Expression selectionCriteria, Class theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
+    public void invalidateObjects(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
         this.session.startOperationProfile(SessionProfiler.Caching);
         try {
@@ -714,7 +714,7 @@
     /**
      * Retrieve the cache key for the given identity information.
      */
-    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         if (primaryKey == null) {
             return null;
         }
@@ -741,7 +741,7 @@
     /**
      * Retrieve the cache key for the given identity information.
      */
-    public CacheKey getCacheKeyForObject(Object primaryKey, Class theClass, ClassDescriptor descriptor, boolean forMerge) {
+    public CacheKey getCacheKeyForObject(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor, boolean forMerge) {
         if (primaryKey == null) {
             return null;
         }
@@ -777,7 +777,7 @@
      * This method is used to get a list of those classes with IdentityMaps in the Session.
      */
     public Vector getClassesRegistered() {
-        Iterator<Class> classes = getIdentityMaps().keySet().iterator();
+        Iterator<Class<?>> classes = getIdentityMaps().keySet().iterator();
         Vector results = new Vector(getIdentityMaps().size());
         while (classes.hasNext()) {
             results.add(classes.next().getName());
@@ -798,7 +798,7 @@
     /**
      * Get the object from the identity map which has the given primary key and class.
      */
-    public Object getFromIdentityMap(Object key, Class theClass, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object key, Class<?> theClass, ClassDescriptor descriptor) {
         return getFromIdentityMap(key, theClass, true, descriptor);
     }
 
@@ -806,7 +806,7 @@
      * Get the object from the identity map which has the given primary key and class.
      * Only return the object if it has not been invalidated.
      */
-    public Object getFromIdentityMap(Object key, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object key, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         if (key == null) {
             return null;
         }
@@ -846,7 +846,7 @@
         return domainObject;
     }
 
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         UnitOfWorkImpl unitOfWork = (conforming) ? (UnitOfWorkImpl)this.session : null;
         this.session.startOperationProfile(SessionProfiler.Caching);
         try {
@@ -923,7 +923,7 @@
      * Get the object from the cache with the given primary key and class.
      * Do not return the object if it was invalidated.
      */
-    public Object getFromIdentityMapWithDeferredLock(Object key, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMapWithDeferredLock(Object key, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         if (key == null) {
             return null;
         }
@@ -982,7 +982,7 @@
         if (descriptor.hasInheritance()) {
             descriptor = descriptor.getInheritancePolicy().getRootParentDescriptor();
         }
-        Class descriptorClass = descriptor.getJavaClass();
+        Class<?> descriptorClass = descriptor.getJavaClass();
 
         // PERF: First check if same as lastAccessedIdentityMap to avoid lookup.
         IdentityMap tempMap = this.lastAccessedIdentityMap;
@@ -1014,7 +1014,7 @@
         return identityMap;
     }
 
-    protected Map<Class, IdentityMap> getIdentityMaps() {
+    protected Map<Class<?>, IdentityMap> getIdentityMaps() {
         return identityMaps;
     }
 
@@ -1116,7 +1116,7 @@
      * Get the wrapper object from the cache key associated with the given primary key,
      * this is used for EJB.
      */
-    public Object getWrapper(Object primaryKey, Class theClass) {
+    public Object getWrapper(Object primaryKey, Class<?> theClass) {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
         IdentityMap map = getIdentityMap(descriptor, false);
         Object wrapper;
@@ -1152,7 +1152,7 @@
     /**
      * Retrieve the write lock value of the cache key associated with the given primary key,
      */
-    public Object getWriteLockValue(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public Object getWriteLockValue(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         if (primaryKey == null) {
             return null;
         }
@@ -1177,7 +1177,7 @@
      * Reset the identity map for only the instances of the class.
      * For inheritance the user must make sure that they only use the root class.
      */
-    public void initializeIdentityMap(Class theClass) throws EclipseLinkException {
+    public void initializeIdentityMap(Class<?> theClass) throws EclipseLinkException {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
 
         if (descriptor == null) {
@@ -1187,7 +1187,7 @@
             throw ValidationException.childDescriptorsDoNotHaveIdentityMap();
         }
         // Bug 3736313 - look up identity map by descriptor's java class
-        Class javaClass = descriptor.getJavaClass();
+        Class<?> javaClass = descriptor.getJavaClass();
         IdentityMap identityMap = buildNewIdentityMap(descriptor);
         getIdentityMaps().put(javaClass, identityMap);
         clearLastAccessedIdentityMap();
@@ -1205,7 +1205,7 @@
      * Used to print all the objects in the identity map of the passed in class.
      * The output of this method will be logged to this session's SessionLog at SEVERE level.
      */
-    public void printIdentityMap(Class businessClass) {
+    public void printIdentityMap(Class<?> businessClass) {
         String cr = Helper.cr();
         ClassDescriptor descriptor = this.session.getDescriptor(businessClass);
         int cacheCounter = 0;
@@ -1334,7 +1334,7 @@
      * Used to print all the Locks in the specified identity map in this session.
      * The output of this method will be logged to this session's SessionLog at FINEST level.
      */
-    public void printLocks(Class theClass) {
+    public void printLocks(Class<?> theClass) {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
         StringWriter writer = new StringWriter();
         HashMap threadCollection = new HashMap();
@@ -1432,7 +1432,7 @@
                     this.queryResults.put(queryKey, map);
                     // Mark the query to be invalidated for the query classes.
                     if (query.getQueryResultsCachePolicy().getInvalidateOnChange()) {
-                        for (Class queryClass : query.getQueryResultsCachePolicy().getInvalidationClasses()) {
+                        for (Class<?> queryClass : query.getQueryResultsCachePolicy().getInvalidationClasses()) {
                             Set invalidations = this.queryResultsInvalidationsByClass.get(queryClass);
                             if (invalidations == null) {
                                 invalidations = new HashSet();
@@ -1487,7 +1487,7 @@
     /**
      * Remove the object from the object cache.
      */
-    public Object removeFromIdentityMap(Object key, Class domainClass, ClassDescriptor descriptor, Object objectToRemove) {
+    public Object removeFromIdentityMap(Object key, Class<?> domainClass, ClassDescriptor descriptor, Object objectToRemove) {
         if (key == null) {
             return null;
         }
@@ -1535,7 +1535,7 @@
      * Update the wrapper object the cache key associated with the given primary key,
      * this is used for EJB.
      */
-    public void setWrapper(Object primaryKey, Class theClass, Object wrapper) {
+    public void setWrapper(Object primaryKey, Class<?> theClass, Object wrapper) {
         ClassDescriptor descriptor = this.session.getDescriptor(theClass);
         IdentityMap map = getIdentityMap(descriptor, false);
 
@@ -1557,7 +1557,7 @@
     /**
      * Update the write lock value of the cache key associated with the given primary key,
      */
-    public void setWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue) {
+    public void setWriteLockValue(Object primaryKey, Class<?> theClass, Object writeLockValue) {
         if (primaryKey == null) {
             return;
         }
@@ -1586,7 +1586,7 @@
      * 2. EJB container-generated classes broke the inheritance hierarchy. Need to use associated descriptor to track
      *    the relationship. CR4005-2612426, King-Sept-18-2002
      */
-    protected Object checkForInheritance(Object domainObject, Class superClass, ClassDescriptor descriptor) {
+    protected Object checkForInheritance(Object domainObject, Class<?> superClass, ClassDescriptor descriptor) {
         if ((domainObject != null) && ((domainObject.getClass() != superClass) && (!superClass.isInstance(domainObject)))) {
             // Before returning null, check if we are using EJB inheritance.
             if (descriptor.hasInheritance() && descriptor.getInheritancePolicy().getUseDescriptorsToValidateInheritedObjects()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/NoIdentityMap.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/NoIdentityMap.java
index a21c6f6..c0de511 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/NoIdentityMap.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/identitymaps/NoIdentityMap.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
@@ -89,7 +89,7 @@
      * Return 0 as no objects are cached.
      */
     @Override
-    public int getSize(Class myClass, boolean recurse) {
+    public int getSize(Class<?> myClass, boolean recurse) {
         return 0;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/ContainerIndirectionPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/ContainerIndirectionPolicy.java
index 6a31b46..05183ae 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/ContainerIndirectionPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/ContainerIndirectionPolicy.java
@@ -47,9 +47,9 @@
  * @since 2.5.0.5
  */
 public class ContainerIndirectionPolicy extends BasicIndirectionPolicy {
-    private Class containerClass;
+    private Class<?> containerClass;
     private String containerClassName;
-    private transient Constructor containerConstructor;
+    private transient Constructor<?> containerConstructor;
 
     /**
      * INTERNAL:
@@ -144,7 +144,7 @@
     /**
      * Returns the Container class which implements IndirectContainer.
      */
-    public Class getContainerClass() {
+    public Class<?> getContainerClass() {
         return containerClass;
     }
 
@@ -227,7 +227,7 @@
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try{
-                    this.containerConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(getContainerClass(), new Class[] { ClassConstants.ValueHolderInterface_Class }, false));
+                    this.containerConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(getContainerClass(), new Class<?>[] { ClassConstants.ValueHolderInterface_Class }, false));
                 }catch (PrivilegedActionException ex){
                     if (ex.getCause() instanceof NoSuchMethodException){
                         throw (NoSuchMethodException) ex.getCause();
@@ -235,7 +235,7 @@
                     throw (RuntimeException)ex.getCause();
                 }
             }else{
-                this.containerConstructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class[] { ClassConstants.ValueHolderInterface_Class }, false);
+                this.containerConstructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class<?>[] { ClassConstants.ValueHolderInterface_Class }, false);
             }
             return;
         } catch (NoSuchMethodException nsme) {// DO NOTHING, exception thrown at end
@@ -245,7 +245,7 @@
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try{
-                    this.containerConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(getContainerClass(), new Class[0], false));
+                    this.containerConstructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(getContainerClass(), new Class<?>[0], false));
                 }catch (PrivilegedActionException ex){
                     if (ex.getCause() instanceof NoSuchMethodException){
                         throw (NoSuchMethodException) ex.getCause();
@@ -253,7 +253,7 @@
                     throw (RuntimeException)ex.getCause();
                 }
             }else{
-                this.containerConstructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class[0], false);
+                this.containerConstructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class<?>[0], false);
             }
             return;
         } catch (NoSuchMethodException nsme) {// DO NOTHING, exception thrown at end
@@ -331,7 +331,7 @@
     /**
      * Sets the Container class which implements IndirectContainer
      */
-    public void setContainerClass(Class containerClass) {
+    public void setContainerClass(Class<?> containerClass) {
         this.containerClass = containerClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/TransparentIndirectionPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/TransparentIndirectionPolicy.java
index 815687c..9f3c2e1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/TransparentIndirectionPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/indirection/TransparentIndirectionPolicy.java
@@ -295,7 +295,7 @@
      * INTERNAL:
      *    Return the container class for the mapping.
      */
-    protected Class getContainerClass() {
+    protected Class<?> getContainerClass() {
         return this.getContainerPolicy().getContainerClass();
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Context.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Context.java
index d73dc24..631430f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Context.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Context.java
@@ -129,7 +129,7 @@
          * may be mapped by more that one of the projects used to create the
          * Context, this method will return the first match.
          */
-        protected ABSTRACT_SESSION getSession(Class clazz) {
+        protected ABSTRACT_SESSION getSession(Class<?> clazz) {
             if (null == clazz) {
                 return null;
             }
@@ -456,7 +456,7 @@
      * may be mapped by more that one of the projects used to create the
      * Context, this method will return the first match.
      */
-    public ABSTRACT_SESSION getSession(Class clazz) {
+    public ABSTRACT_SESSION getSession(Class<?> clazz) {
         return contextState.getSession(clazz);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/CycleRecoverableContextProxy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/CycleRecoverableContextProxy.java
index f954dd4..36813ff 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/CycleRecoverableContextProxy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/CycleRecoverableContextProxy.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
@@ -37,7 +37,7 @@
 
     public static <A> A getProxy(Class<A> cycleRecoverableContextClass, Object marshaller) {
         return (A) Proxy.newProxyInstance(cycleRecoverableContextClass.getClassLoader(),
-                new Class[] { cycleRecoverableContextClass },
+                new Class<?>[] { cycleRecoverableContextClass },
                 new CycleRecoverableContextProxy(marshaller));
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/FieldTransformerNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/FieldTransformerNodeValue.java
index bd71592..965e4e8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/FieldTransformerNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/FieldTransformerNodeValue.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
@@ -95,7 +95,7 @@
         unmarshalRecord.resetStringBuffer();
         ConversionManager conversionManager = unmarshalRecord.getConversionManager();
         if (unmarshalRecord.getTypeQName() != null) {
-            Class typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
+            Class<?> typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
             value = conversionManager.convertObject(value, typeClass, unmarshalRecord.getTypeQName());
         } else {
             value = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, conversionManager, unmarshalRecord);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/IDResolver.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/IDResolver.java
index 9d35310..d728d75 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/IDResolver.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/IDResolver.java
@@ -53,7 +53,7 @@
      * @return a <code>Callable</code> that will return the resolved object.
      *
      */
-    public abstract Callable<?> resolve(Object id, Class type) throws SAXException;
+    public abstract Callable<?> resolve(Object id, Class<?> type) throws SAXException;
 
     /**
      * <p>
@@ -66,7 +66,7 @@
      * @return a <code>Callable</code> that will return the resolved object.
      *
      */
-    public abstract Callable<?> resolve(Map<String, Object> id, Class type) throws SAXException;
+    public abstract Callable<?> resolve(Map<String, Object> id, Class<?> type) throws SAXException;
 
     /**
      * <p>
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ObjectBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ObjectBuilder.java
index d85b71c..b226316 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ObjectBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ObjectBuilder.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -40,7 +40,7 @@
 
     XMLRecord buildRow(XMLRecord record, Object object, CoreAbstractSession session, MARSHALLER marshaller, XPathFragment rootFragment);
 
-    Class classFromRow(UnmarshalRecord record, ABSTRACT_SESSION session);
+    Class<?> classFromRow(UnmarshalRecord record, ABSTRACT_SESSION session);
 
     ABSTRACT_RECORD createRecord(ABSTRACT_SESSION session);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/QNameInheritancePolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/QNameInheritancePolicy.java
index 85c348e..da8ccac 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/QNameInheritancePolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/QNameInheritancePolicy.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
@@ -141,7 +141,7 @@
                 if (shouldUseClassNameAsIndicator()) {
                     getClassIndicatorField().setType(CoreClassConstants.STRING);
                 } else if (!getClassIndicatorMapping().isEmpty()) {
-                    Class type = null;
+                    Class<?> type = null;
                     Iterator fieldValuesEnum = getClassIndicatorMapping().values().iterator();
                     while (fieldValuesEnum.hasNext() && (type == null)) {
                         Object value = fieldValuesEnum.next();
@@ -230,7 +230,7 @@
      * This method is invoked only for the abstract descriptors.
      */
     @Override
-    public Class classFromRow(AbstractRecord rowFromDatabase, AbstractSession session) throws DescriptorException {
+    public Class<?> classFromRow(AbstractRecord rowFromDatabase, AbstractSession session) throws DescriptorException {
         ((XMLRecord) rowFromDatabase).setSession(session);
         if (hasClassExtractor() || shouldUseClassNameAsIndicator()) {
             return super.classFromRow(rowFromDatabase, session);
@@ -245,7 +245,7 @@
             return null;
         }
 
-        Class concreteClass;
+        Class<?> concreteClass;
         if (indicator instanceof String) {
             boolean namespaceAware = ((XMLRecord) rowFromDatabase).isNamespaceAware();
             String indicatorValue = (String)indicator;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Reference.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Reference.java
index 7dd1f1d..f6c522f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Reference.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Reference.java
@@ -30,7 +30,7 @@
 public class Reference {
     protected Mapping mapping;        // mapping associated with this reference
     protected Object sourceObject;        // the source object instance
-    protected Class targetClass;        // the reference class
+    protected Class<?> targetClass;        // the reference class
     protected Object primaryKey;        // primary key values for cache lookup - used in single case
     protected HashMap primaryKeyMap;    // map of primary key values for cache lookup - used in collection case
     private Setting setting;
@@ -54,7 +54,7 @@
     /**
      * Constructor typically used in the collection case.
      */
-    public Reference(Mapping mapping, Object source, Class target, HashMap primaryKeyMap, Object container) {
+    public Reference(Mapping mapping, Object source, Class<?> target, HashMap primaryKeyMap, Object container) {
         this.mapping = mapping;
         sourceObject = source;
         targetClass = target;
@@ -65,7 +65,7 @@
     /**
      * Constructor typically used in the single case.
      */
-    public Reference(Mapping mapping, Object source, Class target, Object primaryKey) {
+    public Reference(Mapping mapping, Object source, Class<?> target, Object primaryKey) {
         this.mapping = mapping;
         sourceObject = source;
         targetClass = target;
@@ -110,7 +110,7 @@
      * Return the target (reference) class for this reference.
      *
      */
-    public Class getTargetClass() {
+    public Class<?> getTargetClass() {
         return targetClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ReferenceResolver.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ReferenceResolver.java
index 7d4733b..a03ffbd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ReferenceResolver.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/ReferenceResolver.java
@@ -86,7 +86,7 @@
     /**
      * Speed-up cache that was introduced in 2.5 instead of the previous speed-up mechanisms using session cache.
      */
-    private Map<Class, Map<Object, Object>> cache;
+    private Map<Class<?>, Map<Object, Object>> cache;
 
     /**
      * The default constructor initializes the list of References.
@@ -304,7 +304,7 @@
      *
      * @since EclipseLink 2.5.0
      */
-    public void putValue(final Class clazz, final Object key, final Object object) {
+    public void putValue(final Class<?> clazz, final Object key, final Object object) {
         Map<Object, Object> keyToObject = cache.get(clazz);
         if (null == keyToObject) {
             keyToObject = new HashMap<>();
@@ -553,7 +553,7 @@
      */
     private Object getValue(final CoreAbstractSession session, final Reference reference, final CacheId primaryKey,
                             final ErrorHandler handler) {
-        final Class referenceTargetClass = reference.getTargetClass();
+        final Class<?> referenceTargetClass = reference.getTargetClass();
         if (null == referenceTargetClass || referenceTargetClass == CoreClassConstants.OBJECT) {
             for (Object entry : session.getDescriptors().values()) {
                 Object value = null;
@@ -562,7 +562,7 @@
                 if (null != pkFields && 1 == pkFields.size()) {
                     Field pkField = (Field) pkFields.get(0);
                     pkField = (Field) targetDescriptor.getTypedField(pkField);
-                    final Class targetType = pkField.getType();
+                    final Class<?> targetType = pkField.getType();
                     if (targetType == CoreClassConstants.STRING || targetType == CoreClassConstants.OBJECT) {
                         value = getValue(targetDescriptor.getJavaClass(), primaryKey);
                     } else {
@@ -630,7 +630,7 @@
     /**
      * Retrieves value from {@link #cache}.
      */
-    private Object getValue(Class clazz, CacheId primaryKey) {
+    private Object getValue(Class<?> clazz, CacheId primaryKey) {
         Map<Object, Object> keyToObject = cache.get(clazz);
         if (null != keyToObject) {
             return keyToObject.get(primaryKey);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Root.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Root.java
index 35a4cb4..6f1caeb 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Root.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Root.java
@@ -35,7 +35,7 @@
     protected String schemaLocation;
     protected String noNamespaceSchemaLocation;
     protected QName schemaType;
-    protected Class declaredType;
+    protected Class<?> declaredType;
     protected boolean nil;
 
     /**
@@ -209,7 +209,7 @@
      *
      * @param type The declared type of this XMLRoot object.
      */
-    public void setDeclaredType(Class type) {
+    public void setDeclaredType(Class<?> type) {
         this.declaredType = type;
     }
 
@@ -220,7 +220,7 @@
      *
      * @return the declared type
      */
-    public Class getDeclaredType() {
+    public Class<?> getDeclaredType() {
         return this.declaredType;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/TreeObjectBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/TreeObjectBuilder.java
index 9fc08f6..654340d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/TreeObjectBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/TreeObjectBuilder.java
@@ -193,7 +193,7 @@
     }
 
     @Override
-    public Class classFromRow(org.eclipse.persistence.internal.oxm.record.UnmarshalRecord unmarshalRecord, AbstractSession session) {
+    public Class<?> classFromRow(org.eclipse.persistence.internal.oxm.record.UnmarshalRecord unmarshalRecord, AbstractSession session) {
         UnmarshalRecord inheritanceRecord = new UnmarshalRecord(unmarshalRecord);
         return descriptor.getInheritancePolicy().classFromRow(inheritanceRecord, session);
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Unmarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Unmarshaller.java
index 50fabae..7fd81c8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Unmarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/Unmarshaller.java
@@ -56,7 +56,7 @@
     /**
      * INTERNAL
      */
-    public abstract UnmarshalRecord createRootUnmarshalRecord(Class clazz);
+    public abstract UnmarshalRecord createRootUnmarshalRecord(Class<?> clazz);
 
     /**
      * INTERNAL
@@ -131,7 +131,7 @@
      * Get the class that will be instantiated to handled unmapped content
      * Class must implement the org.eclipse.persistence.oxm.unmapped.UnmappedContentHandler interface
      */
-    public abstract Class getUnmappedContentHandlerClass();
+    public abstract Class<?> getUnmappedContentHandlerClass();
 
     /**
      * INTERNAL:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryAttachmentHandler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryAttachmentHandler.java
index b636ba9..8bc99cc 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryAttachmentHandler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryAttachmentHandler.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
@@ -94,7 +94,7 @@
                 //Get the attachment and set it in the object.
                 XMLAttachmentUnmarshaller attachmentUnmarshaller = record.getUnmarshaller().getAttachmentUnmarshaller();
                 Object data = null;
-                Class attributeClassification = null;
+                Class<?> attributeClassification = null;
                 if(isCollection) {
                     attributeClassification = ((BinaryDataCollectionMapping)mapping).getAttributeElementClass();
                 } else {
@@ -149,7 +149,7 @@
         return this.c_id;
     }
 
-    public Object getObjectValueFromDataHandler(DataHandler handler, Class cls) {
+    public Object getObjectValueFromDataHandler(DataHandler handler, Class<?> cls) {
         CoreContainerPolicy cp = null;
         if(isCollection){
             cp = mapping.getContainerPolicy();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataCollectionMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataCollectionMappingNodeValue.java
index 5b931b8..34ee133 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataCollectionMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataCollectionMappingNodeValue.java
@@ -168,7 +168,7 @@
         this.endElement(xPathFragment, unmarshalRecord);
     }
 
-    public DataHandler getDataHandlerForObjectValue(Object obj, Class classification) {
+    public DataHandler getDataHandlerForObjectValue(Object obj, Class<?> classification) {
         if (classification == DataHandler.class) {
             return (DataHandler) obj;
         }
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 fc98922..c52ceaa 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
@@ -46,10 +46,10 @@
 
 public class XMLBinaryDataHelper {
     protected static XMLBinaryDataHelper binaryDataHelper;
-    public Class DATA_HANDLER;
-    public Class IMAGE;
-    public Class SOURCE;
-    public Class MULTIPART;
+    public Class<?> DATA_HANDLER;
+    public Class<?> IMAGE;
+    public Class<?> SOURCE;
+    public Class<?> MULTIPART;
 
     public XMLBinaryDataHelper() {
         if (DATA_HANDLER == null) {
@@ -76,7 +76,7 @@
         MULTIPART = jakarta.mail.internet.MimeMultipart.class;
     }
 
-    public Object convertObject(Object obj, Class classification, CoreAbstractSession session, CoreContainerPolicy cp) {
+    public Object convertObject(Object obj, Class<?> classification, CoreAbstractSession session, CoreContainerPolicy cp) {
         if( obj instanceof List && cp != null){
             List theList = (List)obj;
             Object container = cp.containerInstance(theList.size());
@@ -89,7 +89,7 @@
         return convertSingleObject(obj, classification, session);
 
     }
-    public Object convertSingleObject(Object obj, Class classification, CoreAbstractSession session) {
+    public Object convertSingleObject(Object obj, Class<?> classification, CoreAbstractSession session) {
         if (classification == DATA_HANDLER) {
             return convertObjectToDataHandler(obj, session);
         } else if (classification == IMAGE) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataMappingNodeValue.java
index a40263d..cbf2a74 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLBinaryDataMappingNodeValue.java
@@ -300,7 +300,7 @@
         return xmlBinaryDataMapping.getNullPolicy().getIsSetPerformedForAbsentNode();
     }
 
-    public DataHandler getDataHandlerForObjectValue(Object obj, Class classification) {
+    public DataHandler getDataHandlerForObjectValue(Object obj, Class<?> classification) {
         if (classification == DataHandler.class) {
             return (DataHandler) obj;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceCollectionMappingMarshalNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceCollectionMappingMarshalNodeValue.java
index 87e9e12..6a40da0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceCollectionMappingMarshalNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceCollectionMappingMarshalNodeValue.java
@@ -40,7 +40,7 @@
 public class XMLChoiceCollectionMappingMarshalNodeValue extends MappingNodeValue implements ContainerValue {
     private ChoiceCollectionMapping xmlChoiceCollectionMapping;
     private Map<Field, NodeValue> fieldToNodeValues;
-    private Map<Class, List<FieldNodeValue>> classToNodeValues;
+    private Map<Class<?>, List<FieldNodeValue>> classToNodeValues;
     private NodeValue choiceElementNodeValue;
     private Field xmlField;
     private boolean isMixedNodeValue;
@@ -99,7 +99,7 @@
         this.fieldToNodeValues = fieldToNodeValues;
         this.classToNodeValues = new HashMap<>();
         for(Field nextField:fieldToNodeValues.keySet()) {
-            Class associatedClass = ((Map<Field, Class>)this.xmlChoiceCollectionMapping.getFieldToClassMappings()).get(nextField);
+            Class<?> associatedClass = ((Map<Field, Class<?>>)this.xmlChoiceCollectionMapping.getFieldToClassMappings()).get(nextField);
 
             if (classToNodeValues.containsKey(associatedClass)) {
                 classToNodeValues.get(associatedClass).add(new FieldNodeValue(nextField, fieldToNodeValues.get(nextField)));
@@ -112,8 +112,8 @@
 
         }
 
-        Collection<Class> classes = this.classToNodeValues.keySet();
-        for(Class nextClass:((Map<Class, Mapping>)this.xmlChoiceCollectionMapping.getChoiceElementMappingsByClass()).keySet()) {
+        Collection<Class<?>> classes = this.classToNodeValues.keySet();
+        for(Class<?> nextClass:((Map<Class<?>, Mapping>)this.xmlChoiceCollectionMapping.getChoiceElementMappingsByClass()).keySet()) {
             //Create node values for any classes that aren't already processed
             if(!(classes.contains(nextClass))) {
         Field field = (Field) xmlChoiceCollectionMapping.getClassToFieldMappings().get(nextClass);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceObjectMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceObjectMappingNodeValue.java
index dd2a7e3..b4a82e4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceObjectMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLChoiceObjectMappingNodeValue.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
@@ -46,7 +46,7 @@
 public class XMLChoiceObjectMappingNodeValue extends MappingNodeValue {
 
     private NodeValue choiceElementNodeValue;
-    private Map<Class, NodeValue> choiceElementNodeValues;
+    private Map<Class<?>, NodeValue> choiceElementNodeValues;
     private ChoiceObjectMapping xmlChoiceMapping;
     //The first node value of the choice will be registered as a null capable value. If any
     //of the choice elements get hit, this needs to be removed as a null value.
@@ -68,7 +68,7 @@
         Mapping xmlMapping = (Mapping) xmlChoiceMapping.getChoiceElementMappings().get(xmlField);
         choiceElementNodeValue = getNodeValueForMapping(xmlMapping);
         //check for mappings to other classes with the same field
-        for(Entry<Class, Mapping> entry: ((Map<Class, Mapping>)xmlChoiceMapping.getChoiceElementMappingsByClass()).entrySet()) {
+        for(Entry<Class<?>, Mapping> entry: ((Map<Class<?>, Mapping>)xmlChoiceMapping.getChoiceElementMappingsByClass()).entrySet()) {
             Field field = (Field) xmlChoiceMapping.getClassToFieldMappings().get(entry.getKey());
             if(field != null && field.equals(this.xmlField)) {
                 Mapping mappingForClass = entry.getValue();
@@ -113,7 +113,7 @@
 
     @Override
     public boolean marshalSingleValue(XPathFragment xPathFragment, MarshalRecord marshalRecord, Object object, Object value, CoreAbstractSession session, NamespaceResolver namespaceResolver, MarshalContext marshalContext) {
-        Class valueClass = null;
+        Class<?> valueClass = null;
         if (value instanceof Root) {
             Root root = (Root)value;
             for(CoreField next: (List<CoreField>) this.xmlChoiceMapping.getFields()) {
@@ -143,7 +143,7 @@
                 valueClass = value.getClass();
             }
             Field fieldForClass = null;
-            Class theClass = valueClass;
+            Class<?> theClass = valueClass;
             while(theClass != null) {
                 fieldForClass = (Field) xmlChoiceMapping.getClassToFieldMappings().get(valueClass);
                 if(fieldForClass != null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCollectionReferenceMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCollectionReferenceMappingNodeValue.java
index 9a2d5ca..d0e0352 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCollectionReferenceMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCollectionReferenceMappingNodeValue.java
@@ -111,7 +111,7 @@
 
         ConversionManager conversionManager = unmarshalRecord.getConversionManager();
         if (unmarshalRecord.getTypeQName() != null) {
-            Class typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
+            Class<?> typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
             value = conversionManager.convertObject(value, typeClass, unmarshalRecord.getTypeQName());
         } else {
             value = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, conversionManager, unmarshalRecord);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeDirectCollectionMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeDirectCollectionMappingNodeValue.java
index 6428aa6..a5fd95d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeDirectCollectionMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeDirectCollectionMappingNodeValue.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,7 +264,7 @@
 
         ConversionManager conversionManager = unmarshalRecord.getConversionManager();
         if (unmarshalRecord.getTypeQName() != null) {
-            Class typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
+            Class<?> typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
             value = conversionManager.convertObject(value, typeClass, unmarshalRecord.getTypeQName());
         } else {
             value = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, conversionManager, unmarshalRecord);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeObjectMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeObjectMappingNodeValue.java
index c55ad0c..1f82dbc 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeObjectMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLCompositeObjectMappingNodeValue.java
@@ -538,7 +538,7 @@
             if(xmlDescriptor != null){
                 if (xmlDescriptor.hasInheritance()) {
                     unmarshalRecord.setAttributes(atts);
-                    Class clazz = ((ObjectBuilder)xmlDescriptor.getObjectBuilder()).classFromRow(unmarshalRecord, unmarshalRecord.getSession());
+                    Class<?> clazz = ((ObjectBuilder)xmlDescriptor.getObjectBuilder()).classFromRow(unmarshalRecord, unmarshalRecord.getSession());
                     if (clazz == null) {
                         // no xsi:type attribute - look for type indicator on the default root element
                         XPathQName leafElementType = unmarshalRecord.getLeafElementType();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLDirectMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLDirectMappingNodeValue.java
index 097e242..79d645d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLDirectMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLDirectMappingNodeValue.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
@@ -204,7 +204,7 @@
         ConversionManager conversionManager = (ConversionManager) session.getDatasourcePlatform().getConversionManager();
         QName typeQName = unmarshalRecord.getTypeQName();
         if (typeQName != null) {
-            Class typeClass = xmlField.getJavaClass(typeQName, conversionManager);
+            Class<?> typeClass = xmlField.getJavaClass(typeQName, conversionManager);
             value = conversionManager.convertObject(value, typeClass, typeQName);
         } else {
             value = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, conversionManager, unmarshalRecord);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLInlineBinaryHandler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLInlineBinaryHandler.java
index edb99fb..1e7dba1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLInlineBinaryHandler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLInlineBinaryHandler.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
@@ -71,7 +71,7 @@
 
        boolean isHex = Constants.HEX_BINARY_QNAME.equals(((XMLField)this.mapping.getField()).getSchemaType());
 
-       Class attributeClassification = null;
+       Class<?> attributeClassification = null;
        AbstractNullPolicy nullPolicy;
        boolean isSwaRef = false;
        CoreContainerPolicy cp = null;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLMarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLMarshaller.java
index b21f9ac..75de99f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLMarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLMarshaller.java
@@ -95,36 +95,36 @@
     private static final String WRITE_TO_STREAM_METHOD_NAME = "writeToStream";
     private static final String WRITE_TO_EVENT_WRITER_METHOD_NAME = "writeToEventWriter";
 
-    protected static Class staxResultClass;
+    protected static Class<?> staxResultClass;
     protected static Method staxResultGetStreamWriterMethod;
     protected static Method staxResultGetEventWriterMethod;
     private static Constructor xmlStreamWriterRecordConstructor;
     private static Constructor xmlEventWriterRecordConstructor;
     protected static Method writeToStreamMethod;
     protected static Method writeToEventWriterMethod;
-    protected static Class domToStreamWriterClass;
-    protected static Class domToEventWriterClass;
+    protected static Class<?> domToStreamWriterClass;
+    protected static Class<?> domToEventWriterClass;
 
     static {
         try {
             staxResultClass = PrivilegedAccessHelper.getClassForName(STAX_RESULT_CLASS_NAME);
             if(staxResultClass != null) {
-                staxResultGetStreamWriterMethod = PrivilegedAccessHelper.getDeclaredMethod(staxResultClass, GET_XML_STREAM_WRITER_METHOD_NAME, new Class[]{});
-                staxResultGetEventWriterMethod = PrivilegedAccessHelper.getDeclaredMethod(staxResultClass, GET_XML_EVENT_WRITER_METHOD_NAME, new Class[]{});
+                staxResultGetStreamWriterMethod = PrivilegedAccessHelper.getDeclaredMethod(staxResultClass, GET_XML_STREAM_WRITER_METHOD_NAME, new Class<?>[]{});
+                staxResultGetEventWriterMethod = PrivilegedAccessHelper.getDeclaredMethod(staxResultClass, GET_XML_EVENT_WRITER_METHOD_NAME, new Class<?>[]{});
             }
             Class<Object> streamWriterRecordClass = PrivilegedAccessHelper.getClassForName(XML_STREAM_WRITER_RECORD_CLASS_NAME);
             Class<Object> streamWriterClass = PrivilegedAccessHelper.getClassForName(XML_STREAM_WRITER_CLASS_NAME);
-            xmlStreamWriterRecordConstructor = PrivilegedAccessHelper.getConstructorFor(streamWriterRecordClass, new Class[]{streamWriterClass}, true);
+            xmlStreamWriterRecordConstructor = PrivilegedAccessHelper.getConstructorFor(streamWriterRecordClass, new Class<?>[]{streamWriterClass}, true);
 
             Class<Object> eventWriterRecordClass = PrivilegedAccessHelper.getClassForName(XML_EVENT_WRITER_RECORD_CLASS_NAME);
             Class<Object> eventWriterClass = PrivilegedAccessHelper.getClassForName(XML_EVENT_WRITER_CLASS_NAME);
-            xmlEventWriterRecordConstructor = PrivilegedAccessHelper.getConstructorFor(eventWriterRecordClass, new Class[]{eventWriterClass}, true);
+            xmlEventWriterRecordConstructor = PrivilegedAccessHelper.getConstructorFor(eventWriterRecordClass, new Class<?>[]{eventWriterClass}, true);
 
             domToStreamWriterClass = PrivilegedAccessHelper.getClassForName(DOM_TO_STREAM_WRITER_CLASS_NAME);
-            writeToStreamMethod = PrivilegedAccessHelper.getMethod(domToStreamWriterClass, WRITE_TO_STREAM_METHOD_NAME, new Class[] {CoreClassConstants.NODE, CoreClassConstants.STRING, CoreClassConstants.STRING, streamWriterClass}, true);
+            writeToStreamMethod = PrivilegedAccessHelper.getMethod(domToStreamWriterClass, WRITE_TO_STREAM_METHOD_NAME, new Class<?>[] {CoreClassConstants.NODE, CoreClassConstants.STRING, CoreClassConstants.STRING, streamWriterClass}, true);
 
             domToEventWriterClass = PrivilegedAccessHelper.getClassForName(DOM_TO_EVENT_WRITER_CLASS_NAME);
-            writeToEventWriterMethod = PrivilegedAccessHelper.getMethod(domToEventWriterClass, WRITE_TO_EVENT_WRITER_METHOD_NAME, new Class[] {CoreClassConstants.NODE, CoreClassConstants.STRING, CoreClassConstants.STRING, eventWriterClass}, true);
+            writeToEventWriterMethod = PrivilegedAccessHelper.getMethod(domToEventWriterClass, WRITE_TO_EVENT_WRITER_METHOD_NAME, new Class<?>[] {CoreClassConstants.NODE, CoreClassConstants.STRING, CoreClassConstants.STRING, eventWriterClass}, true);
 
         } catch (Exception ex) {
             // Do nothing
@@ -259,7 +259,7 @@
      * INTERNAL:
      * Return the descriptor for the root object.
      */
-     protected DESCRIPTOR getDescriptor(Class clazz, ABSTRACT_SESSION session) throws XMLMarshalException {
+     protected DESCRIPTOR getDescriptor(Class<?> clazz, ABSTRACT_SESSION session) throws XMLMarshalException {
          DESCRIPTOR descriptor = (DESCRIPTOR) session.getDescriptor(clazz);
          if (descriptor == null) {
              throw XMLMarshalException.descriptorNotFoundInProject(clazz.getName());
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 b5ff9c0..10294c7 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
@@ -251,7 +251,7 @@
         if (concreteDescriptor.hasInheritance() && (parent == null)) {
             // look for an xsi:type attribute in the xml document
             InheritancePolicy inheritancePolicy = concreteDescriptor.getInheritancePolicy();
-            Class classValue = inheritancePolicy.classFromRow(databaseRow, query.getSession());
+            Class<?> classValue = inheritancePolicy.classFromRow(databaseRow, query.getSession());
             if ((classValue == null) && isXmlDescriptor()) {
                 // no xsi:type attribute - look for type indicator on the
                 // default root element
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectReferenceMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectReferenceMappingNodeValue.java
index 067bfbb..248d298 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectReferenceMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLObjectReferenceMappingNodeValue.java
@@ -114,7 +114,7 @@
         unmarshalRecord.resetStringBuffer();
         ConversionManager conversionManager = unmarshalRecord.getConversionManager();
         if (unmarshalRecord.getTypeQName() != null) {
-            Class typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
+            Class<?> typeClass = xmlField.getJavaClass(unmarshalRecord.getTypeQName(), conversionManager);
             value = conversionManager.convertObject(value, typeClass, unmarshalRecord.getTypeQName());
         } else {
             value = unmarshalRecord.getXMLReader().convertValueBasedOnSchemaType(xmlField, value, conversionManager, unmarshalRecord);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLRelationshipMappingNodeValue.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLRelationshipMappingNodeValue.java
index 64ac06f..dd7ad6c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLRelationshipMappingNodeValue.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLRelationshipMappingNodeValue.java
@@ -62,7 +62,7 @@
         if (xmlDescriptor.hasInheritance()) {
             unmarshalRecord.setAttributes(atts);
             CoreAbstractSession session = unmarshalRecord.getSession();
-            Class classValue = ((ObjectBuilder)xmlDescriptor.getObjectBuilder()).classFromRow(unmarshalRecord, session);
+            Class<?> classValue = ((ObjectBuilder)xmlDescriptor.getObjectBuilder()).classFromRow(unmarshalRecord, session);
             if (classValue == null) {
                 // no xsi:type attribute - look for type indicator on the default root element
                 XPathQName leafElementType = unmarshalRecord.getLeafElementType();
@@ -268,7 +268,7 @@
                 if(qname.equals(Constants.QNAME_QNAME)) {
                     value = conversionManager.buildQNameFromString((String)value, unmarshalRecord);
                 } else {
-                    Class theClass = getClassForQName(qname, conversionManager);
+                    Class<?> theClass = getClassForQName(qname, conversionManager);
                     if (theClass != null) {
                         value = conversionManager.convertObject(value, theClass, qname);
                     }
@@ -279,7 +279,7 @@
         }
     }
 
-    protected Class getClassForQName(QName qname, ConversionManager conversionManager){
+    protected Class<?> getClassForQName(QName qname, ConversionManager conversionManager){
         CoreField field = getMapping().getField();
         if(field != null){
             return ((Field)field).getJavaClass(qname, conversionManager);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLSequencedDescriptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLSequencedDescriptor.java
index 5f15821..b159275 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLSequencedDescriptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLSequencedDescriptor.java
@@ -38,7 +38,7 @@
         }
         if(getGetSettingsMethodName() != null) {
             try {
-                this.getSettingsMethod = PrivilegedAccessHelper.getDeclaredMethod(this.getJavaClass(), this.getGetSettingsMethodName(), new Class[0]);
+                this.getSettingsMethod = PrivilegedAccessHelper.getDeclaredMethod(this.getJavaClass(), this.getGetSettingsMethodName(), new Class<?>[0]);
             } catch(Exception ex) {
 
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLUnmarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLUnmarshaller.java
index 5d480c2..c4960e2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLUnmarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XMLUnmarshaller.java
@@ -101,7 +101,7 @@
     private static final String XML_STREAM_READER_INPUT_SOURCE_CLASS_NAME = "org.eclipse.persistence.internal.oxm.record.XMLStreamReaderInputSource";
     private static final String XML_EVENT_READER_INPUT_SOURCE_CLASS_NAME = "org.eclipse.persistence.internal.oxm.record.XMLEventReaderInputSource";
 
-    private static Class staxSourceClass;
+    private static Class<?> staxSourceClass;
     private static Method staxSourceGetStreamReaderMethod;
     private static Method staxSourceGetEventReaderMethod;
     private static Constructor xmlStreamReaderReaderConstructor;
@@ -147,7 +147,7 @@
     private XMLAttachmentUnmarshaller attachmentUnmarshaller;
     private Properties unmarshalProperties;
 
-    private Class unmappedContentHandlerClass;
+    private Class<?> unmappedContentHandlerClass;
     private StrBuffer stringBuffer;
     private MEDIA_TYPE mediaType;
     private ID_RESOLVER idResolver;
@@ -176,21 +176,21 @@
         try {
             staxSourceClass = PrivilegedAccessHelper.getClassForName(STAX_SOURCE_CLASS_NAME);
             if(staxSourceClass != null) {
-                staxSourceGetStreamReaderMethod = PrivilegedAccessHelper.getDeclaredMethod(staxSourceClass, GET_XML_STREAM_READER_METHOD_NAME, new Class[]{});
-                staxSourceGetEventReaderMethod = PrivilegedAccessHelper.getDeclaredMethod(staxSourceClass, GET_XML_EVENT_READER_METHOD_NAME, new Class[]{});
+                staxSourceGetStreamReaderMethod = PrivilegedAccessHelper.getDeclaredMethod(staxSourceClass, GET_XML_STREAM_READER_METHOD_NAME, new Class<?>[]{});
+                staxSourceGetEventReaderMethod = PrivilegedAccessHelper.getDeclaredMethod(staxSourceClass, GET_XML_EVENT_READER_METHOD_NAME, new Class<?>[]{});
                 Class<Object> xmlStreamReaderInputSourceClass = PrivilegedAccessHelper.getClassForName(XML_STREAM_READER_INPUT_SOURCE_CLASS_NAME);
                 Class<Object> xmlEventReaderInputSourceClass = PrivilegedAccessHelper.getClassForName(XML_EVENT_READER_INPUT_SOURCE_CLASS_NAME);
                 Class<Object> xmlStreamReaderClass = PrivilegedAccessHelper.getClassForName(XML_STREAM_READER_CLASS_NAME);
-                xmlStreamReaderInputSourceConstructor = PrivilegedAccessHelper.getConstructorFor(xmlStreamReaderInputSourceClass, new Class[]{xmlStreamReaderClass}, true);
+                xmlStreamReaderInputSourceConstructor = PrivilegedAccessHelper.getConstructorFor(xmlStreamReaderInputSourceClass, new Class<?>[]{xmlStreamReaderClass}, true);
 
                 Class<Object> xmlEventReaderClass = PrivilegedAccessHelper.getClassForName(XML_EVENT_READER_CLASS_NAME);
-                xmlEventReaderInputSourceConstructor = PrivilegedAccessHelper.getConstructorFor(xmlEventReaderInputSourceClass, new Class[]{xmlEventReaderClass}, true);
+                xmlEventReaderInputSourceConstructor = PrivilegedAccessHelper.getConstructorFor(xmlEventReaderInputSourceClass, new Class<?>[]{xmlEventReaderClass}, true);
 
                 Class<Object> xmlStreamReaderReaderClass = PrivilegedAccessHelper.getClassForName(XML_STREAM_READER_READER_CLASS_NAME);
-                xmlStreamReaderReaderConstructor = PrivilegedAccessHelper.getConstructorFor(xmlStreamReaderReaderClass, new Class[0], true);
+                xmlStreamReaderReaderConstructor = PrivilegedAccessHelper.getConstructorFor(xmlStreamReaderReaderClass, new Class<?>[0], true);
 
                 Class<Object> xmlEventReaderReaderClass = PrivilegedAccessHelper.getClassForName(XML_EVENT_READER_READER_CLASS_NAME);
-                xmlEventReaderReaderConstructor = PrivilegedAccessHelper.getConstructorFor(xmlEventReaderReaderClass, new Class[0], true);
+                xmlEventReaderReaderConstructor = PrivilegedAccessHelper.getConstructorFor(xmlEventReaderReaderClass, new Class<?>[0], true);
             }
         } catch(Exception ex) {
         }
@@ -326,7 +326,7 @@
       * Class must implement the org.eclipse.persistence.oxm.unmapped.UnmappedContentHandler interface
       */
     @Override
-    public Class getUnmappedContentHandlerClass() {
+    public Class<?> getUnmappedContentHandlerClass() {
         return this.unmappedContentHandlerClass;
     }
 
@@ -334,7 +334,7 @@
      * Set the class that will be instantiated to handled unmapped content
      * Class must implement the org.eclipse.persistence.oxm.unmapped.UnmappedContentHandler interface
      */
-    public void setUnmappedContentHandlerClass(Class aClass) {
+    public void setUnmappedContentHandlerClass(Class<?> aClass) {
         this.unmappedContentHandlerClass = aClass;
     }
 
@@ -376,7 +376,7 @@
     * @return the object which resulted from unmarshalling the given file
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(File file, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(File file, Class<?> clazz) throws XMLMarshalException {
         if ((null == file) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -414,7 +414,7 @@
     * @return the object which resulted from unmarshalling the given inputStream
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(InputStream inputStream, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(InputStream inputStream, Class<?> clazz) throws XMLMarshalException {
         if ((null == inputStream) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -452,7 +452,7 @@
     * @return the object which resulted from unmarshalling the given reader
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(Reader reader, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(Reader reader, Class<?> clazz) throws XMLMarshalException {
         if ((null == reader) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -490,7 +490,7 @@
     * @return the object which resulted from unmarshalling the given url
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(URL url, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(URL url, Class<?> clazz) throws XMLMarshalException {
         if ((null == url) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -528,7 +528,7 @@
     * @return the object which resulted from unmarshalling the given inputSource
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(InputSource inputSource, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(InputSource inputSource, Class<?> clazz) throws XMLMarshalException {
         if ((null == inputSource) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -569,7 +569,7 @@
     * @return the object which resulted from unmarshalling the given node
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(Node node, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(Node node, Class<?> clazz) throws XMLMarshalException {
         if ((null == node) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -652,7 +652,7 @@
     * @return the object which resulted from unmarshalling the given source
     * @throws XMLMarshalException if an error occurred during unmarshalling
     */
-    public Object unmarshal(Source source, Class clazz) throws XMLMarshalException {
+    public Object unmarshal(Source source, Class<?> clazz) throws XMLMarshalException {
         if ((null == source) || (null == clazz)) {
             throw XMLMarshalException.nullArgumentException();
         }
@@ -691,7 +691,7 @@
         return result;
     }
 
-    public Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class clazz) {
+    public Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class<?> clazz) {
         Object result = this.platformUnmarshaller.unmarshal(xmlReader, inputSource, clazz);
         logUnmarshall(result);
         return result;
@@ -935,7 +935,7 @@
      * @since 2.5.0
      */
     @Override
-    public UnmarshalRecord createRootUnmarshalRecord(Class clazz) {
+    public UnmarshalRecord createRootUnmarshalRecord(Class<?> clazz) {
         return new XMLRootRecord(clazz, this);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathEngine.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathEngine.java
index 18c3edd..09031e1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathEngine.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathEngine.java
@@ -332,7 +332,7 @@
             try {
                 if (nextQName != null) {
                     ConversionManager conversionManager = (ConversionManager)session.getDatasourcePlatform().getConversionManager();
-                    Class javaClass = xmlField.getJavaClass(nextQName, conversionManager);
+                    Class<?> javaClass = xmlField.getJavaClass(nextQName, conversionManager);
                     value = conversionManager.convertObject(value, javaClass, nextQName);
                     schemaType = nextQName;
                     break;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathObjectBuilder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathObjectBuilder.java
index 487197f..93636c1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathObjectBuilder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/XPathObjectBuilder.java
@@ -87,8 +87,8 @@
 
     private List<ContainerValue> containerValues;
     private int counter = 0;
-    private Class cycleRecoverableClass = null;
-    private Class cycleRecoverableContextClass = null;
+    private Class<?> cycleRecoverableClass = null;
+    private Class<?> cycleRecoverableContextClass = null;
     private List<ContainerValue> defaultEmptyContainerValues; //a list of container values that have isDefaultEmptyContainer() set to true
     private CoreDescriptor descriptor;
     private volatile boolean initialized = false;
@@ -262,7 +262,7 @@
     }
 
     @Override
-    public Class classFromRow(UnmarshalRecord record, CoreAbstractSession session) {
+    public Class<?> classFromRow(UnmarshalRecord record, CoreAbstractSession session) {
         return descriptor.getInheritancePolicy().classFromRow((CoreAbstractRecord) record, session);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/accessor/OrmAttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/accessor/OrmAttributeAccessor.java
index f834b01..06aa7ab 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/accessor/OrmAttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/accessor/OrmAttributeAccessor.java
@@ -112,7 +112,7 @@
     }
 
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         return oxmAccessor.getAttributeClass();
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/AnyCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/AnyCollectionMapping.java
index 74181b2..43c9aef 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/AnyCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/AnyCollectionMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -64,7 +64,7 @@
      * <p>jdk1.2.x: The container class must implement (directly or indirectly) the Collection interface.
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
-    void useCollectionClass(Class concreteContainerClass);
+    void useCollectionClass(Class<?> concreteContainerClass);
 
     boolean usesXMLRoot();
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataCollectionMapping.java
index ff2db7c..f32dded 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataCollectionMapping.java
@@ -40,7 +40,7 @@
     UNMARSHALLER extends Unmarshaller,
     XML_RECORD extends XMLRecord> extends Mapping<ABSTRACT_SESSION, ATTRIBUTE_ACCESSOR, CONTAINER_POLICY, DESCRIPTOR, FIELD, XML_RECORD>, XMLContainerMapping, XMLConverterMapping<MARSHALLER, SESSION, UNMARSHALLER> {
 
-    Class getAttributeElementClass();
+    Class<?> getAttributeElementClass();
 
     /**
      * INTERNAL
@@ -64,7 +64,7 @@
      * This is optional - if left null, the elements will be added
      * to the object's collection unconverted.
      */
-    void setAttributeElementClass(Class attributeElementClass);
+    void setAttributeElementClass(Class<?> attributeElementClass);
 
     /**
      * ADVANCED:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataMapping.java
index da7681a..893ccca 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/BinaryDataMapping.java
@@ -64,7 +64,7 @@
      * the base data type must be explicitly specified in the mapping to tell EclipseLink to force
      * the instance variable value to that data type
      */
-    void setAttributeClassification(Class attributeClassification);
+    void setAttributeClassification(Class<?> attributeClassification);
 
     /**
      * INTERNAL:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceCollectionMapping.java
index 0562996..e32d86c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceCollectionMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -56,21 +56,21 @@
 
     Map<XML_FIELD, XML_MAPPING> getChoiceElementMappings();
 
-    Map<Class, XML_MAPPING> getChoiceElementMappingsByClass();
+    Map<Class<?>, XML_MAPPING> getChoiceElementMappingsByClass();
 
     List<XMLChoiceFieldToClassAssociation> getChoiceFieldToClassAssociations();
 
     Map<String, XML_FIELD> getClassNameToFieldMappings();
 
-    Map<Class, XML_FIELD> getClassToFieldMappings();
+    Map<Class<?>, XML_FIELD> getClassToFieldMappings();
 
-    Map<Class, List<XML_FIELD>> getClassToSourceFieldsMappings();
+    Map<Class<?>, List<XML_FIELD>> getClassToSourceFieldsMappings();
 
     CONVERTER getConverter();
 
     CONVERTER getConverter(XML_FIELD field);
 
-    Map<XML_FIELD, Class> getFieldToClassMappings();
+    Map<XML_FIELD, Class<?>> getFieldToClassMappings();
 
     XML_MAPPING getMixedContentMapping();
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceObjectMapping.java
index 1c40961..406c84d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ChoiceObjectMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -54,15 +54,15 @@
 
     Map<XML_FIELD, XML_MAPPING> getChoiceElementMappings();
 
-    Map<Class, XML_MAPPING> getChoiceElementMappingsByClass();
+    Map<Class<?>, XML_MAPPING> getChoiceElementMappingsByClass();
 
     List<XMLChoiceFieldToClassAssociation> getChoiceFieldToClassAssociations();
 
     Map<String, XML_FIELD> getClassNameToFieldMappings();
 
-    Map<Class, XML_FIELD> getClassToFieldMappings();
+    Map<Class<?>, XML_FIELD> getClassToFieldMappings();
 
-    Map<Class, List<XML_FIELD>> getClassToSourceFieldsMappings();
+    Map<Class<?>, List<XML_FIELD>> getClassToSourceFieldsMappings();
 
     CONVERTER getConverter();
 
@@ -70,7 +70,7 @@
 
     List<FIELD> getFields();
 
-    Map<XML_FIELD, Class> getFieldToClassMappings();
+    Map<XML_FIELD, Class<?>> getFieldToClassMappings();
 
     Object getFieldValue(Object object, CoreAbstractSession session, AbstractMarshalRecord marshalRecord);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeCollectionMapping.java
index 8bde280..64b5d4e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeCollectionMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -45,7 +45,7 @@
      * <p>jdk1.2.x: The container class must implement (directly or indirectly) the Collection interface.
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
-    void useCollectionClass(Class concreteContainerClass);
+    void useCollectionClass(Class<?> concreteContainerClass);
 
     void useCollectionClassName(String concreteContainerClassName);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeObjectMapping.java
index 33aac75..8a28f5d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/CompositeObjectMapping.java
@@ -49,7 +49,7 @@
      * PUBLIC:
      * Returns the reference class
      */
-    Class getReferenceClass();
+    Class<?> getReferenceClass();
 
     String getReferenceClassName();
 
@@ -71,7 +71,7 @@
     /**
      * This is a reference class whose instances this mapping will store in the domain objects.
      */
-    void setReferenceClass(Class aClass);
+    void setReferenceClass(Class<?> aClass);
 
     void setReferenceClassName(String aClassName);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectCollectionMapping.java
index 0fde017..38e76a4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectCollectionMapping.java
@@ -45,7 +45,7 @@
      * This is optional - if left null, the elements will be added
      * to the object's collection unconverted.
      */
-    Class getAttributeElementClass();
+    Class<?> getAttributeElementClass();
 
     AbstractNullPolicy getNullPolicy();
 
@@ -68,7 +68,7 @@
      * This is optional - if left null, the elements will be added
      * to the object's collection unconverted.
      */
-    void setAttributeElementClass(Class attributeElementClass);
+    void setAttributeElementClass(Class<?> attributeElementClass);
 
     /**
      * Indicates that this mapping should collapse all string values before adding them
@@ -90,7 +90,7 @@
       * This is optional - if left null, the elements will be added
       * to the database row's collection unconverted.
       */
-     void setFieldElementClass(Class fieldElementClass);
+     void setFieldElementClass(Class<?> fieldElementClass);
 
     void setIsCDATA(boolean CDATA);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectMapping.java
index a932ca5..774fe60 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/DirectMapping.java
@@ -71,7 +71,7 @@
      * the base data type must be explicitly specified in the mapping to tell EclipseLink to force
      * the instance variable value to that data type
      */
-    void setAttributeClassification(Class attributeClassification);
+    void setAttributeClassification(Class<?> attributeClassification);
 
 
     /**
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Field.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Field.java
index 5907698..8a0a419 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Field.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Field.java
@@ -38,7 +38,7 @@
     * @param qname The qualified name of the XML Schema type to use as a key in the lookup
     * @return The class corresponding to the specified schema type, if no corresponding match found returns null
     */
-    Class getJavaClass(QName qname, ConversionManager conversionManager);
+    Class<?> getJavaClass(QName qname, ConversionManager conversionManager);
 
     /**
      * INTERNAL:
@@ -78,7 +78,7 @@
       * @param javaClass The class to use as a key in the lookup
       * @return QName The qualified XML Schema type, if no corresponding match found returns null
       */
-     QName getXMLType(Class javaClass, ConversionManager conversionManager);
+     QName getXMLType(Class<?> javaClass, ConversionManager conversionManager);
 
      /**
      * Returns the xpath statement associated with this XMLField
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/InverseReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/InverseReferenceMapping.java
index cdaf5de..9fba607 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/InverseReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/InverseReferenceMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -48,5 +48,5 @@
 
     void setReferenceClassName(String aClassName);
 
-    void useCollectionClass(Class concreteClass);
+    void useCollectionClass(Class<?> concreteClass);
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Mapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Mapping.java
index 92d3b67..abbd4a3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Mapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/Mapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -38,7 +38,7 @@
     /**
      * The classification type for the attribute this mapping represents
      */
-    Class getAttributeClassification();
+    Class<?> getAttributeClassification();
 
     /**
      * Return the name of the attribute set in the mapping.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ObjectReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ObjectReferenceMapping.java
index c0082ae..74ae061 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ObjectReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/mappings/ObjectReferenceMapping.java
@@ -49,7 +49,7 @@
 
     InverseReferenceMapping getInverseReferenceMapping();
 
-    Class getReferenceClass();
+    Class<?> getReferenceClass();
 
     /**
      * INTERNAL:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/DOMUnmarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/DOMUnmarshaller.java
index 2edc737..fad612f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/DOMUnmarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/DOMUnmarshaller.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
@@ -195,7 +195,7 @@
     }
 
     @Override
-    public Object unmarshal(File file, Class clazz) {
+    public Object unmarshal(File file, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -216,7 +216,7 @@
     }
 
     @Override
-    public Object unmarshal(InputStream inputStream, Class clazz) {
+    public Object unmarshal(InputStream inputStream, Class<?> clazz) {
         return unmarshal(new InputSource(inputStream), clazz);
     }
 
@@ -226,7 +226,7 @@
     }
 
     @Override
-    public Object unmarshal(InputSource inputSource, Class clazz) {
+    public Object unmarshal(InputSource inputSource, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -247,7 +247,7 @@
     }
 
     @Override
-    public Object unmarshal(Node node, Class clazz) {
+    public Object unmarshal(Node node, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -273,7 +273,7 @@
     }
 
     @Override
-    public Object unmarshal(Reader reader, Class clazz) {
+    public Object unmarshal(Reader reader, Class<?> clazz) {
         return unmarshal(new InputSource(reader), clazz);
     }
 
@@ -283,7 +283,7 @@
     }
 
     @Override
-    public Object unmarshal(Source source, Class clazz) {
+    public Object unmarshal(Source source, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -304,7 +304,7 @@
     }
 
     @Override
-    public Object unmarshal(URL url, Class clazz) {
+    public Object unmarshal(URL url, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -325,7 +325,7 @@
     }
 
     @Override
-    public Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class clazz) {
+    public Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class<?> clazz) {
         if(!xmlUnmarshaller.isApplicationXML()){
             throw XMLMarshalException.unsupportedMediaTypeForPlatform();
         }
@@ -361,7 +361,7 @@
     /**
      * INTERNAL: Convert the Oracle XMLDocument to the reference-class.
      */
-    public Object xmlToObject(DOMRecord xmlRow, Class referenceClass) throws XMLMarshalException {
+    public Object xmlToObject(DOMRecord xmlRow, Class<?> referenceClass) throws XMLMarshalException {
         try{
             //Try to get the Encoding and Version from DOM3 APIs if available
             String xmlEncoding = "UTF-8";
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/ExtendedSource.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/ExtendedSource.java
index 3279b54..e6cb312 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/ExtendedSource.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/ExtendedSource.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
@@ -28,7 +28,7 @@
 
     public abstract XMLReader createReader(Unmarshaller unmarshaller);
 
-    public abstract XMLReader createReader(Unmarshaller unmarshaller, Class unmarshalClass);
+    public abstract XMLReader createReader(Unmarshaller unmarshaller, Class<?> unmarshalClass);
 
     @Override
     public void setSystemId(String systemId) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/PlatformUnmarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/PlatformUnmarshaller.java
index 256e934..347b6ba 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/PlatformUnmarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/PlatformUnmarshaller.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
@@ -52,35 +52,35 @@
 
     Object unmarshal(File file);
 
-    Object unmarshal(File file, Class clazz);
+    Object unmarshal(File file, Class<?> clazz);
 
     Object unmarshal(InputStream inputStream);
 
-    Object unmarshal(InputStream inputStream, Class clazz);
+    Object unmarshal(InputStream inputStream, Class<?> clazz);
 
     Object unmarshal(InputSource inputSource);
 
-    Object unmarshal(InputSource inputSource, Class clazz);
+    Object unmarshal(InputSource inputSource, Class<?> clazz);
 
     Object unmarshal(Node node);
 
-    Object unmarshal(Node node, Class clazz);
+    Object unmarshal(Node node, Class<?> clazz);
 
     Object unmarshal(Reader reader);
 
-    Object unmarshal(Reader reader, Class clazz);
+    Object unmarshal(Reader reader, Class<?> clazz);
 
     Object unmarshal(Source source);
 
-    Object unmarshal(Source source, Class clazz);
+    Object unmarshal(Source source, Class<?> clazz);
 
     Object unmarshal(URL url);
 
-    Object unmarshal(URL url, Class clazz);
+    Object unmarshal(URL url, Class<?> clazz);
 
     Object unmarshal(XMLReader xmlReader, InputSource inputSource);
 
-    Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class clazz);
+    Object unmarshal(XMLReader xmlReader, InputSource inputSource, Class<?> clazz);
 
     void setResultAlwaysXMLRoot(boolean alwaysReturnRoot);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshaller.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshaller.java
index dd2fbf5..ccf503b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshaller.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshaller.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
@@ -194,7 +194,7 @@
         return getXMLReader(null);
     }
 
-    private XMLReader getXMLReader(Class clazz) {
+    private XMLReader getXMLReader(Class<?> clazz) {
         if (null == xmlReader) {
             xmlReader = getNewXMLReader(clazz, xmlUnmarshaller.getMediaType());
         }
@@ -205,7 +205,7 @@
         return getNewXMLReader(null, mediaType);
     }
 
-    private XMLReader getNewXMLReader(Class clazz, MediaType mediaType) {
+    private XMLReader getNewXMLReader(Class<?> clazz, MediaType mediaType) {
 
         if (null != mediaType && mediaType.isApplicationJSON()) {
             return new JsonStructureReader(xmlUnmarshaller, clazz);
@@ -358,7 +358,7 @@
     }
 
     @Override
-    public Object unmarshal(File file, Class clazz) {
+    public Object unmarshal(File file, Class<?> clazz) {
         try {
             if (xmlUnmarshaller.getContext().hasDocumentPreservation()) {
                 Node domElement = getXMLParser().parse(file).getDocumentElement();
@@ -393,7 +393,7 @@
     }
 
     @Override
-    public Object unmarshal(InputStream inputStream, Class clazz) {
+    public Object unmarshal(InputStream inputStream, Class<?> clazz) {
         if (xmlUnmarshaller.getContext().hasDocumentPreservation()) {
             Node domElement = getXMLParser().parse(inputStream).getDocumentElement();
             return unmarshal(domElement, clazz);
@@ -441,7 +441,7 @@
     }
 
     @Override
-    public Object unmarshal(InputSource inputSource, Class clazz) {
+    public Object unmarshal(InputSource inputSource, Class<?> clazz) {
         if (inputSource != null && null == inputSource.getSystemId()) {
             inputSource.setSystemId(this.systemId);
         }
@@ -454,7 +454,7 @@
         return unmarshal(getXMLReader(clazz), inputSource, clazz);
     }
 
-    public Object unmarshal(InputSource inputSource, Class clazz, XMLReader xmlReader) {
+    public Object unmarshal(InputSource inputSource, Class<?> clazz, XMLReader xmlReader) {
         if (inputSource != null && null == inputSource.getSystemId()) {
             inputSource.setSystemId(this.systemId);
         }
@@ -560,12 +560,12 @@
     }
 
     @Override
-    public Object unmarshal(Node node, Class clazz) {
+    public Object unmarshal(Node node, Class<?> clazz) {
         DOMReader reader = new DOMReader(xmlUnmarshaller);
         return unmarshal(reader, node, clazz);
     }
 
-    public Object unmarshal(DOMReader domReader, Node node, Class clazz) {
+    public Object unmarshal(DOMReader domReader, Node node, Class<?> clazz) {
         UnmarshalRecord unmarshalRecord = null;
         Descriptor xmlDescriptor = null;
 
@@ -657,7 +657,7 @@
     }
 
     @Override
-    public Object unmarshal(Reader reader, Class clazz) {
+    public Object unmarshal(Reader reader, Class<?> clazz) {
         if (xmlUnmarshaller.getContext().hasDocumentPreservation()) {
             Node domElement = getXMLParser().parse(reader).getDocumentElement();
             return unmarshal(domElement, clazz);
@@ -715,7 +715,7 @@
     }
 
     @Override
-    public Object unmarshal(Source source, Class clazz) {
+    public Object unmarshal(Source source, Class<?> clazz) {
         if (source instanceof SAXSource) {
             SAXSource saxSource = (SAXSource) source;
             XMLReader xmlReader = null;
@@ -788,7 +788,7 @@
     }
 
     @Override
-    public Object unmarshal(URL url, Class clazz) {
+    public Object unmarshal(URL url, Class<?> clazz) {
         InputStream inputStream = null;
         try {
             inputStream = url.openStream();
@@ -834,7 +834,7 @@
         }
     }
 
-    public Object unmarshal(String systemId, Class clazz) {
+    public Object unmarshal(String systemId, Class<?> clazz) {
         if (xmlUnmarshaller.isAutoDetectMediaType()) {
             return unmarshal(new InputSource(systemId), clazz);
         }
@@ -952,7 +952,7 @@
     }
 
     @Override
-    public Object unmarshal(org.xml.sax.XMLReader xmlReader, InputSource inputSource, Class clazz) {
+    public Object unmarshal(org.xml.sax.XMLReader xmlReader, InputSource inputSource, Class<?> clazz) {
         try {
             Context xmlContext = xmlUnmarshaller.getContext();
 
@@ -1055,7 +1055,7 @@
         this.isResultAlwaysXMLRoot = alwaysReturnRoot;
     }
 
-    private boolean isPrimitiveWrapper(Class clazz) {
+    private boolean isPrimitiveWrapper(Class<?> clazz) {
         return ((ConversionManager) xmlUnmarshaller.getContext().getSession().getDatasourcePlatform().getConversionManager()).schemaType(clazz) != null
                 || CoreClassConstants.XML_GREGORIAN_CALENDAR.isAssignableFrom(clazz)
                 || CoreClassConstants.DURATION.isAssignableFrom(clazz);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshallerHandler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshallerHandler.java
index 66cfa44..862ea3c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshallerHandler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/SAXUnmarshallerHandler.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
@@ -200,7 +200,7 @@
                 rootQName = new XPathQName(namespaceURI, name, xmlReader.isNamespaceAware() );
             }
 
-            Class primitiveWrapperClass = null;
+            Class<?> primitiveWrapperClass = null;
             Descriptor xmlDescriptor = xmlContext.getDescriptor(rootQName);
 
             //if no match on root element look for xsi:type
@@ -262,7 +262,7 @@
                     tmpUnmarshalRecord.setXMLReader(this.getXMLReader());
                     tmpUnmarshalRecord.setAttributes(atts);
 
-                    Class classValue = xmlDescriptor.getInheritancePolicy().classFromRow(new org.eclipse.persistence.oxm.record.UnmarshalRecord(tmpUnmarshalRecord), session);
+                    Class<?> classValue = xmlDescriptor.getInheritancePolicy().classFromRow(new org.eclipse.persistence.oxm.record.UnmarshalRecord(tmpUnmarshalRecord), session);
                     if (classValue == null) {
                        // no xsi:type attribute - look for type indicator on the default root element
                        QName leafElementType = xmlDescriptor.getDefaultRootElementType();
@@ -308,7 +308,7 @@
                     this.xmlReader.setContentHandler(documentBuilder);
                     return;
                 }
-                Class unmappedContentHandlerClass = unmarshaller.getUnmappedContentHandlerClass();
+                Class<?> unmappedContentHandlerClass = unmarshaller.getUnmappedContentHandlerClass();
                 if (null == unmappedContentHandlerClass) {
                     throw XMLMarshalException.noDescriptorWithMatchingRootElement(rootQName.toString());
                 } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/UnmarshalRecordImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/UnmarshalRecordImpl.java
index dfc85a3..e8e9583 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/UnmarshalRecordImpl.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/UnmarshalRecordImpl.java
@@ -552,7 +552,7 @@
         return;
         }
     CoreInheritancePolicy inheritancePolicy = xmlDescriptor.getInheritancePolicy();
-    Class classValue = treeObjectBuilder.classFromRow(this, session);
+    Class<?> classValue = treeObjectBuilder.classFromRow(this, session);
      if (classValue == null) {
              // no xsi:type attribute - look for type indicator on the default root element
              QName leafElementType = xmlDescriptor.getDefaultRootElementType();
@@ -1050,7 +1050,7 @@
             }
             return;
         }
-        Class unmappedContentHandlerClass = unmarshaller.getUnmappedContentHandlerClass();
+        Class<?> unmappedContentHandlerClass = unmarshaller.getUnmappedContentHandlerClass();
         UnmappedContentHandler unmappedContentHandler;
         if (null == unmappedContentHandlerClass) {
             unmappedContentHandler = DEFAULT_UNMAPPED_CONTENT_HANDLER;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/deferred/AnyMappingContentHandler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/deferred/AnyMappingContentHandler.java
index 1612731..3bcc813 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/deferred/AnyMappingContentHandler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/deferred/AnyMappingContentHandler.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
@@ -57,7 +57,7 @@
      @Override
     protected void processComplexElement() throws SAXException {
          getParent().unmappedContent();
-         Class unmappedContentHandlerClass = getParent().getUnmarshaller().getUnmappedContentHandlerClass();
+         Class<?> unmappedContentHandlerClass = getParent().getUnmarshaller().getUnmappedContentHandlerClass();
          UnmappedContentHandler unmappedContentHandler;
          if (null == unmappedContentHandlerClass) {
              unmappedContentHandler = UnmarshalRecord.DEFAULT_UNMAPPED_CONTENT_HANDLER;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonParserReader.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonParserReader.java
index 98c15c4..101b3f0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonParserReader.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonParserReader.java
@@ -257,7 +257,7 @@
     public static final class JsonParserReaderBuilder {
         private final JsonParser parser;
         private Unmarshaller um;
-        private Class resultClass;
+        private Class<?> resultClass;
 
         public JsonParserReaderBuilder(JsonParser parser) {
             this.parser = parser;
@@ -268,7 +268,7 @@
             return this;
         }
 
-        public JsonParserReaderBuilder setResultClass(Class resultClass) {
+        public JsonParserReaderBuilder setResultClass(Class<?> resultClass) {
             this.resultClass = resultClass;
             return this;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonStructureReader.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonStructureReader.java
index 231c3c4..910a3ec 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonStructureReader.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/record/json/JsonStructureReader.java
@@ -74,7 +74,7 @@
     private NamespaceResolver namespaces = null;
     private boolean includeRoot;
     private String textWrapper;
-    private Class unmarshalClass;
+    private Class<?> unmarshalClass;
     private boolean isInCollection;
     private JsonStructure jsonStructure;
     private JsonAttributes attributes = new JsonAttributes();
@@ -88,7 +88,7 @@
         this(u, null);
     }
 
-    public JsonStructureReader(Unmarshaller u, Class clazz) {
+    public JsonStructureReader(Unmarshaller u, Class<?> clazz) {
         this.attributePrefix = u.getAttributePrefix();
         if (Constants.EMPTY_STRING.equals(attributePrefix)) {
             attributePrefix = null;
@@ -568,7 +568,7 @@
                     return new QName(localName);
                 }
             } else {
-                Class fieldType = xmlField.getType();
+                Class<?> fieldType = xmlField.getType();
                 if (fieldType == null) {
                     fieldType = xmlField.getJavaClass(xmlField.getSchemaType(), conversionManager);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/schema/SchemaModelGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/schema/SchemaModelGenerator.java
index 7a32186..b7e375d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/schema/SchemaModelGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/oxm/schema/SchemaModelGenerator.java
@@ -146,7 +146,7 @@
                 QName qname = entry.getKey();
                 Type type = entry.getValue();
                 if (type instanceof Class) {
-                    Class tClass = (Class) type;
+                    Class<?> tClass = (Class) type;
                     String nsKey = qname.getNamespaceURI();
                     Schema schema = schemaForNamespace.get(nsKey);
 
@@ -495,7 +495,7 @@
      * will be returned.
      *
      */
-    protected String getSchemaTypeForElement(Field xmlField, Class attrClass, Schema workingSchema) {
+    protected String getSchemaTypeForElement(Field xmlField, Class<?> attrClass, Schema workingSchema) {
         String schemaTypeString = null;
         QName schemaType = xmlField.getSchemaType();
         if (schemaType != null) {
@@ -533,7 +533,7 @@
      * javaClass.  If none exists null will be returned.
      *
      */
-    protected Descriptor getDescriptorByClass(Class javaClass, List<Descriptor> descriptors) {
+    protected Descriptor getDescriptorByClass(Class<?> javaClass, List<Descriptor> descriptors) {
         for (Descriptor xDesc : descriptors) {
             if (xDesc.getJavaClass() != null && xDesc.getJavaClass() == javaClass) {
                 return xDesc;
@@ -663,7 +663,7 @@
         }
 
         // Handle enumerations
-        Class attributeClassification = mapping.getAttributeClassification();
+        Class<?> attributeClassification = mapping.getAttributeClassification();
         if (attributeClassification != null && Enum.class.isAssignableFrom(attributeClassification)) {
             CoreConverter converter = mapping.getConverter();
             if (converter != null && converter instanceof EnumTypeConverter) {
@@ -802,7 +802,7 @@
      *
      */
     protected void processXMLChoiceCollectionMapping(ChoiceCollectionMapping mapping, Sequence seq, ComplexType ct, HashMap<String, Schema> schemaForNamespace, Schema workingSchema, SchemaModelGeneratorProperties properties, List<Descriptor> descriptors) {
-        Map<Field, Class> fieldToClassMap = mapping.getFieldToClassMappings();
+        Map<Field, Class<?>> fieldToClassMap = mapping.getFieldToClassMappings();
         List<XMLChoiceFieldToClassAssociation> choiceFieldToClassList = mapping.getChoiceFieldToClassAssociations();
         processChoiceMapping(fieldToClassMap, choiceFieldToClassList, seq, ct, schemaForNamespace, workingSchema, properties, descriptors, true);
     }
@@ -811,7 +811,7 @@
      *
      */
     protected void processXMLChoiceObjectMapping(ChoiceObjectMapping mapping, Sequence seq, ComplexType ct, HashMap<String, Schema> schemaForNamespace, Schema workingSchema, SchemaModelGeneratorProperties properties, List<Descriptor> descriptors) {
-        Map<Field, Class> fieldToClassMap =mapping.getFieldToClassMappings();
+        Map<Field, Class<?>> fieldToClassMap =mapping.getFieldToClassMappings();
         List<XMLChoiceFieldToClassAssociation> choiceFieldToClassList = mapping.getChoiceFieldToClassAssociations();
         processChoiceMapping(fieldToClassMap, choiceFieldToClassList, seq, ct, schemaForNamespace, workingSchema, properties, descriptors, false);
     }
@@ -820,7 +820,7 @@
      * Process a given XMLChoiceMapping.
      *
      */
-    protected void processChoiceMapping(Map<Field, Class> fieldToClassMap, List<XMLChoiceFieldToClassAssociation> choiceFieldToClassList, Sequence seq, ComplexType ct, HashMap<String, Schema> schemaForNamespace, Schema workingSchema, SchemaModelGeneratorProperties properties, List<Descriptor> descriptors, boolean isCollection) {
+    protected void processChoiceMapping(Map<Field, Class<?>> fieldToClassMap, List<XMLChoiceFieldToClassAssociation> choiceFieldToClassList, Sequence seq, ComplexType ct, HashMap<String, Schema> schemaForNamespace, Schema workingSchema, SchemaModelGeneratorProperties properties, List<Descriptor> descriptors, boolean isCollection) {
         Choice theChoice = new Choice();
         if (isCollection) {
             theChoice.setMaxOccurs(Occurs.UNBOUNDED);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ArrayListContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ArrayListContainerPolicy.java
index 3ffa452..c55ae75 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ArrayListContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ArrayListContainerPolicy.java
@@ -36,7 +36,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public ArrayListContainerPolicy(Class containerClass) {
+    public ArrayListContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CollectionContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CollectionContainerPolicy.java
index 5e0cc47..94a0673 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CollectionContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CollectionContainerPolicy.java
@@ -46,7 +46,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public CollectionContainerPolicy(Class containerClass) {
+    public CollectionContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
@@ -143,7 +143,7 @@
     }
 
     @Override
-    public Class getInterfaceType() {
+    public Class<?> getInterfaceType() {
         return ClassConstants.Collection_Class;
     }
 
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 c19f2fa..01a0ba0 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
@@ -91,7 +91,7 @@
     /**
      * Allow the default collection class to be set.
      */
-    protected static Class<Vector> defaultContainerClass = ClassConstants.Vector_class;
+    protected static Class<? extends Collection> defaultContainerClass = ClassConstants.Vector_class;
 
     /** The descriptor is used to wrap and unwrap objects using the wrapper policy. **/
     protected transient ClassDescriptor elementDescriptor;
@@ -101,7 +101,7 @@
      * ADVANCED:
      * Return the default collection class.
      */
-    public static Class getDefaultContainerClass() {
+    public static Class<?> getDefaultContainerClass() {
         return defaultContainerClass;
     }
 
@@ -109,7 +109,7 @@
      * ADVANCED:
      * Allow the default collection class to be set.
      */
-    public static void setDefaultContainerClass(Class collectionClass) {
+    public static void setDefaultContainerClass(Class<? extends Collection> collectionClass) {
         defaultContainerClass = collectionClass;
     }
 
@@ -328,7 +328,7 @@
      * Return the appropriate container policy for the specified
      * concrete container class.
      */
-    public static ContainerPolicy buildPolicyFor(Class concreteContainerClass) {
+    public static ContainerPolicy buildPolicyFor(Class<?> concreteContainerClass) {
         return buildPolicyFor(concreteContainerClass, false);
     }
 
@@ -337,7 +337,7 @@
      * Return the appropriate container policy for the specified
      * concrete container class.
      */
-    public static ContainerPolicy buildPolicyFor(Class concreteContainerClass, boolean hasOrdering) {
+    public static ContainerPolicy buildPolicyFor(Class<?> concreteContainerClass, boolean hasOrdering) {
         if (Helper.classImplementsInterface(concreteContainerClass, ClassConstants.List_Class)) {
             if (hasOrdering) {
                 return new OrderedListContainerPolicy(concreteContainerClass);
@@ -609,7 +609,7 @@
      */
     @Override
     public Object containerInstance() {
-        Class containerClass = getContainerClass();
+        Class<?> containerClass = getContainerClass();
         // PERF: Avoid reflection for common cases.
         if (containerClass == ClassConstants.IndirectList_Class) {
             return IndirectCollectionsFactory.createIndirectList();
@@ -625,7 +625,7 @@
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
-                    return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(containerClass));
+                    return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(containerClass));
                 } catch (PrivilegedActionException exception) {
                     throw QueryException.couldNotInstantiateContainerClass(containerClass, exception.getException());
                 }
@@ -648,7 +648,7 @@
         if (this.constructor == null) {
             return containerInstance();
         }
-        Class containerClass = getContainerClass();
+        Class<?> containerClass = getContainerClass();
         try {
             // PERF: Avoid reflection for common cases.
             if (containerClass == ClassConstants.IndirectList_Class) {
@@ -800,7 +800,7 @@
      * INTERNAL:
      * Return the class used for the container.
      */
-    public Class getContainerClass() {
+    public Class<?> getContainerClass() {
         throw QueryException.methodNotValid(this, "getContainerClass()");
     }
 
@@ -906,16 +906,16 @@
      */
     public void initializeConstructor() {
         try {
-            Constructor constructor = null;
+            Constructor<?> constructor = null;
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
-                    constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(getContainerClass(), new Class[] { ClassConstants.PINT }, false));
+                    constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(getContainerClass(), new Class<?>[] { ClassConstants.PINT }, false));
                 } catch (PrivilegedActionException exception) {
                     // If there is no constructor then the default will be used.
                     return;
                 }
             } else {
-                constructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class[] { ClassConstants.PINT }, false);
+                constructor = PrivilegedAccessHelper.getConstructorFor(getContainerClass(), new Class<?>[] { ClassConstants.PINT }, false);
             }
             setConstructor(constructor);
         } catch (Exception exception) {
@@ -993,7 +993,7 @@
      * INTERNAL:
      * Return whether the specified type is a valid container type.
      */
-    public boolean isValidContainerType(Class containerType) {
+    public boolean isValidContainerType(Class<?> containerType) {
         throw QueryException.methodNotValid(this, "isValidContainerType(Class containerType)");
     }
 
@@ -1057,7 +1057,7 @@
                     // stop the recursion.
                     // CR 3424  - Need to build the right instance based on
                     // class type instead of referenceDescriptor.
-                    Class objectClass = objectChanges.getClassType(mergeManager.getSession());
+                    Class<?> objectClass = objectChanges.getClassType(mergeManager.getSession());
                     object = mergeManager.getSession().getDescriptor(objectClass).getObjectBuilder().buildNewInstance();
                     // Store the change set to prevent us from creating this new object again.
                     mergeManager.recordMerge(objectChanges, object, targetSession);
@@ -1457,7 +1457,7 @@
      * Set the class used for the container.
      */
     @Override
-    public void setContainerClass(Class containerClass) {
+    public void setContainerClass(Class<?> containerClass) {
         throw QueryException.methodNotValid(this, "getContainerClass()");
     }
 
@@ -1495,7 +1495,7 @@
      * An instance of the class is provided in the case when the descriptor is being
      * built in code.
      */
-    public void setKeyName(String instanceVariableName, Class elementClass) {
+    public void setKeyName(String instanceVariableName, Class<?> elementClass) {
         throw ValidationException.containerPolicyDoesNotUseKeys(this, instanceVariableName);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/IndirectListContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/IndirectListContainerPolicy.java
index 8a73dba..bae39c3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/IndirectListContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/IndirectListContainerPolicy.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
@@ -40,7 +40,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public IndirectListContainerPolicy(Class containerClass) {
+    public IndirectListContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/InterfaceContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/InterfaceContainerPolicy.java
index cb43ae7..9110603 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/InterfaceContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/InterfaceContainerPolicy.java
@@ -48,7 +48,7 @@
 public abstract class InterfaceContainerPolicy extends ContainerPolicy {
 
     /** The concrete container class. */
-    protected Class containerClass;
+    protected Class<?> containerClass;
     protected String containerClassName;
 
     /** The method which will return a clone of an instance of the containerClass. */
@@ -66,7 +66,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    protected InterfaceContainerPolicy(Class containerClass) {
+    protected InterfaceContainerPolicy(Class<?> containerClass) {
         setContainerClass(containerClass);
     }
 
@@ -92,7 +92,7 @@
     @Override
     public int hashCode() {
         int result = super.hashCode();
-        Class containerClass = getContainerClass();
+        Class<?> containerClass = getContainerClass();
         result = 31 * result + (containerClass != null ? containerClass.hashCode() : 0);
         return result;
     }
@@ -131,7 +131,7 @@
         if (getContainerClassName() == null){
             return;
         }
-        Class containerClass = null;
+        Class<?> containerClass = null;
         try{
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 try {
@@ -179,15 +179,15 @@
         return cloneMethod;
     }
 
-    private static final class ClassWeakReference extends WeakReference<Class> {
+    private static final class ClassWeakReference<T> extends WeakReference<Class<T>> {
         private final int hash;
 
-        ClassWeakReference(Class referent) {
+        ClassWeakReference(Class<T> referent) {
             super(referent);
             hash = referent.hashCode();
         }
 
-        ClassWeakReference(Class referent, ReferenceQueue<Class> referenceQueue) {
+        ClassWeakReference(Class<T> referent, ReferenceQueue<Class> referenceQueue) {
             super(referent, referenceQueue);
             hash = referent.hashCode();
         }
@@ -204,7 +204,7 @@
             }
 
             if (obj instanceof ClassWeakReference) {
-                return get() == ((ClassWeakReference) obj).get();
+                return get() == ((ClassWeakReference<?>) obj).get();
             }
 
             return false;
@@ -212,24 +212,24 @@
 
         @Override
         public String toString() {
-            Class referent = get();
-            return new StringBuilder("ClassWeakReference: ").append(referent == null ? null : referent).toString();
+            Class<?> referent = get();
+            return "ClassWeakReference: " + (referent);
         }
     }
 
     private static final ReferenceQueue<Class> refQueue = new ReferenceQueue<>();
-    private static final ConcurrentHashMap<ClassWeakReference, Method> cloneMethodCache = new ConcurrentHashMap<>();
+    private static final ConcurrentHashMap<ClassWeakReference<?>, Method> cloneMethodCache = new ConcurrentHashMap<>();
     
     /**
      * INTERNAL:
      * Return the 'clone()' Method for the specified class.
      * Return null if the method does not exist anywhere in the hierarchy
      */
-    protected Method getCloneMethod(Class javaClass) {
+    protected Method getCloneMethod(Class<?> javaClass) {
         for (Object key; (key = refQueue.poll()) != null;) {
             cloneMethodCache.remove(key);
         }
-        Method cloneMethod = cloneMethodCache.get(new ClassWeakReference(javaClass));
+        Method cloneMethod = cloneMethodCache.get(new ClassWeakReference<>(javaClass));
         if (cloneMethod != null) {
             return cloneMethod;
         }
@@ -257,7 +257,7 @@
      * Returns the container class to be used with this policy.
      */
     @Override
-    public Class getContainerClass() {
+    public Class<?> getContainerClass() {
         return containerClass;
     }
 
@@ -278,7 +278,7 @@
         return null;
     }
 
-    public abstract Class getInterfaceType();
+    public abstract Class<?> getInterfaceType();
 
     /**
      * INTERNAL:
@@ -331,7 +331,7 @@
      * Validate the container type.
      */
     @Override
-    public boolean isValidContainerType(Class containerType) {
+    public boolean isValidContainerType(Class<?> containerType) {
         return Helper.classImplementsInterface(containerType, getInterfaceType());
     }
 
@@ -358,7 +358,7 @@
      * Set the class to use as the container.
      */
     @Override
-    public void setContainerClass(Class containerClass) {
+    public void setContainerClass(Class<?> containerClass) {
         this.containerClass = containerClass;
         initializeConstructor();
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ListContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ListContainerPolicy.java
index ff98a99..55e90a2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ListContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ListContainerPolicy.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
@@ -56,7 +56,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public ListContainerPolicy(Class containerClass) {
+    public ListContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MapContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MapContainerPolicy.java
index 5d75295..de9d649 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MapContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MapContainerPolicy.java
@@ -69,7 +69,7 @@
     protected String keyName;
 
     protected String elementClassName;
-    protected Class elementClass;
+    protected Class<?> elementClass;
     protected transient Field keyField;
     protected transient Method keyMethod;
 
@@ -85,7 +85,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public MapContainerPolicy(Class containerClass) {
+    public MapContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
@@ -349,7 +349,7 @@
         }
 
         try {
-            Class elementClass = null;
+            Class<?> elementClass = null;
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
                     elementClass = AccessController.doPrivileged(new PrivilegedClassForName<>(elementClassName, true, classLoader));
@@ -424,7 +424,7 @@
      * INTERNAL:
      * Returns the element class which defines the map key.
      */
-    public Class getElementClass() {
+    public Class<?> getElementClass() {
         return elementClass;
     }
 
@@ -440,7 +440,7 @@
      * INTERNAL:
      */
     @Override
-    public Class getInterfaceType() {
+    public Class<?> getInterfaceType() {
         return ClassConstants.Map_Class;
     }
 
@@ -767,7 +767,7 @@
      * INTERNAL:
      * Sets the element class which defines the method.
      */
-    public void setElementClass(Class elementClass) {
+    public void setElementClass(Class<?> elementClass) {
         if (elementClass != null) {
             elementClassName = elementClass.getName();
         }
@@ -806,7 +806,7 @@
      * built in code.
      */
     @Override
-    public void setKeyName(String keyName, Class elementClass) {
+    public void setKeyName(String keyName, Class<?> elementClass) {
         // The key name and class name must be held as the policy is used
         // directly from the mapping.
         this.keyName = keyName;
@@ -826,7 +826,7 @@
      * INTERNAL:
      * Sets the Method to be used to generate the key in a Map type container class.
      */
-    public void setKeyMethod(String keyMethodName, Class elementClass) {
+    public void setKeyMethod(String keyMethodName, Class<?> elementClass) {
         this.setKeyName(keyMethodName, elementClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MappedKeyMapContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MappedKeyMapContainerPolicy.java
index 21afe47..f521cf6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MappedKeyMapContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/MappedKeyMapContainerPolicy.java
@@ -109,7 +109,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public MappedKeyMapContainerPolicy(Class containerClass) {
+    public MappedKeyMapContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
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 2fde388..60bd703 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
@@ -84,7 +84,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public OrderedListContainerPolicy(Class containerClass) {
+    public OrderedListContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ReportItem.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ReportItem.java
index e7f8694..57d6ed8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ReportItem.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ReportItem.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.
  * Copyright (c) 2019 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -44,7 +44,7 @@
     protected ClassDescriptor descriptor;
 
     /** Result type for this report item. */
-    protected Class resultType;
+    protected Class<?> resultType;
     /** Stores the Join information for this item */
     protected JoinedAttributeManager joinedAttributeManager;
 
@@ -119,7 +119,7 @@
         return resultIndex;
     }
 
-    public Class getResultType() {
+    public Class<?> getResultType() {
         return resultType;
     }
 
@@ -134,7 +134,7 @@
                 if (mapping == null) {
                     //TODO: This feels like it should be set earlier during ReportItemBuild.visit. Should investigate.
                     if (this.attributeExpression.isExpressionBuilder()) {
-                        Class resultClass = ((ExpressionBuilder)this.attributeExpression).getQueryClass();
+                        Class<?> resultClass = ((ExpressionBuilder)this.attributeExpression).getQueryClass();
                         if (resultClass == null) {
                             resultClass = query.getReferenceClass();
                             ((ExpressionBuilder)this.attributeExpression).setQueryClass(resultClass);
@@ -208,7 +208,7 @@
         }
     }
 
-    public void setResultType(Class resultType) {
+    public void setResultType(Class<?> resultType) {
         this.resultType = resultType;
 
         // Set it on the attribute expression as well if it is a function.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/SortedCollectionContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/SortedCollectionContainerPolicy.java
index b0635d5..42bcc9b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/SortedCollectionContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/SortedCollectionContainerPolicy.java
@@ -38,7 +38,7 @@
  */
 public class SortedCollectionContainerPolicy extends CollectionContainerPolicy {
     protected Comparator m_comparator = null;
-    protected Class  comparatorClass = null ;
+    protected Class<?>  comparatorClass = null ;
     protected String comparatorClassName = null;
 
 
@@ -54,7 +54,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public SortedCollectionContainerPolicy(Class containerClass) {
+    public SortedCollectionContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
@@ -81,7 +81,7 @@
      * Sets a comparator class for this policy to use when instantiating
      * a new SortedSet object.
      */
-    public void setComparatorClass(Class comparatorClass) {
+    public void setComparatorClass(Class<?> comparatorClass) {
         if(Helper.classImplementsInterface(comparatorClass, java.util.Comparator.class)){
             m_comparator=(Comparator)Helper.getInstanceFromClass(comparatorClass);
         }else{
@@ -112,7 +112,7 @@
      * INTERNAL:
      * Return the stored comparator class
      */
-    public Class getComparatorClass() {
+    public Class<?> getComparatorClass() {
         return comparatorClass;
     }
 
@@ -150,12 +150,12 @@
             }
             if (m_comparator != null) {
                 Object[] arguments = new Object[] { m_comparator };
-                Class[] constructClass = new Class[] { Comparator.class };
-                Constructor constructor = null;
+                Class<?>[] constructClass = new Class<?>[] { Comparator.class };
+                Constructor<?> constructor = null;
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
-                        constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(getContainerClass(), constructClass, false));
-                        return AccessController.doPrivileged(new PrivilegedInvokeConstructor(constructor, arguments));
+                        constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(getContainerClass(), constructClass, false));
+                        return AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, arguments));
                     } catch (PrivilegedActionException exception) {
                         throw QueryException.couldNotInstantiateContainerClass(getContainerClass(), exception.getException());
                     }
@@ -166,7 +166,7 @@
             } else {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
-                        return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(getContainerClass()));
+                        return AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(getContainerClass()));
                     } catch (PrivilegedActionException exception) {
                         throw QueryException.couldNotInstantiateContainerClass(getContainerClass(), exception.getException());
                     }
@@ -191,7 +191,7 @@
         if(m_comparator==null){
              if(comparatorClass==null){
                  if(comparatorClassName!=null){
-                      Class comparatorClass = Helper.getClassFromClasseName(comparatorClassName, classLoader);
+                      Class<?> comparatorClass = Helper.getClassFromClasseName(comparatorClassName, classLoader);
                       if(Helper.classImplementsInterface(comparatorClass, java.util.Comparator.class)){
                           m_comparator=(Comparator)Helper.getInstanceFromClass(comparatorClass);
                       }else{
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/VectorContainerPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/VectorContainerPolicy.java
index e0ab8d0..ed430a8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/VectorContainerPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/VectorContainerPolicy.java
@@ -35,7 +35,7 @@
      * INTERNAL:
      * Construct a new policy for the specified class.
      */
-    public VectorContainerPolicy(Class containerClass) {
+    public VectorContainerPolicy(Class<?> containerClass) {
         super(containerClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetConstructorFor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetConstructorFor.java
index 0e6d7e0..540a94f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetConstructorFor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetConstructorFor.java
@@ -20,10 +20,10 @@
 public class PrivilegedGetConstructorFor<T> implements PrivilegedExceptionAction<Constructor<T>> {
 
     private final Class<T> javaClass;
-    private final Class[] args;
+    private final Class<?>[] args;
     private final boolean shouldSetAccessible;
 
-    public PrivilegedGetConstructorFor(Class<T> javaClass, Class[] args, boolean shouldSetAccessible) {
+    public PrivilegedGetConstructorFor(Class<T> javaClass, Class<?>[] args, boolean shouldSetAccessible) {
         this.javaClass = javaClass;
         this.args = args;
         this.shouldSetAccessible = shouldSetAccessible;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredConstructorFor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredConstructorFor.java
index a123284..3b3e663 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredConstructorFor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredConstructorFor.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
@@ -19,11 +19,11 @@
 
 public class PrivilegedGetDeclaredConstructorFor implements PrivilegedExceptionAction<Constructor> {
 
-    private final Class javaClass;
-    private final Class[] args;
+    private final Class<?> javaClass;
+    private final Class<?>[] args;
     private final boolean shouldSetAccessible;
 
-    public PrivilegedGetDeclaredConstructorFor(Class javaClass, Class[] args, boolean shouldSetAccessible) {
+    public PrivilegedGetDeclaredConstructorFor(Class<?> javaClass, Class<?>[] args, boolean shouldSetAccessible) {
         this.javaClass = javaClass;
         this.args = args;
         this.shouldSetAccessible = shouldSetAccessible;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredField.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredField.java
index 8de702a..d012646 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredField.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredField.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
@@ -19,11 +19,11 @@
 
 public class PrivilegedGetDeclaredField implements PrivilegedExceptionAction<Field> {
 
-    private final Class javaClass;
+    private final Class<?> javaClass;
     private final String fieldName;
     private final boolean shouldSetAccessible;
 
-    public PrivilegedGetDeclaredField(Class javaClass, String fieldName, boolean shouldSetAccessible) {
+    public PrivilegedGetDeclaredField(Class<?> javaClass, String fieldName, boolean shouldSetAccessible) {
         this.javaClass = javaClass;
         this.fieldName = fieldName;
         this.shouldSetAccessible = shouldSetAccessible;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredFields.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredFields.java
index 45fa996..63f8faf 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredFields.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredFields.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
@@ -19,9 +19,9 @@
 
 public class PrivilegedGetDeclaredFields implements PrivilegedExceptionAction<Field[]> {
 
-    private final Class javaClass;
+    private final Class<?> javaClass;
 
-    public PrivilegedGetDeclaredFields(Class javaClass) {
+    public PrivilegedGetDeclaredFields(Class<?> javaClass) {
         this.javaClass = javaClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethod.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethod.java
index fb40220..6f142e7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethod.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethod.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
@@ -19,11 +19,11 @@
 
 public class PrivilegedGetDeclaredMethod implements PrivilegedExceptionAction<Method> {
 
-    private final Class clazz;
+    private final Class<?> clazz;
     private final String methodName;
-    private final Class[] methodParameterTypes;
+    private final Class<?>[] methodParameterTypes;
 
-    public PrivilegedGetDeclaredMethod(final Class clazz, final String methodName, final Class[] methodParameterTypes) {
+    public PrivilegedGetDeclaredMethod(final Class<?> clazz, final String methodName, final Class<?>[] methodParameterTypes) {
         this.clazz = clazz;
         this.methodName = methodName;
         this.methodParameterTypes = methodParameterTypes;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethods.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethods.java
index afe8432..d67a5d4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethods.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetDeclaredMethods.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
@@ -19,9 +19,9 @@
 
 public class PrivilegedGetDeclaredMethods implements PrivilegedAction<Method[]> {
 
-    private final Class javaClass;
+    private final Class<?> javaClass;
 
-    public PrivilegedGetDeclaredMethods(Class javaClass) {
+    public PrivilegedGetDeclaredMethods(Class<?> javaClass) {
         this.javaClass = javaClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetField.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetField.java
index 99a3724..ba288ec 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetField.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetField.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
@@ -19,12 +19,12 @@
 
 public class PrivilegedGetField implements PrivilegedExceptionAction<Field> {
 
-    private final Class javaClass;
+    private final Class<?> javaClass;
     private final String fieldName;
     private final boolean shouldSetAccessible;
 
 
-    public PrivilegedGetField(Class javaClass, String fieldName, boolean shouldSetAccessible) {
+    public PrivilegedGetField(Class<?> javaClass, String fieldName, boolean shouldSetAccessible) {
         this.javaClass = javaClass;
         this.fieldName = fieldName;
         this.shouldSetAccessible = shouldSetAccessible;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFieldType.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFieldType.java
index b0d8a56..e47103b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFieldType.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFieldType.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,7 @@
     }
 
     @Override
-    public Class run(){
+    public Class<?> run(){
         return PrivilegedAccessHelper.getFieldType(field);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFields.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFields.java
index a47271e..15d8e1e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFields.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetFields.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
@@ -19,9 +19,9 @@
 
 public class PrivilegedGetFields implements PrivilegedExceptionAction<Field[]> {
 
-    private final Class javaClass;
+    private final Class<?> javaClass;
 
-    public PrivilegedGetFields(Class javaClass) {
+    public PrivilegedGetFields(Class<?> javaClass) {
         this.javaClass = javaClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethod.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethod.java
index a9750db..852d03c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethod.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethod.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,17 +20,17 @@
 
 public class PrivilegedGetMethod implements PrivilegedExceptionAction<Method> {
 
-    private final Class clazz;
+    private final Class<?> clazz;
     private final String methodName;
-    private final Class[] methodParameterTypes;
+    private final Class<?>[] methodParameterTypes;
     private final boolean shouldSetAccessible;
     private final boolean publicOnly;
 
-    public PrivilegedGetMethod(Class clazz, String methodName, Class[] methodParameterTypes, boolean shouldSetAccessible) {
+    public PrivilegedGetMethod(Class<?> clazz, String methodName, Class<?>[] methodParameterTypes, boolean shouldSetAccessible) {
         this(clazz, methodName, methodParameterTypes, shouldSetAccessible, false);
     }
 
-    public PrivilegedGetMethod(Class clazz, String methodName, Class[] methodParameterTypes, boolean shouldSetAccessible, boolean publicOnly) {
+    public PrivilegedGetMethod(Class<?> clazz, String methodName, Class<?>[] methodParameterTypes, boolean shouldSetAccessible, boolean publicOnly) {
         this.clazz = clazz;
         this.methodName = methodName;
         this.methodParameterTypes = methodParameterTypes;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodParameterTypes.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodParameterTypes.java
index 3f45339..a8430b5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodParameterTypes.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodParameterTypes.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,7 @@
     }
 
     @Override
-    public Class[] run() {
+    public Class<?>[] run() {
         return PrivilegedAccessHelper.getMethodParameterTypes(method);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodReturnType.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodReturnType.java
index 91a96fd..f2e1391 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodReturnType.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethodReturnType.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,7 @@
     }
 
     @Override
-    public Class run() {
+    public Class<?> run() {
         return PrivilegedAccessHelper.getMethodReturnType(method);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethods.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethods.java
index 4d17714..8ac8cb9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethods.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/PrivilegedGetMethods.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
@@ -19,9 +19,9 @@
 
 public class PrivilegedGetMethods implements PrivilegedAction<Method[]> {
 
-    private final Class clazz;
+    private final Class<?> clazz;
 
-    public PrivilegedGetMethods(Class clazz) {
+    public PrivilegedGetMethods(Class<?> clazz) {
         this.clazz = clazz;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/SecurableObjectHolder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/SecurableObjectHolder.java
index 2b03fd2..45fb97b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/SecurableObjectHolder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/security/SecurableObjectHolder.java
@@ -86,7 +86,7 @@
 
         try {
             ConversionManager cm = ConversionManager.getDefaultManager();
-            Class securableClass = cm.convertObject(m_securableClassName, Class.class);
+            Class<?> securableClass = cm.convertObject(m_securableClassName, Class.class);
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
                     m_securableObject = (Securable)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(securableClass));
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 cd0ec69..5a22647 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
@@ -923,7 +923,7 @@
      *
      * @return ClassDescriptor
      */
-    protected ClassDescriptor checkHierarchyForDescriptor(Class theClass){
+    protected ClassDescriptor checkHierarchyForDescriptor(Class<?> theClass){
         return getDescriptor(theClass.getSuperclass());
     }
 
@@ -1179,11 +1179,11 @@
         try{
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     Class<InjectionManager<T>> elim = AccessController.doPrivileged(new PrivilegedClassForName<>(InjectionManager.DEFAULT_CDI_INJECTION_MANAGER, true, getLoader()));
-                    Constructor<InjectionManager<T>> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(elim, new Class[]{String.class}, false));
+                    Constructor<InjectionManager<T>> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(elim, new Class<?>[]{String.class}, false));
                     return AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, new Object[]{beanManager}));
             } else {
                 Class<InjectionManager<T>> elim = org.eclipse.persistence.internal.security.PrivilegedAccessHelper.getClassForName(InjectionManager.DEFAULT_CDI_INJECTION_MANAGER, true, getLoader());
-                Constructor<InjectionManager<T>> constructor = PrivilegedAccessHelper.<InjectionManager<T>>getConstructorFor(elim, new Class[] {Object.class}, false);
+                Constructor<InjectionManager<T>> constructor = PrivilegedAccessHelper.<InjectionManager<T>>getConstructorFor(elim, new Class<?>[] {Object.class}, false);
                 return PrivilegedAccessHelper.<InjectionManager<T>>invokeConstructor(constructor, new Object[] {beanManager});
             }
         } catch (Exception e){
@@ -1576,7 +1576,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass) throws DatabaseException {
         ClassDescriptor descriptor = getDescriptor(domainClass);
 
         if (descriptor == null) {
@@ -1601,7 +1601,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, Object arg1) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Object arg1) throws DatabaseException {
         Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         return executeQuery(queryName, domainClass, argumentValues);
@@ -1616,7 +1616,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Object arg1, Object arg2) throws DatabaseException {
         Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
@@ -1632,7 +1632,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2, Object arg3) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Object arg1, Object arg2, Object arg3) throws DatabaseException {
         Vector<Object> argumentValues = new Vector<>();
         argumentValues.addElement(arg1);
         argumentValues.addElement(arg2);
@@ -1649,7 +1649,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, List argumentValues) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, List argumentValues) throws DatabaseException {
         if (argumentValues instanceof Vector) {
             return executeQuery(queryName, domainClass, (Vector)argumentValues);
         } else {
@@ -1665,7 +1665,7 @@
      *
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    public Object executeQuery(String queryName, Class domainClass, Vector argumentValues) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Vector argumentValues) throws DatabaseException {
         ClassDescriptor descriptor = getDescriptor(domainClass);
 
         if (descriptor == null) {
@@ -2370,7 +2370,7 @@
      * If the passed Class parameter is null, then null will be returned.
      */
     @Override
-    public ClassDescriptor getClassDescriptor(Class theClass) {
+    public ClassDescriptor getClassDescriptor(Class<?> theClass) {
         if (theClass == null) {
             return null;
         }
@@ -2409,7 +2409,7 @@
      * new class. If the passed Class is null, null will be returned.
      */
     @Override
-    public ClassDescriptor getDescriptor(Class theClass) {
+    public ClassDescriptor getDescriptor(Class<?> theClass) {
         if (theClass == null) {
             return null;
         }
@@ -2444,9 +2444,9 @@
                     // This is used by EJB to find the descriptor for a stub and remote to unwrap it,
                     // and by inheritance to allow for subclasses that have no additional state to not require a descriptor.
                     if (!theClass.isInterface()) {
-                        Class[] interfaces = theClass.getInterfaces();
+                        Class<?>[] interfaces = theClass.getInterfaces();
                         for (int index = 0; index < interfaces.length; ++index) {
-                            Class interfaceClass = interfaces[index];
+                            Class<?> interfaceClass = interfaces[index];
                             descriptor = getDescriptor(interfaceClass);
                             if (descriptor != null) {
                                 getDescriptors().put(interfaceClass, descriptor);
@@ -2760,7 +2760,7 @@
      * Return the sequnce number from the database
      */
     @Override
-    public Number getNextSequenceNumberValue(Class domainClass) {
+    public Number getNextSequenceNumberValue(Class<?> domainClass) {
         return (Number)getSequencing().getNextValue(domainClass);
     }
 
@@ -2880,7 +2880,7 @@
      * The platform is used for database specific behavior.
      */
     @Override
-    public Platform getPlatform(Class domainClass) {
+    public Platform getPlatform(Class<?> domainClass) {
         // PERF: Cache the platform.
         if (platform == null) {
             platform = getDatasourcePlatform();
@@ -3106,7 +3106,7 @@
      * Return the session to be used for the class.
      * Used for compatibility with the session broker.
      */
-    public AbstractSession getSessionForClass(Class domainClass) {
+    public AbstractSession getSessionForClass(Class<?> domainClass) {
         if (hasBroker()) {
             return getBroker().getSessionForClass(domainClass);
         }
@@ -3235,7 +3235,7 @@
      * Return true if a descriptor exists for the given class.
      */
     @Override
-    public boolean hasDescriptor(Class theClass) {
+    public boolean hasDescriptor(Class<?> theClass) {
         if (theClass == null) {
             return false;
         }
@@ -3328,7 +3328,7 @@
      * PUBLIC:
      * Return if the class is defined as read-only.
      */
-    public boolean isClassReadOnly(Class theClass) {
+    public boolean isClassReadOnly(Class<?> theClass) {
         ClassDescriptor descriptor = getDescriptor(theClass);
         return isClassReadOnly(theClass, descriptor);
     }
@@ -3338,7 +3338,7 @@
      * Return if the class is defined as read-only.
      * PERF: Pass descriptor to avoid re-lookup.
      */
-    public boolean isClassReadOnly(Class theClass, ClassDescriptor descriptor) {
+    public boolean isClassReadOnly(Class<?> theClass, ClassDescriptor descriptor) {
         if ((descriptor != null) && descriptor.shouldBeReadOnly()) {
             return true;
         }
@@ -3626,7 +3626,7 @@
      * @see #readAllObjects(Class, Expression)
      */
     @Override
-    public Vector readAllObjects(Class domainClass) throws DatabaseException {
+    public Vector readAllObjects(Class<?> domainClass) throws DatabaseException {
         ReadAllQuery query = new ReadAllQuery();
         query.setIsExecutionClone(true);
         query.setReferenceClass(domainClass);
@@ -3643,7 +3643,7 @@
      *
      * @see ReadAllQuery
      */
-    public Vector readAllObjects(Class domainClass, String sqlString) throws DatabaseException {
+    public Vector readAllObjects(Class<?> domainClass, String sqlString) throws DatabaseException {
         ReadAllQuery query = new ReadAllQuery();
         query.setReferenceClass(domainClass);
         query.setSQLString(sqlString);
@@ -3660,7 +3660,7 @@
      * @see Call
      */
     @Override
-    public Vector readAllObjects(Class referenceClass, Call aCall) throws DatabaseException {
+    public Vector readAllObjects(Class<?> referenceClass, Call aCall) throws DatabaseException {
         ReadAllQuery raq = new ReadAllQuery();
         raq.setReferenceClass(referenceClass);
         raq.setCall(aCall);
@@ -3676,7 +3676,7 @@
      * @see ReadAllQuery
      */
     @Override
-    public Vector readAllObjects(Class domainClass, Expression expression) throws DatabaseException {
+    public Vector readAllObjects(Class<?> domainClass, Expression expression) throws DatabaseException {
         ReadAllQuery query = new ReadAllQuery();
         query.setReferenceClass(domainClass);
         query.setSelectionCriteria(expression);
@@ -3694,7 +3694,7 @@
      * @see #readAllObjects(Class, Expression)
      */
     @Override
-    public Object readObject(Class domainClass) throws DatabaseException {
+    public Object readObject(Class<?> domainClass) throws DatabaseException {
         ReadObjectQuery query = new ReadObjectQuery();
         query.setReferenceClass(domainClass);
         query.setIsExecutionClone(true);
@@ -3711,7 +3711,7 @@
      *
      * @see ReadObjectQuery
      */
-    public Object readObject(Class domainClass, String sqlString) throws DatabaseException {
+    public Object readObject(Class<?> domainClass, String sqlString) throws DatabaseException {
         ReadObjectQuery query = new ReadObjectQuery();
         query.setReferenceClass(domainClass);
         query.setSQLString(sqlString);
@@ -3729,7 +3729,7 @@
      * @see JPQLCall
      */
     @Override
-    public Object readObject(Class domainClass, Call aCall) throws DatabaseException {
+    public Object readObject(Class<?> domainClass, Call aCall) throws DatabaseException {
         ReadObjectQuery query = new ReadObjectQuery();
         query.setReferenceClass(domainClass);
         query.setCall(aCall);
@@ -3745,7 +3745,7 @@
      * @see ReadObjectQuery
      */
     @Override
-    public Object readObject(Class domainClass, Expression expression) throws DatabaseException {
+    public Object readObject(Class<?> domainClass, Expression expression) throws DatabaseException {
         ReadObjectQuery query = new ReadObjectQuery();
         query.setReferenceClass(domainClass);
         query.setSelectionCriteria(expression);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ClientSessionIdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ClientSessionIdentityMapAccessor.java
index 5315127..1e59385 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ClientSessionIdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ClientSessionIdentityMapAccessor.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 @@
      * The client session does not have a local identity map, so this has no effect and should not be used.
      */
     @Override
-    public void initializeIdentityMap(Class theClass) {
+    public void initializeIdentityMap(Class<?> theClass) {
         // Do nothing
     }
 
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 fa636d9..ee098e3 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
@@ -49,7 +49,7 @@
  */
 public class CommitManager {
     /** Order based on mapping foreign key constraints on how to insert objects by class. */
-    protected List<Class> commitOrder;
+    protected List<Class<?>> commitOrder;
 
     /**
      * This tracks the commit state for the objects, PENDING, PRE, POST, COMPLETE.
@@ -141,22 +141,22 @@
             // PERF: if the number of classes in the project is large this loop can be a perf issue.
             // If only one class types changed, then avoid loop.
             if ((uowChangeSet.getObjectChanges().size() + uowChangeSet.getNewObjectChangeSets().size()) <= 1) {
-                Iterator<Class> classes = uowChangeSet.getNewObjectChangeSets().keySet().iterator();
+                Iterator<Class<?>> classes = uowChangeSet.getNewObjectChangeSets().keySet().iterator();
                 if (classes.hasNext()) {
-                    Class theClass = classes.next();
+                    Class<?> theClass = classes.next();
                     commitNewObjectsForClassWithChangeSet(uowChangeSet, theClass);
                 }
                 classes = uowChangeSet.getObjectChanges().keySet().iterator();
                 if (classes.hasNext()) {
-                    Class theClass = classes.next();
+                    Class<?> theClass = classes.next();
                     commitChangedObjectsForClassWithChangeSet(uowChangeSet, theClass);
                 }
             } else {
                 // The commit order is all of the classes ordered by dependencies, this is done for deadlock avoidance.
-                List<Class> commitOrder = getCommitOrder();
+                List<Class<?>> commitOrder = getCommitOrder();
                 int size = commitOrder.size();
                 for (int index = 0; index < size; index++) {
-                    Class theClass = commitOrder.get(index);
+                    Class<?> theClass = commitOrder.get(index);
                     commitAllObjectsForClassWithChangeSet(uowChangeSet, theClass);
                 }
             }
@@ -208,7 +208,7 @@
      * Commit all of the objects of the class type in the change set.
      * This allows for the order of the classes to be processed optimally.
      */
-    protected void commitAllObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class theClass) {
+    protected void commitAllObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class<?> theClass) {
         // Although new objects should be first, there is an issue that new objects get added to non-new after the insert,
         // so the object would be written twice.
         commitChangedObjectsForClassWithChangeSet(uowChangeSet, theClass);
@@ -219,7 +219,7 @@
      * Commit all of the objects of the class type in the change set.
      * This allows for the order of the classes to be processed optimally.
      */
-    protected void commitNewObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class theClass) {
+    protected void commitNewObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class<?> theClass) {
         Map<ObjectChangeSet, ObjectChangeSet> newObjectChangesList = uowChangeSet.getNewObjectChangeSets().get(theClass);
         if (newObjectChangesList != null) { // may be no changes for that class type.
             AbstractSession session = getSession();
@@ -256,7 +256,7 @@
      * Commit changed of the objects of the class type in the change set.
      * This allows for the order of the classes to be processed optimally.
      */
-    protected void commitChangedObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class theClass) {
+    protected void commitChangedObjectsForClassWithChangeSet(UnitOfWorkChangeSet uowChangeSet, Class<?> theClass) {
         Map<ObjectChangeSet, ObjectChangeSet> objectChangesList = uowChangeSet.getObjectChanges().get(theClass);
         if (objectChangesList != null) {// may be no changes for that class type.
             ClassDescriptor descriptor = null;
@@ -311,9 +311,9 @@
             if (objects.size() == 1) {
                 deleteAllObjects(objects.get(0).getClass(), objects, session);
             } else {
-                List<Class> commitOrder = getCommitOrder();
+                List<Class<?>> commitOrder = getCommitOrder();
                 for (int orderIndex = commitOrder.size() - 1; orderIndex >= 0; orderIndex--) {
-                    Class theClass = commitOrder.get(orderIndex);
+                    Class<?> theClass = commitOrder.get(orderIndex);
                     deleteAllObjects(theClass, objects, session);
                 }
             }
@@ -334,7 +334,7 @@
     /**
      * Delete all of the objects with the matching class.
      */
-    public void deleteAllObjects(Class theClass, List objects, AbstractSession session) {
+    public void deleteAllObjects(Class<?> theClass, List objects, AbstractSession session) {
         ClassDescriptor descriptor = null;
 
         if (((UnitOfWorkImpl)session).getCommitOrder() != CommitOrderType.NONE) {// bug 331064 - Sort the delete order
@@ -369,7 +369,7 @@
      * Sort the objects based on PK.
      */
     // bug 331064 - Sort the delete order based on PKs.
-    private List sort (Class theClass, List objects) {
+    private List sort (Class<?> theClass, List objects) {
         ClassDescriptor descriptor = session.getDescriptor(theClass);
         org.eclipse.persistence.internal.descriptors.ObjectBuilder objectBuilder = descriptor.getObjectBuilder();
         int size = objects.size();
@@ -389,7 +389,7 @@
      * The commit order is a vector of vectors,
      * where the first vector is all root level classes, the second is classes owned by roots and so on.
      */
-    public List<Class> getCommitOrder() {
+    public List<Class<?>> getCommitOrder() {
         if (this.commitOrder == null) {
             this.commitOrder = new ArrayList();
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderCalculator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderCalculator.java
index da9b6bf..f05e4aa 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderCalculator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/CommitOrderCalculator.java
@@ -159,7 +159,7 @@
         return orderedDescriptors;
     }
 
-    public CommitOrderDependencyNode nodeFor(Class c) {
+    public CommitOrderDependencyNode nodeFor(Class<?> c) {
         for (Enumeration<CommitOrderDependencyNode> e = nodes.elements(); e.hasMoreElements();) {
             CommitOrderDependencyNode n = e.nextElement();
             if (n.getDescriptor().getJavaClass() == c) {
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 70e3e8e..7dec0f9 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
@@ -105,7 +105,7 @@
             DatabaseMapping mapping = mappings.nextElement();
             if (mapping.isForeignReferenceMapping()) {
                 if (mapping.hasConstraintDependency()) {
-                    Class ownedClass;
+                    Class<?> ownedClass;
                     ClassDescriptor refDescriptor = mapping.getReferenceDescriptor();
                     if (refDescriptor == null) {
                         refDescriptor = session.getDescriptor(((ForeignReferenceMapping)mapping).getReferenceClass());
@@ -121,7 +121,7 @@
                     // I could remove duplicates here, but it's not that big a deal.
                     Helper.addAllToVector(relatedNodes, ownedNodes);
                 } else if (mapping.hasInverseConstraintDependency()) {
-                    Class ownerClass;
+                    Class<?> ownerClass;
                     ClassDescriptor refDescriptor = mapping.getReferenceDescriptor();
                     if (refDescriptor == null) {
                         refDescriptor = session.getDescriptor(((ForeignReferenceMapping)mapping).getReferenceClass());
@@ -149,7 +149,7 @@
     public void recordSpecifiedDependencies() {
         for (Enumeration constraintsEnum = getDescriptor().getConstraintDependencies().elements();
                  constraintsEnum.hasMoreElements();) {
-            Class ownedClass = (Class)constraintsEnum.nextElement();
+            Class<?> ownedClass = (Class)constraintsEnum.nextElement();
             CommitOrderDependencyNode node = getOwner().nodeFor(ownedClass);
             Vector ownedNodes = withAllSubclasses(node);
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DatabaseSessionImpl.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DatabaseSessionImpl.java
index ebf8e57..de46ba1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DatabaseSessionImpl.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DatabaseSessionImpl.java
@@ -574,7 +574,7 @@
      * The platform is used for database specific behavior.
      */
     @Override
-    public Platform getPlatform(Class domainClass) {
+    public Platform getPlatform(Class<?> domainClass) {
         // PERF: Cache the platform.
         if (platform == null) {
             if(isLoggedIn) {
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 de48c91..6d021ad 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
@@ -89,7 +89,7 @@
      * Deferred lock the identity map for the object, this is used for avoiding deadlock
      * The return cacheKey should be used to release the deferred lock.
      */
-    public CacheKey acquireDeferredLock(Object primarKey, Class javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireDeferredLock(Object primarKey, Class<?> javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         return getIdentityMapManager().acquireDeferredLock(primarKey, javaClass, descriptor, isCacheCheckComplete);
     }
 
@@ -98,7 +98,7 @@
      * Lock the identity map for the object, this must be done when building objects.
      * The return cacheKey should be used to release the lock.
      */
-    public CacheKey acquireLock(Object primarKey, Class javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireLock(Object primarKey, Class<?> javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         return acquireLock(primarKey, javaClass, false, descriptor, isCacheCheckComplete);
     }
 
@@ -107,7 +107,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * Called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLock(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireLock(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         return getIdentityMapManager().acquireLock(primaryKey, domainClass, forMerge, descriptor, isCacheCheckComplete);
     }
 
@@ -116,7 +116,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * Called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLockNoWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor) {
+    public CacheKey acquireLockNoWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor) {
         return getIdentityMapManager().acquireLockNoWait(primaryKey, domainClass, forMerge, descriptor);
     }
 
@@ -125,7 +125,7 @@
      * Provides access for setting a concurrency lock on an object in the IdentityMap.
      * Called with true from the merge process, if true then the refresh will not refresh the object.
      */
-    public CacheKey acquireLockWithWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
+    public CacheKey acquireLockWithWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
         return getIdentityMapManager().acquireLockWithWait(primaryKey, domainClass, forMerge, descriptor, wait);
     }
 
@@ -135,7 +135,7 @@
      * This will allow multiple users to read the same object but prevent writes to
      * the object while the read lock is held.
      */
-    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         return getIdentityMapManager().acquireReadLockOnCacheKey(primaryKey, domainClass, descriptor);
     }
 
@@ -146,7 +146,7 @@
      * the object while the read lock is held.
      * If no readlock can be acquired then do not wait but return null.
      */
-    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         return getIdentityMapManager().acquireReadLockOnCacheKeyNoWait(primaryKey, domainClass, descriptor);
     }
 
@@ -192,7 +192,7 @@
      * Clear the query cache associated with the named query on the descriptor for the given class
      */
     @Override
-    public void clearQueryCache(String descriptorQueryName, Class queryClass) {
+    public void clearQueryCache(String descriptorQueryName, Class<?> queryClass) {
         getIdentityMapManager().clearQueryCache((ReadQuery)session.getDescriptor(queryClass).getQueryManager().getQuery(descriptorQueryName));
     }
 
@@ -210,7 +210,7 @@
      * Return if their is an object for the primary key.
      */
     @Override
-    public boolean containsObjectInIdentityMap(Object primaryKey, Class theClass) {
+    public boolean containsObjectInIdentityMap(Object primaryKey, Class<?> theClass) {
         ClassDescriptor descriptor = getSession().getDescriptor(theClass);
         return containsObjectInIdentityMap(primaryKey, theClass, descriptor);
     }
@@ -219,7 +219,7 @@
      * INTERNAL:
      * Return if their is an object for the primary key.
      */
-    public boolean containsObjectInIdentityMap(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public boolean containsObjectInIdentityMap(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         return getIdentityMapManager().containsKey(primaryKey, theClass, descriptor);
     }
 
@@ -228,7 +228,7 @@
      * Return if their is an object for the row containing primary key and the class.
      */
     @Override
-    public boolean containsObjectInIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass) {
+    public boolean containsObjectInIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass) {
         return containsObjectInIdentityMap(extractPrimaryKeyFromRow(rowContainingPrimaryKey, theClass), theClass);
     }
 
@@ -236,7 +236,7 @@
      * INTERNAL:
      * Extract primary key from a row.
      */
-    protected Object extractPrimaryKeyFromRow(DataRecord rowContainingPrimaryKey, Class theClass) {
+    protected Object extractPrimaryKeyFromRow(DataRecord rowContainingPrimaryKey, Class<?> theClass) {
         return this.session.getDescriptor(theClass).getObjectBuilder().extractPrimaryKeyFromRow((AbstractRecord)rowContainingPrimaryKey, this.session);
     }
 
@@ -262,7 +262,7 @@
      * Query the cache in-memory.
      * If the expression is too complex an exception will be thrown.
      */
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow) throws QueryException {
         return getAllFromIdentityMap(selectionCriteria, theClass, translationRow, InMemoryQueryIndirectionPolicy.SHOULD_THROW_INDIRECTION_EXCEPTION, true);
     }
 
@@ -272,7 +272,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException {
         return getAllFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, true);
     }
 
@@ -282,7 +282,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException {
         return getAllFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, true);
     }
 
@@ -293,7 +293,7 @@
      * Only return objects that are invalid in the cache if specified.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
         int policy = 0;
         if (valueHolderPolicy != null) {
             policy = valueHolderPolicy.getPolicy();
@@ -308,7 +308,7 @@
      * Only return objects that are invalid in the cache if specified.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
         return getIdentityMapManager().getAllFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, shouldReturnInvalidatedObjects);
     }
 
@@ -360,7 +360,7 @@
      * @param primaryKey the primary key of the cache key to be retrieved.
      * @param myClass the class of the cache key to be retrieved.
      */
-    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class myClass, ClassDescriptor descriptor) {
+    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class<?> myClass, ClassDescriptor descriptor) {
         return getIdentityMapManager().getCacheKeyForObjectForLock(primaryKey, myClass, descriptor);
     }
 
@@ -370,7 +370,7 @@
      * @param primaryKey the primary key of the cache key to be retrieved.
      * @param myClass the class of the cache key to be retrieved.
      */
-    public CacheKey getCacheKeyForObject(Object primaryKey, Class myClass, ClassDescriptor descriptor, boolean forMerge) {
+    public CacheKey getCacheKeyForObject(Object primaryKey, Class<?> myClass, ClassDescriptor descriptor, boolean forMerge) {
         return getIdentityMapManager().getCacheKeyForObject(primaryKey, myClass, descriptor, forMerge);
     }
 
@@ -379,7 +379,7 @@
      * Return the object from the identity with the primary and class.
      */
     @Override
-    public Object getFromIdentityMap(Object primaryKey, Class theClass) {
+    public Object getFromIdentityMap(Object primaryKey, Class<?> theClass) {
         return getFromIdentityMap(primaryKey, theClass, true);
     }
 
@@ -387,7 +387,7 @@
      * ADVANCED:
      * Return the object from the identity with the primary and class.
      */
-    public Object getFromIdentityMap(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         return getFromIdentityMap(primaryKey, null, theClass, true, descriptor);
     }
 
@@ -397,7 +397,7 @@
      * Only return invalidated objects if requested.
      */
     @Override
-    public Object getFromIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) {
+    public Object getFromIdentityMap(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects) {
         return getFromIdentityMap(primaryKey, null, theClass, shouldReturnInvalidatedObjects, getSession().getDescriptor(theClass));
     }
 
@@ -406,7 +406,7 @@
      * Return the object from the identity with the primary and class.
      * Only return invalidated objects if requested.
      */
-    public Object getFromIdentityMap(Object primaryKey, Object object, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object primaryKey, Object object, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         return getIdentityMapManager().getFromIdentityMap(primaryKey, theClass, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -415,7 +415,7 @@
      * Return the object from the local identity map with the primary and class.
      * This avoids checking the parent cache for the unit of work.
      */
-    public Object getFromLocalIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromLocalIdentityMap(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         return getIdentityMapManager().getFromIdentityMap(primaryKey, theClass, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -424,7 +424,7 @@
      * Return the object from the local identity map with the primary and class.
      * This avoids checking the parent cache for the unit of work.
      */
-    public Object getFromLocalIdentityMapWithDeferredLock(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor){
+    public Object getFromLocalIdentityMapWithDeferredLock(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor){
         return getIdentityMapManager().getFromIdentityMapWithDeferredLock(primaryKey, theClass, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -433,7 +433,7 @@
      * Return the object from the identity with the primary and class.
      */
     @Override
-    public Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass) {
+    public Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass) {
         return getFromIdentityMap(extractPrimaryKeyFromRow(rowContainingPrimaryKey, theClass), theClass);
     }
 
@@ -443,7 +443,7 @@
      * Only return invalidated objects if requested.
      */
     @Override
-    public Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects) {
+    public Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects) {
         return getFromIdentityMap(extractPrimaryKeyFromRow(rowContainingPrimaryKey, theClass), theClass, shouldReturnInvalidatedObjects);
     }
 
@@ -454,7 +454,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow) throws QueryException {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow) throws QueryException {
         return getFromIdentityMap(selectionCriteria, theClass, translationRow, InMemoryQueryIndirectionPolicy.SHOULD_THROW_INDIRECTION_EXCEPTION);
     }
 
@@ -465,7 +465,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException {
         int policy = 0;
         if (valueHolderPolicy != null) {
             policy = valueHolderPolicy.getPolicy();
@@ -480,7 +480,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException {
         return getFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, false);
     }
 
@@ -490,7 +490,7 @@
      * If the object is not found null is returned.
      * If the expression is too complex an exception will be thrown.
      */
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming) {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming) {
         return getFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, conforming, true, getSession().getDescriptor(theClass));
     }
 
@@ -500,7 +500,7 @@
      * If the object is not found null is returned.
      * If the expression is too complex an exception will be thrown.
      */
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects) {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects) {
         return getFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, conforming, shouldReturnInvalidatedObjects, getSession().getDescriptor(theClass));
     }
 
@@ -510,7 +510,7 @@
      * If the object is not found null is returned.
      * If the expression is too complex an exception will be thrown.
      */
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         return getIdentityMapManager().getFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, conforming, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -518,7 +518,7 @@
      * INTERNAL:
      * Return the object from the identity with the primary and class.
      */
-    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         return getFromIdentityMapWithDeferredLock(primaryKey, theClass, true, descriptor);
     }
 
@@ -527,7 +527,7 @@
      * Return the object from the identity with the primary and class.
      * Only return invalidated objects if requested
      */
-    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         return getIdentityMapManager().getFromIdentityMapWithDeferredLock(primaryKey, theClass, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -548,7 +548,7 @@
      * INTERNAL: (public to allow test cases to check)
      * Return the identity map for the class, if missing create a new one.
      */
-    public IdentityMap getIdentityMap(Class theClass) {
+    public IdentityMap getIdentityMap(Class<?> theClass) {
         ClassDescriptor descriptor = getSession().getDescriptor(theClass);
         if (descriptor == null) {
             throw ValidationException.missingDescriptor(theClass.toString());
@@ -612,7 +612,7 @@
      * Get the wrapper object from the cache key associated with the given primary key,
      * this is used for EJB.
      */
-    public Object getWrapper(Object primaryKey, Class theClass) {
+    public Object getWrapper(Object primaryKey, Class<?> theClass) {
         return getIdentityMapManager().getWrapper(primaryKey, theClass);
     }
 
@@ -638,7 +638,7 @@
      * Extract the write lock value from the identity map.
      */
     @Override
-    public Object getWriteLockValue(Object primaryKey, Class theClass) {
+    public Object getWriteLockValue(Object primaryKey, Class<?> theClass) {
         return getWriteLockValue(primaryKey, theClass, getSession().getDescriptor(theClass));
     }
 
@@ -646,7 +646,7 @@
      * ADVANCED:
      * Extract the write lock value from the identity map.
      */
-    public Object getWriteLockValue(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public Object getWriteLockValue(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         return getIdentityMapManager().getWriteLockValue(primaryKey, theClass, descriptor);
     }
 
@@ -673,7 +673,7 @@
      * are not referenced from other objects of other classes or from the application.
      */
     @Override
-    public void initializeIdentityMap(Class theClass) {
+    public void initializeIdentityMap(Class<?> theClass) {
         getSession().log(SessionLog.FINER, SessionLog.CACHE, "initialize_identitymap", theClass);
         getIdentityMapManager().initializeIdentityMap(theClass);
     }
@@ -723,7 +723,7 @@
      * without any action.
      */
     @Override
-    public void invalidateObject(Object primaryKey, Class theClass) {
+    public void invalidateObject(Object primaryKey, Class<?> theClass) {
         invalidateObject(primaryKey, theClass, false);
     }
 
@@ -733,7 +733,7 @@
      * @param invalidateCluster if true the invalidation will be broadcast to each server in the cluster.
      */
     @Override
-    public void invalidateObject(Object primaryKey, Class theClass, boolean invalidateCluster) {
+    public void invalidateObject(Object primaryKey, Class<?> theClass, boolean invalidateCluster) {
         if (primaryKey == null) {
             return;
         }
@@ -767,7 +767,7 @@
      * without any action.
      */
     @Override
-    public void invalidateObject(DataRecord rowContainingPrimaryKey, Class theClass) {
+    public void invalidateObject(DataRecord rowContainingPrimaryKey, Class<?> theClass) {
         invalidateObject(rowContainingPrimaryKey, theClass, false);
     }
 
@@ -777,7 +777,7 @@
      * @param invalidateCluster if true the invalidation will be broadcast to each server in the cluster.
      */
     @Override
-    public void invalidateObject(DataRecord rowContainingPrimaryKey, Class theClass, boolean invalidateCluster) {
+    public void invalidateObject(DataRecord rowContainingPrimaryKey, Class<?> theClass, boolean invalidateCluster) {
         invalidateObject(extractPrimaryKeyFromRow(rowContainingPrimaryKey, theClass), theClass, invalidateCluster);
     }
 
@@ -800,7 +800,7 @@
      * @param shouldInvalidateOnException boolean indicates weather to invalidate the object if conform threw exception.
      */
     @Override
-    public void invalidateObjects(Expression selectionCriteria, Class theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
+    public void invalidateObjects(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
         getIdentityMapManager().invalidateObjects(selectionCriteria, theClass, translationRow, shouldInvalidateOnException);
     }
 
@@ -833,7 +833,7 @@
      * Will set the recurseAndInvalidateToParentRoot flag on inheritance to true.
      */
     @Override
-    public void invalidateClass(Class myClass) {
+    public void invalidateClass(Class<?> myClass) {
         invalidateClass(myClass, true);
     }
 
@@ -847,7 +847,7 @@
      *   up the inheritance tree to the root descriptor
      */
     @Override
-    public void invalidateClass(Class myClass, boolean recurseAndInvalidateToParentRoot) {
+    public void invalidateClass(Class<?> myClass, boolean recurseAndInvalidateToParentRoot) {
         //forward the call to getIdentityMap locally in case subclasses overload
         IdentityMap identityMap = this.getIdentityMap(myClass); // will always return the root IdentityMap
 
@@ -875,7 +875,7 @@
      * This is used to invalidate the query cache on any change.
      */
     @Override
-    public void invalidateQueryCache(Class classThatChanged) {
+    public void invalidateQueryCache(Class<?> classThatChanged) {
         getIdentityMapManager().invalidateQueryCache(classThatChanged);
     }
 
@@ -906,7 +906,7 @@
      * Return if this object is valid in the cache.
      */
     @Override
-    public boolean isValid(Object primaryKey, Class theClass) {
+    public boolean isValid(Object primaryKey, Class<?> theClass) {
         ClassDescriptor descriptor = getSession().getDescriptor(theClass);
         //forward the call to getCacheKeyForObject locally in case subclasses overload
         CacheKey key = getCacheKeyForObjectForLock(primaryKey, theClass, descriptor);
@@ -921,7 +921,7 @@
      * Return if this object is valid in the cache.
      */
     @Override
-    public boolean isValid(DataRecord rowContainingPrimaryKey, Class theClass) {
+    public boolean isValid(DataRecord rowContainingPrimaryKey, Class<?> theClass) {
         return isValid(extractPrimaryKeyFromRow(rowContainingPrimaryKey, theClass), theClass);
     }
 
@@ -931,7 +931,7 @@
      * The output of this method will be logged to this session's SessionLog at SEVERE level.
      */
     @Override
-    public void printIdentityMap(Class businessClass) {
+    public void printIdentityMap(Class<?> businessClass) {
         if (getSession().shouldLog(SessionLog.SEVERE, SessionLog.CACHE)) {
             getIdentityMapManager().printIdentityMap(businessClass);
         }
@@ -1079,7 +1079,7 @@
      * Remove the object from the object cache.
      */
     @Override
-    public Object removeFromIdentityMap(Object key, Class theClass) {
+    public Object removeFromIdentityMap(Object key, Class<?> theClass) {
         ClassDescriptor descriptor = getSession().getDescriptor(theClass);
         if (descriptor == null){
             return null;
@@ -1091,7 +1091,7 @@
      * INTERNAL:
      * Remove the object from the object cache.
      */
-    public Object removeFromIdentityMap(Object key, Class theClass, ClassDescriptor descriptor, Object object) {
+    public Object removeFromIdentityMap(Object key, Class<?> theClass, ClassDescriptor descriptor, Object object) {
         return getIdentityMapManager().removeFromIdentityMap(key, theClass, descriptor, object);
     }
 
@@ -1108,7 +1108,7 @@
      * Update the wrapper object the cache key associated with the given primary key,
      * this is used for EJB.
      */
-    public void setWrapper(Object primaryKey, Class theClass, Object wrapper) {
+    public void setWrapper(Object primaryKey, Class<?> theClass, Object wrapper) {
         getIdentityMapManager().setWrapper(primaryKey, theClass, wrapper);
     }
 
@@ -1126,7 +1126,7 @@
      * Update the write lock value in the cache.
      */
     @Override
-    public void updateWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue) {
+    public void updateWriteLockValue(Object primaryKey, Class<?> theClass, Object writeLockValue) {
         getIdentityMapManager().setWriteLockValue(primaryKey, theClass, writeLockValue);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IsolatedClientSessionIdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IsolatedClientSessionIdentityMapAccessor.java
index 26cdcf0..4dd2a25 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IsolatedClientSessionIdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/IsolatedClientSessionIdentityMapAccessor.java
@@ -56,7 +56,7 @@
      * The return cacheKey should be used to release the deferred lock
      */
     @Override
-    public CacheKey acquireDeferredLock(Object primaryKey, Class javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireDeferredLock(Object primaryKey, Class<?> javaClass, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireDeferredLock(primaryKey, javaClass, descriptor, isCacheCheckComplete);
         } else {
@@ -70,7 +70,7 @@
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
     @Override
-    public CacheKey acquireLock(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
+    public CacheKey acquireLock(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, boolean isCacheCheckComplete) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireLock(primaryKey, domainClass, forMerge, descriptor, isCacheCheckComplete);
         } else {
@@ -84,7 +84,7 @@
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
     @Override
-    public CacheKey acquireLockNoWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor) {
+    public CacheKey acquireLockNoWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireLockNoWait(primaryKey, domainClass, forMerge, descriptor);
         } else {
@@ -98,7 +98,7 @@
      * called with true from the merge process, if true then the refresh will not refresh the object.
      */
     @Override
-    public CacheKey acquireLockWithWait(Object primaryKey, Class domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
+    public CacheKey acquireLockWithWait(Object primaryKey, Class<?> domainClass, boolean forMerge, ClassDescriptor descriptor, int wait) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireLockWithWait(primaryKey, domainClass, forMerge, descriptor, wait);
         } else {
@@ -113,7 +113,7 @@
      * the object while the read lock is held.
      */
     @Override
-    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKey(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireReadLockOnCacheKey(primaryKey, domainClass, descriptor);
         } else {
@@ -129,7 +129,7 @@
      * If no readlock can be acquired then do not wait but return null.
      */
     @Override
-    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class domainClass, ClassDescriptor descriptor) {
+    public CacheKey acquireReadLockOnCacheKeyNoWait(Object primaryKey, Class<?> domainClass, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().acquireReadLockOnCacheKeyNoWait(primaryKey, domainClass, descriptor);
         } else {
@@ -155,7 +155,7 @@
      * Return if their is an object for the primary key.
      */
     @Override
-    public boolean containsObjectInIdentityMap(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public boolean containsObjectInIdentityMap(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             if (this.identityMapManager == null) {
                 return false;
@@ -184,7 +184,7 @@
      * Only return objects that are invalid in the cache if specified.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
         if (!session.getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().getAllFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, shouldReturnInvalidatedObjects);
         } else {
@@ -199,7 +199,7 @@
      * @param myClass the class of the cache key to be retrieved.
      */
     @Override
-    public CacheKey getCacheKeyForObject(Object primaryKey, Class myClass, ClassDescriptor descriptor, boolean forMerge) {
+    public CacheKey getCacheKeyForObject(Object primaryKey, Class<?> myClass, ClassDescriptor descriptor, boolean forMerge) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             if (this.identityMapManager == null) {
                 return null;
@@ -217,7 +217,7 @@
      * @param myClass the class of the cache key to be retrieved.
      */
     @Override
-    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class myClass, ClassDescriptor descriptor) {
+    public CacheKey getCacheKeyForObjectForLock(Object primaryKey, Class<?> myClass, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             if (this.identityMapManager == null) {
                 return null;
@@ -233,7 +233,7 @@
      * Return the object from the identity with the primary and class.
      */
     @Override
-    public Object getFromIdentityMap(Object primaryKey, Object object, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object primaryKey, Object object, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()){
             Object cachedObject = null;
             if (this.identityMapManager != null){
@@ -249,7 +249,7 @@
         }
     }
 
-    protected Object getAndCloneCacheKeyFromParent(Object primaryKey, Object objectToClone, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    protected Object getAndCloneCacheKeyFromParent(Object primaryKey, Object objectToClone, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         CacheKey cacheKey = null;
         if (objectToClone != null && objectToClone instanceof PersistenceEntity){
             cacheKey = ((PersistenceEntity)objectToClone)._persistence_getCacheKey();
@@ -368,7 +368,7 @@
      * This avoids checking the parent cache for the unit of work.
      */
     @Override
-    public Object getFromLocalIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromLocalIdentityMap(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         return getFromIdentityMap(primaryKey, null, theClass, shouldReturnInvalidatedObjects, descriptor);
     }
 
@@ -379,7 +379,7 @@
      * If the expression is too complex an exception will be thrown.
      */
     @Override
-    public Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean conforming, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().getFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, conforming, shouldReturnInvalidatedObjects, descriptor);
         } else {
@@ -393,7 +393,7 @@
      * Only return invalidated objects if requested
      */
     @Override
-    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             if (this.identityMapManager == null) {
                 return null;
@@ -462,7 +462,7 @@
      * this is used for EJB.
      */
     @Override
-    public Object getWrapper(Object primaryKey, Class theClass) {
+    public Object getWrapper(Object primaryKey, Class<?> theClass) {
         if (!session.getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().getWrapper(primaryKey, theClass);
         } else {
@@ -486,7 +486,7 @@
      * Extract the write lock value from the identity map.
      */
     @Override
-    public Object getWriteLockValue(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public Object getWriteLockValue(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         if (!descriptor.getCachePolicy().isSharedIsolation()) {
             return getIdentityMapManager().getWriteLockValue(primaryKey, theClass, descriptor);
         } else {
@@ -517,7 +517,7 @@
      * are not referenced from other objects of other classes or from the application.
      */
     @Override
-    public void initializeIdentityMap(Class theClass) {
+    public void initializeIdentityMap(Class<?> theClass) {
         getSession().log(SessionLog.FINER, SessionLog.CACHE, "initialize_identitymap", theClass);
         if (!session.getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             getIdentityMapManager().initializeIdentityMap(theClass);
@@ -531,7 +531,7 @@
      * This is used to invalidate the query cache on any change.
      */
     @Override
-    public void invalidateQueryCache(Class classThatChanged) {
+    public void invalidateQueryCache(Class<?> classThatChanged) {
         if (!session.getDescriptor(classThatChanged).getCachePolicy().isSharedIsolation()) {
             getIdentityMapManager().invalidateQueryCache(classThatChanged);
         } else {
@@ -599,7 +599,7 @@
      * The output of this method will be logged to this session's SessionLog at SEVERE level.
      */
     @Override
-    public void printIdentityMap(Class businessClass) {
+    public void printIdentityMap(Class<?> businessClass) {
         if (getSession().shouldLog(SessionLog.SEVERE, SessionLog.CACHE)) {
             if (!session.getDescriptor(businessClass).getCachePolicy().isSharedIsolation()) {
                 getIdentityMapManager().printIdentityMap(businessClass);
@@ -661,7 +661,7 @@
      * @param shouldInvalidateOnException boolean indicates weather to invalidate the object if conform threw exception.
      */
     @Override
-    public void invalidateObjects(Expression selectionCriteria, Class theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
+    public void invalidateObjects(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, boolean shouldInvalidateOnException) {
         if (!session.getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             getIdentityMapManager().invalidateObjects(selectionCriteria, theClass, translationRow, shouldInvalidateOnException);
         } else {
@@ -687,7 +687,7 @@
      * Remove the object from the object cache.
      */
     @Override
-    public Object removeFromIdentityMap(Object key, Class theClass, ClassDescriptor descriptor, Object object) {
+    public Object removeFromIdentityMap(Object key, Class<?> theClass, ClassDescriptor descriptor, Object object) {
         Object removedObject = null;
         if (descriptor.isIsolated() || descriptor.isProtectedIsolation()) {
             removedObject = getIdentityMapManager().removeFromIdentityMap(key, theClass, descriptor, object);
@@ -713,7 +713,7 @@
      * this is used for EJB.
      */
     @Override
-    public void setWrapper(Object primaryKey, Class theClass, Object wrapper) {
+    public void setWrapper(Object primaryKey, Class<?> theClass, Object wrapper) {
         if (!getSession().getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             getIdentityMapManager().setWrapper(primaryKey, theClass, wrapper);
         } else {
@@ -726,7 +726,7 @@
      * Update the write lock value in the identity map.
      */
     @Override
-    public void updateWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue) {
+    public void updateWriteLockValue(Object primaryKey, Class<?> theClass, Object writeLockValue) {
         if (!getSession().getDescriptor(theClass).getCachePolicy().isSharedIsolation()) {
             getIdentityMapManager().setWriteLockValue(primaryKey, theClass, writeLockValue);
         } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ObjectChangeSet.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ObjectChangeSet.java
index c4eeb0b..a52aca6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ObjectChangeSet.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/ObjectChangeSet.java
@@ -89,7 +89,7 @@
     protected transient Map<String, ChangeRecord> attributesToChanges;
     protected boolean shouldBeDeleted;
     protected Object id;
-    protected transient Class classType;
+    protected transient Class<?> classType;
     protected String className;
     protected boolean isNew;
     protected boolean isAggregate;
@@ -335,7 +335,7 @@
      * The class type must be initialized, before this method is called.
      * @return java.lang.Class or null if the class type isn't initialized.
      */
-    public Class getClassType() {
+    public Class<?> getClassType() {
         return classType;
     }
 
@@ -345,7 +345,7 @@
      * This requires the session to reload the class on serialization.
      */
     @Override
-    public Class getClassType(org.eclipse.persistence.sessions.Session session) {
+    public Class<?> getClassType(org.eclipse.persistence.sessions.Session session) {
         if (classType == null) {
             classType = session.getDatasourcePlatform().getConversionManager().convertObject(getClassName(), ClassConstants.CLASS);
         }
@@ -877,7 +877,7 @@
     /**
      * Set the class type.
      */
-    public void setClassType(Class newValue) {
+    public void setClassType(Class<?> newValue) {
         this.classType = newValue;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/RepeatableWriteUnitOfWork.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/RepeatableWriteUnitOfWork.java
index dc38f57..46496b7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/RepeatableWriteUnitOfWork.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/RepeatableWriteUnitOfWork.java
@@ -270,7 +270,7 @@
      * @return ClassDescriptor
      */
     @Override
-    protected ClassDescriptor checkHierarchyForDescriptor(Class theClass){
+    protected ClassDescriptor checkHierarchyForDescriptor(Class<?> theClass){
         ClassDescriptor descriptor = getDescriptor(theClass.getSuperclass());
         if (descriptor != null && descriptor.hasInheritance() && descriptor.getInheritancePolicy().getDescribesNonPersistentSubclasses()){
             return descriptor;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SimpleResultSetRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SimpleResultSetRecord.java
index d0b4ebf..6cbbf22 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SimpleResultSetRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/SimpleResultSetRecord.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.
  * Copyright (c) 2013, 2018 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -130,7 +130,7 @@
                 } else {
                     if (this.shouldUseOptimization) {
                         try {
-                            Class fieldType = field.getType();
+                            Class<?> fieldType = field.getType();
                             if (fieldType == ClassConstants.STRING) {
                                 if(platform.shouldUseGetSetNString()){
                                     value = resultSet.getNString(index + 1);
@@ -210,7 +210,7 @@
                 } else {
                     if (this.shouldUseOptimization) {
                         try {
-                            Class fieldType = field.getType();
+                            Class<?> fieldType = field.getType();
                             if (fieldType == ClassConstants.STRING) {
                                 if(platform.shouldUseGetSetNString()){
                                     value = resultSet.getNString(index + 1);
@@ -249,7 +249,7 @@
     protected Object getValueFromResultSet(int index, DatabaseField field) {
         if (this.shouldUseOptimization) {
             try {
-                Class fieldType = field.getType();
+                Class<?> fieldType = field.getType();
                 if (fieldType == ClassConstants.STRING) {
                     if(platform.shouldUseGetSetNString()){
                         return resultSet.getNString(index + 1);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkChangeSet.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkChangeSet.java
index a3929b9..114a6ea 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkChangeSet.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkChangeSet.java
@@ -42,10 +42,10 @@
 
     /** This is the collection of ObjectChanges held by this ChangeSet */
     // *** TODO fix transients *** */
-    protected Map<Class, Map<ObjectChangeSet, ObjectChangeSet>> objectChanges;
+    protected Map<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> objectChanges;
 
     // This collection holds the new objects which will have no real identity until inserted.
-    protected Map<Class, Map<ObjectChangeSet, ObjectChangeSet>> newObjectChangeSets;
+    protected Map<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> newObjectChangeSets;
     protected Map<Object, ObjectChangeSet> cloneToObjectChangeSet;
     protected Map<ObjectChangeSet, Object> objectChangeSetToUOWClone;
     protected Map<ObjectChangeSet, ObjectChangeSet> aggregateChangeSets;
@@ -427,7 +427,7 @@
      * INTERNAL:
      * Returns the ObjectChanges held by this ChangeSet.
      */
-    public Map<Class, Map<ObjectChangeSet, ObjectChangeSet>> getObjectChanges() {
+    public Map<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> getObjectChanges() {
         if (objectChanges == null) {
             objectChanges = new HashMap<>();
         }
@@ -690,7 +690,7 @@
      * INTERNAL:
      * This method will return a reference to the new object change set collections.
      */
-    public Map<Class, Map<ObjectChangeSet, ObjectChangeSet>> getNewObjectChangeSets() {
+    public Map<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> getNewObjectChangeSets() {
         if (this.newObjectChangeSets == null) {
             this.newObjectChangeSets = new HashMap<>();
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkIdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkIdentityMapAccessor.java
index 75ef304..52cdd96 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkIdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/UnitOfWorkIdentityMapAccessor.java
@@ -53,7 +53,7 @@
      * This is used to invalidate the query cache on any change.
      */
     @Override
-    public void invalidateQueryCache(Class classThatChanged) {
+    public void invalidateQueryCache(Class<?> classThatChanged) {
         this.session.getParent().getIdentityMapAccessor().invalidateQueryCache(classThatChanged);
     }
 
@@ -80,7 +80,7 @@
      * Clear the query cache associated with the named query on the descriptor for the given class
      */
     @Override
-    public void clearQueryCache(String descriptorQueryName, Class queryClass) {
+    public void clearQueryCache(String descriptorQueryName, Class<?> queryClass) {
         this.session.getParent().getIdentityMapAccessor().clearQueryCache((ReadQuery)session.getDescriptor(queryClass).getQueryManager().getQuery(descriptorQueryName));
     }
 
@@ -89,7 +89,7 @@
      * Return if their is an object for the primary key.
      */
     @Override
-    public boolean containsObjectInIdentityMap(Object primaryKey, Class theClass, ClassDescriptor descriptor) {
+    public boolean containsObjectInIdentityMap(Object primaryKey, Class<?> theClass, ClassDescriptor descriptor) {
         if (getIdentityMapManager().containsKey(primaryKey, theClass, descriptor)) {
             return true;
         }
@@ -102,7 +102,7 @@
      * will always be returned from a UnitOfWork.
      */
     @Override
-    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
+    public Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException {
         return super.getAllFromIdentityMap(selectionCriteria, theClass, translationRow, valueHolderPolicy, true);
     }
 
@@ -112,7 +112,7 @@
      * invalidated objects are always returned since this is a UnitOfWork
      */
     @Override
-    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMapWithDeferredLock(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         Object objectFromCache = super.getFromIdentityMapWithDeferredLock(primaryKey, theClass, true, descriptor);
         if (objectFromCache != null){
             return objectFromCache;
@@ -129,7 +129,7 @@
      * In the parent session, only return the object if it has not been Invalidated
      */
     @Override
-    public Object getFromIdentityMap(Object primaryKey, Object object, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    public Object getFromIdentityMap(Object primaryKey, Object object, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         Object objectFromCache = super.getFromIdentityMap(primaryKey, object, theClass, true, descriptor);
 
         if (objectFromCache != null) {
@@ -143,7 +143,7 @@
      * INTERNAL:
      * This method will return the object from the parent and clone it.
      */
-    protected Object getAndCloneCacheKeyFromParent(Object primaryKey, Object objectToClone, Class theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
+    protected Object getAndCloneCacheKeyFromParent(Object primaryKey, Object objectToClone, Class<?> theClass, boolean shouldReturnInvalidatedObjects, ClassDescriptor descriptor) {
         // Note: Objects returned from the parent's identity map should include invalidated
         // objects. This is important because this internal method is used in the existence
         // check in the UnitOfWork.
@@ -260,7 +260,7 @@
      * (e.g. when querying on large project, do not want to check small project, both are inherited
      * from the project, and stored in the same identity map).
      */
-    protected Object checkForInheritance(Object domainObject, Class superClass, ClassDescriptor descriptor) {
+    protected Object checkForInheritance(Object domainObject, Class<?> superClass, ClassDescriptor descriptor) {
         if ((domainObject != null) && ((domainObject.getClass() != superClass) && (!superClass.isInstance(domainObject)))) {
             if (descriptor.hasInheritance() && descriptor.getInheritancePolicy().getUseDescriptorsToValidateInheritedObjects()) {
                 if (descriptor.getInheritancePolicy().getSubclassDescriptor(domainObject.getClass()) == null) {
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 6e25b93..cc78e3e 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
@@ -204,7 +204,7 @@
     protected Map<ReadQuery, ReadQuery> batchQueries;
 
     /** Read-only class can be used for reference data to avoid cloning when not required. */
-    protected Set<Class> readOnlyClasses;
+    protected Set<Class<?>> readOnlyClasses;
 
     /** Flag indicating that the transaction for this UOW was already begun. */
     protected boolean wasTransactionBegunPrematurely;
@@ -479,7 +479,7 @@
      * Cannot be called after objects have been registered in the unit of work.
      */
     @Override
-    public void addReadOnlyClass(Class theClass) throws ValidationException {
+    public void addReadOnlyClass(Class<?> theClass) throws ValidationException {
         if (!canChangeReadOnlySet()) {
             throw ValidationException.cannotModifyReadOnlyClassesSetAfterUsingUnitOfWork();
         }
@@ -504,7 +504,7 @@
     @Override
     public void addReadOnlyClasses(Collection classes) {
         for (Iterator iterator = classes.iterator(); iterator.hasNext();) {
-            Class theClass = (Class)iterator.next();
+            Class<?> theClass = (Class)iterator.next();
             addReadOnlyClass(theClass);
         }
     }
@@ -2003,7 +2003,7 @@
      * Return any new objects matching the expression.
      * Used for in-memory querying.
      */
-    public Vector getAllFromNewObjects(Expression selectionCriteria, Class theClass, AbstractRecord translationRow, int valueHolderPolicy) {
+    public Vector getAllFromNewObjects(Expression selectionCriteria, Class<?> theClass, AbstractRecord translationRow, int valueHolderPolicy) {
         // PERF: Avoid initialization of new objects if none.
         if (!hasNewObjects()) {
             return new Vector(1);
@@ -2533,7 +2533,7 @@
      * Return any new object matching the expression.
      * Used for in-memory querying.
      */
-    public Object getObjectFromNewObjects(Class theClass, Object selectionKey) {
+    public Object getObjectFromNewObjects(Class<?> theClass, Object selectionKey) {
         // PERF: Avoid initialization of new objects if none.
         if (!hasNewObjects()) {
             return null;
@@ -2563,7 +2563,7 @@
      * Return any new object matching the expression.
      * Used for in-memory querying.
      */
-    public Object getObjectFromNewObjects(Expression selectionCriteria, Class theClass, AbstractRecord translationRow, int valueHolderPolicy) {
+    public Object getObjectFromNewObjects(Expression selectionCriteria, Class<?> theClass, AbstractRecord translationRow, int valueHolderPolicy) {
         // PERF: Avoid initialization of new objects if none.
         if (!hasNewObjects()) {
             return null;
@@ -2770,7 +2770,7 @@
      * Return the platform for a particular class.
      */
     @Override
-    public Platform getPlatform(Class domainClass) {
+    public Platform getPlatform(Class<?> domainClass) {
         return this.parent.getPlatform(domainClass);
     }
 
@@ -3071,7 +3071,7 @@
      * @return boolean, true if the class is read-only, false otherwise.
      */
     @Override
-    public boolean isClassReadOnly(Class theClass, ClassDescriptor descriptor) {
+    public boolean isClassReadOnly(Class<?> theClass, ClassDescriptor descriptor) {
         if ((descriptor != null) && (descriptor.shouldBeReadOnly())) {
             return true;
         }
@@ -3383,7 +3383,7 @@
                 //If we are merging into the shared cache acquire all required locks before merging.
                 this.parent.getIdentityMapAccessorInstance().getWriteLockManager().acquireRequiredLocks(getMergeManager(), (UnitOfWorkChangeSet)getUnitOfWorkChangeSet());
             }
-            Set<Class> classesChanged = new HashSet<>();
+            Set<Class<?>> classesChanged = new HashSet<>();
             if (! shouldStoreBypassCache()) {
                 for (Map<ObjectChangeSet, ObjectChangeSet> objectChangesList : ((UnitOfWorkChangeSet)getUnitOfWorkChangeSet()).getObjectChanges().values()) {
                     // May be no changes for that class type.
@@ -3430,7 +3430,7 @@
 
                 postMergeChanges(classesChanged);
 
-                for (Class changedClass : classesChanged) {
+                for (Class<?> changedClass : classesChanged) {
                     this.parent.getIdentityMapAccessorInstance().invalidateQueryCache(changedClass);
                 }
                 // If change propagation enabled through RemoteCommandManager then go for it
@@ -3652,7 +3652,7 @@
      * This can be used to ensure that new objects are registered correctly.
      */
     @Override
-    public Object newInstance(Class theClass) {
+    public Object newInstance(Class<?> theClass) {
         //CR#2272
         logDebugMessage(theClass, "new_instance");
 
@@ -4703,7 +4703,7 @@
      * It is illegal to try to send this method to a nested UnitOfWork.
      */
     @Override
-    public void removeReadOnlyClass(Class theClass) throws ValidationException {
+    public void removeReadOnlyClass(Class<?> theClass) throws ValidationException {
         if (!canChangeReadOnlySet()) {
             throw ValidationException.cannotModifyReadOnlyClassesSetAfterUsingUnitOfWork();
         }
@@ -4865,7 +4865,7 @@
      * @return Map to facilitate merging with conforming instances
      * returned from a query on the database.
      */
-    public Map<Object, Object> scanForConformingInstances(Expression selectionCriteria, Class referenceClass, AbstractRecord arguments, ObjectLevelReadQuery query) {
+    public Map<Object, Object> scanForConformingInstances(Expression selectionCriteria, Class<?> referenceClass, AbstractRecord arguments, ObjectLevelReadQuery query) {
         // for bug 3568141 use the painstaking shouldTriggerIndirection if set
         int policy = query.getInMemoryQueryIndirectionPolicyState();
         if (policy != InMemoryQueryIndirectionPolicy.SHOULD_TRIGGER_INDIRECTION) {
@@ -5029,7 +5029,7 @@
      * This set of classes given are checked that subclasses of a read-only class are also
      * in the read-only set provided.
      */
-    public void setReadOnlyClasses(List<Class> classes) {
+    public void setReadOnlyClasses(List<Class<?>> classes) {
         if (classes.isEmpty()) {
             this.readOnlyClasses = null;
             return;
@@ -6049,7 +6049,7 @@
      * @param id The primary key of the object, either as a List, singleton, IdClass or an instance of the object.
      */
     @Override
-    public Object getReference(Class theClass, Object id) {
+    public Object getReference(Class<?> theClass, Object id) {
         ClassDescriptor descriptor = getDescriptor(theClass);
         if (descriptor == null || descriptor.isDescriptorTypeAggregate()) {
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("unknown_bean_class", new Object[] { theClass }));
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 6b2f55d..879ded1 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
@@ -1457,7 +1457,7 @@
              try {
                  // Get the Class of each entry in the collection
                  if(value instanceof Collection) {
-                     Class<?>[] parameterTypes = new Class[((Collection<?>)value).size()];
+                     Class<?>[] parameterTypes = new Class<?>[((Collection<?>)value).size()];
                      int i = 0;
                      for(Iterator<String> anIterator = ((Collection<String>)value).iterator(); anIterator.hasNext();) {
                          parameterTypes[i++] = Class.forName(anIterator.next());
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 0da9047..c884622 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
@@ -745,10 +745,10 @@
         try {
             Class<ServerPlatform> serverClass = (Class<ServerPlatform>) m_classLoader.loadClass(serverClassName);
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
-                Constructor<ServerPlatform> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(serverClass, new Class[] { org.eclipse.persistence.sessions.DatabaseSession.class }, false));
+                Constructor<ServerPlatform> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(serverClass, new Class<?>[] { org.eclipse.persistence.sessions.DatabaseSession.class }, false));
                 platform = AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, new Object[] { session }));
             }else{
-                Constructor<ServerPlatform> constructor = PrivilegedAccessHelper.getConstructorFor(serverClass, new Class[] { org.eclipse.persistence.sessions.DatabaseSession.class }, false);
+                Constructor<ServerPlatform> constructor = PrivilegedAccessHelper.getConstructorFor(serverClass, new Class<?>[] { org.eclipse.persistence.sessions.DatabaseSession.class }, false);
                 platform = PrivilegedAccessHelper.invokeConstructor(constructor, new Object[] { session });
             }
         } catch (Exception e) {
@@ -1089,10 +1089,10 @@
         try {
             Class<TransportManager> tmClass = (Class<TransportManager>) m_classLoader.loadClass(tmConfig.getTransportManagerClassName());
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
-                Constructor<TransportManager> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(tmClass, new Class[] { RemoteCommandManager.class, boolean.class, String.class }, false));
+                Constructor<TransportManager> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(tmClass, new Class<?>[] { RemoteCommandManager.class, boolean.class, String.class }, false));
                 tm = AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, new Object[] { rcm, tmConfig.useSingleThreadedNotification(), tmConfig.getTopicName() }));
             }else{
-                Constructor<TransportManager> constructor = PrivilegedAccessHelper.getConstructorFor(tmClass, new Class[] { RemoteCommandManager.class, boolean.class, String.class }, false);
+                Constructor<TransportManager> constructor = PrivilegedAccessHelper.getConstructorFor(tmClass, new Class<?>[] { RemoteCommandManager.class, boolean.class, String.class }, false);
                 tm = PrivilegedAccessHelper.invokeConstructor(constructor, new Object[] { rcm, tmConfig.useSingleThreadedNotification(), tmConfig.getTopicName() });
             }
         } catch (Exception e) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteConnection.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteConnection.java
index da58610..d26706d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteConnection.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteConnection.java
@@ -129,7 +129,7 @@
     /**
      * Get descriptor
      */
-    public abstract ClassDescriptor getDescriptor(Class domainClass);
+    public abstract ClassDescriptor getDescriptor(Class<?> domainClass);
 
     /**
      * Get descriptor
@@ -175,7 +175,7 @@
     /**
      * Execute query remotely.
      */
-    public abstract Transporter remoteExecuteNamedQuery(String name, Class javaClass, Vector arguments);
+    public abstract Transporter remoteExecuteNamedQuery(String name, Class<?> javaClass, Vector arguments);
 
     /**
      * Rollback a transaction on the database.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteSessionController.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteSessionController.java
index 4c9477a..d86f757 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteSessionController.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteSessionController.java
@@ -426,7 +426,7 @@
      * Extract descriptor from the session
      */
     public Transporter getDescriptor(Transporter remoteTransporter) {
-        Class theClass = (Class)remoteTransporter.getObject();
+        Class<?> theClass = (Class)remoteTransporter.getObject();
         Transporter transporter = new Transporter();
 
         try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteUnitOfWork.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteUnitOfWork.java
index 76a7d81..3279d8b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteUnitOfWork.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/RemoteUnitOfWork.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
@@ -445,7 +445,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass) throws DatabaseException {
         return executeQuery(queryName, domainClass, new Vector(1));
     }
 
@@ -458,7 +458,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, Vector argumentValues) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Vector argumentValues) throws DatabaseException {
         DistributedSession remoteSession = null;
         if (getParent().isRemoteSession()) {
             remoteSession = (DistributedSession)getParent();
@@ -496,7 +496,7 @@
      * Return the table descriptor specified for the class.
      */
     @Override
-    public ClassDescriptor getDescriptor(Class domainClass) {
+    public ClassDescriptor getDescriptor(Class<?> domainClass) {
         return getParent().getDescriptor(domainClass);
     }
 
@@ -708,14 +708,14 @@
             return;
         }
         uowChangeSet.setSession(session);
-        for (Map.Entry<Class, Map<ObjectChangeSet, ObjectChangeSet>> entry : uowChangeSet.getObjectChanges().entrySet()) {
+        for (Map.Entry<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> entry : uowChangeSet.getObjectChanges().entrySet()) {
             ClassDescriptor descriptor = getDescriptor(entry.getKey());
             for (ObjectChangeSet changeSet : entry.getValue().values()) {
                 changeSet.setDescriptor(descriptor);
                 changeSet.setClassType(entry.getKey());
             }
         }
-        for (Map.Entry<Class, Map<ObjectChangeSet, ObjectChangeSet>> entry : uowChangeSet.getNewObjectChangeSets().entrySet()) {
+        for (Map.Entry<Class<?>, Map<ObjectChangeSet, ObjectChangeSet>> entry : uowChangeSet.getNewObjectChangeSets().entrySet()) {
             ClassDescriptor descriptor = getDescriptor(entry.getKey());
             for (ObjectChangeSet changeSet : entry.getValue().values()) {
                 changeSet.setDescriptor(descriptor);
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 0f19c14..15320e6 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
@@ -1429,7 +1429,7 @@
      * INTERNAL:
      * for inheritance purpose
      */
-    public ClassDescriptor getReferenceDescriptor(Class theClass, AbstractSession session) {
+    public ClassDescriptor getReferenceDescriptor(Class<?> theClass, AbstractSession session) {
         if (this.referenceDescriptor.getJavaClass() == theClass) {
             return this.referenceDescriptor;
         } else {
@@ -2241,7 +2241,7 @@
         ObjectChangeSet objectChanges = null;
         for (int index = 0; index < size; ++index) {
             objectChanges = aggregateObjects.get(index);
-            Class localClassType = objectChanges.getClassType(session);
+            Class<?> localClassType = objectChanges.getClassType(session);
             sourceAggregate = objectChanges.getUnitOfWorkClone();
 
             // cr 4155 Load the target from the UnitOfWork.  This will be the original
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 a526f10..367fc3b 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
@@ -60,7 +60,7 @@
 public abstract class AggregateMapping extends DatabaseMapping {
 
     /** Stores a reference class */
-    protected Class referenceClass;
+    protected Class<?> referenceClass;
     protected String referenceClassName;
 
     /** The descriptor of the reference class */
@@ -441,7 +441,7 @@
     /**
      * Convenience method
      */
-    protected ObjectBuilder getObjectBuilderForClass(Class javaClass, AbstractSession session) {
+    protected ObjectBuilder getObjectBuilderForClass(Class<?> javaClass, AbstractSession session) {
         return getReferenceDescriptor(javaClass, session).getObjectBuilder();
     }
 
@@ -463,7 +463,7 @@
      * PUBLIC:
      * Returns the reference class
      */
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -494,7 +494,7 @@
      * INTERNAL:
      * For inheritance purposes.
      */
-    protected ClassDescriptor getReferenceDescriptor(Class theClass, AbstractSession session) {
+    protected ClassDescriptor getReferenceDescriptor(Class<?> theClass, AbstractSession session) {
         if (this.referenceDescriptor.getJavaClass() == theClass) {
             return this.referenceDescriptor;
         }
@@ -951,7 +951,7 @@
      * PUBLIC:
      * This is a reference class whose instances this mapping will store in the domain objects.
      */
-    public void setReferenceClass(Class aClass) {
+    public void setReferenceClass(Class<?> aClass) {
         referenceClass = aClass;
     }
 
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 1680f37..5aeb41d 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
@@ -437,7 +437,7 @@
         boolean refreshing = true;
         if (targetObject != null){
             if (descriptor.hasInheritance()) {
-                Class newAggregateClass = descriptor.getInheritancePolicy().classFromRow(databaseRow, executionSession);
+                Class<?> newAggregateClass = descriptor.getInheritancePolicy().classFromRow(databaseRow, executionSession);
                 descriptor = getReferenceDescriptor(newAggregateClass, executionSession);
                 aggregate = getMatchingAttributeValueFromObject(databaseRow, targetObject, executionSession, descriptor);
                 if ((aggregate != null) && (aggregate.getClass() != newAggregateClass)) {
@@ -1196,7 +1196,7 @@
      * The classification type for the attribute this mapping represents
      */
     @Override
-    public Class getAttributeClassification() {
+    public Class<?> getAttributeClassification() {
         return getReferenceClass();
     }
 
@@ -1206,7 +1206,7 @@
      * This is used to convert the row value to a consistent Java value.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         DatabaseMapping mapping = getReferenceDescriptor().getObjectBuilder().getMappingForField(fieldToClassify);
         if (mapping == null) {
             return null;// Means that the mapping is read-only
@@ -1285,7 +1285,7 @@
      * Since aggregate object mappings clone their descriptors, for inheritance the correct child clone must be found.
      */
     @Override
-    public ClassDescriptor getReferenceDescriptor(Class theClass, AbstractSession session) {
+    public ClassDescriptor getReferenceDescriptor(Class<?> theClass, AbstractSession session) {
         if (this.referenceDescriptor.getJavaClass() == theClass) {
             return this.referenceDescriptor;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AttributeAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AttributeAccessor.java
index 588af27..67f409a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AttributeAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/AttributeAccessor.java
@@ -76,7 +76,7 @@
      * Return the class type of the attribute.
      */
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         return ClassConstants.OBJECT;
     }
 
@@ -84,7 +84,7 @@
      * Allow any initialization to be performed with the descriptor class.
      */
     @Override
-    public void initializeAttributes(Class descriptorClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> descriptorClass) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
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 dd540db..9d655c5 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
@@ -2279,7 +2279,7 @@
      * <code>java.util.Collection</code> interface.
      */
     @Override
-    public void useCollectionClass(Class concreteClass) {
+    public void useCollectionClass(Class<?> concreteClass) {
         ContainerPolicy policy = ContainerPolicy.buildPolicyFor(concreteClass, hasOrderBy() || listOrderField != null);
         setContainerPolicy(policy);
     }
@@ -2291,7 +2291,7 @@
      * <p>The container class must implement (directly or indirectly) the
      * <code>java.util.SortedSet</code> interface.
      */
-    public void useSortedSetClass(Class concreteClass, Comparator comparator) {
+    public void useSortedSetClass(Class<?> concreteClass, Comparator comparator) {
         try {
             SortedCollectionContainerPolicy policy = (SortedCollectionContainerPolicy)ContainerPolicy.buildPolicyFor(concreteClass);
             policy.setComparator(comparator);
@@ -2359,7 +2359,7 @@
      * must set before calling this method.
      */
     @Override
-    public void useMapClass(Class concreteClass, String keyName) {
+    public void useMapClass(Class<?> concreteClass, String keyName) {
         // the reference class has to be specified before coming here
         if (getReferenceClassName() == null) {
             throw DescriptorException.referenceClassNotSpecified(this);
@@ -2380,7 +2380,7 @@
      * <p> The container class must implement (directly or indirectly) the
      * <code>java.util.Map</code> interface.
      */
-    public void useMapClass(Class concreteClass) {
+    public void useMapClass(Class<?> concreteClass) {
         useMapClass(concreteClass, null);
     }
 
@@ -2483,14 +2483,14 @@
         this.indirectionPolicy.validateContainerPolicy(session.getIntegrityChecker());
 
         if (getAttributeAccessor() instanceof InstanceVariableAttributeAccessor) {
-            Class attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
+            Class<?> attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
             this.indirectionPolicy.validateDeclaredAttributeTypeForCollection(attributeType, session.getIntegrityChecker());
         } else if (getAttributeAccessor().isMethodAttributeAccessor()) {
             // 323403
-            Class returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
+            Class<?> returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
             this.indirectionPolicy.validateGetMethodReturnTypeForCollection(returnType, session.getIntegrityChecker());
 
-            Class parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
+            Class<?> parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
             this.indirectionPolicy.validateSetMethodParameterTypeForCollection(parameterType, session.getIntegrityChecker());
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ContainerMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ContainerMapping.java
index 0c0f8c3..8e240e9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ContainerMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ContainerMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -46,7 +46,7 @@
      * <p>The container class must implement (directly or indirectly) the
      * <code>java.util.Collection</code> interface.
      */
-    void useCollectionClass(Class concreteClass);
+    void useCollectionClass(Class<?> concreteClass);
 
     /**
      * PUBLIC:
@@ -79,7 +79,7 @@
      * <p>To facilitate resolving the method, the mapping's referenceClass
      * must set before calling this method.
      */
-    void useMapClass(Class concreteClass, String methodName);
+    void useMapClass(Class<?> concreteClass, String methodName);
 
     /**
      * PUBLIC:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DatabaseMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DatabaseMapping.java
index 0af1fe4..367fbaf 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DatabaseMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DatabaseMapping.java
@@ -557,7 +557,7 @@
                 List<String> valuePair = getUnconvertedProperties().get(propertyName);
                 String value = valuePair.get(0);
                 String valueTypeName = valuePair.get(1);
-                Class valueType = null;
+                Class<?> valueType = null;
 
                 // Have to initialize the valueType now
                 try {
@@ -817,7 +817,7 @@
      * @return TODO
      */
     @Override
-    public Class getAttributeClassification() {
+    public Class<?> getAttributeClassification() {
         return null;
     }
 
@@ -904,7 +904,7 @@
      * This is used to convert the row value to a consistent java value.
      * By default this is unknown.
      */
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         return null;
     }
 
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 3e6ff18..dbb0ba9 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
@@ -176,7 +176,7 @@
      * Referenced by MapAttributeImpl to pick up the BasicMap value parameter type
      * To specify the conversion type
      * */
-    protected transient Class attributeClassification;
+    protected transient Class<?> attributeClassification;
     protected String attributeClassificationName;
 
     /**
@@ -950,7 +950,7 @@
 
         // Instantiate any custom converter class
         if (valueConverterClassName != null) {
-            Class valueConverterClass;
+            Class<?> valueConverterClass;
             Converter valueConverter;
 
             try {
@@ -962,7 +962,7 @@
                     }
 
                     try {
-                        valueConverter = (Converter) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(valueConverterClass));
+                        valueConverter = (Converter) AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(valueConverterClass));
                     } catch (PrivilegedActionException exception) {
                         throw ValidationException.classNotFoundWhileConvertingClassNames(valueConverterClassName, exception.getException());
                     }
@@ -1160,7 +1160,7 @@
      * @since Java Persistence API 2.0
      */
     @Override
-    public Class getAttributeClassification() {
+    public Class<?> getAttributeClassification() {
         return attributeClassification;
     }
 
@@ -1326,7 +1326,7 @@
      * This cannot be used with direct collection mappings.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return null;
     }
 
@@ -2715,7 +2715,7 @@
      * @since Java Persistence API 2.0
      * Migrated from AbstractDirectMapping
      */
-    public void setAttributeClassification(Class attributeClassification) {
+    public void setAttributeClassification(Class<?> attributeClassification) {
         this.attributeClassification = attributeClassification;
     }
 
@@ -2820,7 +2820,7 @@
      * has specific typing requirements such as usage of java.sql.Blob or NChar.
      * This must be called after the field name has been set.
      */
-    public void setDirectFieldClassification(Class fieldType) {
+    public void setDirectFieldClassification(Class<?> fieldType) {
         getDirectField().setType(fieldType);
     }
 
@@ -2876,7 +2876,7 @@
      * This cannot be used with direct collection mappings.
      */
     @Override
-    public void setReferenceClass(Class referenceClass) {
+    public void setReferenceClass(Class<?> referenceClass) {
         return;
     }
 
@@ -3170,7 +3170,7 @@
      * @see org.eclipse.persistence.mappings.DirectMapMapping
      */
     @Override
-    public void useMapClass(Class concreteClass, String methodName) {
+    public void useMapClass(Class<?> concreteClass, String methodName) {
         throw ValidationException.illegalUseOfMapInDirectCollection(this, concreteClass, methodName);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectMapMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectMapMapping.java
index fea4c8e..c150b8c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectMapMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/DirectMapMapping.java
@@ -876,7 +876,7 @@
      * has specific typing requirements such as usage of java.sql.Blob or NChar.
      * This must be called after the field name has been set.
      */
-    public void setDirectKeyFieldClassification(Class fieldType) {
+    public void setDirectKeyFieldClassification(Class<?> fieldType) {
         getDirectKeyField().setType(fieldType);
     }
 
@@ -958,7 +958,7 @@
      * <p>Note: Do not use both useMapClass(Class concreteClass), useTransparentMap().  The last use of one of the two methods will override the previous one.
      */
     @Override
-    public void useMapClass(Class concreteClass) {
+    public void useMapClass(Class<?> concreteClass) {
         if (!Helper.classImplementsInterface(concreteClass, ClassConstants.Map_Class)) {
             throw DescriptorException.illegalContainerClass(concreteClass);
         }
@@ -984,7 +984,7 @@
      * Java type.  The converter can also be set directly.
      * Note that setting the converter to another converter will overwrite this setting.
      */
-    public void setKeyClass(Class keyClass) {
+    public void setKeyClass(Class<?> keyClass) {
         TypeConversionConverter converter = new TypeConversionConverter(this);
         converter.setObjectClass(keyClass);
         setKeyConverter(converter);
@@ -996,7 +996,7 @@
      * if it is a TypeConversionConverter.
      * This returns null if not using a TypeConversionConverter key converter.
      */
-    public Class getKeyClass() {
+    public Class<?> getKeyClass() {
         if ((getKeyConverter() == null) || !(getKeyConverter() instanceof TypeConversionConverter)) {
             return null;
         }
@@ -1010,7 +1010,7 @@
      * Java type.  The converter can also be set directly.
      * Note that setting the converter to another converter will overwrite this setting.
      */
-    public void setValueClass(Class valueClass) {
+    public void setValueClass(Class<?> valueClass) {
         TypeConversionConverter converter = new TypeConversionConverter(this);
         converter.setObjectClass(valueClass);
         setValueConverter(converter);
@@ -1068,7 +1068,7 @@
      * if it is a TypeConversionConverter.
      * This returns null if not using a TypeConversionConverter value converter.
      */
-    public Class getValueClass() {
+    public Class<?> getValueClass() {
         if (!(getValueConverter() instanceof TypeConversionConverter)) {
             return null;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ForeignReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ForeignReferenceMapping.java
index fed4f9a..28525a6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ForeignReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ForeignReferenceMapping.java
@@ -105,7 +105,7 @@
     public static final String QUERY_BATCH_PARAMETER = "query-batch-parameter";
 
     /** This is used only in descriptor proxy in remote session */
-    protected Class referenceClass;
+    protected Class<?> referenceClass;
     protected String referenceClassName;
 
     /** The session is temporarily used for initialization. Once used, it is set to null */
@@ -422,7 +422,7 @@
 
         // DirectCollection mappings don't require a reference class.
         if (getReferenceClassName() != null) {
-            Class referenceClass = null;
+            Class<?> referenceClass = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
@@ -1139,7 +1139,7 @@
      * PUBLIC:
      * Returns the reference class.
      */
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -1258,7 +1258,7 @@
         super.preInitialize(session);
         // If weaving was used the mapping must be configured to use the weaved get/set methods.
         if ((this.indirectionPolicy instanceof BasicIndirectionPolicy) && ClassConstants.PersistenceWeavedLazy_Class.isAssignableFrom(getDescriptor().getJavaClass())) {
-            Class attributeType = getAttributeAccessor().getAttributeClass();
+            Class<?> attributeType = getAttributeAccessor().getAttributeClass();
             // Check that not already weaved or coded.
             if (!(ClassConstants.ValueHolderInterface_Class.isAssignableFrom(attributeType))) {
                 if (!indirectionPolicy.isWeavedObjectBasicIndirectionPolicy()){
@@ -1690,7 +1690,7 @@
      * PUBLIC:
      * Set the referenced class.
      */
-    public void setReferenceClass(Class referenceClass) {
+    public void setReferenceClass(Class<?> referenceClass) {
         this.referenceClass = referenceClass;
         if (referenceClass != null) {
             setReferenceClassName(referenceClass.getName());
@@ -1971,7 +1971,7 @@
      * The purpose of this is that the domain objects will not require to import the ValueHolderInterface class.
      * Refer also to transparent indirection for a transparent solution to indirection.
      */
-    public void useContainerIndirection(Class containerClass) {
+    public void useContainerIndirection(Class<?> containerClass) {
         ContainerIndirectionPolicy policy = new ContainerIndirectionPolicy();
         policy.setContainerClass(containerClass);
         setIndirectionPolicy(policy);
@@ -2119,13 +2119,13 @@
         }
 
         if (getAttributeAccessor() instanceof InstanceVariableAttributeAccessor) {
-            Class attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
+            Class<?> attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
             this.indirectionPolicy.validateDeclaredAttributeType(attributeType, session.getIntegrityChecker());
         } else if (getAttributeAccessor().isMethodAttributeAccessor()) {
             // 323148
-            Class returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
+            Class<?> returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
             this.indirectionPolicy.validateGetMethodReturnType(returnType, session.getIntegrityChecker());
-            Class parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
+            Class<?> parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
             this.indirectionPolicy.validateSetMethodParameterType(parameterType, session.getIntegrityChecker());
         }
     }
@@ -2390,7 +2390,7 @@
         } else {
             // must be Map of classes to Integers
             Map map = (Map)value;
-            Class cls;
+            Class<?> cls;
             if (getDescriptor().hasInheritance() && getDescriptor().getInheritancePolicy().shouldReadSubclasses()) {
                 cls = getDescriptor().getInheritancePolicy().classFromRow(row, executionSession);
             } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ObjectReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ObjectReferenceMapping.java
index 2ace71d..a575fbf 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ObjectReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ObjectReferenceMapping.java
@@ -418,7 +418,7 @@
                             // otherwise leave it as null which will stop the recursion
                             // CR 2855
                             // CR 3424 Need to build the right instance based on class type instead of refernceDescriptor
-                            Class objectClass = set.getClassType(mergeManager.getSession());
+                            Class<?> objectClass = set.getClassType(mergeManager.getSession());
                             targetValueOfSource = mergeManager.getSession().getDescriptor(objectClass).getObjectBuilder().buildNewInstance();
                             //Store the changeset to prevent us from creating this new object again
                             mergeManager.recordMerge(set, targetValueOfSource, targetSession);
@@ -1257,7 +1257,7 @@
      *
      */
     public void useProxyIndirection() {
-        Class[] targetInterfaces = getReferenceClass().getInterfaces();
+        Class<?>[] targetInterfaces = getReferenceClass().getInterfaces();
         if (!getReferenceClass().isInterface() && getReferenceClass().getSuperclass() == null) {
             setIndirectionPolicy(new ProxyIndirectionPolicy(targetInterfaces));
         } else {
@@ -1300,8 +1300,8 @@
      * INTERNAL:
      * Build a list of all the interfaces and super interfaces for a given class.
      */
-    public Collection buildTargetInterfaces(Class aClass, Collection targetInterfacesCol) {
-        Class[] targetInterfaces = aClass.getInterfaces();
+    public Collection buildTargetInterfaces(Class<?> aClass, Collection targetInterfacesCol) {
+        Class<?>[] targetInterfaces = aClass.getInterfaces();
         for (int index = 0; index < targetInterfaces.length; index++) {
             targetInterfacesCol.add(targetInterfaces[index]);
         }
@@ -1332,7 +1332,7 @@
      * @param    targetInterfaces        The interfaces that the target class implements.  The attribute must be typed
      *                                as one of these interfaces.
      */
-    public void useProxyIndirection(Class[] targetInterfaces) {
+    public void useProxyIndirection(Class<?>[] targetInterfaces) {
         setIndirectionPolicy(new ProxyIndirectionPolicy(targetInterfaces));
     }
 
@@ -1356,8 +1356,8 @@
      * @param    targetInterface        The interface that the target class implements.  The attribute must be typed
      *                                as this interface.
      */
-    public void useProxyIndirection(Class targetInterface) {
-        Class[] targetInterfaces = new Class[] { targetInterface };
+    public void useProxyIndirection(Class<?> targetInterface) {
+        Class<?>[] targetInterfaces = new Class<?>[] { targetInterface };
         setIndirectionPolicy(new ProxyIndirectionPolicy(targetInterfaces));
     }
 
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 ee61986..3348208 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
@@ -900,7 +900,7 @@
      * This is used to convert the row value to a consistent java value.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) throws DescriptorException {
         DatabaseField fieldInTarget = getSourceToTargetKeyFields().get(fieldToClassify);
         if (fieldInTarget == null) {
             return null;// Can be registered as multiple table secondary field mapping
@@ -1094,7 +1094,7 @@
      * Return the class this key mapping maps or the descriptor for it
      */
     @Override
-    public Class getMapKeyTargetType(){
+    public Class<?> getMapKeyTargetType(){
         return getReferenceClass();
     }
 
@@ -1787,7 +1787,7 @@
         AbstractRecord referenceRow = this.indirectionPolicy.extractReferenceRow(attributeValue);
         if (referenceRow != null) {
             Object value = referenceRow.get(field);
-            Class type = getFieldClassification(field);
+            Class<?> type = getFieldClassification(field);
             if ((value == null) || (value.getClass() != type)) {
                 // Must ensure the classification to get a cache hit.
                 try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/TypedAssociation.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/TypedAssociation.java
index c4c495d..1b7fe04 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/TypedAssociation.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/TypedAssociation.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
@@ -23,8 +23,8 @@
  * @since TOPLink/Java 3.0
  */
 public class TypedAssociation extends Association {
-    protected Class keyType;
-    protected Class valueType;
+    protected Class<?> keyType;
+    protected Class<?> valueType;
 
     /**
      * Default constructor.
@@ -52,7 +52,7 @@
      * PUBLIC:
      * Return the class of the key.
      */
-    public Class getKeyType() {
+    public Class<?> getKeyType() {
         return keyType;
     }
 
@@ -60,7 +60,7 @@
      * PUBLIC:
      * Return the class of the value.
      */
-    public Class getValueType() {
+    public Class<?> getValueType() {
         return valueType;
     }
 
@@ -78,7 +78,7 @@
      * PUBLIC:
      * Set the class of the key.
      */
-    public void setKeyType(Class keyType) {
+    public void setKeyType(Class<?> keyType) {
         this.keyType = keyType;
     }
 
@@ -86,7 +86,7 @@
      * PUBLIC:
      * Set the class of the value.
      */
-    public void setValueType(Class valueType) {
+    public void setValueType(Class<?> valueType) {
         this.valueType = valueType;
     }
 }
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 9ae73e2..f9fce33 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
@@ -95,7 +95,7 @@
      * PUBLIC:
      * Add a type indicator conversion to this mapping.
      */
-    public void addClassIndicator(Class implementer, Object typeIndicator) {
+    public void addClassIndicator(Class<?> implementer, Object typeIndicator) {
         if (typeIndicator == null) {
             typeIndicator = Helper.NULL_VALUE;
         }
@@ -313,7 +313,7 @@
      * This is used to convert the row value to a consistent java value.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         if ((getTypeField() != null) && (fieldToClassify.equals(getTypeField()))) {
             return getTypeField().getType();
         }
@@ -417,7 +417,7 @@
      * INTERNAL:
      * Return the type for a specified implementor
      */
-    protected Object getTypeForImplementor(Class implementor) {
+    protected Object getTypeForImplementor(Class<?> implementor) {
         Object type = getTypeIndicatorTranslation().get(implementor);
         if (type == Helper.NULL_VALUE) {
             type = null;
@@ -471,7 +471,7 @@
             Map.Entry entry = (Map.Entry)iterator.next();
             String referenceClassName = (String)entry.getKey();
             Object indicator = entry.getValue();
-            Class referenceClass = null;
+            Class<?> referenceClass = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -580,7 +580,7 @@
         if (getTypeIndicatorTranslation().isEmpty()) {
             return;
         }
-        Class type = null;
+        Class<?> type = null;
         for (Iterator typeValuesEnum = getTypeIndicatorTranslation().values().iterator();
                  typeValuesEnum.hasNext() && (type == null);) {
             Object value = typeValuesEnum.next();
@@ -788,7 +788,7 @@
             if (row.get(getTypeField()) == null) {
                 return getIndirectionPolicy().nullValueFromRow();
             }
-            Class implementerClass = (Class)getImplementorForType(row.get(getTypeField()), executionSession);
+            Class<?> implementerClass = (Class)getImplementorForType(row.get(getTypeField()), executionSession);
             ReadObjectQuery query = (ReadObjectQuery)getSelectionQuery().clone();
             query.setReferenceClass(implementerClass);
             query.setSelectionCriteria(getSelectionCriteria());
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ClassInstanceConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ClassInstanceConverter.java
index 972c756..607f715 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ClassInstanceConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ClassInstanceConverter.java
@@ -52,7 +52,7 @@
     public Object convertDataValueToObjectValue(Object fieldValue, Session session) {
         Object attributeValue = null;
         if (fieldValue != null) {
-            Class attributeClass = session.getDatasourcePlatform().convertObject(fieldValue, ClassConstants.CLASS);
+            Class<?> attributeClass = session.getDatasourcePlatform().convertObject(fieldValue, ClassConstants.CLASS);
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ConverterClass.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ConverterClass.java
index c0f087d..474062a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ConverterClass.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ConverterClass.java
@@ -57,7 +57,7 @@
 public class ConverterClass<T extends AttributeConverter<X,Y>,X,Y> implements Converter, ClassNameConversionRequired {
     protected boolean isForMapKey;
     protected boolean disableConversion;
-    protected Class fieldClassification;
+    protected Class<?> fieldClassification;
     protected String fieldClassificationName;
     protected String attributeConverterClassName;
     protected AttributeConverter<X,Y> attributeConverter;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/EnumTypeConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/EnumTypeConverter.java
index f1d3868..f7fd978 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/EnumTypeConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/EnumTypeConverter.java
@@ -47,7 +47,7 @@
      * Creating an enum converter this way will create the conversion values
      * for you using ordinal or name values.
      */
-    public EnumTypeConverter(DatabaseMapping mapping, Class enumClass, boolean useOrdinalValues) {
+    public EnumTypeConverter(DatabaseMapping mapping, Class<?> enumClass, boolean useOrdinalValues) {
         super(mapping);
         m_enumClass = enumClass;
         m_enumClassName = enumClass.getName();
@@ -93,7 +93,7 @@
         }
     }
 
-    public Class getEnumClass() {
+    public Class<?> getEnumClass() {
         return m_enumClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java
index 618d1b3..4791370 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java
@@ -53,9 +53,9 @@
 public class ObjectTypeConverter implements Converter, ClassNameConversionRequired {
     // String type names and values set from JPA processing.
     protected String converterName;
-    protected Class dataType;
+    protected Class<?> dataType;
     protected String dataTypeName;
-    protected Class objectType;
+    protected Class<?> objectType;
     protected String objectTypeName;
     protected Map<String, String> conversionValueStrings;
     protected Map<String, String> addToAttributeOnlyConversionValueStrings;
@@ -65,7 +65,7 @@
     protected Map attributeToFieldValues;
     protected transient Object defaultAttributeValue;
     protected String defaultAttributeValueString;
-    protected transient Class fieldClassification;
+    protected transient Class<?> fieldClassification;
     protected transient String fieldClassificationName;
 
     /**
@@ -193,7 +193,7 @@
     /**
      * Load the given class name with the given loader.
      */
-    protected Class loadClass(String className, ClassLoader classLoader) {
+    protected Class<?> loadClass(String className, ClassLoader classLoader) {
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
@@ -278,7 +278,7 @@
      * INTERNAL:
      * Get the type of the field value to allow conversion from the database.
      */
-    public Class getFieldClassification() {
+    public Class<?> getFieldClassification() {
         return fieldClassification;
     }
 
@@ -295,7 +295,7 @@
      * This is used to convert the row value to a consistent java value.
      * By default this is null which means unknown.
      */
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         return getFieldClassification();
     }
 
@@ -390,7 +390,7 @@
         if (getFieldToAttributeValues().isEmpty()) {
             return;
         }
-        Class type = null;
+        Class<?> type = null;
         Iterator fieldValuesEnum = getFieldToAttributeValues().keySet().iterator();
         while (fieldValuesEnum.hasNext() && (type == null)) {
             Object value = fieldValuesEnum.next();
@@ -415,17 +415,17 @@
      * INTERNAL:
      * Used to initialize string based conversion values set from JPA processing.
      */
-    private Object initObject(Class type, String value, boolean isData) {
+    private Object initObject(Class<?> type, String value, boolean isData) {
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
             try {
-                Constructor<Class<?>> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(type, new Class[] {String.class}, false));
-                return AccessController.doPrivileged(new PrivilegedInvokeConstructor(constructor, new Object[] {value}));
+                Constructor<?> constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(type, new Class<?>[] {String.class}, false));
+                return AccessController.doPrivileged(new PrivilegedInvokeConstructor<>(constructor, new Object[] {value}));
             } catch (PrivilegedActionException exception) {
                 throwInitObjectException(exception, type, value, isData);
             }
         } else {
             try {
-                Constructor constructor = PrivilegedAccessHelper.getConstructorFor(type, new Class[] {String.class}, false);
+                Constructor<?> constructor = PrivilegedAccessHelper.getConstructorFor(type, new Class<?>[] {String.class}, false);
                 return PrivilegedAccessHelper.invokeConstructor(constructor, new Object[] {value});
             } catch (Exception exception) {
                 throwInitObjectException(exception, type, value, isData);
@@ -493,7 +493,7 @@
      * INTERNAL:
      * Set the type of the field value to allow conversion from the database.
      */
-    public void setFieldClassification(Class fieldClassification) {
+    public void setFieldClassification(Class<?> fieldClassification) {
         this.fieldClassification = fieldClassification;
     }
 
@@ -537,7 +537,7 @@
     /**
      * INTERNAL:
      */
-    protected void throwInitObjectException(Exception exception, Class type, String value, boolean isData) {
+    protected void throwInitObjectException(Exception exception, Class<?> type, String value, boolean isData) {
         if (isData) {
             throw ValidationException.errorInstantiatingConversionValueData(converterName, value, type, exception);
         } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/SerializedObjectConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/SerializedObjectConverter.java
index 3857e6d..bd69c2a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/SerializedObjectConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/SerializedObjectConverter.java
@@ -94,7 +94,7 @@
     public void convertClassNamesToClasses(ClassLoader classLoader) {
         try{
             if (this.serializerClassName != null) {
-                Class serializerClass = null;
+                Class<?> serializerClass = null;
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     serializerClass = AccessController.doPrivileged(new PrivilegedClassForName<>(this.serializerClassName, true, classLoader));
                 } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/TypeConversionConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/TypeConversionConverter.java
index 1666123..a4e6828 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/TypeConversionConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/TypeConversionConverter.java
@@ -41,11 +41,11 @@
     protected DatabaseMapping mapping;
 
     /** Field type */
-    protected Class dataClass;
+    protected Class<?> dataClass;
     protected String dataClassName;
 
     /** Object type */
-    protected Class objectClass;
+    protected Class<?> objectClass;
     protected String objectClassName;
 
     /**
@@ -72,8 +72,8 @@
      */
     @Override
     public void convertClassNamesToClasses(ClassLoader classLoader){
-        Class dataClass = null;
-        Class objectClass = null;
+        Class<?> dataClass = null;
+        Class<?> objectClass = null;
         try{
             if (dataClassName != null){
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
@@ -136,7 +136,7 @@
      * PUBLIC:
      * Returns the class type of the object value.
      */
-    public Class getObjectClass() {
+    public Class<?> getObjectClass() {
         return objectClass;
     }
 
@@ -155,7 +155,7 @@
      * PUBLIC:
      * Returns the class type of the data value.
      */
-    public Class getDataClass() {
+    public Class<?> getDataClass() {
         return dataClass;
     }
 
@@ -174,7 +174,7 @@
      * PUBLIC:
      * Set the class type of the data value.
      */
-    public void setDataClass(Class dataClass) {
+    public void setDataClass(Class<?> dataClass) {
         this.dataClass = dataClass;
     }
 
@@ -190,7 +190,7 @@
      * PUBLIC:
      * Set the class type of the object value.
      */
-    public void setObjectClass(Class objectClass) {
+    public void setObjectClass(Class<?> objectClass) {
         this.objectClass = objectClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractColumnMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractColumnMapping.java
index 6e62561..4362d15 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractColumnMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractColumnMapping.java
@@ -143,7 +143,7 @@
 
         // Instantiate any custom converter class
         if (converterClassName != null) {
-            Class converterClass;
+            Class<?> converterClass;
             Converter converter;
 
             try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeCollectionMapping.java
index 77b3865..b3c6906 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeCollectionMapping.java
@@ -582,7 +582,7 @@
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
     @Override
-    public void useCollectionClass(Class concreteContainerClass) {
+    public void useCollectionClass(Class<?> concreteContainerClass) {
         this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteContainerClass));
     }
 
@@ -608,7 +608,7 @@
      * <p>The referenceClass must be set before calling this method.
      */
     @Override
-    public void useMapClass(Class concreteContainerClass, String methodName) {
+    public void useMapClass(Class<?> concreteContainerClass, String methodName) {
         // the reference class has to be specified before coming here
         if (this.getReferenceClassName() == null) {
             throw DescriptorException.referenceClassNotSpecified(this);
@@ -681,7 +681,7 @@
 
             ClassDescriptor descriptor = this.getReferenceDescriptor();
             if (descriptor.hasInheritance()) {
-                Class newElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
+                Class<?> newElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
                 descriptor = this.getReferenceDescriptor(newElementClass, executionSession);
             }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeDirectCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeDirectCollectionMapping.java
index eb9467b..585383a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeDirectCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeDirectCollectionMapping.java
@@ -303,7 +303,7 @@
      * This is optional - if left null, the elements will be added
      * to the object's collection unconverted.
      */
-    public Class getAttributeElementClass() {
+    public Class<?> getAttributeElementClass() {
         if (!(getValueConverter() instanceof TypeConversionConverter)) {
             return null;
         }
@@ -344,7 +344,7 @@
      * This is optional - if left null, the elements will be added
      * to the database row's collection unconverted.
      */
-    public Class getFieldElementClass() {
+    public Class<?> getFieldElementClass() {
         if (!(getValueConverter() instanceof TypeConversionConverter)) {
             return null;
         }
@@ -429,7 +429,7 @@
      * This is optional - if left null, the elements will be added
      * to the object's collection unconverted.
      */
-    public void setAttributeElementClass(Class attributeElementClass) {
+    public void setAttributeElementClass(Class<?> attributeElementClass) {
         TypeConversionConverter converter;
         if (getValueConverter() instanceof TypeConversionConverter) {
             converter = (TypeConversionConverter)getValueConverter();
@@ -483,7 +483,7 @@
      * This is optional - if left null, the elements will be added
      * to the database row's collection unconverted.
      */
-    public void setFieldElementClass(Class fieldElementClass) {
+    public void setFieldElementClass(Class<?> fieldElementClass) {
         TypeConversionConverter converter;
         if (getValueConverter() instanceof TypeConversionConverter) {
             converter = (TypeConversionConverter)getValueConverter();
@@ -502,7 +502,7 @@
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
     @Override
-    public void useCollectionClass(Class concreteClass) {
+    public void useCollectionClass(Class<?> concreteClass) {
         this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteClass));
     }
 
@@ -532,7 +532,7 @@
      * It supports only Collection containers.
      */
     @Override
-    public void useMapClass(Class concreteClass, String methodName) {
+    public void useMapClass(Class<?> concreteClass, String methodName) {
         throw new UnsupportedOperationException(this.getClass().getName() + ".useMapClass(Class, String)");
     }
 
@@ -701,7 +701,7 @@
      * By default this is unknown.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         return getAttributeElementClass();
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeObjectMapping.java
index 465f645..e82aaf2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractCompositeObjectMapping.java
@@ -262,7 +262,7 @@
 
         ClassDescriptor descriptor = this.referenceDescriptor;
         if (descriptor.hasInheritance()) {
-            Class nestedElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
+            Class<?> nestedElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
             descriptor = getReferenceDescriptor(nestedElementClass, executionSession);
         }
         ObjectBuilder objectBuilder = descriptor.getObjectBuilder();
@@ -294,7 +294,7 @@
 
         ClassDescriptor descriptor = this.getReferenceDescriptor();
         if (descriptor.hasInheritance()) {
-            Class nestedElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
+            Class<?> nestedElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
             descriptor = this.getReferenceDescriptor(nestedElementClass, executionSession);
         }
         ObjectBuilder objectBuilder = descriptor.getObjectBuilder();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractDirectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractDirectMapping.java
index 52aabcc..6fe1d42 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractDirectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/foundation/AbstractDirectMapping.java
@@ -69,11 +69,11 @@
 public abstract class AbstractDirectMapping extends AbstractColumnMapping implements MapKeyMapping {
 
     /** To specify the conversion type */
-    protected transient Class attributeClassification;
+    protected transient Class<?> attributeClassification;
     protected String attributeClassificationName;
 
     /** PERF: Also store object class of attribute in case of primitive. */
-    protected transient Class attributeObjectClassification;
+    protected transient Class<?> attributeObjectClassification;
 
     /** Support specification of the value to use for null. */
     protected transient Object nullValue;
@@ -459,7 +459,7 @@
         super.convertClassNamesToClasses(classLoader);
 
         if (getAttributeClassificationName() != null) {
-            Class attributeClass = null;
+            Class<?> attributeClass = null;
             try{
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
@@ -477,7 +477,7 @@
         }
 
         if (fieldClassificationClassName != null){
-            Class fieldClassification = null;
+            Class<?> fieldClassification = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
@@ -593,7 +593,7 @@
      * the instance variable value to that data type.
      */
     @Override
-    public Class getAttributeClassification() {
+    public Class<?> getAttributeClassification() {
         return attributeClassification;
     }
 
@@ -702,7 +702,7 @@
      * This is used to convert the row value to a consistent Java value.
      */
     @Override
-    public Class getFieldClassification(DatabaseField fieldToClassify) {
+    public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
         // PERF: This method is a major performance code point,
         // so has been micro optimized and uses direct variable access.
         if (fieldToClassify.type != null) {
@@ -723,7 +723,7 @@
      * This can be used if field value differs from the object value,
      * has specific typing requirements such as usage of java.sql.Blob or NChar.
      */
-    public Class getFieldClassification() {
+    public Class<?> getFieldClassification() {
         if (getField() == null) {
             return null;
         }
@@ -737,7 +737,7 @@
      * has specific typing requirements such as usage of java.sql.Blob or NChar.
      * This must be called after the field name has been set.
      */
-    public void setFieldClassification(Class fieldType) {
+    public void setFieldClassification(Class<?> fieldType) {
         getField().setType(fieldType);
     }
 
@@ -789,7 +789,7 @@
         if (this.converter != null) {
             fieldValue = this.converter.convertObjectValueToDataValue(fieldValue, session);
         }
-        Class fieldClassification = this.field.type;
+        Class<?> fieldClassification = this.field.type;
         if (fieldClassification == null) {
             fieldClassification = getFieldClassification(this.field);
         }
@@ -885,8 +885,8 @@
      * Return the class this key mapping maps or the descriptor for it
      */
     @Override
-    public Class getMapKeyTargetType() {
-        Class aClass = getAttributeAccessor().getAttributeClass();
+    public Class<?> getMapKeyTargetType() {
+        Class<?> aClass = getAttributeAccessor().getAttributeClass();
         // 294765: check the attributeClassification when the MapKey annotation is not specified
         if (null == aClass) {
             aClass = getAttributeClassification();
@@ -1100,7 +1100,7 @@
      * the base data type must be explicitly specified in the mapping to tell EclipseLink to force
      * the instance variable value to that data type
      */
-    public void setAttributeClassification(Class attributeClassification) {
+    public void setAttributeClassification(Class<?> attributeClassification) {
         this.attributeClassification = attributeClassification;
     }
 
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 8c4bb49..7b5f619 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
@@ -556,7 +556,7 @@
         super.convertClassNamesToClasses(classLoader);
 
         if (attributeTransformerClassName != null) {
-            Class attributeTransformerClass = null;
+            Class<?> attributeTransformerClass = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -581,7 +581,7 @@
                 if (transformerClassName == null) {
                     return;
                 }
-                Class transformerClass = null;
+                Class<?> transformerClass = null;
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                         try {
@@ -658,7 +658,7 @@
      * Return the attribute transformer's class.
      * This is used to map to XML.
      */
-    public Class getAttributeTransformerClass() {
+    public Class<?> getAttributeTransformerClass() {
         if ((this.attributeTransformer == null) || (this.attributeTransformer instanceof MethodBasedAttributeTransformer)) {
             return null;
         }
@@ -670,7 +670,7 @@
      * Set the attribute transformer's class.
      * This is used to map from XML.
      */
-    public void setAttributeTransformerClass(Class attributeTransformerClass) {
+    public void setAttributeTransformerClass(Class<?> attributeTransformerClass) {
         if (attributeTransformerClass == null) {
             return;
         }
@@ -678,7 +678,7 @@
             Object instance = null;
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 try {
-                    instance = AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(attributeTransformerClass));
+                    instance = AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(attributeTransformerClass));
                 } catch (PrivilegedActionException ex) {
                     throw (Exception)ex.getCause();
                 }
@@ -1369,7 +1369,7 @@
      * This allows for the reading of the target from the database to be delayed until accessed.
      * This defaults to true and is strongly suggested as it give a huge performance gain.
      */
-    public void useContainerIndirection(Class containerClass) {
+    public void useContainerIndirection(Class<?> containerClass) {
         ContainerIndirectionPolicy policy = new ContainerIndirectionPolicy();
         policy.setContainerClass(containerClass);
         setIndirectionPolicy(policy);
@@ -1412,14 +1412,14 @@
         }
 
         if (getAttributeAccessor() instanceof InstanceVariableAttributeAccessor) {
-            Class attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
+            Class<?> attributeType = ((InstanceVariableAttributeAccessor)getAttributeAccessor()).getAttributeType();
             this.indirectionPolicy.validateDeclaredAttributeType(attributeType, session.getIntegrityChecker());
         } else if (getAttributeAccessor().isMethodAttributeAccessor()) {
             // 323403
-            Class returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
+            Class<?> returnType = ((MethodAttributeAccessor)getAttributeAccessor()).getGetMethodReturnType();
             this.indirectionPolicy.validateGetMethodReturnType(returnType, session.getIntegrityChecker());
 
-            Class parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
+            Class<?> parameterType = ((MethodAttributeAccessor)getAttributeAccessor()).getSetMethodParameterType();
             this.indirectionPolicy.validateSetMethodParameterType(parameterType, session.getIntegrityChecker());
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/querykeys/ForeignReferenceQueryKey.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/querykeys/ForeignReferenceQueryKey.java
index 4ec7f0e..1b6343c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/querykeys/ForeignReferenceQueryKey.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/querykeys/ForeignReferenceQueryKey.java
@@ -42,7 +42,7 @@
  * </ul>
  */
 public class ForeignReferenceQueryKey extends QueryKey {
-    protected Class referenceClass;
+    protected Class<?> referenceClass;
     protected String referenceClassName;
     protected Expression joinCriteria;
 
@@ -53,7 +53,7 @@
      */
     @Override
     public void convertClassNamesToClasses(ClassLoader classLoader){
-        Class referenceClass = null;
+        Class<?> referenceClass = null;
         try{
             if (referenceClassName != null){
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
@@ -84,7 +84,7 @@
      * PUBLIC:
      * Return the reference class of the relationship.
      */
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -126,7 +126,7 @@
      * Set the reference class of the relationship.
      * This is not required for direct collection query keys.
      */
-    public void setReferenceClass(Class referenceClass) {
+    public void setReferenceClass(Class<?> referenceClass) {
         this.referenceClass = referenceClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ObjectRelationalDataTypeDescriptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ObjectRelationalDataTypeDescriptor.java
index 3ab71ea..c85e86c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ObjectRelationalDataTypeDescriptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ObjectRelationalDataTypeDescriptor.java
@@ -210,7 +210,7 @@
                 AbstractRecord nestedRow = ord.buildRowFromStructure( (Struct)arrayValue);
                 ClassDescriptor descriptor = ord;
                 if (descriptor.hasInheritance()) {
-                    Class newElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, session);
+                    Class<?> newElementClass = descriptor.getInheritancePolicy().classFromRow(nestedRow, session);
                     if (!descriptor.getJavaClass().equals(newElementClass)) {
                         descriptor = session.getDescriptor(newElementClass);
                         if (descriptor==null){
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ReferenceMapping.java
index 542f84a..fa0b1c3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ReferenceMapping.java
@@ -288,7 +288,7 @@
      * This is a reference class whose instances this mapping will store in the domain objects.
      */
     @Override
-    public void setReferenceClass(Class referenceClass) {
+    public void setReferenceClass(Class<?> referenceClass) {
         this.referenceClass = referenceClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedAttributeTransformer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedAttributeTransformer.java
index f287398..28fed1c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedAttributeTransformer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedAttributeTransformer.java
@@ -73,23 +73,23 @@
     @Override
     public void initialize(AbstractTransformationMapping mapping) {
         this.mapping = mapping;
-        final Class javaClass = this.mapping.getDescriptor().getJavaClass();
+        final Class<?> javaClass = this.mapping.getDescriptor().getJavaClass();
         try {
             // look for the one-argument version with Record first
-            Class[] parameterTypes = new Class[1];
+            Class<?>[] parameterTypes = new Class<?>[1];
             parameterTypes[0] = ClassConstants.Record_Class;
             attributeTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, parameterTypes);
         } catch (NoSuchMethodException ex) {
             try {
                 // if the one-argument version is not there, look for the two-argument version
-                Class[] parameterTypes = new Class[2];
+                Class<?>[] parameterTypes = new Class<?>[2];
                 parameterTypes[0] = ClassConstants.Record_Class;
                 parameterTypes[1] = ClassConstants.PublicInterfaceSession_Class;
                 attributeTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, parameterTypes);
             } catch (NoSuchMethodException ex2) {
                 try {
                     //now look for the 2 argument version using Record and sessions Session
-                    Class[] parameterTypes = new Class[2];
+                    Class<?>[] parameterTypes = new Class<?>[2];
                     parameterTypes[0] = ClassConstants.Record_Class;
                     parameterTypes[1] = ClassConstants.SessionsSession_Class;
                     attributeTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, parameterTypes);
@@ -115,7 +115,7 @@
      */
     @Override
     public Object buildAttributeValue(DataRecord dataRecord, Object object, Session session) {
-        Class[] parameterTypes = null;
+        Class<?>[] parameterTypes = null;
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
             try{
                 parameterTypes = AccessController.doPrivileged(new PrivilegedGetMethodParameterTypes(attributeTransformationMethod));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedFieldTransformer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedFieldTransformer.java
index dffbb6a..dbdea51 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedFieldTransformer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/transformers/MethodBasedFieldTransformer.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
@@ -48,20 +48,20 @@
     @Override
     public void initialize(AbstractTransformationMapping mapping) {
         this.mapping = mapping;
-        final Class javaClass = this.mapping.getDescriptor().getJavaClass();
+        final Class<?> javaClass = this.mapping.getDescriptor().getJavaClass();
         try {
             // look for the zero-argument version first
-            fieldTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, new Class[0]);
+            fieldTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, new Class<?>[0]);
         } catch (NoSuchMethodException ex) {
             try {
                 // if the zero-argument version is not there, look for the one-argument version
-                Class[] methodParameterTypes = new Class[1];
+                Class<?>[] methodParameterTypes = new Class<?>[1];
                 methodParameterTypes[0] = ClassConstants.PublicInterfaceSession_Class;
                 fieldTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, methodParameterTypes);
             } catch (NoSuchMethodException ex2) {
                 try {
                     //if the one-argument version is absent, try with sessions.Session
-                    Class[] methodParameterTypes = new Class[1];
+                    Class<?>[] methodParameterTypes = new Class<?>[1];
                     methodParameterTypes[0] = ClassConstants.SessionsSession_Class;
                     fieldTransformationMethod = Helper.getDeclaredMethod(javaClass, methodName, methodParameterTypes);
                 } catch (NoSuchMethodException exception) {
@@ -81,7 +81,7 @@
      * Return the Java class type of the field value.
      * This uses the method return type.
      */
-    public Class getFieldType() {
+    public Class<?> getFieldType() {
         if (this.fieldTransformationMethod != null) {
             return this.fieldTransformationMethod.getReturnType();
         }
@@ -90,7 +90,7 @@
 
     @Override
     public Object buildFieldValue(Object object, String fieldName, Session session) {
-        Class[] parameterTypes = null;
+        Class<?>[] parameterTypes = null;
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
             try{
                 parameterTypes = AccessController.doPrivileged(new PrivilegedGetMethodParameterTypes(fieldTransformationMethod));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLBinder.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLBinder.java
index 17ef522..5ac85c7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLBinder.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLBinder.java
@@ -109,7 +109,7 @@
         }
     }
 
-    public XMLRoot unmarshal(org.w3c.dom.Node node, Class javaClass) {
+    public XMLRoot unmarshal(org.w3c.dom.Node node, Class<?> javaClass) {
         validateNode(node);
         reader.setDocPresPolicy(documentPreservationPolicy);
         return buildXMLRootFromObject(saxUnmarshaller.unmarshal(reader, node, javaClass));
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 bca46f7..c469ba1 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
@@ -319,7 +319,7 @@
      * enabled.  This method will typically  be used for unmarshalling
      * when a non-shared cache is desired.
      */
-    public AbstractSession getReadSession(Class clazz) {
+    public AbstractSession getReadSession(Class<?> clazz) {
         return super.getSession(clazz);
     }
 
@@ -370,7 +370,7 @@
      * Context, this method will return the first match.
      */
     @Override
-    public AbstractSession getSession(Class clazz) {
+    public AbstractSession getSession(Class<?> clazz) {
         return super.getSession(clazz);
     }
 
@@ -457,7 +457,7 @@
         Iterator<ClassDescriptor> ormDescriptors = ormSession.getDescriptors().values().iterator();
         while(ormDescriptors.hasNext()) {
             ClassDescriptor ormDescriptor = ormDescriptors.next();
-            Class javaClass = ormDescriptor.getJavaClass();
+            Class<?> javaClass = ormDescriptor.getJavaClass();
             AbstractSession oxmSession = null;
             try {
                 oxmSession = this.getSession(javaClass);
@@ -484,7 +484,7 @@
 
                         //check to see if we need to deal with containerAccessor
                         CoreAttributeAccessor containerAccessor = null;
-                        Class containerClass = null;
+                        Class<?> containerClass = null;
                         if(oxmMapping.isAbstractCompositeObjectMapping()) {
                             containerAccessor = ((CompositeObjectMapping)oxmMapping).getInverseReferenceMapping().getAttributeAccessor();
                             containerClass = ((CompositeObjectMapping)oxmMapping).getReferenceClass();
@@ -804,7 +804,7 @@
          * Context, this method will return the first match.
          */
         @Override
-        protected AbstractSession getSession(Class clazz) {
+        protected AbstractSession getSession(Class<?> clazz) {
             if (null == clazz) {
                 return null;
             }
@@ -975,7 +975,7 @@
         return null;
     }
 
-    private static ClassLoader privilegedGetClassLoaderForClass(final Class clazz) {
+    private static ClassLoader privilegedGetClassLoaderForClass(final Class<?> clazz) {
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
             try {
                 return AccessController.doPrivileged(new PrivilegedGetClassLoaderForClass(clazz));
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLField.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLField.java
index fbc58ad..5f3e02a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLField.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLField.java
@@ -613,7 +613,7 @@
     * @param qname The qualified name of the XML Schema type to use as a key in the lookup
     * @return The class corresponding to the specified schema type, if no corresponding match found returns null
     */
-    public Class getJavaClass(QName qname) {
+    public Class<?> getJavaClass(QName qname) {
         return getJavaClass(qname, XMLConversionManager.getDefaultXMLManager());
     }
 
@@ -623,9 +623,9 @@
      * @since EclipseLink 2.6.0
      */
     @Override
-    public Class getJavaClass(QName qname, ConversionManager conversionManager) {
+    public Class<?> getJavaClass(QName qname, ConversionManager conversionManager) {
         if (userXMLTypes != null) {
-            Class theClass = (Class)userXMLTypes.get(qname);
+            Class<?> theClass = (Class)userXMLTypes.get(qname);
             if(theClass != null){
                 return theClass;
             }
@@ -638,7 +638,7 @@
      * @param javaClass The class to use as a key in the lookup
      * @return QName The qualified XML Schema type, if no corresponding match found returns null
      */
-    public QName getXMLType(Class javaClass) {
+    public QName getXMLType(Class<?> javaClass) {
         return getXMLType(javaClass, XMLConversionManager.getDefaultXMLManager());
     }
 
@@ -647,7 +647,7 @@
      * @since EclipseLink 2.6.0
      */
     @Override
-    public QName getXMLType(Class javaClass, ConversionManager conversionManager) {
+    public QName getXMLType(Class<?> javaClass, ConversionManager conversionManager) {
         if (userJavaTypes != null) {
             QName theQName = (QName)userJavaTypes.get(javaClass);
             if (theQName !=null) {
@@ -758,7 +758,7 @@
             if(XMLConstants.QNAME_QNAME.equals(schemaType)){
                 return xmlConversionManager.buildQNameFromString((String)value, record);
             }else{
-                Class fieldType = getType();
+                Class<?> fieldType = getType();
                 if (fieldType == null) {
                     fieldType = getJavaClass(schemaType, xmlConversionManager);
                 }
@@ -774,7 +774,7 @@
     * @param qname The qualified name of the XML schema type
     * @param javaClass The class to add
     */
-    public void addXMLConversion(QName qname, Class javaClass) {
+    public void addXMLConversion(QName qname, Class<?> javaClass) {
         getUserXMLTypes().put(qname, javaClass);
     }
 
@@ -783,7 +783,7 @@
      * @param javaClass The class to add
      * @param qname The qualified name of the XML schema type
      */
-    public void addJavaConversion(Class javaClass, QName qname) {
+    public void addJavaConversion(Class<?> javaClass, QName qname) {
         getUserJavaTypes().put(javaClass, qname);
     }
 
@@ -791,7 +791,7 @@
      * Add an entry for both an XML Conversion and a Java Conversion entry
      * @param qname The qualified name of the XML schema type
      */
-    public void addConversion(QName qname, Class javaClass) {
+    public void addConversion(QName qname, Class<?> javaClass) {
         addJavaConversion(javaClass, qname);
         addXMLConversion(qname, javaClass);
     }
@@ -807,7 +807,7 @@
      * Remove a Java to XML Conversion entry
      *
      */
-    public void removeJavaConversion(Class javaClass) {
+    public void removeJavaConversion(Class<?> javaClass) {
         getUserJavaTypes().remove(javaClass);
     }
 
@@ -815,7 +815,7 @@
      * Remove both a Java to XML Conversion and the corresponding XML to Java Conversion entry
      *
      */
-    public void removeConversion(QName qname, Class javaClass) {
+    public void removeConversion(QName qname, Class<?> javaClass) {
         removeJavaConversion(javaClass);
         removeXMLConversion(qname);
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLUnionField.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLUnionField.java
index 3b38acc..a99c675 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLUnionField.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/XMLUnionField.java
@@ -179,7 +179,7 @@
             try {
                 if (nextQName != null) {
                     ConversionManager conversionManager = (ConversionManager) session.getDatasourcePlatform().getConversionManager();
-                    Class javaClass = getJavaClass(nextQName, conversionManager);
+                    Class<?> javaClass = getJavaClass(nextQName, conversionManager);
                     conversionManager.convertObject(value, javaClass, nextQName);
                     schemaType = nextQName;
                     break;
@@ -209,7 +209,7 @@
                         xmlConversionManager.buildQNameFromString((String)value, record);
                         break;
                     }else{
-                        Class javaClass = getJavaClass(nextQName, xmlConversionManager);
+                        Class<?> javaClass = getJavaClass(nextQName, xmlConversionManager);
                         convertedValue = xmlConversionManager.convertObject(value, javaClass, nextQName);
                         break;
                     }
@@ -230,7 +230,7 @@
       * @return The class associated with the specified schema type, if no corresponding match found returns null
       */
     @Override
-    public Class getJavaClass(QName qname) {
+    public Class<?> getJavaClass(QName qname) {
         return getJavaClass(qname, XMLConversionManager.getDefaultXMLManager());
     }
 
@@ -240,9 +240,9 @@
      * @since EclipseLink 2.6.0
      */
     @Override
-    public Class getJavaClass(QName qname, ConversionManager conversionManager) {
+    public Class<?> getJavaClass(QName qname, ConversionManager conversionManager) {
         if (userXMLTypes != null) {
-            Class theClass = (Class) userXMLTypes.get(qname);
+            Class<?> theClass = (Class) userXMLTypes.get(qname);
             if(theClass != null){
                 return theClass;
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNameTransformer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNameTransformer.java
index d394ae3..5c29ef3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNameTransformer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNameTransformer.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
@@ -37,5 +37,5 @@
      * (Required) Defines the name of the XML name transformer that should be
      * applied to names.
      */
-    Class <? extends XMLNameTransformer> value();
+    Class<? extends XMLNameTransformer> value();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNamedSubgraph.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNamedSubgraph.java
index acfb101..760e1db 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNamedSubgraph.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlNamedSubgraph.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
@@ -45,7 +45,7 @@
     * optional: only required for inheritance or with ChoiceMappings
     * to specify which of the possible targets this subgraph is to be
     * applied to. */
-   Class type() default Object.class;
+   Class<?> type() default Object.class;
 
    /**
     * The list of properties to include in this graph
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlParameter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlParameter.java
index cf65e3d..729fb76 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlParameter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlParameter.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
@@ -25,5 +25,5 @@
 @Retention(RetentionPolicy.RUNTIME)
 public @interface XmlParameter {
     String value();
-    Class type();
+    Class<?> type();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlProperty.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlProperty.java
index a913948..6d92ff7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlProperty.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlProperty.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
@@ -48,5 +48,5 @@
      * If specified must be a simple type that could be handled by ConversionManager:
      * numerical, boolean, temporal.
      */
-    Class valueType() default String.class;
+    Class<?> valueType() default String.class;
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlVariableNode.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlVariableNode.java
index a70eb1a..e0859ab 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlVariableNode.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/annotations/XmlVariableNode.java
@@ -39,7 +39,7 @@
     /**
      * The class being referenced
      */
-    Class type() default DEFAULT.class;
+    Class<?> type() default DEFAULT.class;
 
     /**
      * Used in {@link XmlVariableNode#type()} to
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonParserSource.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonParserSource.java
index 358e85f..36f8836 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonParserSource.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonParserSource.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -47,7 +47,7 @@
     }
 
     @Override
-    public XMLReader createReader(Unmarshaller unmarshaller, Class unmarshalClass) {
+    public XMLReader createReader(Unmarshaller unmarshaller, Class<?> unmarshalClass) {
         return new JsonParserReader.JsonParserReaderBuilder(parser)
                 .setResultClass(unmarshalClass)
                 .setUnmarshaller(unmarshaller)
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonStructureSource.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonStructureSource.java
index 3758e1d..3876ff8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonStructureSource.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/json/JsonStructureSource.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
@@ -50,7 +50,7 @@
     }
 
     @Override
-    public XMLReader createReader(Unmarshaller unmarshaller, Class unmarshalClass) {
+    public XMLReader createReader(Unmarshaller unmarshaller, Class<?> unmarshalClass) {
         JsonStructureReader reader = new JsonStructureReader(unmarshaller, unmarshalClass);
         reader.setJsonStructure(getJsonStructure());
         return reader;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/BidirectionalPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/BidirectionalPolicy.java
index fe79fe0..eda191e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/BidirectionalPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/BidirectionalPolicy.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
@@ -150,7 +150,7 @@
         this.bidirectionalTargetContainerPolicy = cp;
     }
 
-    public void setBidirectionalTargetContainerClass(Class cls) {
+    public void setBidirectionalTargetContainerClass(Class<?> cls) {
         if(this.bidirectionalTargetContainerPolicy == null) {
             this.bidirectionalTargetContainerPolicy = ContainerPolicy.buildPolicyFor(cls);
         } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyAttributeMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyAttributeMapping.java
index 2cba131..f512a3e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyAttributeMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLAnyAttributeMapping.java
@@ -346,7 +346,7 @@
         return this.collectFields();
     }
 
-    public void useMapClass(Class concreteMapClass) {
+    public void useMapClass(Class<?> concreteMapClass) {
         if (!Helper.classImplementsInterface(concreteMapClass, Map.class)) {
             throw DescriptorException.illegalContainerClass(concreteMapClass);
         }
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 722c1bd..116a814 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
@@ -704,12 +704,12 @@
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
     @Override
-    public void useCollectionClass(Class concreteContainerClass) {
+    public void useCollectionClass(Class<?> concreteContainerClass) {
         this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteContainerClass));
     }
 
     @Override
-    public void useMapClass(Class concreteContainerClass, String methodName) {
+    public void useMapClass(Class<?> concreteContainerClass, String methodName) {
         throw DescriptorException.invalidMappingOperation(this, "useMapClass");
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLBinaryDataCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLBinaryDataCollectionMapping.java
index c7b7564..be42912 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLBinaryDataCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLBinaryDataCollectionMapping.java
@@ -87,7 +87,7 @@
     private boolean shouldInlineBinaryData;
     private MimeTypePolicy mimeTypePolicy;
     private boolean isSwaRef;
-    private Class collectionContentType;
+    private Class<?> collectionContentType;
     private static final String INCLUDE = "Include";
 
     public XMLBinaryDataCollectionMapping() {
@@ -489,7 +489,7 @@
         return result;
     }
 
-    public void setCollectionContentType(Class javaClass) {
+    public void setCollectionContentType(Class<?> javaClass) {
         setAttributeElementClass(javaClass);
     }
 
@@ -497,7 +497,7 @@
      * This is the same as calling getAttributeElementClass()
      * If not set by the user than byte[].class is the default
      */
-    public Class getCollectionContentType() {
+    public Class<?> getCollectionContentType() {
         return getAttributeElementClass();
     }
 
@@ -510,14 +510,14 @@
      * to the object's collection unconverted.
      */
     @Override
-    public void setAttributeElementClass(Class attributeElementClass) {
+    public void setAttributeElementClass(Class<?> attributeElementClass) {
         super.setAttributeElementClass(attributeElementClass);
         this.collectionContentType = attributeElementClass;
     }
 
     @Override
-    public Class getAttributeElementClass() {
-        Class elementClass = super.getAttributeElementClass();
+    public Class<?> getAttributeElementClass() {
+        Class<?> elementClass = super.getAttributeElementClass();
         if(elementClass == null) {
             return this.collectionContentType;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceCollectionMapping.java
index 6f64881..a6e13a6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceCollectionMapping.java
@@ -99,13 +99,13 @@
  */
 
 public class XMLChoiceCollectionMapping extends DatabaseMapping implements ChoiceCollectionMapping<AbstractSession, AttributeAccessor, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, XMLUnmarshaller, XMLField, XMLMapping, XMLRecord>, XMLMapping {
-    private Map<XMLField, Class> fieldToClassMappings;
-    private Map<Class, XMLField> classToFieldMappings;
-    private Map<Class, List<XMLField>> classToSourceFieldsMappings;
+    private Map<XMLField, Class<?>> fieldToClassMappings;
+    private Map<Class<?>, XMLField> classToFieldMappings;
+    private Map<Class<?>, List<XMLField>> classToSourceFieldsMappings;
     private Map<String, List<XMLField>> classNameToSourceFieldsMappings;
     private Map<XMLField, XMLMapping> choiceElementMappings;
     private Map<String, XMLMapping> choiceElementMappingsByClassName;
-    private Map<Class, XMLMapping> choiceElementMappingsByClass;
+    private Map<Class<?>, XMLMapping> choiceElementMappingsByClass;
     private Map<XMLField, String> fieldToClassNameMappings;
     private Map<String, XMLField> classNameToFieldMappings;
     private Map<XMLField, Converter> fieldsToConverters;
@@ -388,7 +388,7 @@
         return new Vector<>(fieldToClassMappings.keySet());
     }
 
-    public void addChoiceElement(String xpath, Class elementType) {
+    public void addChoiceElement(String xpath, Class<?> elementType) {
         XMLField field = new XMLField(xpath);
         addChoiceElement(field, elementType);
     }
@@ -400,7 +400,7 @@
     }
 
 
-    public void addChoiceElement(XMLField xmlField, Class elementType) {
+    public void addChoiceElement(XMLField xmlField, Class<?> elementType) {
         getFieldToClassMappings().put(xmlField, elementType);
         if(!(this.fieldToClassNameMappings.containsKey(xmlField))) {
             this.fieldToClassNameMappings.put(xmlField, elementType.getName());
@@ -411,7 +411,7 @@
         addChoiceElementMapping(xmlField, elementType);
     }
 
-    public void addChoiceElement(List<XMLField> srcFields, Class elementType, List<XMLField> tgtFields) {
+    public void addChoiceElement(List<XMLField> srcFields, Class<?> elementType, List<XMLField> tgtFields) {
         for(XMLField sourceField:srcFields) {
             getFieldToClassMappings().put(sourceField, elementType);
             this.fieldToClassNameMappings.put(sourceField, elementType.getName());
@@ -433,7 +433,7 @@
         addChoiceElementMapping(srcFields, elementTypeName, tgtFields);
     }
 
-    public void addChoiceElement(String srcXPath, Class elementType, String tgtXPath) {
+    public void addChoiceElement(String srcXPath, Class<?> elementType, String tgtXPath) {
         XMLField srcField = new XMLField(srcXPath);
         XMLField tgtField = new XMLField(tgtXPath);
         addChoiceElement(srcField, elementType, tgtField);
@@ -450,7 +450,7 @@
         addChoiceElementMapping(field, elementTypeName, tgtField);
     }
 
-    public void addChoiceElement(XMLField sourceField, Class elementType, XMLField targetField) {
+    public void addChoiceElement(XMLField sourceField, Class<?> elementType, XMLField targetField) {
         getFieldToClassMappings().put(sourceField, elementType);
         this.fieldToClassNameMappings.put(sourceField, elementType.getName());
         if (classToFieldMappings.get(elementType) == null) {
@@ -459,7 +459,7 @@
         addChoiceElementMapping(sourceField, elementType, targetField);
     }
 
-    private void addChoiceElementMapping(List<XMLField> sourceFields, Class theClass, List<XMLField> targetFields) {
+    private void addChoiceElementMapping(List<XMLField> sourceFields, Class<?> theClass, List<XMLField> targetFields) {
         XMLCollectionReferenceMapping xmlMapping = new XMLCollectionReferenceMapping();
         xmlMapping.setReferenceClass(theClass);
         xmlMapping.setAttributeAccessor(temporaryAccessor);
@@ -483,7 +483,7 @@
         this.choiceElementMappingsByClassName.put(theClass, xmlMapping);
     }
 
-    private void addChoiceElementMapping(XMLField sourceField, Class theClass, XMLField targetField) {
+    private void addChoiceElementMapping(XMLField sourceField, Class<?> theClass, XMLField targetField) {
         XMLCollectionReferenceMapping mapping = new XMLCollectionReferenceMapping();
         mapping.setReferenceClass(theClass);
         mapping.setAttributeAccessor(temporaryAccessor);
@@ -512,7 +512,7 @@
 
 
     @Override
-    public Map<XMLField, Class> getFieldToClassMappings() {
+    public Map<XMLField, Class<?>> getFieldToClassMappings() {
         return fieldToClassMappings;
     }
 
@@ -578,7 +578,7 @@
     }
 
     @Override
-    public Map<Class, XMLField> getClassToFieldMappings() {
+    public Map<Class<?>, XMLField> getClassToFieldMappings() {
         return classToFieldMappings;
     }
 
@@ -596,7 +596,7 @@
         this.containerPolicy = cp;
     }
 
-    public void useCollectionClass(Class concreteContainerClass) {
+    public void useCollectionClass(Class<?> concreteContainerClass) {
         this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteContainerClass));
     }
 
@@ -611,7 +611,7 @@
         while (entries.hasNext()) {
             Map.Entry<XMLField, String> entry = entries.next();
             String className = entry.getValue();
-            Class elementType = null;
+            Class<?> elementType = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -634,7 +634,7 @@
         }
         for(Entry<String, XMLField> next: this.classNameToFieldMappings.entrySet()) {
             String className = next.getKey();
-            Class elementType = null;
+            Class<?> elementType = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -656,7 +656,7 @@
                 Entry<String, List<XMLField>> nextEntry = sourceFieldEntries.next();
                 String className = nextEntry.getKey();
                 List<XMLField> fields = nextEntry.getValue();
-                Class elementType = null;
+                Class<?> elementType = null;
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                         try {
@@ -675,7 +675,7 @@
         }
         if(!choiceElementMappingsByClassName.isEmpty()) {
             for(Entry<String, XMLMapping> next:choiceElementMappingsByClassName.entrySet()) {
-                Class elementType = null;
+                Class<?> elementType = null;
                 String className = next.getKey();
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
@@ -789,7 +789,7 @@
          }
     }
 
-    private void addChoiceElementMapping(XMLField xmlField, Class theClass){
+    private void addChoiceElementMapping(XMLField xmlField, Class<?> theClass){
 
         if (xmlField.getLastXPathFragment().nameIsText() || xmlField.getLastXPathFragment().isAttribute()) {
             XMLCompositeDirectCollectionMapping xmlMapping = new XMLCompositeDirectCollectionMapping();
@@ -912,7 +912,7 @@
     }
 
     @Override
-    public Map<Class, List<XMLField>> getClassToSourceFieldsMappings() {
+    public Map<Class<?>, List<XMLField>> getClassToSourceFieldsMappings() {
         if(this.classToSourceFieldsMappings == null) {
             this.classToSourceFieldsMappings = new HashMap<>();
         }
@@ -934,7 +934,7 @@
         return false;
     }
 
-    private boolean isBinaryType(Class theClass) {
+    private boolean isBinaryType(Class<?> theClass) {
         String className = theClass.getName();
         if(className.equals(byte[].class.getName()) || className.equals(Byte[].class.getName()) || className.equals(DATA_HANDLER)
                 || className.equals(IMAGE) || className.equals(MIME_MULTIPART)) {
@@ -1042,11 +1042,11 @@
     }
 
     @Override
-    public Map<Class, XMLMapping> getChoiceElementMappingsByClass() {
+    public Map<Class<?>, XMLMapping> getChoiceElementMappingsByClass() {
         return choiceElementMappingsByClass;
     }
 
-    public void setChoiceElementMappingsByClass(Map<Class, XMLMapping> choiceElementMappingsByClass) {
+    public void setChoiceElementMappingsByClass(Map<Class<?>, XMLMapping> choiceElementMappingsByClass) {
         this.choiceElementMappingsByClass = choiceElementMappingsByClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceObjectMapping.java
index 52170b5..ed56f84 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLChoiceObjectMapping.java
@@ -95,18 +95,18 @@
  */
 
 public class XMLChoiceObjectMapping extends DatabaseMapping implements ChoiceObjectMapping<AttributeAccessor, AbstractSession, ContainerPolicy, Converter, ClassDescriptor, DatabaseField, XMLMarshaller, Session, XMLUnmarshaller, XMLField, XMLMapping, XMLRecord>, XMLMapping {
-    private Map<XMLField, Class> fieldToClassMappings;
-    private Map<Class, XMLField> classToFieldMappings;
+    private Map<XMLField, Class<?>> fieldToClassMappings;
+    private Map<Class<?>, XMLField> classToFieldMappings;
     private Map<String, XMLField> classNameToFieldMappings;
-    private Map<Class, List<XMLField>> classToSourceFieldsMappings;
+    private Map<Class<?>, List<XMLField>> classToSourceFieldsMappings;
     private Map<String, List<XMLField>> classNameToSourceFieldsMappings;
     private Map<XMLField, String> fieldToClassNameMappings;
     private Map<XMLField, XMLMapping> choiceElementMappings;
-    private Map<Class, XMLMapping> choiceElementMappingsByClass;
+    private Map<Class<?>, XMLMapping> choiceElementMappingsByClass;
     private Map<String, XMLMapping> choiceElementMappingsByClassName;
     private Map<XMLField, Converter> fieldsToConverters;
     private Map<String, Converter> classNameToConverter;
-    private Map<Class, Converter> classToConverter;
+    private Map<Class<?>, Converter> classToConverter;
 
     private Converter converter;
     private boolean isWriteOnly;
@@ -339,12 +339,12 @@
         return fields;
     }
 
-    public void addChoiceElement(String xpath, Class elementType) {
+    public void addChoiceElement(String xpath, Class<?> elementType) {
         XMLField field = new XMLField(xpath);
         addChoiceElement(field, elementType);
     }
 
-    public void addChoiceElement(String srcXPath, Class elementType, String tgtXPath) {
+    public void addChoiceElement(String srcXPath, Class<?> elementType, String tgtXPath) {
         XMLField srcField = new XMLField(srcXPath);
         XMLField tgtField = new XMLField(tgtXPath);
         addChoiceElement(srcField, elementType, tgtField);
@@ -376,7 +376,7 @@
         addChoiceElement(xpath, elementTypeName, false);
     }
 
-    public void addChoiceElement(XMLField xmlField, Class elementType) {
+    public void addChoiceElement(XMLField xmlField, Class<?> elementType) {
         getFieldToClassMappings().put(xmlField, elementType);
         this.fieldToClassNameMappings.put(xmlField, elementType.getName());
         if (classToFieldMappings.get(elementType) == null) {
@@ -385,7 +385,7 @@
         addChoiceElementMapping(xmlField, elementType);
     }
 
-    public void addChoiceElement(XMLField sourceField, Class elementType, XMLField targetField) {
+    public void addChoiceElement(XMLField sourceField, Class<?> elementType, XMLField targetField) {
         getFieldToClassMappings().put(sourceField, elementType);
         this.fieldToClassNameMappings.put(sourceField, elementType.getName());
         if (classToFieldMappings.get(elementType) == null) {
@@ -399,7 +399,7 @@
         addChoiceElementMapping(sourceField, elementTypeName, targetField);
     }
 
-    public void addChoiceElement(List<XMLField> srcFields, Class elementType, List<XMLField> tgtFields) {
+    public void addChoiceElement(List<XMLField> srcFields, Class<?> elementType, List<XMLField> tgtFields) {
         for(XMLField sourceField:srcFields) {
             getFieldToClassMappings().put(sourceField, elementType);
             this.fieldToClassNameMappings.put(sourceField, elementType.getName());
@@ -432,7 +432,7 @@
     }
 
     @Override
-    public Map<XMLField, Class> getFieldToClassMappings() {
+    public Map<XMLField, Class<?>> getFieldToClassMappings() {
         return fieldToClassMappings;
     }
 
@@ -490,7 +490,7 @@
     }
 
     @Override
-    public Map<Class, XMLField> getClassToFieldMappings() {
+    public Map<Class<?>, XMLField> getClassToFieldMappings() {
         return classToFieldMappings;
     }
 
@@ -505,7 +505,7 @@
         while (entries.hasNext()) {
             Map.Entry<XMLField, String> entry = entries.next();
             String className = entry.getValue();
-            Class elementType = null;
+            Class<?> elementType = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -529,7 +529,7 @@
         }
         for(Entry<String, XMLField> next: this.classNameToFieldMappings.entrySet()) {
             String className = next.getKey();
-            Class elementType = null;
+            Class<?> elementType = null;
             try {
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     try {
@@ -552,7 +552,7 @@
                 Entry<String, List<XMLField>> nextEntry = sourceFieldEntries.next();
                 String className = nextEntry.getKey();
                 List<XMLField> fields = nextEntry.getValue();
-                Class elementType = null;
+                Class<?> elementType = null;
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                         try {
@@ -575,7 +575,7 @@
             }
             for(Entry<String, Converter> next: classNameToConverter.entrySet()) {
                 String className = next.getKey();
-                Class elementType = null;
+                Class<?> elementType = null;
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                         try {
@@ -594,7 +594,7 @@
         }
         if(!choiceElementMappingsByClassName.isEmpty()) {
             for(Entry<String, XMLMapping> next:choiceElementMappingsByClassName.entrySet()) {
-                Class elementType = null;
+                Class<?> elementType = null;
                 String className = next.getKey();
                 try {
                     if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
@@ -718,7 +718,7 @@
          }
     }
 
-    private void addChoiceElementMapping(XMLField xmlField, Class theClass){
+    private void addChoiceElementMapping(XMLField xmlField, Class<?> theClass){
 
         if (xmlField.getLastXPathFragment().nameIsText() || xmlField.getLastXPathFragment().isAttribute()) {
             XMLDirectMapping xmlMapping = new XMLDirectMapping();
@@ -748,7 +748,7 @@
         }
     }
 
-    private void addChoiceElementMapping(XMLField sourceField, Class theClass, XMLField targetField) {
+    private void addChoiceElementMapping(XMLField sourceField, Class<?> theClass, XMLField targetField) {
         XMLObjectReferenceMapping mapping = new XMLObjectReferenceMapping();
         mapping.setReferenceClass(theClass);
         mapping.setAttributeAccessor(temporaryAccessor);
@@ -766,7 +766,7 @@
         this.choiceElementMappingsByClassName.put(className, mapping);
     }
 
-    private void addChoiceElementMapping(List<XMLField> sourceFields, Class theClass, List<XMLField> targetFields) {
+    private void addChoiceElementMapping(List<XMLField> sourceFields, Class<?> theClass, List<XMLField> targetFields) {
         XMLObjectReferenceMapping xmlMapping = new XMLObjectReferenceMapping();
         xmlMapping.setReferenceClass(theClass);
         xmlMapping.setAttributeAccessor(temporaryAccessor);
@@ -839,7 +839,7 @@
     }
 
     @Override
-    public Map<Class, List<XMLField>> getClassToSourceFieldsMappings() {
+    public Map<Class<?>, List<XMLField>> getClassToSourceFieldsMappings() {
         if(this.classToSourceFieldsMappings == null) {
             this.classToSourceFieldsMappings = new HashMap<>();
         }
@@ -861,7 +861,7 @@
         return false;
     }
 
-    private boolean isBinaryType(Class theClass) {
+    private boolean isBinaryType(Class<?> theClass) {
         String className = theClass.getName();
         if(className.equals(byte[].class.getName()) || className.equals(Byte[].class.getName()) || className.equals(DATA_HANDLER)
                 || className.equals(IMAGE) || className.equals(MIME_MULTIPART)) {
@@ -876,11 +876,11 @@
     }
 
     @Override
-    public Map<Class, XMLMapping> getChoiceElementMappingsByClass() {
+    public Map<Class<?>, XMLMapping> getChoiceElementMappingsByClass() {
         return choiceElementMappingsByClass;
     }
 
-    public void setChoiceElementMappingsByClass(Map<Class, XMLMapping> choiceElementMappingsByClass) {
+    public void setChoiceElementMappingsByClass(Map<Class<?>, XMLMapping> choiceElementMappingsByClass) {
         this.choiceElementMappingsByClass = choiceElementMappingsByClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCollectionReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCollectionReferenceMapping.java
index 637b82e..06cb7b0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCollectionReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCollectionReferenceMapping.java
@@ -221,7 +221,7 @@
                 pks = new CacheId(new Object[0]);
                 primaryKeyMap.put(tgtXPath, pks);
             }
-            Class type = descriptor.getTypedField(tgtFld).getType();
+            Class<?> type = descriptor.getTypedField(tgtFld).getType();
             XMLConversionManager xmlConversionManager = (XMLConversionManager) session.getDatasourcePlatform().getConversionManager();
             if(usesSingleNode) {
                 for (StringTokenizer stok = new StringTokenizer((String) object); stok.hasMoreTokens();) {
@@ -361,7 +361,7 @@
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
     @Override
-    public void useCollectionClass(Class concreteContainerClass) {
+    public void useCollectionClass(Class<?> concreteContainerClass) {
         this.setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteContainerClass));
     }
 
@@ -387,7 +387,7 @@
      * <p>The referenceClass must be set before calling this method.
      */
     @Override
-    public void useMapClass(Class concreteContainerClass, String methodName) {
+    public void useMapClass(Class<?> concreteContainerClass, String methodName) {
         // the reference class has to be specified before coming here
         if (this.getReferenceClass() == null) {
             throw DescriptorException.referenceClassNotSpecified(this);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeCollectionMapping.java
index fd758f1..8078683 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeCollectionMapping.java
@@ -566,7 +566,7 @@
         }
         else{
             if (aDescriptor.hasInheritance()) {
-                Class newElementClass = aDescriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
+                Class<?> newElementClass = aDescriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
                 if (newElementClass == null) {
                     // no xsi:type attribute - look for type indicator on the field
                     QName leafElementType = ((XMLField) getField()).getLeafElementType();
@@ -667,7 +667,7 @@
     }
 
     @Override
-    protected ClassDescriptor getReferenceDescriptor(Class theClass, AbstractSession session) {
+    protected ClassDescriptor getReferenceDescriptor(Class<?> theClass, AbstractSession session) {
         if ((getReferenceDescriptor() != null) && getReferenceDescriptor().getJavaClass().equals(theClass)) {
             return getReferenceDescriptor();
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeObjectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeObjectMapping.java
index 9b5e81a..67e3c4a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeObjectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeObjectMapping.java
@@ -551,7 +551,7 @@
             }
         } else {
             if (aDescriptor.hasInheritance()) {
-                Class classValue = aDescriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
+                Class<?> classValue = aDescriptor.getInheritancePolicy().classFromRow(nestedRow, executionSession);
                 if (classValue == null) {
                     // no xsi:type attribute - look for type indicator on the field
                     QName leafElementType = ((XMLField) getField()).getLeafElementType();
@@ -735,7 +735,7 @@
     }
 
     @Override
-    protected ClassDescriptor getReferenceDescriptor(Class theClass, AbstractSession session) {
+    protected ClassDescriptor getReferenceDescriptor(Class<?> theClass, AbstractSession session) {
         if ((getReferenceDescriptor() != null) && getReferenceDescriptor().getJavaClass().equals(theClass)) {
             return getReferenceDescriptor();
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLDirectMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLDirectMapping.java
index c12b2be..9175ca2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLDirectMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLDirectMapping.java
@@ -338,7 +338,7 @@
         fieldValue = convertObjectValueToDataValue(fieldValue, (AbstractSession) session, (XMLMarshaller) record.getMarshaller());
 
         if (fieldValue != null) {
-             Class fieldClassification = getFieldClassification(field);
+             Class<?> fieldClassification = getFieldClassification(field);
              // PERF: Avoid conversion if not required.
              if(fieldClassification != fieldValue.getClass()){
                  try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLInverseReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLInverseReferenceMapping.java
index 3128a15..0542a81 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLInverseReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLInverseReferenceMapping.java
@@ -253,7 +253,7 @@
     }
 
     @Override
-    public void useCollectionClass(Class concreteClass) {
+    public void useCollectionClass(Class<?> concreteClass) {
         this.containerPolicy = new CollectionContainerPolicy(concreteClass);
     }
 
@@ -268,7 +268,7 @@
     }
 
     @Override
-    public void useMapClass(Class concreteClass, String methodName) {
+    public void useMapClass(Class<?> concreteClass, String methodName) {
         this.containerPolicy = new MapContainerPolicy(concreteClass);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLObjectReferenceMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLObjectReferenceMapping.java
index 30cef4c..34dd7a4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLObjectReferenceMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLObjectReferenceMapping.java
@@ -264,7 +264,7 @@
         ArrayList schemaTypes = xmlField.getSchemaTypes();
         QName schemaType = null;
         QName nextQName;
-        Class javaClass;
+        Class<?> javaClass;
         for (int i = 0; i < schemaTypes.size(); i++) {
             nextQName = (QName) (xmlField).getSchemaTypes().get(i);
             try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/converters/XMLListConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/converters/XMLListConverter.java
index fc9a660..77e5076 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/converters/XMLListConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/converters/XMLListConverter.java
@@ -39,7 +39,7 @@
 
     private XMLConversionManager conversionManager;
     private XMLCompositeDirectCollectionMapping mapping;
-    private Class objectClass = null;
+    private Class<?> objectClass = null;
     private String objectClassName = null;
 
     @Override
@@ -99,7 +99,7 @@
      * ArrayList&lt;ArrayList&lt;Double&gt;&gt;, FieldSubElementClass would be java.lang.Double.class).
      * @return Class the Class of the elements of this collection's "sub-collection"
      */
-    public Class getObjectClass() {
+    public Class<?> getObjectClass() {
         return objectClass;
     }
 
@@ -109,7 +109,7 @@
      * ArrayList&lt;ArrayList&lt;Double&gt;&gt;, FieldSubElementClass would be java.lang.Double.class).
      * @param aClass the Class of the elements of this collection's "sub-collection"
      */
-    public void setObjectClass(Class aClass) {
+    public void setObjectClass(Class<?> aClass) {
         this.objectClass = aClass;
         if (this.objectClassName == null) {
             this.objectClassName = aClass.getName();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/nullpolicy/IsSetNullPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/nullpolicy/IsSetNullPolicy.java
index 6d8b174..2d5d557 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/nullpolicy/IsSetNullPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/nullpolicy/IsSetNullPolicy.java
@@ -54,10 +54,10 @@
  * @since Oracle TopLink 11<i>g</i> Release 1 (11.1.1)
  */
 public class IsSetNullPolicy extends AbstractNullPolicy {
-    private static final Class[] PARAMETER_TYPES = {};
+    private static final Class<?>[] PARAMETER_TYPES = {};
     private static final Object[] PARAMETERS = {};
     private String isSetMethodName;
-    private Class[] isSetParameterTypes = PARAMETER_TYPES;
+    private Class<?>[] isSetParameterTypes = PARAMETER_TYPES;
     private Object[] isSetParameters = PARAMETERS;
     private Method isSetMethod;
 
@@ -185,14 +185,14 @@
     /**
      *
      */
-    public Class[] getIsSetParameterTypes() {
+    public Class<?>[] getIsSetParameterTypes() {
         return isSetParameterTypes;
     }
 
     /**
      *
      */
-    public void setIsSetParameterTypes(Class[] parameterTypes) {
+    public void setIsSetParameterTypes(Class<?>[] parameterTypes) {
         isSetParameterTypes = parameterTypes;
     }
 
@@ -210,7 +210,7 @@
         isSetParameters = parameters;
     }
 
-    private Method getIsSetMethod(Class aClass) throws NoSuchMethodException {
+    private Method getIsSetMethod(Class<?> aClass) throws NoSuchMethodException {
         if(null == isSetMethod) {
              isSetMethod = PrivilegedAccessHelper.getPublicMethod(aClass, getIsSetMethodName(), getIsSetParameterTypes(), false);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/DOMRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/DOMRecord.java
index dbf0122..0a6c03c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/DOMRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/DOMRecord.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
@@ -533,7 +533,7 @@
                 int index = schemaType.indexOf(XMLConstants.COLON);
                 if (index == -1) {
                     qname = new QName(schemaType);
-                    Class convertClass = key.getJavaClass(qname, xmlCnvMgr);
+                    Class<?> convertClass = key.getJavaClass(qname, xmlCnvMgr);
                     return xmlCnvMgr.convertObject(value, convertClass);
                 } else {
                     String prefix = schemaType.substring(0, index);
@@ -541,7 +541,7 @@
                     XMLPlatform xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform();
                     String url = xmlPlatform.resolveNamespacePrefix(node, prefix);
                     qname = new QName(url, localPart);
-                    Class convertClass = key.getJavaClass(qname, xmlCnvMgr);
+                    Class<?> convertClass = key.getJavaClass(qname, xmlCnvMgr);
                     return xmlCnvMgr.convertObject(value, convertClass, qname);
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/XMLRootRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/XMLRootRecord.java
index d1746cf..3435567 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/XMLRootRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/record/XMLRootRecord.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 @@
  */
 public class XMLRootRecord extends UnmarshalRecordImpl {
 
-    private Class targetClass;
+    private Class<?> targetClass;
     private StrBuffer characters;
     private boolean shouldReadChars;
     private int elementCount;
@@ -40,7 +40,7 @@
     /**
      * Default constructor.
      */
-    public XMLRootRecord(Class cls, XMLUnmarshaller unmarshaller) {
+    public XMLRootRecord(Class<?> cls, XMLUnmarshaller unmarshaller) {
         this.targetClass = cls;
         this.unmarshaller = unmarshaller;
         setSession((CoreAbstractSession) unmarshaller.getContext().getSession());
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
index 81b89be..f0c9545 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/DB2ZPlatform.java
@@ -161,7 +161,7 @@
             Class<?> clazz;
             Method method;
             String methodName = "registerJccOutParameterAtName";
-            Class<?>[] methodArgs = (Class<?>[]) new Class[] {String.class, int.class};
+            Class<?>[] methodArgs = new Class<?>[] {String.class, int.class};
             Object[] parameters = new Object[] {name, jdbcType};
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 try {
@@ -200,7 +200,7 @@
             Class<?> clazz;
             Method method;
             String methodName = "registerJccOutParameterAtName";
-            Class<?>[] methodArgs = (Class<?>[]) new Class[] {String.class, int.class, String.class};
+            Class<?>[] methodArgs = new Class<?>[] {String.class, int.class, String.class};
             Object[] parameters = new Object[] {name, jdbcType, typeName};
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 try {
@@ -245,101 +245,101 @@
             if (usesStringBinding() && (((String)parameter).length() > getStringBindingSize())) {
                 CharArrayReader reader = new CharArrayReader(((String)parameter).toCharArray());
                 methodName = "setJccCharacterStreamAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, java.io.Reader.class, int.class};
+                methodArgs = new Class<?>[] {String.class, java.io.Reader.class, int.class};
                 parameters = new Object[] {name, reader, ((String)parameter).length()};
             } else {
                 //TODO find shouldUseGetSetNString() support for DB2/Z
                 methodName = "setJccStringAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, String.class};
+                methodArgs = new Class<?>[] {String.class, String.class};
                 parameters = new Object[] {name, parameter};
             }
         } else if (parameter instanceof Number) {
             Number number = (Number) parameter;
             if (number instanceof Integer) {
                 methodName = "setJccIntAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, int.class};
+                methodArgs = new Class<?>[] {String.class, int.class};
                 parameters = new Object[] {name, number.intValue()};
             } else if (number instanceof Long) {
                 methodName = "setJccLongAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, long.class};
+                methodArgs = new Class<?>[] {String.class, long.class};
                 parameters = new Object[] {name, number.longValue()};
             }  else if (number instanceof BigDecimal) {
                 methodName = "setJccBigDecimalAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, BigDecimal.class};
+                methodArgs = new Class<?>[] {String.class, BigDecimal.class};
                 parameters = new Object[] {name, number};
             } else if (number instanceof Double) {
                 methodName = "setJccDoubleAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, double.class};
+                methodArgs = new Class<?>[] {String.class, double.class};
                 parameters = new Object[] {name, number.doubleValue()};
             } else if (number instanceof Float) {
                 methodName = "setJccFloatAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, float.class};
+                methodArgs = new Class<?>[] {String.class, float.class};
                 parameters = new Object[] {name, number.floatValue()};
             } else if (number instanceof Short) {
                 methodName = "setJccShortAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, short.class};
+                methodArgs = new Class<?>[] {String.class, short.class};
                 parameters = new Object[] {name, number.shortValue()};
             } else if (number instanceof Byte) {
                 methodName = "setJccByteAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, byte.class};
+                methodArgs = new Class<?>[] {String.class, byte.class};
                 parameters = new Object[] {name, number.byteValue()};
             } else if (number instanceof BigInteger) {
                 // Convert to BigDecimal.
                 methodName = "setJccBigDecimalAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, BigDecimal.class};
+                methodArgs = new Class<?>[] {String.class, BigDecimal.class};
                 parameters = new Object[] {name, new BigDecimal((BigInteger) number)};
             } else {
                 methodName = "setJccObjectAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, Object.class};
+                methodArgs = new Class<?>[] {String.class, Object.class};
                 parameters = new Object[] {name, parameter};
             }
         } else if (parameter instanceof java.sql.Date){
             methodName = "setJccDateAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Date.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Date.class};
             parameters = new Object[] {name, parameter};
         } else if (parameter instanceof java.time.LocalDate){
             // Convert to java.sql.Date
             methodName = "setJccDateAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Date.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Date.class};
             parameters = new Object[] {name, java.sql.Date.valueOf((java.time.LocalDate) parameter)};
         } else if (parameter instanceof java.sql.Timestamp){
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, parameter};
         } else if (parameter instanceof java.time.LocalDateTime){
             // Convert to java.sql.Timestamp
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, java.sql.Timestamp.valueOf((java.time.LocalDateTime) parameter)};
         } else if (parameter instanceof java.time.OffsetDateTime) {
             // Convert to java.sql.Timestamp
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, java.sql.Timestamp.from(((java.time.OffsetDateTime) parameter).toInstant())};
         } else if (parameter instanceof java.sql.Time){
             methodName = "setJccTimeAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Time.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Time.class};
             parameters = new Object[] {name, parameter};
         } else if (parameter instanceof java.time.LocalTime){
             java.time.LocalTime lt = (java.time.LocalTime) parameter;
             java.sql.Timestamp ts = java.sql.Timestamp.valueOf(java.time.LocalDateTime.of(java.time.LocalDate.ofEpochDay(0), lt));
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, ts};
         } else if (parameter instanceof java.time.OffsetTime) {
             java.time.OffsetTime ot = (java.time.OffsetTime) parameter;
             java.sql.Timestamp ts = java.sql.Timestamp.valueOf(java.time.LocalDateTime.of(java.time.LocalDate.ofEpochDay(0), ot.toLocalTime()));
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, ts};
         } else if (parameter instanceof Boolean) {
             methodName = "setJccBooleanAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, boolean.class};
+            methodArgs = new Class<?>[] {String.class, boolean.class};
             parameters = new Object[] {name, parameter};
         } else if (parameter == null) {
             // Normally null is passed as a DatabaseField so the type is included, but in some case may be passed directly.
             methodName = "setJccNullAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, int.class};
+            methodArgs = new Class<?>[] {String.class, int.class};
             parameters = new Object[] {name, getJDBCType((Class)null)};
         } else if (parameter instanceof DatabaseField) {
             setNullFromDatabaseField((DatabaseField)parameter, statement, name);
@@ -347,42 +347,42 @@
             if (usesStreamsForBinding()) {
                 ByteArrayInputStream inputStream = new ByteArrayInputStream((byte[])parameter);
                 methodName = "setJccBinaryStreamAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, java.io.InputStream.class, int.class};
+                methodArgs = new Class<?>[] {String.class, java.io.InputStream.class, int.class};
                 parameters = new Object[] {name, inputStream, ((byte[])parameter).length};
             } else {
                 methodName = "setJccBytesAtName";
-                methodArgs = (Class<?>[]) new Class[] {String.class, byte[].class};
+                methodArgs = new Class<?>[] {String.class, byte[].class};
                 parameters = new Object[] {name, parameter};
             }
         }
         // Next process types that need conversion.
         else if (parameter instanceof Calendar) {
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, Helper.timestampFromDate(((Calendar)parameter).getTime())};
         } else if (parameter.getClass() == ClassConstants.UTILDATE) {
             methodName = "setJccTimestampAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.Timestamp.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.Timestamp.class};
             parameters = new Object[] {name, Helper.timestampFromDate((java.util.Date) parameter)};
         } else if (parameter instanceof Character) {
             methodName = "setJccStringAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, String.class};
+            methodArgs = new Class<?>[] {String.class, String.class};
             parameters = new Object[] {name, ((Character)parameter).toString()};
         } else if (parameter instanceof char[]) {
             methodName = "setJccStringAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, String.class};
+            methodArgs = new Class<?>[] {String.class, String.class};
             parameters = new Object[] {name, new String((char[])parameter)};
         } else if (parameter instanceof Character[]) {
             methodName = "setJccStringAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, String.class};
+            methodArgs = new Class<?>[] {String.class, String.class};
             parameters = new Object[] {name, convertObject(parameter, ClassConstants.STRING)};
         } else if (parameter instanceof Byte[]) {
             methodName = "setJccBytesAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, byte[].class};
+            methodArgs = new Class<?>[] {String.class, byte[].class};
             parameters = new Object[] {name, convertObject(parameter, ClassConstants.APBYTE)};
         } else if (parameter instanceof java.sql.SQLXML) {
             methodName = "setJccSQLXMLAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, java.sql.SQLXML.class};
+            methodArgs = new Class<?>[] {String.class, java.sql.SQLXML.class};
             parameters = new Object[] {name, parameter};
         } else if (parameter instanceof BindCallCustomParameter) {
             ((BindCallCustomParameter)(parameter)).set(this, statement, name, session);
@@ -390,11 +390,11 @@
             StructConverter converter = typeConverters.get(parameter.getClass());
             java.sql.Struct struct = converter.convertToStruct(parameter, getConnection(session, statement.getConnection()));
             methodName = "setJccObjectAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, Object.class};
+            methodArgs = new Class<?>[] {String.class, Object.class};
             parameters = new Object[] {name, struct};
         } else {
             methodName = "setJccObjectAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, Object.class};
+            methodArgs = new Class<?>[] {String.class, Object.class};
             parameters = new Object[] {name, parameter};
         }
 
@@ -438,12 +438,12 @@
         if (databaseField instanceof ObjectRelationalDatabaseField) {
             ObjectRelationalDatabaseField field = (ObjectRelationalDatabaseField)databaseField;
             methodName = "setJccNullAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, int.class, String.class};
+            methodArgs = new Class<?>[] {String.class, int.class, String.class};
             parameters = new Object[] {name, field.getSqlType(), field.getSqlTypeName()};
         } else {
             int jdbcType = getJDBCTypeForSetNull(databaseField);
             methodName = "setJccNullAtName";
-            methodArgs = (Class<?>[]) new Class[] {String.class, int.class};
+            methodArgs = new Class<?>[] {String.class, int.class};
             parameters = new Object[] {name, jdbcType};
         }
 
@@ -485,7 +485,7 @@
         Object[] parameters;
 
         methodName = "getJccObjectAtName";
-        methodArgs = (Class<?>[]) new Class[] {String.class};
+        methodArgs = new Class<?>[] {String.class};
         parameters = new Object[] {name};
 
         try {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
index 1cae3bc..1e98eb2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/MySQLPlatform.java
@@ -250,7 +250,7 @@
     }
 
     @Override
-    public int getJDBCType(Class javaType) {
+    public int getJDBCType(Class<?> javaType) {
         if (javaType == ClassConstants.TIME_ODATETIME) {
             return Types.TIMESTAMP;
         } else if (javaType == ClassConstants.TIME_OTIME) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
index 20b3aba..44e6e0e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/Oracle8Platform.java
@@ -93,7 +93,7 @@
     @Override
     public boolean shouldUseCustomModifyForCall(DatabaseField field) {
         if (shouldUseLocatorForLOBWrite()) {
-            Class type = field.getType();
+            Class<?> type = field.getType();
             if (ClassConstants.BLOB.equals(type) || ClassConstants.CLOB.equals(type)) {
                 return true;
             }
@@ -143,7 +143,7 @@
      */
     @Override
     public Object getCustomModifyValueForCall(Call call, Object value, DatabaseField field, boolean shouldBind) {
-        Class type = field.getType();
+        Class<?> type = field.getType();
         if (ClassConstants.BLOB.equals(type) || ClassConstants.CLOB.equals(type)) {
             if (value == null) {
                 return null;
@@ -198,14 +198,14 @@
     /**
      * INTERNAL: Used in writeLOB method only to identify a BLOB
      */
-    protected boolean isBlob(Class type) {
+    protected boolean isBlob(Class<?> type) {
         return ClassConstants.BLOB.equals(type);
     }
 
     /**
      * INTERNAL: Used in writeLOB method only to identify a CLOB
      */
-    protected boolean isClob(Class type) {
+    protected boolean isClob(Class<?> type) {
         return ClassConstants.CLOB.equals(type);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
index 46f0a6c..80ea527 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/PostgreSQLPlatform.java
@@ -73,7 +73,7 @@
      * not seem to like the JDBC Blob type (PostgreSQL 8.2).
      */
     @Override
-    public int getJDBCType(Class javaType) {
+    public int getJDBCType(Class<?> javaType) {
         if (javaType == ClassConstants.BLOB) {
             return Types.LONGVARBINARY;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
index 1284ef5..51f97a3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/SybasePlatform.java
@@ -127,7 +127,7 @@
      * Sybase and SQL Anywhere do not support BLOB/CLOB but require LONGVARBINARY/LONGVARCHAR.
      */
     @Override
-    public int getJDBCType(Class javaType) {
+    public int getJDBCType(Class<?> javaType) {
         if (javaType == ClassConstants.BLOB)  {
             return Types.LONGVARBINARY;
         } else if (javaType == ClassConstants.CLOB) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/converters/StructConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/converters/StructConverter.java
index ba71e6e..4964e75 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/converters/StructConverter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/converters/StructConverter.java
@@ -49,7 +49,7 @@
      * PUBLIC:
      * @return The Java Class to perform conversions on
      */
-    Class getJavaType();
+    Class<?> getJavaType();
 
     /**
      * PUBLIC:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/NamedPLSQLStoredProcedureQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/NamedPLSQLStoredProcedureQuery.java
index 0383ad2..08255aa 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/NamedPLSQLStoredProcedureQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/NamedPLSQLStoredProcedureQuery.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
@@ -50,7 +50,7 @@
     /**
      * (Optional) Refers to the class of the result.
      */
-    Class resultClass() default void.class;
+    Class<?> resultClass() default void.class;
 
     /**
      * (Optional) The name of the SQLResultMapping.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleArray.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleArray.java
index d296084..60e5bdd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleArray.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleArray.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
@@ -47,5 +47,5 @@
      * (Optional) The Java Collection class to map the VARRAY to.
      * This can be any valid Collection implementation.
      */
-    Class javaType() default ArrayList.class;
+    Class<?> javaType() default ArrayList.class;
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleObject.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleObject.java
index 4d9e480..76b062a 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleObject.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/OracleObject.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,7 +41,7 @@
      * (Optional) The Java class to map the OBJECT type to.
      * This class must be mapped using a @Struct annotation.
      */
-    Class javaType() default void.class;
+    Class<?> javaType() default void.class;
 
     /**
      * (Required) Defines the fields in the record type.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLRecord.java
index 9b10e40..e1fdab0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLRecord.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
@@ -47,7 +47,7 @@
      * (Optional) The Java class to map the object-type to.
      * This class must be mapped using a @Struct annotation.
      */
-    Class javaType() default void.class;
+    Class<?> javaType() default void.class;
 
     /**
      * (Required) Defines the fields in the record type.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLTable.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLTable.java
index 2a97356..981dec9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLTable.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/annotations/PLSQLTable.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
@@ -54,7 +54,7 @@
      * (Optional) The Java Collection class to map the varray to.
      * This can be any valid Collection implementation.
      */
-    Class javaType() default ArrayList.class;
+    Class<?> javaType() default ArrayList.class;
 
     /**
      * (Optional) Indicates a non-associative (nested) table.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/plsql/PLSQLStoredProcedureCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/plsql/PLSQLStoredProcedureCall.java
index ece373a..0991e05 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/plsql/PLSQLStoredProcedureCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/database/oracle/plsql/PLSQLStoredProcedureCall.java
@@ -208,14 +208,14 @@
 
     @Override
     public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName,
-        String outArgumentFieldName, int type, String typeName, Class classType) {
+        String outArgumentFieldName, int type, String typeName, Class<?> classType) {
         arguments.add(new PLSQLargument(procedureParameterName, originalIndex++, INOUT,
             getDatabaseTypeForCode(type)));
     }
 
     @Override
     public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName,
-        String outArgumentFieldName, int type, String typeName, Class javaType,
+        String outArgumentFieldName, int type, String typeName, Class<?> javaType,
         DatabaseField nestedType) {
         arguments.add(new PLSQLargument(procedureParameterName, originalIndex++, INOUT,
             getDatabaseTypeForCode(type)));
@@ -260,14 +260,14 @@
 
     @Override
     public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName,
-        int jdbcType, String typeName, Class javaType) {
+        int jdbcType, String typeName, Class<?> javaType) {
         arguments.add(new PLSQLargument(procedureParameterName, originalIndex++, OUT,
             getDatabaseTypeForCode(jdbcType)));
     }
 
     @Override
     public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName,
-        int jdbcType, String typeName, Class javaType, DatabaseField nestedType) {
+        int jdbcType, String typeName, Class<?> javaType, DatabaseField nestedType) {
         arguments.add(new PLSQLargument(procedureParameterName, originalIndex++, OUT,
             getDatabaseTypeForCode(jdbcType)));
     }
@@ -315,19 +315,19 @@
 
     @Override
     public void addNamedInOutputArgument(String procedureParameterName, String argumentFieldName,
-        Class type) {
+        Class<?> type) {
         throw QueryException.addArgumentsNotSupported("named IN OUT arguments without DatabaseType classification");
     }
 
     @Override
     public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName,
-        String outArgumentFieldName, Class type) {
+        String outArgumentFieldName, Class<?> type) {
         throw QueryException.addArgumentsNotSupported("named IN OUT arguments without DatabaseType classification");
     }
 
     @Override
     public void addNamedInOutputArgumentValue(String procedureParameterName,
-        Object inArgumentValue, String outArgumentFieldName, Class type) {
+        Object inArgumentValue, String outArgumentFieldName, Class<?> type) {
         throw QueryException.addArgumentsNotSupported("named IN OUT argument values without DatabaseType classification");
     }
 
@@ -343,7 +343,7 @@
 
     @Override
     public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName,
-        Class type) {
+        Class<?> type) {
         throw QueryException.addArgumentsNotSupported("named OUT arguments without DatabaseType classification");
     }
 
@@ -354,7 +354,7 @@
 
     // unlikely we will EVER support unnamed parameters
     @Override
-    public void addUnamedArgument(String argumentFieldName, Class type) {
+    public void addUnamedArgument(String argumentFieldName, Class<?> type) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
@@ -385,25 +385,25 @@
     }
 
     @Override
-    public void addUnamedInOutputArgument(String argumentFieldName, Class type) {
+    public void addUnamedInOutputArgument(String argumentFieldName, Class<?> type) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
     public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName,
-        Class type) {
+        Class<?> type) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
     public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName,
-        int type, String typeName, Class collection, DatabaseField nestedType) {
+        int type, String typeName, Class<?> collection, DatabaseField nestedType) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
     public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName,
-        int type, String typeName, Class collection) {
+        int type, String typeName, Class<?> collection) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
@@ -426,24 +426,24 @@
 
     @Override
     public void addUnamedInOutputArgumentValue(Object inArgumentValue, String outArgumentFieldName,
-        Class type) {
+        Class<?> type) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
-    public void addUnamedOutputArgument(String argumentFieldName, Class type) {
+    public void addUnamedOutputArgument(String argumentFieldName, Class<?> type) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
     public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName,
-        Class javaType, DatabaseField nestedType) {
+        Class<?> javaType, DatabaseField nestedType) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
     @Override
     public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName,
-        Class javaType) {
+        Class<?> javaType) {
         throw QueryException.unnamedArgumentsNotSupported();
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/JMXServerPlatformBase.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/JMXServerPlatformBase.java
index 3e78024..b615c72 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/JMXServerPlatformBase.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/JMXServerPlatformBase.java
@@ -323,7 +323,7 @@
                     args[1] = name;
                     try {
                         Method getMethod = PrivilegedAccessHelper.getPublicMethod(MBeanServer.class,
-                                "registerMBean", new Class[] {Object.class, ObjectName.class}, false);
+                                "registerMBean", new Class<?>[] {Object.class, ObjectName.class}, false);
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                             info = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, mBeanServerRuntime, args));
                         } else {
@@ -355,7 +355,7 @@
                         args[0] = runtimeServicesMBean;
                         args[1] = name;
                         Method getMethod = PrivilegedAccessHelper.getPublicMethod(MBeanServer.class,
-                                "registerMBean", new Class[] {Object.class, ObjectName.class}, false);
+                                "registerMBean", new Class<?>[] {Object.class, ObjectName.class}, false);
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                            runtimeInstance = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, mBeanServerRuntime, args));
                         } else {
@@ -407,7 +407,7 @@
                         args[0] = name;
                         try {
                             Method getMethod = PrivilegedAccessHelper.getPublicMethod(MBeanServer.class,
-                                    "unregisterMBean", new Class[] {ObjectName.class}, false);
+                                    "unregisterMBean", new Class<?>[] {ObjectName.class}, false);
                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                                 AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, mBeanServerRuntime, args));
                             } else {
@@ -435,7 +435,7 @@
                         args[0] = name;
                         try {
                             Method getMethod = PrivilegedAccessHelper.getPublicMethod(MBeanServer.class,
-                                    "unregisterMBean", new Class[] {ObjectName.class}, false);
+                                    "unregisterMBean", new Class<?>[] {ObjectName.class}, false);
                             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                                 AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, mBeanServerRuntime, args));
                             } else {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformUtils.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformUtils.java
index 5c43d5c..d5f69fd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformUtils.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/ServerPlatformUtils.java
@@ -127,7 +127,7 @@
                 throw ServerPlatformException.serverPlatformClassNotFound(platformClass, ex);
             }
         }
-        final Class<?>[] paramTypes = (Class<?>[]) new Class[] { DatabaseSession.class };
+        final Class<?>[] paramTypes = new Class<?>[] { DatabaseSession.class };
         final Object[] params = new Object[] { session };
         ServerPlatform platform = null;
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/was/WebSpherePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/was/WebSpherePlatform.java
index 8f35aa7..c59f780 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/was/WebSpherePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/was/WebSpherePlatform.java
@@ -126,7 +126,7 @@
     protected Method getVendorConnectionMethod() {
         if ((this.vendorConnectionMethod == null) && (!getWebsphereUtilClass().equals(void.class))) {
             try {
-                Class<?>[] args = (Class<?>[]) new Class[1];
+                Class<?>[] args = new Class<?>[1];
                 args[0] = getWebsphereConnectionClass();
                 this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebsphereUtilClass(), "getNativeConnection", args);
             } catch (NoSuchMethodException exception) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogicPlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogicPlatform.java
index 1d9e05f..513cb28 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogicPlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogicPlatform.java
@@ -135,7 +135,7 @@
     protected Method getVendorConnectionMethod() {
         if ((this.vendorConnectionMethod == null) && (!getWebLogicConnectionClass().equals(void.class))) {
             try {
-                this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnection", new Class[0]);
+                this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnection", new Class<?>[0]);
             } catch (NoSuchMethodException exception) {
                 getDatabaseSession().getSessionLog().logThrowable(SessionLog.WARNING, SessionLog.SERVER, exception);
             }
@@ -168,7 +168,7 @@
     protected Method getClearStatementCacheMethod() {
         if ((this.clearStatementCacheMethod == null) && (!getWebLogicConnectionClass().equals(void.class))) {
             try {
-                this.clearStatementCacheMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "clearStatementCache", new Class[0]);
+                this.clearStatementCacheMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "clearStatementCache", new Class<?>[0]);
             } catch (NoSuchMethodException exception) {
                 getDatabaseSession().getSessionLog().logThrowable(SessionLog.WARNING, SessionLog.SERVER, exception);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
index f890f13..cf1af57 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_10_Platform.java
@@ -316,7 +316,7 @@
             try {
                 // perform a reflective public java.lang.String
                 // weblogic.work.ExecuteThreadRuntime.<getMethodName>
-                Method getMethod = PrivilegedAccessHelper.getPublicMethod(executeThread.getClass(), getMethodName, new Class[] {}, false);
+                Method getMethod = PrivilegedAccessHelper.getPublicMethod(executeThread.getClass(), getMethodName, new Class<?>[] {}, false);
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                     classLoaderOrString = AccessController.doPrivileged(new PrivilegedMethodInvoker<>(getMethod, executeThread, null));
                 } else {
@@ -402,10 +402,10 @@
     protected Method getVendorConnectionMethod() {
         if ((this.vendorConnectionMethod == null) && (!getWebLogicConnectionClass().equals(void.class))) {
             try {
-                this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnectionSafe", new Class[0]);
+                this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnectionSafe", new Class<?>[0]);
             } catch (NoSuchMethodException not1034) {
                 try {
-                    this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnection", new Class[0]);
+                    this.vendorConnectionMethod = PrivilegedAccessHelper.getDeclaredMethod(getWebLogicConnectionClass(), "getVendorConnection", new Class<?>[0]);
                 } catch (NoSuchMethodException exception) {
                     getDatabaseSession().getSessionLog().logThrowable(SessionLog.WARNING, SessionLog.SERVER, exception);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_12_Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_12_Platform.java
index 45548b9..48e9c4c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_12_Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/platform/server/wls/WebLogic_12_Platform.java
@@ -107,14 +107,14 @@
         private void initialize(final Class<?> managerClass, final String contextClassName) {
             try {
                 // Get component invocation manager
-                final Method getInstance = PrivilegedAccessHelper.getDeclaredMethod(managerClass, "getInstance", new Class[]{});
+                final Method getInstance = PrivilegedAccessHelper.getDeclaredMethod(managerClass, "getInstance", new Class<?>[]{});
                 cicManagerInstance = PrivilegedAccessHelper.invokeMethod(getInstance, managerClass);
                 // Get component invocation context
-                getCurrentCicMethod = PrivilegedAccessHelper.getMethod(managerClass, "getCurrentComponentInvocationContext", new Class[]{}, true);
+                getCurrentCicMethod = PrivilegedAccessHelper.getMethod(managerClass, "getCurrentComponentInvocationContext", new Class<?>[]{}, true);
                 final Class<?> cicClass = PrivilegedAccessHelper.getClassForName(contextClassName);
-                getPartitionIdMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getPartitionId", new Class[]{});
-                getPartitionNameMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getPartitionName", new Class[]{});
-                isGlobalRuntimeMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "isGlobalRuntime", new Class[]{});
+                getPartitionIdMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getPartitionId", new Class<?>[]{});
+                getPartitionNameMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getPartitionName", new Class<?>[]{});
+                isGlobalRuntimeMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "isGlobalRuntime", new Class<?>[]{});
             } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException | ClassNotFoundException ex) {
                 AbstractSessionLog.getLog().logThrowable(SessionLog.WARNING, null, ex);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/AttributeGroup.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/AttributeGroup.java
index 6a33f39..6aeafc6 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/AttributeGroup.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/AttributeGroup.java
@@ -60,7 +60,7 @@
      * INTERNAL:
      * This constructer is to only be used by EclipseLink internally
      */
-    public AttributeGroup(String name, Class type, boolean isValidated) {
+    public AttributeGroup(String name, Class<?> type, boolean isValidated) {
         this(name);
         this.type = type;
         this.isValidated = isValidated;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorReportItem.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorReportItem.java
index 8c3940b..d08b9f0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorReportItem.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorReportItem.java
@@ -68,7 +68,7 @@
      */
     private static final String TO_STR_SUFFIX = "])";
 
-    protected Class[] constructorArgTypes;
+    protected Class<?>[] constructorArgTypes;
     protected List<DatabaseMapping> constructorMappings;
     protected List<ReportItem> reportItems;
     protected Constructor constructor;
@@ -109,7 +109,7 @@
         getReportItems().add(item);
     }
 
-    public Class[] getConstructorArgTypes(){
+    public Class<?>[] getConstructorArgTypes(){
         return constructorArgTypes;
     }
 
@@ -162,9 +162,9 @@
         int numberOfItems = getReportItems().size();
         // Arguments may be initialized depending on how the query was constructed, so types may be undefined though.
         if (getConstructorArgTypes() == null) {
-            setConstructorArgTypes(new Class[numberOfItems]);
+            setConstructorArgTypes(new Class<?>[numberOfItems]);
         }
-        Class[] constructorArgTypes = getConstructorArgTypes();
+        Class<?>[] constructorArgTypes = getConstructorArgTypes();
         for (int index = 0; index < numberOfItems; index++) {
             if (constructorArgTypes[index] == null) {
                 ReportItem argumentItem = getReportItems().get(index);
@@ -193,10 +193,10 @@
         }
         if (getConstructor() == null) {
             try {
-                Constructor constructor = null;
+                Constructor<?> constructor = null;
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
-                        constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(getResultType(), constructorArgTypes, true));
+                        constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(getResultType(), constructorArgTypes, true));
                     } catch (PrivilegedActionException exception) {
                         throw QueryException.exceptionWhileUsingConstructorExpression(exception.getException(), query);
                     }
@@ -215,7 +215,7 @@
         return true;
     }
 
-    public void setConstructorArgTypes(Class[] constructorArgTypes){
+    public void setConstructorArgTypes(Class<?>[] constructorArgTypes){
         this.constructorArgTypes = constructorArgTypes;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorResult.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorResult.java
index 07691e1..f5ebe57 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorResult.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ConstructorResult.java
@@ -47,13 +47,13 @@
 public class ConstructorResult extends SQLResult {
     /** Stores the class of result  */
     protected String targetClassName;
-    protected transient Class targetClass;
+    protected transient Class<?> targetClass;
 
     /** Stored the column results of this constructor result */
     protected List<ColumnResult> columnResults;
 
-    protected transient Constructor constructor;
-    protected Class[] constructorArgTypes;
+    protected transient Constructor<?> constructor;
+    protected Class<?>[] constructorArgTypes;
 
     /**
      * Default constructor is protected. Users must initialize the constructor
@@ -66,7 +66,7 @@
     /**
      * Constructor accepting target class.
      */
-    public ConstructorResult(Class targetClass){
+    public ConstructorResult(Class<?> targetClass){
         this();
 
         if (targetClass == null) {
@@ -178,7 +178,7 @@
      */
     protected void initialize(DatabaseRecord record, ResultSetMappingQuery query) {
         int columnResultsSize = getColumnResults().size();
-        constructorArgTypes = new Class[columnResultsSize];
+        constructorArgTypes = new Class<?>[columnResultsSize];
 
         for (int i = 0; i < columnResultsSize; i++) {
             ColumnResult result = getColumnResults().get(i);
@@ -200,7 +200,7 @@
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                 try {
-                    constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<Class<?>>(targetClass, constructorArgTypes, true));
+                    constructor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(targetClass, constructorArgTypes, true));
                 } catch (PrivilegedActionException exception) {
                     throw QueryException.exceptionWhileInitializingConstructor(exception.getException(), query, targetClass);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DataReadQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DataReadQuery.java
index 11891a1..e2e44c4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DataReadQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DataReadQuery.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
@@ -307,7 +307,7 @@
      * to hold the target objects.
      * The container class must implement (directly or indirectly) the Collection interface.
      */
-    public void useCollectionClass(Class concreteClass) {
+    public void useCollectionClass(Class<?> concreteClass) {
         setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteClass));
     }
 
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 48cc4d0..1d21601 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
@@ -418,7 +418,7 @@
      * order from executeQuery(). Specifying the class type is important if
      * identically named queries are used but with different argument lists.
      */
-    public void addArgument(String argumentName, Class type) {
+    public void addArgument(String argumentName, Class<?> type) {
         addArgument(argumentName, type, false);
     }
 
@@ -427,7 +427,7 @@
      * information about whether parameters are positional or named for JPQL query introspeciton
      * API
      */
-    public void addArgument(String argumentName, Class type, ParameterType parameterType) {
+    public void addArgument(String argumentName, Class<?> type, ParameterType parameterType) {
         addArgument(argumentName, type, parameterType, false);
     }
 
@@ -440,7 +440,7 @@
      * If the argument can be null, and null must be treated differently in the
      * generated SQL, then nullable should be set to true.
      */
-    public void addArgument(String argumentName, Class type, boolean nullable) {
+    public void addArgument(String argumentName, Class<?> type, boolean nullable) {
         getArguments().add(argumentName);
         getArgumentTypes().add(type);
         if(type != null) {
@@ -456,7 +456,7 @@
      * information about whether parameters are positional or named for JPQL query introspeciton
      * API
      */
-    public void addArgument(String argumentName, Class type, ParameterType argumentParameterType, boolean nullable) {
+    public void addArgument(String argumentName, Class<?> type, ParameterType argumentParameterType, boolean nullable) {
         addArgument(argumentName, type, nullable);
         getArgumentParameterTypes().add(argumentParameterType);
     }
@@ -1310,7 +1310,7 @@
      * PUBLIC: Return the domain class associated with this query. By default
      * this is null, but should be overridden in subclasses.
      */
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return null;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DeleteAllQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DeleteAllQuery.java
index ba3941c..f9b8cd1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DeleteAllQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DeleteAllQuery.java
@@ -64,7 +64,7 @@
      * PUBLIC:
      * Create a new delete all query for the class specified.
      */
-    public DeleteAllQuery(Class referenceClass) {
+    public DeleteAllQuery(Class<?> referenceClass) {
         super(referenceClass);
     }
 
@@ -73,7 +73,7 @@
      * Create a new delete all query for the class and the selection criteria
      * specified.
      */
-    public DeleteAllQuery(Class referenceClass, Expression selectionCriteria) {
+    public DeleteAllQuery(Class<?> referenceClass, Expression selectionCriteria) {
         super(referenceClass, selectionCriteria);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DoesExistQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DoesExistQuery.java
index b6a6625..ff78a1e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DoesExistQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/DoesExistQuery.java
@@ -284,7 +284,7 @@
      * Return the domain class associated with this query.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         if (getObject() == null) {
             return null;
         }
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 488dce7..c2c6ad4 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
@@ -47,7 +47,7 @@
 public class EntityResult extends SQLResult {
     /** Stores the class name of result  */
     protected String entityClassName;
-    protected transient Class entityClass;
+    protected transient Class<?> entityClass;
 
     /** Stores the list of FieldResult */
     protected Map fieldResults;
@@ -57,7 +57,7 @@
      */
     protected DatabaseField discriminatorColumn;
 
-    public EntityResult(Class entityClass){
+    public EntityResult(Class<?> entityClass){
         this.entityClass = entityClass;
         if (this.entityClass == null){
             throw new IllegalArgumentException(ExceptionLocalization.buildMessage("null_value_for_entity_result"));
@@ -93,7 +93,7 @@
     @Override
     public void convertClassNamesToClasses(ClassLoader classLoader){
         super.convertClassNamesToClasses(classLoader);
-        Class entityClass = null;
+        Class<?> entityClass = null;
         try{
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
@@ -176,7 +176,7 @@
 
             // if multiple types may have been read get the correct descriptor.
             if ( descriptor.getInheritancePolicy().shouldReadSubclasses()) {
-                Class classValue = descriptor.getInheritancePolicy().classFromRow(entityRecord, query.getSession());
+                Class<?> classValue = descriptor.getInheritancePolicy().classFromRow(entityRecord, query.getSession());
                 descriptor = query.getSession().getDescriptor(classValue);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/MethodBaseQueryRedirector.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/MethodBaseQueryRedirector.java
index 24acbd9..eb6f4a8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/MethodBaseQueryRedirector.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/MethodBaseQueryRedirector.java
@@ -89,7 +89,7 @@
  * @since TOPLink/Java 3.0
  */
 public class MethodBaseQueryRedirector implements QueryRedirector {
-    protected Class methodClass;
+    protected Class<?> methodClass;
     protected String methodClassName;
     protected String methodName;
     protected transient Method method;
@@ -105,7 +105,7 @@
      * PUBLIC:
      * Returns a new query redirector based on the static method in methodClass.
      */
-    public MethodBaseQueryRedirector(Class methodClass, String methodName) {
+    public MethodBaseQueryRedirector(Class<?> methodClass, String methodName) {
         this.methodClass = methodClass;
         this.methodName = methodName;
     }
@@ -122,7 +122,7 @@
      * PUBLIC:
      * Returns the class to execute the static method on.
      */
-    public Class getMethodClass() {
+    public Class<?> getMethodClass() {
         return methodClass;
     }
 
@@ -159,14 +159,14 @@
         // Must check 3 possible argument sets for backward compatibility.
         // The DatabaseQuery, Record, Session should be used, check last the throw correct exception.
         // Check Session, Vector.
-        Class[] arguments = new Class[2];
+        Class<?>[] arguments = new Class<?>[2];
         arguments[0] = ClassConstants.SessionsSession_Class;
         arguments[1] = ClassConstants.Vector_class;
         try {
             setMethod(Helper.getDeclaredMethod(getMethodClass(), getMethodName(), arguments));
         } catch (Exception ignore) {
             // Check DatabaseQuery, Record, Session.
-            arguments = new Class[3];
+            arguments = new Class<?>[3];
             arguments[0] = ClassConstants.DatabaseQuery_Class;
             arguments[1] = ClassConstants.Record_Class;
             arguments[2] = ClassConstants.SessionsSession_Class;
@@ -174,7 +174,7 @@
                 setMethod(Helper.getDeclaredMethod(getMethodClass(), getMethodName(), arguments));
             } catch (Exception ignoreAgain) {
                 // Check DatabaseQuery, Record, Session.
-                arguments = new Class[3];
+                arguments = new Class<?>[3];
                 arguments[0] = ClassConstants.DatabaseQuery_Class;
                 arguments[1] = ClassConstants.Record_Class;
                 arguments[2] = ClassConstants.SessionsSession_Class;
@@ -249,7 +249,7 @@
      * PUBLIC:
      * Sets the class to execute the static method on.
      */
-    public void setMethodClass(Class newMethodClass) {
+    public void setMethodClass(Class<?> newMethodClass) {
         methodClass = newMethodClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ModifyAllQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ModifyAllQuery.java
index 82bccb3..777659b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ModifyAllQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ModifyAllQuery.java
@@ -39,7 +39,7 @@
 
     private int m_cacheUsage = INVALIDATE_CACHE;
 
-    protected Class referenceClass;
+    protected Class<?> referenceClass;
     protected String referenceClassName;
 
     /** Number of modified objects */
@@ -66,7 +66,7 @@
      * PUBLIC:
      * Create a new update all query for the class specified.
      */
-    protected ModifyAllQuery(Class referenceClass) {
+    protected ModifyAllQuery(Class<?> referenceClass) {
         this();
         setReferenceClass(referenceClass);
     }
@@ -76,7 +76,7 @@
      * Create a new update all query for the class and the selection criteria
      * specified.
      */
-    protected ModifyAllQuery(Class referenceClass, Expression selectionCriteria) {
+    protected ModifyAllQuery(Class<?> referenceClass, Expression selectionCriteria) {
         this();
         setReferenceClass(referenceClass);
         setSelectionCriteria(selectionCriteria);
@@ -199,7 +199,7 @@
      * Return the reference class for this query.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -239,7 +239,7 @@
      * PUBLIC:
      * Set the reference class this query.
      */
-    public void setReferenceClass(Class referenceClass) {
+    public void setReferenceClass(Class<?> referenceClass) {
         if (this.referenceClass != referenceClass) {
             setIsPrepared(false);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectBuildingQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectBuildingQuery.java
index eef358e..790ec32 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectBuildingQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectBuildingQuery.java
@@ -48,7 +48,7 @@
 public abstract class ObjectBuildingQuery extends ReadQuery {
 
     /** The class of the target objects to be read from the database. */
-    protected Class referenceClass;
+    protected Class<?> referenceClass;
     protected String referenceClassName;
 
     /** Allows for the resulting objects to be refresh with the data from the database. */
@@ -144,7 +144,7 @@
     @Override
     public void convertClassNamesToClasses(ClassLoader classLoader){
         super.convertClassNamesToClasses(classLoader);
-        Class referenceClass = null;
+        Class<?> referenceClass = null;
         try{
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try {
@@ -335,7 +335,7 @@
      * Return the reference class of the query.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -585,7 +585,7 @@
      * REQUIRED:
      * Set the reference class for the query.
      */
-    public void setReferenceClass(Class aClass) {
+    public void setReferenceClass(Class<?> aClass) {
         referenceClass = aClass;
         setIsPrepared(false);
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelModifyQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelModifyQuery.java
index e513d53..e4d6685 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelModifyQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ObjectLevelModifyQuery.java
@@ -150,7 +150,7 @@
      * Return the domain class associated with this query.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         if (this.object == null) {
             if (this.descriptor != null) {
                 return this.descriptor.getJavaClass();
@@ -168,7 +168,7 @@
      */
     @Override
     public String getReferenceClassName() {
-        Class referenceClass = getReferenceClass();
+        Class<?> referenceClass = getReferenceClass();
         if (referenceClass != null) {
             return referenceClass.getName();
         } else {
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 5508950..5534c37 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
@@ -196,16 +196,16 @@
     protected Boolean shouldOuterJoinSubclasses;
 
     /** Allow concrete subclasses calls to be prepared and cached for inheritance queries. */
-    protected Map<Class, DatabaseCall> concreteSubclassCalls;
+    protected Map<Class<?>, DatabaseCall> concreteSubclassCalls;
 
     /** Allow concrete subclasses queries to be prepared and cached for inheritance queries. */
-    protected Map<Class, DatabaseQuery> concreteSubclassQueries;
+    protected Map<Class<?>, DatabaseQuery> concreteSubclassQueries;
 
     /** Allow aggregate queries to be prepared and cached. */
     protected Map<DatabaseMapping, ObjectLevelReadQuery> aggregateQueries;
 
     /** Allow concrete subclasses joined mapping indexes to be prepared and cached for inheritance queries. */
-    protected Map<Class, Map<DatabaseMapping, Object>> concreteSubclassJoinedMappingIndexes;
+    protected Map<Class<?>, Map<DatabaseMapping, Object>> concreteSubclassJoinedMappingIndexes;
 
     /** Used when specifying a lock mode for the query */
     protected String lockModeType;
@@ -1579,7 +1579,7 @@
      * Return the reference class of the query.
      */
     @Override
-    public Class getReferenceClass() {
+    public Class<?> getReferenceClass() {
         return referenceClass;
     }
 
@@ -2660,7 +2660,7 @@
      * Set the reference class for the query.
      */
     @Override
-    public void setReferenceClass(Class aClass) {
+    public void setReferenceClass(Class<?> aClass) {
         if (referenceClass != aClass) {
             setIsPreparedKeepingSubclassData(false);
         }
@@ -3114,7 +3114,7 @@
      * Return the cache of concrete subclass calls.
      * This allow concrete subclasses calls to be prepared and cached for inheritance queries.
      */
-    public Map<Class, DatabaseCall> getConcreteSubclassCalls() {
+    public Map<Class<?>, DatabaseCall> getConcreteSubclassCalls() {
         if (concreteSubclassCalls == null) {
             concreteSubclassCalls = new ConcurrentHashMap(8);
         }
@@ -3126,7 +3126,7 @@
      * Return the cache of concrete subclass queries.
      * This allow concrete subclasses calls to be prepared and cached for table per class inheritance and interface queries.
      */
-    public Map<Class, DatabaseQuery> getConcreteSubclassQueries() {
+    public Map<Class<?>, DatabaseQuery> getConcreteSubclassQueries() {
         if (concreteSubclassQueries == null) {
             concreteSubclassQueries = new ConcurrentHashMap(8);
         }
@@ -3169,7 +3169,7 @@
      * Return the cache of concrete subclass joined mapping indexes.
      * This allow concrete subclasses calls to be prepared and cached for inheritance queries.
      */
-    public Map<Class, Map<DatabaseMapping, Object>> getConcreteSubclassJoinedMappingIndexes() {
+    public Map<Class<?>, Map<DatabaseMapping, Object>> getConcreteSubclassJoinedMappingIndexes() {
         if (concreteSubclassJoinedMappingIndexes == null) {
             concreteSubclassJoinedMappingIndexes = new ConcurrentHashMap(8);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryByExamplePolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryByExamplePolicy.java
index b6e1fb0..0c1b6dd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryByExamplePolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryByExamplePolicy.java
@@ -173,7 +173,7 @@
      * @see org.eclipse.persistence.expressions.Expression#containsSubstring(java.lang.String) containsSubstring
      * @see org.eclipse.persistence.expressions.Expression#containsSubstringIgnoringCase(java.lang.String) containsSubstringIgnoringCase
      */
-    public void addSpecialOperation(Class attributeValueClass, String operation) {
+    public void addSpecialOperation(Class<?> attributeValueClass, String operation) {
         this.getSpecialOperations().put(attributeValueClass, operation);
     }
 
@@ -193,7 +193,7 @@
      * @param exampleClass The class that the attribute belongs to, normally this is the example class unless using nested QBE.
      * @param attributeName The name of a mapped attribute.
      */
-    public void alwaysIncludeAttribute(Class exampleClass, String attributeName) {
+    public void alwaysIncludeAttribute(Class<?> exampleClass, String attributeName) {
         Vector included = (Vector)getAttributesToAlwaysInclude().get(exampleClass);
         if (included == null) {
             included = new Vector(3);
@@ -207,7 +207,7 @@
      * INTERNAL:
      * This method is used to determine which operation to use for comparison (equal, or a special operation).
      */
-    public Expression completeExpression(Expression expression, Object attributeValue, Class attributeValueClass) {
+    public Expression completeExpression(Expression expression, Object attributeValue, Class<?> attributeValueClass) {
         String operation = this.getOperation(attributeValue.getClass());
 
         if (operation == null) {
@@ -215,7 +215,7 @@
             return expression.equal(attributeValue);
         }
 
-        Class[] argTypes = { attributeValueClass };
+        Class<?>[] argTypes = { attributeValueClass };
         Object[] args = { attributeValue };
         try {
             java.lang.reflect.Method anOperator = Helper.getDeclaredMethod(ClassConstants.Expression_Class, operation, argTypes);
@@ -232,7 +232,7 @@
                 expression = PrivilegedAccessHelper.invokeMethod(anOperator, expression, args);
             }
         } catch (NoSuchMethodException nsme) {
-            Class superClass = attributeValueClass.getSuperclass();
+            Class<?> superClass = attributeValueClass.getSuperclass();
             if (superClass != null) {
                 return completeExpression(expression, attributeValue, superClass);
             } else {
@@ -386,7 +386,7 @@
      * INTERNAL:
      * determines which operation to use for comparison.
      */
-    public String getOperation(Class aClass) {
+    public String getOperation(Class<?> aClass) {
         String operation = (String)this.getSpecialOperations().get(aClass);
         if (operation != null) {
             if (!operation.equals("equal")) {
@@ -443,7 +443,7 @@
      * INTERNAL:
      * returns whether the attributeName is to be always included.
      */
-    public boolean isAlwaysIncluded(Class theClass, String attributeName) {
+    public boolean isAlwaysIncluded(Class<?> theClass, String attributeName) {
         Vector values = (Vector)this.getAttributesToAlwaysInclude().get(theClass);
         if (values != null) {
             return (values.contains(attributeName));
@@ -559,7 +559,7 @@
      * INTERNAL:
      * This method determines whether an attribute pair is be included in the query.
      */
-    public boolean shouldIncludeInQuery(Class aClass, String attributeName, Object attributeValue) {
+    public boolean shouldIncludeInQuery(Class<?> aClass, String attributeName, Object attributeValue) {
         if (attributeValue == null) {
             if (this.isAlwaysIncluded(aClass, attributeName)) {
                 //this attribute is to be included always, even if its value is null.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryResultsCachePolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryResultsCachePolicy.java
index c1f0352..dd1867e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryResultsCachePolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/QueryResultsCachePolicy.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
@@ -20,6 +20,7 @@
 
 import org.eclipse.persistence.descriptors.invalidation.*;
 import org.eclipse.persistence.internal.helper.ClassConstants;
+import org.eclipse.persistence.internal.identitymaps.IdentityMap;
 
 /**
  * PUBLIC:
@@ -39,13 +40,13 @@
     /** Specifies the cache size. */
     protected int maximumResultSets;
     /** Allows the identity map class type to be set. */
-    protected Class cacheType;
+    protected Class<? extends IdentityMap> cacheType;
     /** Allows the caching of null to be configured. */
     protected boolean isNullIgnored;
     /** Allows the query cache to be invalidated when any object of any of the query classes is modified. */
     protected boolean invalidateOnChange;
     /** Stores the set of classes that should trigger the query cached results to be invalidated. */
-    protected Set<Class> invalidationClasses;
+    protected Set<Class<?>> invalidationClasses;
 
     /**
      * PUBLIC:
@@ -88,7 +89,7 @@
      * ADVANCED:
      * Return the set of classes that should trigger the query cached results to be invalidated.
      */
-    public Set<Class> getInvalidationClasses() {
+    public Set<Class<?>> getInvalidationClasses() {
         return invalidationClasses;
     }
 
@@ -97,7 +98,7 @@
      * Set the set of classes that should trigger the query cached results to be invalidated.
      * This is normally computed by the query, but can be set in the case of native queries.
      */
-    public void setInvalidationClasses(Set<Class> invalidationClasses) {
+    public void setInvalidationClasses(Set<Class<?>> invalidationClasses) {
         this.invalidationClasses = invalidationClasses;
     }
 
@@ -145,7 +146,7 @@
      * This defaults to a LRU cache (CacheIdentityMap), but can be
      * set to any IdentityMap class, such as Full or Soft.
      */
-    public Class getCacheType() {
+    public Class<? extends IdentityMap> getCacheType() {
         return cacheType;
     }
 
@@ -155,7 +156,7 @@
      * This defaults to a LRU cache (CacheIdentityMap), but can be
      * set to any IdentityMap class, such as Full or Soft.
      */
-    public void setCacheType(Class cacheType) {
+    public void setCacheType(Class<? extends IdentityMap> cacheType) {
         this.cacheType = cacheType;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadAllQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadAllQuery.java
index 874226c..4105fc8 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadAllQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadAllQuery.java
@@ -131,7 +131,7 @@
      * It is better to provide the class and expression builder on construction to ensure a single expression builder is used.
      * If no selection criteria is specified this will read all objects of the class from the database.
      */
-    public ReadAllQuery(Class classToRead) {
+    public ReadAllQuery(Class<?> classToRead) {
         this();
         this.referenceClass = classToRead;
     }
@@ -140,7 +140,7 @@
      * PUBLIC:
      * Return a new read all query for the class and the selection criteria.
      */
-    public ReadAllQuery(Class classToRead, Expression selectionCriteria) {
+    public ReadAllQuery(Class<?> classToRead, Expression selectionCriteria) {
         this();
         this.referenceClass = classToRead;
         setSelectionCriteria(selectionCriteria);
@@ -151,7 +151,7 @@
      * Return a new read all query for the class.
      * The expression builder must be used for all associated expressions used with the query.
      */
-    public ReadAllQuery(Class classToRead, ExpressionBuilder builder) {
+    public ReadAllQuery(Class<?> classToRead, ExpressionBuilder builder) {
         this();
         this.defaultBuilder = builder;
         this.referenceClass = classToRead;
@@ -162,7 +162,7 @@
      * Return a new read all query.
      * The call represents a database interaction such as SQL, Stored Procedure.
      */
-    public ReadAllQuery(Class classToRead, Call call) {
+    public ReadAllQuery(Class<?> classToRead, Call call) {
         this();
         this.referenceClass = classToRead;
         setCall(call);
@@ -1212,7 +1212,7 @@
      * <p>jdk1.2.x: The container class must implement (directly or indirectly) the Collection interface.
      * <p>jdk1.1.x: The container class must be a subclass of Vector.
      */
-    public void useCollectionClass(Class concreteClass) {
+    public void useCollectionClass(Class<?> concreteClass) {
         // Set container policy.
         setContainerPolicy(ContainerPolicy.buildPolicyFor(concreteClass));
 
@@ -1262,7 +1262,7 @@
      * <p>jdk1.1.x: The container class must be a subclass of Hashtable.
      * <p>The referenceClass must set before calling this method.
      */
-    public void useMapClass(Class concreteClass, String methodName) {
+    public void useMapClass(Class<?> concreteClass, String methodName) {
         // the reference class has to be specified before coming here
         if (getReferenceClass() == null) {
             throw QueryException.referenceClassMissing(this);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadObjectQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadObjectQuery.java
index 28c1735..4a708db 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadObjectQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReadObjectQuery.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
@@ -97,7 +97,7 @@
      * Executing a query with selection criteria allows you to avoid a database
      * access if the selected instance is in the cache. For this reason, you may whish to use a ReadObjectQuery constructor that takes selection criteria, such as: {@link #ReadObjectQuery(Class, Call)}, {@link #ReadObjectQuery(Class, Expression)}, {@link #ReadObjectQuery(Class, ExpressionBuilder)}, {@link #ReadObjectQuery(ExpressionBuilder)}, {@link #ReadObjectQuery(Object)}, or {@link #ReadObjectQuery(Object, QueryByExamplePolicy)}.
      */
-    public ReadObjectQuery(Class classToRead) {
+    public ReadObjectQuery(Class<?> classToRead) {
         this();
         this.referenceClass = classToRead;
     }
@@ -106,7 +106,7 @@
      * PUBLIC:
      * Return a new read object query for the class and the selection criteria.
      */
-    public ReadObjectQuery(Class classToRead, Expression selectionCriteria) {
+    public ReadObjectQuery(Class<?> classToRead, Expression selectionCriteria) {
         this();
         this.referenceClass = classToRead;
         setSelectionCriteria(selectionCriteria);
@@ -117,7 +117,7 @@
      * Return a new read object query for the class.
      * The expression builder must be used for all associated expressions used with the query.
      */
-    public ReadObjectQuery(Class classToRead, ExpressionBuilder builder) {
+    public ReadObjectQuery(Class<?> classToRead, ExpressionBuilder builder) {
         this();
         this.defaultBuilder = builder;
         this.referenceClass = classToRead;
@@ -128,7 +128,7 @@
      * Return a new read object query.
      * The call represents a database interaction such as SQL, Stored Procedure.
      */
-    public ReadObjectQuery(Class classToRead, Call call) {
+    public ReadObjectQuery(Class<?> classToRead, Call call) {
         this();
         this.referenceClass = classToRead;
         setCall(call);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQuery.java
index 9db0615..234fb03 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQuery.java
@@ -124,7 +124,7 @@
         this.shouldUseSerializedObjectPolicy = false;
     }
 
-    public ReportQuery(Class javaClass, Expression expression) {
+    public ReportQuery(Class<?> javaClass, Expression expression) {
         this();
         this.defaultBuilder = expression.getBuilder();
         setReferenceClass(javaClass);
@@ -136,7 +136,7 @@
      * The report query is require to be constructor with an expression builder.
      * This build must be used for the selection critiera, any item expressions, group bys and order bys.
      */
-    public ReportQuery(Class javaClass, ExpressionBuilder builder) {
+    public ReportQuery(Class<?> javaClass, ExpressionBuilder builder) {
         this();
         this.defaultBuilder = builder;
         setReferenceClass(javaClass);
@@ -175,7 +175,7 @@
      * Add the attribute to be included in the result.  Return the result as the provided class
      * EXAMPLE: reportQuery.addAttribute("city", expBuilder.get("period").get("startTime"), Time.class);
      */
-    public void addAttribute(String itemName, Expression attributeExpression, Class type) {
+    public void addAttribute(String itemName, Expression attributeExpression, Class<?> type) {
         addItem(itemName, attributeExpression, type);
     }
 
@@ -196,7 +196,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addAverage("salary", Float.class);
      */
-    public void addAverage(String itemName, Class resultType) {
+    public void addAverage(String itemName, Class<?> resultType) {
         addAverage(itemName, getExpressionBuilder().get(itemName), resultType);
     }
 
@@ -217,7 +217,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addAverage("managerSalary", expBuilder.get("manager").get("salary"), Double.class);
      */
-    public void addAverage(String itemName, Expression attributeExpression, Class resultType) {
+    public void addAverage(String itemName, Expression attributeExpression, Class<?> resultType) {
         addItem(itemName, attributeExpression.average(), resultType);
     }
 
@@ -275,7 +275,7 @@
      * @param attributeName the number of rows where attributeName is not null will be returned.
      * @see #addCount(java.lang.String, org.eclipse.persistence.expressions.Expression)
      */
-    public void addCount(String attributeName, Class resultType) {
+    public void addCount(String attributeName, Class<?> resultType) {
         addCount(attributeName, getExpressionBuilder().get(attributeName), resultType);
     }
 
@@ -322,7 +322,7 @@
      * mappings.
      * @see #addCount()
      */
-    public void addCount(String itemName, Expression attributeExpression, Class resultType) {
+    public void addCount(String itemName, Expression attributeExpression, Class<?> resultType) {
         addItem(itemName, attributeExpression.count(), resultType);
     }
 
@@ -424,7 +424,7 @@
      * The resultType can be specified to support EJBQL that adheres to the
      * EJB 3.0 spec.
      */
-    protected void addItem(String itemName, Expression attributeExpression, Class resultType) {
+    protected void addItem(String itemName, Expression attributeExpression, Class<?> resultType) {
         ReportItem item = new ReportItem(itemName, attributeExpression);
         item.setResultType(resultType);
         addItem(item);
@@ -446,7 +446,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addMaximum("salary", Integer.class);
      */
-    public void addMaximum(String itemName, Class resultType) {
+    public void addMaximum(String itemName, Class<?> resultType) {
         addMaximum(itemName, getExpressionBuilder().get(itemName), resultType);
     }
 
@@ -466,7 +466,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addMaximum("managerSalary", expBuilder.get("manager").get("salary"), Integer.class);
      */
-    public void addMaximum(String itemName, Expression attributeExpression, Class resultType) {
+    public void addMaximum(String itemName, Expression attributeExpression, Class<?> resultType) {
         addItem(itemName, attributeExpression.maximum(), resultType);
     }
 
@@ -486,7 +486,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addMinimum("salary", Integer.class);
      */
-    public void addMinimum(String itemName, Class resultType) {
+    public void addMinimum(String itemName, Class<?> resultType) {
         addMinimum(itemName, getExpressionBuilder().get(itemName), resultType);
     }
 
@@ -506,7 +506,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addMinimum("managerSalary", expBuilder.get("manager").get("salary"), Integer.class);
      */
-    public void addMinimum(String itemName, Expression attributeExpression, Class resultType) {
+    public void addMinimum(String itemName, Expression attributeExpression, Class<?> resultType) {
         addItem(itemName, attributeExpression.minimum(), resultType);
     }
 
@@ -547,7 +547,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addSum("salary", Float.class);
      */
-    public void addSum(String itemName, Class resultType) {
+    public void addSum(String itemName, Class<?> resultType) {
         addSum(itemName, getExpressionBuilder().get(itemName), resultType);
     }
 
@@ -568,7 +568,7 @@
      * Aggregation functions can be used with a group by, or on the entire result set.
      * EXAMPLE: reportQuery.addSum("managerSalary", expBuilder.get("manager").get("salary"), Float.class);
      */
-    public void addSum(String itemName, Expression attributeExpression, Class resultType) {
+    public void addSum(String itemName, Expression attributeExpression, Class<?> resultType) {
         addItem(itemName, attributeExpression.sum(), resultType);
     }
 
@@ -595,7 +595,7 @@
     /**
      * PUBLIC: Call a constructor for the given class with the results of this query.
      */
-    public ConstructorReportItem beginAddingConstructorArguments(Class constructorClass){
+    public ConstructorReportItem beginAddingConstructorArguments(Class<?> constructorClass){
         ConstructorReportItem citem = new ConstructorReportItem(constructorClass.getName());
         citem.setResultType(constructorClass);
         //add directly to avoid addToConstructorItem behavior
@@ -609,7 +609,7 @@
      * PUBLIC: Call a constructor for the given class with the results of this query.
      * @param constructorArgTypes - sets the argument types to be passed to the constructor.
      */
-    public ConstructorReportItem beginAddingConstructorArguments(Class constructorClass, Class[] constructorArgTypes){
+    public ConstructorReportItem beginAddingConstructorArguments(Class<?> constructorClass, Class<?>[] constructorArgTypes){
         ConstructorReportItem citem =beginAddingConstructorArguments(constructorClass);
         citem.setConstructorArgTypes(constructorArgTypes);
         return citem;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQueryResult.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQueryResult.java
index 7c0f79a..3facc77 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQueryResult.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/ReportQueryResult.java
@@ -139,7 +139,7 @@
 
     private Object processConstructorItem(ReportQuery query, AbstractRecord row, Vector toManyData, ConstructorReportItem constructorItem) {
         // For constructor items need to process each constructor argument.
-        Class[] constructorArgTypes = constructorItem.getConstructorArgTypes();
+        Class<?>[] constructorArgTypes = constructorItem.getConstructorArgTypes();
         int numberOfArguments = constructorItem.getReportItems().size();
         Object[] constructorArgs = new Object[numberOfArguments];
 
@@ -662,7 +662,7 @@
      * PUBLIC:
      * If the PKs were retrieved with the attributes then this method can be used to read the real object from the database.
      */
-    public Object readObject(Class javaClass, Session session) {
+    public Object readObject(Class<?> javaClass, Session session) {
         if (getId() == null) {
             throw QueryException.reportQueryResultWithoutPKs(this);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLCall.java
index 252fd6c..8e6ac54 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLCall.java
@@ -171,7 +171,7 @@
      * This method should only be used with custom SQL:
      * it sets a type to IN, OUT or INOUT parameter (prefixed with #, ### or #### in custom SQL string).
      */
-    public void setCustomSQLArgumentType(String customParameterName, Class type) {
+    public void setCustomSQLArgumentType(String customParameterName, Class<?> type) {
         DatabaseField field = new DatabaseField(customParameterName);
         field.setType(type);
         getParameters().add(field);
@@ -217,7 +217,7 @@
      * The typeName is the JDBC type name, this may be required for ARRAY or STRUCT types.
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      */
-    public void setCustomSQLArgumentType(String argumentFieldName, int type, String typeName, Class javaType) {
+    public void setCustomSQLArgumentType(String argumentFieldName, int type, String typeName, Class<?> javaType) {
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(type);
         field.setSqlTypeName(typeName);
@@ -254,7 +254,7 @@
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void setCustomSQLArgumentType(String argumentFieldName, int type, String typeName, Class javaType, DatabaseField nestedType) {
+    public void setCustomSQLArgumentType(String argumentFieldName, int type, String typeName, Class<?> javaType, DatabaseField nestedType) {
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(type);
         field.setSqlTypeName(typeName);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLResultSetMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLResultSetMapping.java
index 83d88f7..d5df817 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLResultSetMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/SQLResultSetMapping.java
@@ -50,7 +50,7 @@
      * Defaulting constructor. Will set the name to the result class name
      * and add an EntityResult for the result class.
      */
-    public SQLResultSetMapping(Class resultClass) {
+    public SQLResultSetMapping(Class<?> resultClass) {
         this.name = resultClass.getName();
         this.addResult(new EntityResult(resultClass));
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredFunctionCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredFunctionCall.java
index ead7284..98014b1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredFunctionCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredFunctionCall.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,12 +35,12 @@
         addUnamedOutputArgument("");
     }
 
-    public StoredFunctionCall(int sqlType, String sqlTypeName, Class javaType) {
+    public StoredFunctionCall(int sqlType, String sqlTypeName, Class<?> javaType) {
         super();
         addUnamedOutputArgument("", sqlType, sqlTypeName, javaType);
     }
 
-    public StoredFunctionCall(int sqlType, String sqlTypeName, Class javaType, DatabaseField nestedType) {
+    public StoredFunctionCall(int sqlType, String sqlTypeName, Class<?> javaType, DatabaseField nestedType) {
         super();
         addUnamedOutputArgument("", sqlType, sqlTypeName, javaType, nestedType);
     }
@@ -111,7 +111,7 @@
      * Define the field name to be substitute for the function return.
      * The type is the type of Java class desired back from the function, this is dependent on the type returned from the function.
      */
-    public void setResult(String name, Class type) {
+    public void setResult(String name, Class<?> type) {
         DatabaseField returnField = (DatabaseField)getParameters().get(0);
         returnField.setName(name);
         returnField.setType(type);
@@ -137,7 +137,7 @@
      * The javaType is the mapped Class that has an ObjectRelationalDataTypeDescriptor for the ARRAY
      * or STRUCT type typeName
      */
-    public void setResult(int type, String typeName, Class javaType) {
+    public void setResult(int type, String typeName, Class<?> javaType) {
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField("");
         field.setSqlType(type);
         field.setSqlTypeName(typeName);
@@ -155,7 +155,7 @@
      * type typeName
      * The nestedType is a database field representing the type the ARRAY holds onto.
      */
-    public void setResult(int type, String typeName, Class javaType, DatabaseField nestedType) {
+    public void setResult(int type, String typeName, Class<?> javaType, DatabaseField nestedType) {
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField("");
         field.setSqlType(type);
         field.setSqlTypeName(typeName);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java
index e3dc32b..84b4561 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/StoredProcedureCall.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) 2019 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -97,7 +97,7 @@
      * The type is the type of Java class for the field, and is dependent on the type required by the procedure.  This is used
      * to set the type in case null is passed in.
      */
-    public void addNamedArgument(String procedureParameterName, String argumentFieldName, Class type) {
+    public void addNamedArgument(String procedureParameterName, String argumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(procedureParameterName);
         DatabaseField field = new DatabaseField(argumentFieldName);
         field.setType(type);
@@ -145,7 +145,7 @@
      * or STRUCT type typeName
      */
     public void addNamedArgument(String procedureParameterName, String argumentFieldName, int type,
-        String typeName, Class javaType) {
+        String typeName, Class<?> javaType) {
         getProcedureArgumentNames().add(procedureParameterName);
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(type);
@@ -165,7 +165,7 @@
      * or STRUCT type typeName
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void addNamedArgument(String procedureParameterName, String argumentFieldName, int type, String typeName, Class javaType, DatabaseField nestedType) {
+    public void addNamedArgument(String procedureParameterName, String argumentFieldName, int type, String typeName, Class<?> javaType, DatabaseField nestedType) {
         getProcedureArgumentNames().add(procedureParameterName);
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(type);
@@ -246,7 +246,7 @@
      * is the result of the output row.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addNamedInOutputArgument(String procedureParameterName, String argumentFieldName, Class type) {
+    public void addNamedInOutputArgument(String procedureParameterName, String argumentFieldName, Class<?> type) {
         addNamedInOutputArgument(procedureParameterName, argumentFieldName, argumentFieldName, type);
     }
 
@@ -259,7 +259,7 @@
      * If these names are the same (as they normally are) this method can be called with a single argument.
      * The type the Java class desired back from the procedure, if a struct is returned and the class has an ObjectRelationalDataTypeDescriptor defined .
      */
-    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, Class type) {
+    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(procedureParameterName);
         DatabaseField inField = new DatabaseField(inArgumentFieldName);
         inField.setType(type);
@@ -319,7 +319,7 @@
      * The typeName is the JDBC type name, this may be required for STRUCT and ARRAY types.
      * The classType is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class classType) {
+    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class<?> classType) {
         addNamedInOutputArgument(procedureParameterName, inArgumentFieldName, outArgumentFieldName, type, typeName, classType, null);
     }
 
@@ -335,7 +335,7 @@
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class javaType, DatabaseField nestedType) {
+    public void addNamedInOutputArgument(String procedureParameterName, String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class<?> javaType, DatabaseField nestedType) {
         getProcedureArgumentNames().add(procedureParameterName);
         ObjectRelationalDatabaseField inField = new ObjectRelationalDatabaseField(inArgumentFieldName);
         inField.setSqlType(type);
@@ -363,7 +363,7 @@
      * If these names are the same (as they normally are) this method can be called with a single argument.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addNamedInOutputArgumentValue(String procedureParameterName, Object inArgumentValue, String outArgumentFieldName, Class type) {
+    public void addNamedInOutputArgumentValue(String procedureParameterName, Object inArgumentValue, String outArgumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(procedureParameterName);
         DatabaseField outField = new DatabaseField(outArgumentFieldName);
         outField.setType(type);
@@ -401,7 +401,7 @@
      * If these names are the same (as they normally are) this method can be called with a single argument.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, Class type) {
+    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(procedureParameterName);
         DatabaseField field = new DatabaseField(argumentFieldName);
         field.setType(type);
@@ -449,7 +449,7 @@
      * The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types.
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      */
-    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, int jdbcType, String typeName, Class javaType) {
+    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, int jdbcType, String typeName, Class<?> javaType) {
         getProcedureArgumentNames().add(procedureParameterName);
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(jdbcType);
@@ -468,7 +468,7 @@
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, int jdbcType, String typeName, Class javaType, DatabaseField nestedType) {
+    public void addNamedOutputArgument(String procedureParameterName, String argumentFieldName, int jdbcType, String typeName, Class<?> javaType, DatabaseField nestedType) {
         getProcedureArgumentNames().add(procedureParameterName);
         ObjectRelationalDatabaseField field = new ObjectRelationalDatabaseField(argumentFieldName);
         field.setSqlType(jdbcType);
@@ -509,7 +509,7 @@
      * The type is the type of Java class for the field, and is dependent on the type required by the procedure.  This is used
      * to set the type in case null is passed in.
      */
-    public void addUnamedArgument(String argumentFieldName, Class type) {
+    public void addUnamedArgument(String argumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(null);
         DatabaseField field = new DatabaseField(argumentFieldName);
         field.setType(type);
@@ -576,7 +576,7 @@
      * If these names are the same (as they normally are) this method can be called with a single argument.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName, Class type) {
+    public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(null);
         DatabaseField inField = new DatabaseField(inArgumentFieldName);
         inField.setType(type);
@@ -644,7 +644,7 @@
      * and to be used is the result of the output row.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addUnamedInOutputArgument(String argumentFieldName, Class type) {
+    public void addUnamedInOutputArgument(String argumentFieldName, Class<?> type) {
         addUnamedInOutputArgument(argumentFieldName, argumentFieldName, type);
     }
 
@@ -670,7 +670,7 @@
      * The typeName is the JDBC type name, this may be required for ARRAY types.
      * The collectionClass is the java class to return instead of the ARRAY type.
      */
-    public void addUnamedInOutputArgument( String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class collection ) {
+    public void addUnamedInOutputArgument( String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class<?> collection ) {
         addNamedInOutputArgument( null, inArgumentFieldName, outArgumentFieldName, type, typeName, collection, null);
     }
 
@@ -684,7 +684,7 @@
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class collection, DatabaseField nestedType) {
+    public void addUnamedInOutputArgument(String inArgumentFieldName, String outArgumentFieldName, int type, String typeName, Class<?> collection, DatabaseField nestedType) {
         addNamedInOutputArgument(null, inArgumentFieldName,  outArgumentFieldName,  type,  typeName,  collection, nestedType);
     }
 
@@ -697,7 +697,7 @@
      * If these names are the same (as they normally are) this method can be called with a single argument.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addUnamedInOutputArgumentValue(Object inArgumentValue, String outArgumentFieldName, Class type) {
+    public void addUnamedInOutputArgumentValue(Object inArgumentValue, String outArgumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(null);
         DatabaseField outField = new DatabaseField(outArgumentFieldName);
         outField.setType(type);
@@ -723,7 +723,7 @@
      * The argumentFieldName is the field or argument name to be used to pass to the procedure.
      * The type is the type of Java class desired back from the procedure, this is dependent on the type returned from the procedure.
      */
-    public void addUnamedOutputArgument(String argumentFieldName, Class type) {
+    public void addUnamedOutputArgument(String argumentFieldName, Class<?> type) {
         getProcedureArgumentNames().add(null);
         DatabaseField field = new DatabaseField(argumentFieldName);
         field.setType(type);
@@ -769,7 +769,7 @@
      * The typeName is the JDBC type name, this may be required for ARRAY and STRUCT types.
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      */
-    public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName, Class javaType) {
+    public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName, Class<?> javaType) {
         addNamedOutputArgument(null, argumentFieldName, jdbcType, typeName, javaType, null);
     }
 
@@ -783,7 +783,7 @@
      * The javaType is the java class to return instead of the ARRAY and STRUCT types if a conversion is possible.
      * The nestedType is a DatabaseField with type information set to match the VARRAYs object types
      */
-    public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName, Class javaType, DatabaseField nestedType) {
+    public void addUnamedOutputArgument(String argumentFieldName, int jdbcType, String typeName, Class<?> javaType, DatabaseField nestedType) {
         addNamedOutputArgument(null, argumentFieldName, jdbcType, typeName, javaType, nestedType);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/UpdateAllQuery.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/UpdateAllQuery.java
index 670ce55..9500f06 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/UpdateAllQuery.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/queries/UpdateAllQuery.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
@@ -61,7 +61,7 @@
      * Constructs an update all query for the Class type specified.
      * @param referenceClass Class
      */
-    public UpdateAllQuery(Class referenceClass) {
+    public UpdateAllQuery(Class<?> referenceClass) {
         super(referenceClass);
     }
 
@@ -71,7 +71,7 @@
      * @param referenceClass Class type to be considered
      * @param selectionCriteria Expression
      */
-    public UpdateAllQuery(Class referenceClass, Expression selectionCriteria) {
+    public UpdateAllQuery(Class<?> referenceClass, Expression selectionCriteria) {
         super(referenceClass, selectionCriteria);
     }
 
@@ -83,7 +83,7 @@
      * @param referenceClass Class type to be considered
      * @param expressionBuilder ExpressionBuilder
      */
-    public UpdateAllQuery(Class referenceClass, ExpressionBuilder expressionBuilder) {
+    public UpdateAllQuery(Class<?> referenceClass, ExpressionBuilder expressionBuilder) {
         super(referenceClass);
         this.defaultBuilder = expressionBuilder;
     }
@@ -192,7 +192,7 @@
     protected void prepare() throws QueryException {
         super.prepare();// will tell the query mechanism to prepare itself as well.
 
-        Class referenceClass = getReferenceClass();
+        Class<?> referenceClass = getReferenceClass();
 
         // Check the reference class, must be set
         if (referenceClass == null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/DevelopmentServices.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/DevelopmentServices.java
index b17f02f..873ebdb 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/DevelopmentServices.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/services/DevelopmentServices.java
@@ -65,7 +65,7 @@
      * @exception ClassNotFoundException thrown then the IdenityMap for that class name could not be found
      */
     public void initializeIdentityMap(String className) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         getSession().getIdentityMapAccessorInstance().initializeIdentityMap(classToChange);
     }
 
@@ -87,7 +87,7 @@
      * @exception ClassNotFoundException thrown then the IdenityMap for that class name could not be found
      */
     public void setIdentityMapForClass(String className, String identityMapClassType, int maxSize) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         Class<IdentityMap> identityMapClass = null;
         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
             try{
@@ -121,7 +121,7 @@
      * @exception ClassNotFoundException thrown then the IdenityMap for that class name could not be found
      */
     public void updateCacheSize(String className, int newSize) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         getSession().getIdentityMapAccessorInstance().getIdentityMap(classToChange).updateMaxSize(newSize);
     }
 
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 c4da40b..82256c3 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
@@ -328,7 +328,7 @@
      * @exception ClassNotFoundException thrown then the IdentityMap for that class name could not be found
      */
     public List getObjectsInIdentityMap(String className) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         IdentityMap map = getSession().getIdentityMapAccessorInstance().getIdentityMap(classToChange);
 
         Vector results = new Vector(map.getSize());
@@ -345,7 +345,7 @@
      * @exception ClassNotFoundException thrown then the IdentityMap for that class name could not be found
      */
     public Integer getNumberOfObjectsInIdentityMap(String className) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         return getSession().getIdentityMapAccessorInstance().getIdentityMap(classToChange).getSize();
     }
 
@@ -358,7 +358,7 @@
      * @exception ClassNotFoundException thrown then the IdentityMap for that class name could not be found
      */
     public List getObjectsInIdentityMapSubCacheAsMap(String className) throws ClassNotFoundException {
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         IdentityMap map = getSession().getIdentityMapAccessorInstance().getIdentityMap(classToChange);
 
         //CR3855
@@ -378,7 +378,7 @@
     public Integer getNumberOfObjectsInIdentityMapSubCache(String className) throws ClassNotFoundException {
         //This needs to use the Session's active class loader (not implemented yet)
         Integer result = 0;
-        Class classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+        Class<?> classToChange = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
         IdentityMap map = getSession().getIdentityMapAccessorInstance().getIdentityMap(classToChange);
         if (map.getClass().isAssignableFrom(ClassConstants.HardCacheWeakIdentityMap_Class)) {
             List subCache = ((HardCacheWeakIdentityMap)map).getReferenceCache();
@@ -447,7 +447,7 @@
      * @param className the fully qualified classnames identifying the identity map to initialize
      */
      public synchronized void initializeIdentityMap(String className) throws ClassNotFoundException {
-         Class registeredClass;
+         Class<?> registeredClass;
 
          //get identity map, and initialize
          registeredClass = getSession().getDatasourcePlatform().getConversionManager()
@@ -467,7 +467,7 @@
       *        This method will log the instance level locks in the Identity Map for the given class in the session.
       */
       public void printIdentityMapLocks(String registeredClassName) {
-          Class registeredClass = getSession().getDatasourcePlatform().getConversionManager()
+          Class<?> registeredClass = getSession().getDatasourcePlatform().getConversionManager()
               .convertObject(registeredClassName, ClassConstants.CLASS);
           getSession().getIdentityMapAccessorInstance().getIdentityMapManager().printLocks(registeredClass);
       }
@@ -839,7 +839,7 @@
       * INTERNAL:
       * getCacheTypeFor: Give a more UI-friendly version of the cache type
       */
-     protected String getCacheTypeFor(Class identityMapClass) {
+     protected String getCacheTypeFor(Class<?> identityMapClass) {
          if (identityMapClass == CacheIdentityMap.class) {
              return "Cache";
          } else if (identityMapClass == FullIdentityMap.class) {
@@ -1063,7 +1063,7 @@
      * @exception ClassNotFoundException thrown then the IdentityMap for that class name could not be found
      */
      public void printObjectsInIdentityMap(String className) throws ClassNotFoundException {
-         Class classWithMap = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
+         Class<?> classWithMap = getSession().getDatasourcePlatform().getConversionManager().convertObject(className, ClassConstants.CLASS);
          IdentityMap map = getSession().getIdentityMapAccessorInstance().getIdentityMap(classWithMap);
 
          //check if the identity map exists
@@ -1094,7 +1094,7 @@
      public void printAllIdentityMapTypes() {
          Vector classesRegistered = getSession().getIdentityMapAccessorInstance().getIdentityMapManager().getClassesRegistered();
          String registeredClassName;
-         Class registeredClass;
+         Class<?> registeredClass;
 
          //Check if there aren't any classes registered
          if (classesRegistered.size() == 0) {
@@ -1278,7 +1278,7 @@
      public synchronized void invalidateAllIdentityMaps() {
          Vector classesRegistered = getSession().getIdentityMapAccessorInstance().getIdentityMapManager().getClassesRegistered();
          String registeredClassName;
-         Class registeredClass;
+         Class<?> registeredClass;
 
          if (classesRegistered.isEmpty()) {
              ((AbstractSession)session).log(SessionLog.INFO, SessionLog.SERVER, "jmx_mbean_runtime_services_no_identity_maps_in_session");
@@ -1324,7 +1324,7 @@
      * @param recurse    Boolean indicating if we want to invalidate the children identity maps too
      */
      public synchronized void invalidateIdentityMap(String className, Boolean recurse) throws ClassNotFoundException {
-         Class registeredClass;
+         Class<?> registeredClass;
 
          //get identity map, and invalidate
          registeredClass = getSession().getDatasourcePlatform().getConversionManager()
@@ -1482,7 +1482,7 @@
       * @return HashMap
       */
      private Map<String, String> buildLowlevelDetailsFor(String mappedClassName) {
-         Class mappedClass = getSession().getDatasourcePlatform().getConversionManager().convertObject(mappedClassName, ClassConstants.CLASS);
+         Class<?> mappedClass = getSession().getDatasourcePlatform().getConversionManager().convertObject(mappedClassName, ClassConstants.CLASS);
          ClassDescriptor descriptor = getSession().getProject().getDescriptor(mappedClass);
 
          String cacheType = "";
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatabaseLogin.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatabaseLogin.java
index f5f26d8..e306789 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatabaseLogin.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatabaseLogin.java
@@ -821,7 +821,7 @@
      * Example: login.setDefaultNullValue(long.class, Long.valueOf(0))
      */
     @Override
-    public void setDefaultNullValue(Class type, Object value) {
+    public void setDefaultNullValue(Class<?> type, Object value) {
         getPlatform().getConversionManager().setDefaultNullValue(type, value);
     }
 
@@ -830,7 +830,7 @@
      * The driver class is the Java class for the JDBC driver to be used
      * (e.g. sun.jdbc.odbc.JdbcOdbcDriver.class).
      */
-    public void setDriverClass(Class driverClass) {
+    public void setDriverClass(Class<?> driverClass) {
         setDriverClassName(driverClass.getName());
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
index c540305..127b2ce 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
@@ -397,7 +397,7 @@
      * on a per-class basis.
      * Example: login.setDefaultNullValue(long.class, Long.valueOf(0))
      */
-    public void setDefaultNullValue(Class type, Object value) {
+    public void setDefaultNullValue(Class<?> type, Object value) {
         getDatasourcePlatform().getConversionManager().setDefaultNullValue(type, value);
     }
 
@@ -502,7 +502,7 @@
             platformClassName = "org.eclipse.persistence.platform.database.OraclePlatform";
         }
 
-        Class platformClass = null;
+        Class<?> platformClass = null;
         try {
             //First try loading with the Login's class loader
             platformClass = this.getClass().getClassLoader().loadClass(platformClassName);
@@ -521,7 +521,7 @@
         Platform platform = null;
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
-                platform = (Platform)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(platformClass));
+                platform = (Platform)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(platformClass));
             } else {
                 platform = (Platform)PrivilegedAccessHelper.newInstanceFromClass(platformClass);
             }
@@ -542,14 +542,14 @@
      */
     public void setPlatformClassName(String platformClassName, ClassLoader loader) throws ValidationException {
         boolean exceptionCaught = false;
-        Class platformClass = null;
+        Class<?> platformClass = null;
         try {
             Platform platform = null;
             if (loader != null) {
                 platformClass = loader.loadClass(platformClassName);
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                     try {
-                       platform = (Platform)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(platformClass));
+                       platform = (Platform)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(platformClass));
                   } catch (PrivilegedActionException exception) {
                       throw ValidationException.platformClassNotFound(exception.getException(), platformClassName);
                   }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DefaultConnector.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DefaultConnector.java
index ea12ca6..ea0701e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DefaultConnector.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DefaultConnector.java
@@ -41,7 +41,7 @@
     protected String driverURLHeader;
     protected String databaseURL;
     /** cache up the driver class to speed up reconnects */
-    protected Class driverClass;
+    protected Class<?> driverClass;
     /** cache up the instantiated Driver to speed up reconnects */
     protected Driver driver;
 
@@ -330,7 +330,7 @@
         try {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
                 try{
-                    this.driver = (Driver)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass(this.driverClass));
+                    this.driver = (Driver)AccessController.doPrivileged(new PrivilegedNewInstanceFromClass<>(this.driverClass));
                 }catch (PrivilegedActionException ex){
                     if (ex.getCause() instanceof IllegalAccessException){
                         throw (IllegalAccessException)ex.getCause();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/IdentityMapAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/IdentityMapAccessor.java
index 6b34049..4c84621 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/IdentityMapAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/IdentityMapAccessor.java
@@ -62,14 +62,14 @@
      * ADVANCED:
      * Clear the query cache associated with the named query on the descriptor for the given class.
      */
-    void clearQueryCache(String descriptorQueryName, Class queryClass);
+    void clearQueryCache(String descriptorQueryName, Class<?> queryClass);
 
     /**
      * ADVANCED:
      * Invalidate/remove any results for any query for the class from the query cache.
      * This is used to invalidate the query cache on any change.
      */
-    void invalidateQueryCache(Class classThatChanged);
+    void invalidateQueryCache(Class<?> classThatChanged);
 
     /**
      * ADVANCED:
@@ -83,14 +83,14 @@
      * Returns true if the identity map contains an Object with the same
      * primary key and Class type as those specified.
      */
-    boolean containsObjectInIdentityMap(Object primaryKey, Class theClass);
+    boolean containsObjectInIdentityMap(Object primaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
      * Returns true if the identity map contains an Object with the same primary key
      * of the specified row (i.e. the database record) and Class type.
      */
-    boolean containsObjectInIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass);
+    boolean containsObjectInIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -106,7 +106,7 @@
      * @param shouldReturnInvalidatedObjects boolean - true if only invalid Objects should be returned
      * @return Vector of Objects
      */
-    Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException;
+    Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException;
 
     /**
      * ADVANCED:
@@ -122,7 +122,7 @@
      * @param shouldReturnInvalidatedObjects boolean - true if only invalid Objects should be returned
      * @return Vector of Objects
      */
-    Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException;
+    Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy, boolean shouldReturnInvalidatedObjects) throws QueryException;
 
     /**
      * ADVANCED:
@@ -135,7 +135,7 @@
      * {@link org.eclipse.persistence.queries.InMemoryQueryIndirectionPolicy InMemoryQueryIndirectionPolicy}
      * @return Vector of Objects with type theClass and matching the selectionCriteria
      */
-    Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException;
+    Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException;
 
     /**
      * ADVANCED:
@@ -148,7 +148,7 @@
      * {@link org.eclipse.persistence.queries.InMemoryQueryIndirectionPolicy InMemoryQueryIndirectionPolicy}
      * @return Vector of Objects with type theClass and matching the selectionCriteria
      */
-    Vector getAllFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException;
+    Vector getAllFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException;
 
     /**
      * ADVANCED:
@@ -166,7 +166,7 @@
      * and Class type as those specified.
      * @return Object from identity map, may be null.
      */
-    Object getFromIdentityMap(Object primaryKey, Class theClass);
+    Object getFromIdentityMap(Object primaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -176,7 +176,7 @@
      * @param theClass Class
      * @return Object from identity map, may be null.
      */
-    Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass);
+    Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -185,7 +185,7 @@
      * if specified with the boolean shouldReturnInvalidatedObjects.
      * @return Object from identity map, may be null.
      */
-    Object getFromIdentityMap(Object primaryKey, Class theClass, boolean shouldReturnInvalidatedObjects);
+    Object getFromIdentityMap(Object primaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects);
 
     /**
      * ADVANCED:
@@ -197,7 +197,7 @@
      * @param shouldReturnInvalidatedObjects boolean
      * @return Object from identity map, may be null.
      */
-    Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class theClass, boolean shouldReturnInvalidatedObjects);
+    Object getFromIdentityMap(DataRecord rowContainingPrimaryKey, Class<?> theClass, boolean shouldReturnInvalidatedObjects);
 
     /**
      * ADVANCED:
@@ -209,7 +209,7 @@
      * @param translationRow Record
      * @return Object from identity map, may be null
      */
-    Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow) throws QueryException;
+    Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow) throws QueryException;
 
     /**
      * ADVANCED:
@@ -224,7 +224,7 @@
      * see {@link org.eclipse.persistence.queries.InMemoryQueryIndirectionPolicy InMemoryQueryIndirectionPolicy}
      * @return Object from identity map, may be null
      */
-    Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException;
+    Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, InMemoryQueryIndirectionPolicy valueHolderPolicy) throws QueryException;
 
     /**
      * ADVANCED:
@@ -239,7 +239,7 @@
      * see {@link org.eclipse.persistence.queries.InMemoryQueryIndirectionPolicy InMemoryQueryIndirectionPolicy}
      * @return Object from identity map, may be null
      */
-    Object getFromIdentityMap(Expression selectionCriteria, Class theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException;
+    Object getFromIdentityMap(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, int valueHolderPolicy) throws QueryException;
 
     /**
      * ADVANCED:
@@ -265,7 +265,7 @@
      * Extracts the write lock value from the identity map through the passed in primaryKey and Class type.
      * Write lock values are used when optimistic locking is stored in the cache instead of the object.
      */
-    Object getWriteLockValue(Object primaryKey, Class theClass);
+    Object getWriteLockValue(Object primaryKey, Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -286,7 +286,7 @@
      * are not referenced from other Objects of other classes or from the application.
      * @param theClass Class
      */
-    void initializeIdentityMap(Class theClass);
+    void initializeIdentityMap(Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -320,14 +320,14 @@
      * the cache. If the Object does not exist in the cache,
      * this method will return without any action.
      */
-    void invalidateObject(Object primaryKey, Class theClass);
+    void invalidateObject(Object primaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
      * Set an object to be invalid in the cache.
      * @param invalidateCluster if true the invalidation will be broadcast to each server in the cluster.
      */
-    void invalidateObject(Object primaryKey, Class theClass, boolean invalidateCluster);
+    void invalidateObject(Object primaryKey, Class<?> theClass, boolean invalidateCluster);
 
     /**
      * ADVANCED:
@@ -335,14 +335,14 @@
      * be invalid in the cache. If the Object does not exist in the cache,
      * this method will return without any action.
      */
-    void invalidateObject(DataRecord rowContainingPrimaryKey, Class theClass);
+    void invalidateObject(DataRecord rowContainingPrimaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
      * Set an object to be invalid in the cache.
      * @param invalidateCluster if true the invalidation will be broadcast to each server in the cluster.
      */
-    void invalidateObject(DataRecord rowContainingPrimaryKey, Class theClass, boolean invalidateCluster);
+    void invalidateObject(DataRecord rowContainingPrimaryKey, Class<?> theClass, boolean invalidateCluster);
 
     /**
      * ADVANCED:
@@ -383,7 +383,7 @@
      * @param translationRow Record
      * @param shouldInvalidateOnException boolean indicates weather to invalidate the object if conform threw exception.
      */
-    void invalidateObjects(Expression selectionCriteria, Class theClass, DataRecord translationRow, boolean shouldInvalidateOnException);
+    void invalidateObjects(Expression selectionCriteria, Class<?> theClass, DataRecord translationRow, boolean shouldInvalidateOnException);
 
     /**
      * ADVANCED:
@@ -397,7 +397,7 @@
      * Sets all of the Objects of the specified Class type to be invalid in the cache.
      * Will set the recurse on inheritance to true.
      */
-    void invalidateClass(Class theClass);
+    void invalidateClass(Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -407,7 +407,7 @@
      * @param theClass Class
      * @param recurse boolean
      */
-    void invalidateClass(Class theClass, boolean recurse);
+    void invalidateClass(Class<?> theClass, boolean recurse);
 
     /**
      * ADVANCED:
@@ -421,21 +421,21 @@
      * Returns true if the Object described by the given primary key and Class type is valid
      * in the cache.
      */
-    boolean isValid(Object primaryKey, Class theClass);
+    boolean isValid(Object primaryKey, Class<?> theClass);
 
     /**
      * ADVANCED:
      * Returns true if this Object with the given primary key of the Row and Class type
      * given is valid in the cache.
      */
-    boolean isValid(DataRecord rowContainingPrimaryKey, Class theClass);
+    boolean isValid(DataRecord rowContainingPrimaryKey, Class<?> theClass);
 
     /**
      * PUBLIC:
      * Used to print all the Objects in the identity map of the given Class type.
      * The output of this method will be logged to this session's SessionLog at SEVERE level.
      */
-    void printIdentityMap(Class theClass);
+    void printIdentityMap(Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -505,7 +505,7 @@
      * The application should only call this if its known that no references to the Object exist.
      * @return Object the Object removed from the identity map
      */
-    Object removeFromIdentityMap(Object key, Class theClass);
+    Object removeFromIdentityMap(Object key, Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -521,7 +521,7 @@
      * Updates the write lock value in the cache for the Object with same primary key as the given Object.
      * The write lock values is used when optimistic locking is stored in the cache instead of in the object.
      */
-    void updateWriteLockValue(Object primaryKey, Class theClass, Object writeLockValue);
+    void updateWriteLockValue(Object primaryKey, Class<?> theClass, Object writeLockValue);
 
     /**
      * ADVANCED:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/Session.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/Session.java
index d91330f..7b43d7c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/Session.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/Session.java
@@ -254,7 +254,7 @@
      *
      * @see org.eclipse.persistence.descriptors.DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    Object executeQuery(String queryName, Class domainClass);
+    Object executeQuery(String queryName, Class<?> domainClass);
 
     /**
      * PUBLIC:
@@ -264,7 +264,7 @@
      *
      * @see org.eclipse.persistence.descriptors.DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    Object executeQuery(String queryName, Class domainClass, Object arg1);
+    Object executeQuery(String queryName, Class<?> domainClass, Object arg1);
 
     /**
      * PUBLIC:
@@ -274,7 +274,7 @@
      *
      * @see org.eclipse.persistence.descriptors.DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2);
+    Object executeQuery(String queryName, Class<?> domainClass, Object arg1, Object arg2);
 
     /**
      * PUBLIC:
@@ -284,7 +284,7 @@
      *
      * @see org.eclipse.persistence.descriptors.DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    Object executeQuery(String queryName, Class domainClass, Object arg1, Object arg2, Object arg3);
+    Object executeQuery(String queryName, Class<?> domainClass, Object arg1, Object arg2, Object arg3);
 
     /**
      * PUBLIC:
@@ -294,7 +294,7 @@
      *
      * @see org.eclipse.persistence.descriptors.DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
-    Object executeQuery(String queryName, Class domainClass, List argumentValues);
+    Object executeQuery(String queryName, Class<?> domainClass, List argumentValues);
 
     /**
      * PUBLIC:
@@ -393,7 +393,7 @@
      * by one of the classes stored in the map, that descriptor will be stored under the
      * new class.
      */
-    ClassDescriptor getClassDescriptor(Class theClass);
+    ClassDescriptor getClassDescriptor(Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -548,7 +548,7 @@
      * ADVANCED:
      * Return the sequence number from the database.
      */
-    Number getNextSequenceNumberValue(Class domainClass);
+    Number getNextSequenceNumberValue(Class<?> domainClass);
 
     /**
      * PUBLIC:
@@ -626,7 +626,7 @@
      * ADVANCED:
      * Return true if a descriptor exists for the given class.
      */
-    boolean hasDescriptor(Class theClass);
+    boolean hasDescriptor(Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -730,7 +730,7 @@
      * @see ReadAllQuery
      * @see #readAllObjects(Class, Expression)
      */
-    Vector readAllObjects(Class domainClass) throws DatabaseException;
+    Vector readAllObjects(Class<?> domainClass) throws DatabaseException;
 
 
     /**
@@ -742,7 +742,7 @@
      * @see SQLCall
      * @see JPQLCall
      */
-    Vector readAllObjects(Class domainClass, Call aCall) throws DatabaseException;
+    Vector readAllObjects(Class<?> domainClass, Call aCall) throws DatabaseException;
 
     /**
      * PUBLIC:
@@ -751,7 +751,7 @@
      *
      * @see ReadAllQuery
      */
-    Vector readAllObjects(Class domainClass, Expression selectionCriteria) throws DatabaseException;
+    Vector readAllObjects(Class<?> domainClass, Expression selectionCriteria) throws DatabaseException;
 
     /**
      * PUBLIC:
@@ -767,7 +767,7 @@
      * @see ReadObjectQuery
      * @see #readAllObjects(Class, Expression)
      */
-    Object readObject(Class domainClass) throws DatabaseException;
+    Object readObject(Class<?> domainClass) throws DatabaseException;
 
     /**
      * PUBLIC:
@@ -778,7 +778,7 @@
      * @see SQLCall
      * @see JPQLCall
      */
-    Object readObject(Class domainClass, Call aCall) throws DatabaseException;
+    Object readObject(Class<?> domainClass, Call aCall) throws DatabaseException;
 
     /**
      * PUBLIC:
@@ -787,7 +787,7 @@
      *
      * @see ReadObjectQuery
      */
-    Object readObject(Class domainClass, Expression selectionCriteria) throws DatabaseException;
+    Object readObject(Class<?> domainClass, Expression selectionCriteria) throws DatabaseException;
 
     /**
      * PUBLIC:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/SessionEventManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/SessionEventManager.java
index a2b76b1..e1f85ed 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/SessionEventManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/SessionEventManager.java
@@ -147,7 +147,7 @@
      * INTERNAL:
      * Raised for missing descriptors for lazy registration.
      */
-    public void missingDescriptor(Class missingClass) {
+    public void missingDescriptor(Class<?> missingClass) {
         if (!hasListeners()) {
             return;
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/UnitOfWork.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/UnitOfWork.java
index 041faec..0f666dd 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/UnitOfWork.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/UnitOfWork.java
@@ -73,7 +73,7 @@
      * Adds the given Java class to the receiver's set of read-only classes.
      * Cannot be called after objects have been registered in the unit of work.
      */
-    void addReadOnlyClass(Class theClass);
+    void addReadOnlyClass(Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -306,7 +306,7 @@
      *
      * @return true if the class is read-only, false otherwise.
      */
-    boolean isClassReadOnly(Class theClass);
+    boolean isClassReadOnly(Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -358,7 +358,7 @@
      * Return a new instance of the class registered in this unit of work.
      * This can be used to ensure that new objects are registered correctly.
      */
-    Object newInstance(Class theClass);
+    Object newInstance(Class<?> theClass);
 
     /**
      * ADVANCED:
@@ -490,7 +490,7 @@
      * Removes a Class from the receiver's set of read-only classes.
      * It is illegal to try to send this method to a nested UnitOfWork.
      */
-    void removeReadOnlyClass(Class theClass);
+    void removeReadOnlyClass(Class<?> theClass);
 
     /**
      * PUBLIC:
@@ -694,7 +694,7 @@
      * The instance will be lazy when it does not exist in the cache, and supports fetch groups.
      * @param primaryKey - The primary key of the object, either as a List, singleton, IdClass or an instance of the object.
      */
-    Object getReference(Class theClass, Object primaryKey);
+    Object getReference(Class<?> theClass, Object primaryKey);
 
     /**
      * ADVANCED:
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 23a1cec..500c428 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
@@ -47,7 +47,7 @@
  */
 public class SessionBroker extends DatabaseSessionImpl {
     protected SessionBroker parent;
-    protected Map<Class, String> sessionNamesByClass;
+    protected Map<Class<?>, String> sessionNamesByClass;
     protected Map<String, AbstractSession> sessionsByName;
     protected Sequencing sequencing;
     protected boolean shouldUseDescriptorAliases;
@@ -422,7 +422,7 @@
      * Return the platform for a particular class.
      */
     @Override
-    public Platform getPlatform(Class domainClass) {
+    public Platform getPlatform(Class<?> domainClass) {
         if (domainClass == null) {
             return super.getDatasourcePlatform();
         }
@@ -479,7 +479,7 @@
      * Return the session to be used for the class.
      */
     @Override
-    public AbstractSession getSessionForClass(Class domainClass) throws ValidationException {
+    public AbstractSession getSessionForClass(Class<?> domainClass) throws ValidationException {
         if (domainClass == null) {
             // CR2114; we don't have a session name. Return us.
             return this;
@@ -514,7 +514,7 @@
             return getSessionForName(query.getSessionName());
         }
 
-        Class queryClass;
+        Class<?> queryClass;
         if (query.getDescriptor() != null) {
             queryClass = query.getDescriptor().getJavaClass();
         } else {
@@ -530,7 +530,7 @@
      * INTERNAL:
      * Return sessions indexed by class, each class can only have one default session.
      */
-    protected Map<Class, String> getSessionNamesByClass() {
+    protected Map<Class<?>, String> getSessionNamesByClass() {
         return sessionNamesByClass;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/changesets/ObjectChangeSet.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/changesets/ObjectChangeSet.java
index beca072..649d029 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/changesets/ObjectChangeSet.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/changesets/ObjectChangeSet.java
@@ -45,7 +45,7 @@
      * ADVANCE:
      * This method returns the class type that this changeSet Represents.
      */
-    Class getClassType(Session session);
+    Class<?> getClassType(Session session);
 
     /**
      * ADVANCE:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/rmi/RMITransportManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/rmi/RMITransportManager.java
index 28036b7..d0e27e3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/rmi/RMITransportManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/rmi/RMITransportManager.java
@@ -156,7 +156,7 @@
                     try {
                         constructor = PrivilegedAccessHelper.getConstructorFor(
                             Class.forName("org.eclipse.persistence.internal.sessions.coordination.rmi.iiop.RMIRemoteCommandConnectionImpl"),
-                            new Class[] {RemoteCommandManager.class}, false);
+                            new Class<?>[] {RemoteCommandManager.class}, false);
                     } catch (ReflectiveOperationException e) {
                         throw RemoteCommandManagerException.errorInitCorba("javax.rmi.PortableRemoteObject", e);
                     }
@@ -296,7 +296,7 @@
     public void setIsRMIOverIIOP(boolean b) {
         if (b) {
             try {
-                narrow = PrivilegedAccessHelper.getDeclaredMethod(Class.forName("javax.rmi.PortableRemoteObject"), "narrow", new Class[] {Object.class, Class.class});
+                narrow = PrivilegedAccessHelper.getDeclaredMethod(Class.forName("javax.rmi.PortableRemoteObject"), "narrow", new Class<?>[] {Object.class, Class.class});
             } catch (ReflectiveOperationException e) {
                 // TODO Auto-generated catch block
                 throw RemoteCommandManagerException.errorInitCorba("javax.rmi.PortableRemoteObject", e);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/interceptors/CacheInterceptor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/interceptors/CacheInterceptor.java
index 82f35ce..85c3659 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/interceptors/CacheInterceptor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/interceptors/CacheInterceptor.java
@@ -229,7 +229,7 @@
      * Return the class that this is the map for.
      */
     @Override
-    public Class getDescriptorClass() {
+    public Class<?> getDescriptorClass() {
         return this.targetIdentityMap.getDescriptorClass();
     }
 
@@ -255,7 +255,7 @@
      * Recurse = true will include subclasses of myClass in the count.
      */
     @Override
-    public int getSize(Class myClass, boolean recurse) {
+    public int getSize(Class<?> myClass, boolean recurse) {
         return this.targetIdentityMap.getSize(myClass, recurse);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/DistributedSession.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/DistributedSession.java
index d0d39a2..46ae6c4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/DistributedSession.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/DistributedSession.java
@@ -133,7 +133,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass) throws DatabaseException {
         return executeQuery(queryName, domainClass, new Vector(1));
     }
 
@@ -146,7 +146,7 @@
      * @see DescriptorQueryManager#addQuery(String, DatabaseQuery)
      */
     @Override
-    public Object executeQuery(String queryName, Class domainClass, Vector argumentValues) throws DatabaseException {
+    public Object executeQuery(String queryName, Class<?> domainClass, Vector argumentValues) throws DatabaseException {
         startOperationProfile(SessionProfiler.Remote, null, SessionProfiler.ALL);
         Transporter transporter = getRemoteConnection().remoteExecuteNamedQuery(queryName, domainClass, argumentValues);
         endOperationProfile(SessionProfiler.Remote, null, SessionProfiler.ALL);
@@ -206,7 +206,7 @@
      * Return the table descriptor specified for the class.
      */
     @Override
-    public ClassDescriptor getDescriptor(Class domainClass) {
+    public ClassDescriptor getDescriptor(Class<?> domainClass) {
         ClassDescriptor descriptor = getDescriptors().get(domainClass);
 
         // If the descriptor is null then this means that descriptor must now be read from the server.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/rmi/RMIConnection.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/rmi/RMIConnection.java
index 103d1c7..4e446f0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/rmi/RMIConnection.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/remote/rmi/RMIConnection.java
@@ -297,7 +297,7 @@
      * Return the table descriptor specified for the class.
      */
     @Override
-    public ClassDescriptor getDescriptor(Class domainClass) {
+    public ClassDescriptor getDescriptor(Class<?> domainClass) {
         try {
             Transporter transporter = getRemoteSessionController().getDescriptor(new Transporter(domainClass));
             if (!transporter.wasOperationSuccessful()) {
@@ -437,7 +437,7 @@
      * Execute query remotely.
      */
     @Override
-    public Transporter remoteExecuteNamedQuery(String name, Class javaClass, Vector arguments) {
+    public Transporter remoteExecuteNamedQuery(String name, Class<?> javaClass, Vector arguments) {
         try {
             Transporter transporter = getRemoteSessionController().executeNamedQuery(new Transporter(name), new Transporter(javaClass), new Transporter(arguments));
             if (!transporter.wasOperationSuccessful()) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/AbstractSerializer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/AbstractSerializer.java
index 6fdd369..805e7b4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/AbstractSerializer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/AbstractSerializer.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
@@ -23,12 +23,12 @@
 public abstract class AbstractSerializer implements Serializer {
 
     @Override
-    public Class getType() {
+    public Class<?> getType() {
         return byte[].class;
     }
 
     @Override
-    public void initialize(Class serializeClass, String serializePackage, Session session) { }
+    public void initialize(Class<?> serializeClass, String serializePackage, Session session) { }
 
     @Override
     public String toString() {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/JavaSerializer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/JavaSerializer.java
index 8c5b947..2e91b8b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/JavaSerializer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/JavaSerializer.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
@@ -45,7 +45,7 @@
     }
 
     @Override
-    public Class getType() {
+    public Class<?> getType() {
         return byte[].class;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/Serializer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/Serializer.java
index 89ec5cd..c38e6b3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/Serializer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/Serializer.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,6 +26,6 @@
 public interface Serializer extends Serializable, Cloneable {
     Object serialize(Object object, Session session);
     Object deserialize(Object bytes, Session session);
-    Class getType();
-    void initialize(Class serializeClass, String serializePackage, Session session);
+    Class<?> getType();
+    void initialize(Class<?> serializeClass, String serializePackage, Session session);
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/XMLSerializer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/XMLSerializer.java
index 6415edc..75ec51c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/XMLSerializer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/serializers/XMLSerializer.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
@@ -47,7 +47,7 @@
     }
 
     @Override
-    public void initialize(Class serializeClass, String serializePackage, Session session) {
+    public void initialize(Class<?> serializeClass, String serializePackage, Session session) {
         if (this.context == null) {
             if (serializePackage == null) {
                 serializePackage = serializeClass.getPackage().getName();
@@ -85,7 +85,7 @@
     }
 
     @Override
-    public Class getType() {
+    public Class<?> getType() {
         return String.class;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
index 2b5deb4..8a7208e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/DatabaseObjectDefinition.java
@@ -56,7 +56,7 @@
      * @throws ValidationException when provided type is not valid database type.
      */
     protected static final FieldTypeDefinition getFieldTypeDefinition(
-            final AbstractSession session, final Class type, final String name) {
+            final AbstractSession session, final Class<?> type, final String name) {
         final FieldTypeDefinition fieldType = type != null
                 ? session.getPlatform().getFieldTypeDefinition(type)
                 : new FieldTypeDefinition(name);
@@ -78,7 +78,7 @@
      * @throws ValidationException when provided type is not valid database type.
      */
     protected static final FieldTypeDefinition getFieldTypeDefinition(
-            final DatabasePlatform platform, final Class type, final String name) {
+            final DatabasePlatform platform, final Class<?> type, final String name) {
         FieldTypeDefinition fieldType;
         if (type != null) { //translate Java 'type'
             fieldType = platform.getFieldTypeDefinition(type);
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 1ed55a8..0d43031 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
@@ -573,7 +573,7 @@
                 // Must be a TransformerBasedFieldTransformation
                 TransformerBasedFieldTransformation classTransformation = (TransformerBasedFieldTransformation) transformation;
                 String methodName = "buildFieldValue";
-                Class[] params = new Class[] {Object.class, String.class, Session.class};
+                Class<?>[] params = new Class<?>[] {Object.class, String.class, Session.class};
 
                 try {
                     Class<?> returnType = Helper.getDeclaredMethod(classTransformation.getTransformerClass(), methodName, params).getReturnType();
@@ -816,7 +816,7 @@
                 // column like type, size,  "NULL/NOT NULL" clause, unique key clause
                 fieldDef.setTypeDefinition(dbField.getColumnDefinition());
             } else {
-                Class fieldType = dbField.getType();
+                Class<?> fieldType = dbField.getType();
                 FieldTypeDefinition fieldTypeDef = (fieldType == null) ? null : databasePlatform.getFieldTypeDefinition(fieldType);
 
                 // Check if the user field is a String and only then allow the length specified
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/FieldDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/FieldDefinition.java
index 6beb25c..d96a59b 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/FieldDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/FieldDefinition.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
@@ -43,7 +43,7 @@
      * Java type class for the field.
      * Particular database type is generated based on platform from this.
      */
-    protected Class type;
+    protected Class<?> type;
     /**
      * Generic database type name for the field, which can be used instead of the Java class 'type'.
      * This is translated to a particular database type based on platform.
@@ -80,7 +80,7 @@
         this.isUnique = false;
     }
 
-    public FieldDefinition(String name, Class type) {
+    public FieldDefinition(String name, Class<?> type) {
         this.name = name;
         this.type = type;
         this.size = 0;
@@ -91,14 +91,14 @@
         isUnique = false;
     }
 
-    public FieldDefinition(String name, Class type, int size) {
+    public FieldDefinition(String name, Class<?> type, int size) {
         this();
         this.name = name;
         this.type = type;
         this.size = size;
     }
 
-    public FieldDefinition(String name, Class type, int size, int subSize) {
+    public FieldDefinition(String name, Class<?> type, int size, int subSize) {
         this();
         this.name = name;
         this.type = type;
@@ -286,7 +286,7 @@
      * Return the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public Class getType() {
+    public Class<?> getType() {
         return type;
     }
 
@@ -430,7 +430,7 @@
      * Set the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public void setType(Class type) {
+    public void setType(Class<?> type) {
         this.type = type;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/NestedTableDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/NestedTableDefinition.java
index 946d6ba..aa3da07 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/NestedTableDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/NestedTableDefinition.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
@@ -27,7 +27,7 @@
  */
 public class NestedTableDefinition extends DatabaseObjectDefinition {
     protected int typeSize;
-    protected Class type;
+    protected Class<?> type;
     protected String typeName;
 
     public NestedTableDefinition() {
@@ -96,7 +96,7 @@
      * Return the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public Class getType() {
+    public Class<?> getType() {
         return type;
     }
 
@@ -122,7 +122,7 @@
      * Set the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public void setType(Class type) {
+    public void setType(Class<?> type) {
         this.type = type;
     }
 
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 c8abc1f..d336e75 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
@@ -33,7 +33,7 @@
 public class PopulationManager {
 
     /** Store the objects registered. */
-    protected Map<Class, Map<String, Object>> registeredObjects;
+    protected Map<Class<?>, Map<String, Object>> registeredObjects;
 
     /** Store the default instance. */
     protected static PopulationManager defaultManager;
@@ -46,7 +46,7 @@
      * 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<Object> 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,14 +58,14 @@
      * 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<Object> 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<Object> allObjects) {
+    public void addAllObjectsForClass(Class<?> objectsClass, List<Object> allObjects) {
         if (!getRegisteredObjects().containsKey(objectsClass)) {
             return;
         }
@@ -78,7 +78,7 @@
     /**
      * Check if the object is registered given its name.
      */
-    public boolean containsObject(Class objectsClass, String objectsName) {
+    public boolean containsObject(Class<?> objectsClass, String objectsName) {
         return ((getRegisteredObjects().containsKey(objectsClass)) && (getRegisteredObjects().get(objectsClass).containsKey(objectsName)));
     }
 
@@ -92,8 +92,8 @@
     /**
      * Return all of the objects registered.
      */
-    public List<Class> getAllClasses() {
-        Vector<Class> allClasses = new Vector<>();
+    public List<Class<?>> getAllClasses() {
+        Vector<Class<?>> allClasses = new Vector<>();
         allClasses.addAll(getRegisteredObjects().keySet());
         return allClasses;
     }
@@ -103,7 +103,7 @@
      */
     public Vector<Object> getAllObjects() {
         Vector<Object> allObjects = new Vector<> ();
-        for (Class eachClass : getAllClasses()) {
+        for (Class<?> eachClass : getAllClasses()) {
             addAllObjectsForClass(eachClass, allObjects);
         }
 
@@ -113,7 +113,7 @@
     /**
      * Return all of the objects of the class and all of its subclasses.
      */
-    public List<Object> getAllObjectsForAbstractClass(Class objectsClass) {
+    public List<Object> getAllObjectsForAbstractClass(Class<?> objectsClass) {
         List<Object> allObjects = new Vector<>();
         // hummm, how can this be done....
         return allObjects;
@@ -123,7 +123,7 @@
      * 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 List<Object> getAllObjectsForAbstractClass(Class objectsClass, AbstractSession session) {
+    public List<Object> getAllObjectsForAbstractClass(Class<?> objectsClass, AbstractSession session) {
         ClassDescriptor descriptor = session.getDescriptor(objectsClass);
         List<Object> allObjects = new Vector<>();
         addAllObjectsForClass(objectsClass, allObjects);
@@ -139,7 +139,7 @@
     /**
      * Return all of the objects of the class.
      */
-    public Vector<Object> getAllObjectsForClass(Class objectsClass) {
+    public Vector<Object> getAllObjectsForClass(Class<?> objectsClass) {
         Vector<Object> allObjects = new Vector<>();
         addAllObjectsForClass(objectsClass, allObjects);
 
@@ -159,7 +159,7 @@
     /**
      * Return the object registered given its name.
      */
-    public Object getObject(Class objectsClass, String objectsName) {
+    public Object getObject(Class<?> objectsClass, String objectsName) {
         if (!(getRegisteredObjects().containsKey(objectsClass))) {
             return null;
         }
@@ -170,7 +170,7 @@
     /**
      * Return the registered objects.
      */
-    public Map<Class, Map<String, Object>> getRegisteredObjects() {
+    public Map<Class<?>, Map<String, Object>> getRegisteredObjects() {
         return registeredObjects;
     }
 
@@ -178,7 +178,7 @@
      * Register the object given its name.
      * The objects are represented as a hashtable of hashtables, lazy initialized on the class.
      */
-    public Object registerObject(Class javaClass, Object objectToRegister, String objectsName) {
+    public Object registerObject(Class<?> javaClass, Object objectToRegister, String objectsName) {
         if (!(getRegisteredObjects().containsKey(javaClass))) {
             getRegisteredObjects().put(javaClass, new Hashtable<>());
         }
@@ -203,7 +203,7 @@
     /**
      * Remove the object given its class and name.
      */
-    public void removeObject(Class classToRemove, String objectsName) {
+    public void removeObject(Class<?> classToRemove, String objectsName) {
         if (getRegisteredObjects().containsKey(classToRemove)) {
             getRegisteredObjects().get(classToRemove).remove(objectsName);
         }
@@ -235,7 +235,7 @@
     /**
      * Set the registered objects.
      */
-    public void setRegisteredObjects(Map<Class, Map<String, Object>> 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/StoredFunctionDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/StoredFunctionDefinition.java
index a2bab71..b3c520e 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
@@ -86,7 +86,7 @@
     /**
      * Prints return for stored function
      */
-    public void setReturnType(Class type) {
+    public void setReturnType(Class<?> type) {
         FieldDefinition argument = getArguments().get(0);
         argument.setType(type);
     }
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 6f00c10..1ba6a94 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
@@ -48,14 +48,14 @@
     /**
      * The arguments are the names of the parameters to the procedure.
      */
-    public void addArgument(String argumentName, Class type) {
+    public void addArgument(String argumentName, Class<?> type) {
         addArgument(new FieldDefinition(argumentName, type));
     }
 
     /**
      * The arguments are the names of the parameters to the procedure.
      */
-    public void addArgument(String argumentName, Class type, int size) {
+    public void addArgument(String argumentName, Class<?> type, int size) {
         addArgument(new FieldDefinition(argumentName, type, size));
     }
 
@@ -77,7 +77,7 @@
     /**
      * The output arguments are used to get values back from the proc.
      */
-    public void addInOutputArgument(String argumentName, Class type) {
+    public void addInOutputArgument(String argumentName, Class<?> type) {
         addInOutputArgument(new FieldDefinition(argumentName, type));
     }
 
@@ -92,14 +92,14 @@
     /**
      * The output arguments are used to get values back from the proc.
      */
-    public void addOutputArgument(String argumentName, Class type) {
+    public void addOutputArgument(String argumentName, Class<?> type) {
         addOutputArgument(new FieldDefinition(argumentName, type));
     }
 
     /**
      * The output arguments are used to get values back from the proc.
      */
-    public void addOutputArgument(String argumentName, Class type, int size) {
+    public void addOutputArgument(String argumentName, Class<?> type, int size) {
         addOutputArgument(new FieldDefinition(argumentName, type, size));
     }
 
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 3c7e5b5..7d5d142 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
@@ -566,7 +566,7 @@
             Number dataType;
             dataRow = (AbstractRecord)fieldNames.get(fieldsEnum.nextElement());
             dataType = (Number)dataRow.get("DATA_TYPE");
-            Class type = this.getFieldType(dataType);
+            Class<?> type = this.getFieldType(dataType);
             String typeName = (String)dataRow.get("TYPE_NAME");
             if ((type != null) || (typeName == null) || (typeName.length() == 0)) {
                 definition.addArgument(prefixArgToken + dataRow.get("COLUMN_NAME"), type, ((Number)dataRow.get("COLUMN_SIZE")).intValue());
@@ -684,7 +684,7 @@
      * INTERNAL:
      * return the class corresponding to the passed in JDBC type.
      */
-    protected Class getFieldType(Object jdbcDataType) {
+    protected Class<?> getFieldType(Object jdbcDataType) {
         Integer key = ((Number) jdbcDataType).intValue();
         return intToTypeConverterHash.get(key);
     }
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 b1c4cfa..8feda9a 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
@@ -82,7 +82,7 @@
      * Add the field to the table, default sizes are used.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addField(String fieldName, Class type) {
+    public void addField(String fieldName, Class<?> type) {
         this.addField(new FieldDefinition(fieldName, type));
     }
 
@@ -91,7 +91,7 @@
      * Add the field to the table.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addField(String fieldName, Class type, int fieldSize) {
+    public void addField(String fieldName, Class<?> type, int fieldSize) {
         this.addField(new FieldDefinition(fieldName, type, fieldSize));
     }
 
@@ -100,7 +100,7 @@
      * Add the field to the table.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addField(String fieldName, Class type, int fieldSize, int fieldSubSize) {
+    public void addField(String fieldName, Class<?> type, int fieldSize, int fieldSubSize) {
         this.addField(new FieldDefinition(fieldName, type, fieldSize, fieldSubSize));
     }
 
@@ -209,7 +209,7 @@
      * The field must be of number type and cannot have a subsize.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addIdentityField(String fieldName, Class type) {
+    public void addIdentityField(String fieldName, Class<?> type) {
         FieldDefinition fieldDef = new FieldDefinition(fieldName, type);
         fieldDef.setIsIdentity(true);
         fieldDef.setIsPrimaryKey(true);
@@ -223,7 +223,7 @@
      * The field must be of number type and cannot have a subsize.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addIdentityField(String fieldName, Class type, int fieldSize) {
+    public void addIdentityField(String fieldName, Class<?> type, int fieldSize) {
         FieldDefinition fieldDef = new FieldDefinition(fieldName, type, fieldSize);
         fieldDef.setIsIdentity(true);
         fieldDef.setIsPrimaryKey(true);
@@ -236,7 +236,7 @@
      * This field is set as part of the primary key.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addPrimaryKeyField(String fieldName, Class type) {
+    public void addPrimaryKeyField(String fieldName, Class<?> type) {
         FieldDefinition fieldDef = new FieldDefinition(fieldName, type);
         fieldDef.setIsPrimaryKey(true);
         addField(fieldDef);
@@ -248,7 +248,7 @@
      * This field is set as part of the primary key.
      * @param type is the Java class type corresponding to the database type.
      */
-    public void addPrimaryKeyField(String fieldName, Class type, int fieldSize) {
+    public void addPrimaryKeyField(String fieldName, Class<?> type, int fieldSize) {
         FieldDefinition fieldDef = new FieldDefinition(fieldName, type, fieldSize);
         fieldDef.setIsPrimaryKey(true);
         addField(fieldDef);
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 1b15938..7483c0b 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
@@ -36,7 +36,7 @@
      * Add the field to the type, default sizes are used.
      * @param type is the Java class type coresponding to the database type.
      */
-    public void addField(String fieldName, Class type) {
+    public void addField(String fieldName, Class<?> type) {
         this.addField(new FieldDefinition(fieldName, type));
     }
 
@@ -45,7 +45,7 @@
      * Add the field to the type.
      * @param type is the Java class type coresponding to the database type.
      */
-    public void addField(String fieldName, Class type, int fieldSize) {
+    public void addField(String fieldName, Class<?> type, int fieldSize) {
         this.addField(new FieldDefinition(fieldName, type, fieldSize));
     }
 
@@ -54,7 +54,7 @@
      * Add the field to the type.
      * @param type is the Java class type coresponding to the database type.
      */
-    public void addField(String fieldName, Class type, int fieldSize, int fieldSubSize) {
+    public void addField(String fieldName, Class<?> type, int fieldSize, int fieldSubSize) {
         this.addField(new FieldDefinition(fieldName, type, fieldSize, fieldSubSize));
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/VarrayDefinition.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/VarrayDefinition.java
index 7f554f1..141a15e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/VarrayDefinition.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/VarrayDefinition.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 @@
 public class VarrayDefinition extends DatabaseObjectDefinition {
     protected int typeSize;
     protected int size;
-    protected Class type;
+    protected Class<?> type;
     protected String typeName;
 
     public VarrayDefinition() {
@@ -120,7 +120,7 @@
      * Return the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public Class getType() {
+    public Class<?> getType() {
         return type;
     }
 
@@ -154,7 +154,7 @@
      * Set the type of the field.
      * This should be set to a java class, such as String.class, Integer.class or Date.class.
      */
-    public void setType(Class type) {
+    public void setType(Class<?> type) {
         this.type = type;
     }
 
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityGraphImpl.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityGraphImpl.java
index fc58f4e..316085b 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityGraphImpl.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/EntityGraphImpl.java
@@ -62,7 +62,7 @@
     public EntityGraphImpl(AttributeGroup group) {
         super();
         this.attributeGroup = group;
-        this.classType = group.getType();
+        this.classType = (Class<X>) group.getType();
         if (this.classType == null){
             this.classType = (Class<X>) CoreClassConstants.OBJECT;
         }
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 917918a..95293c2 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
@@ -43,14 +43,14 @@
         this.accessorFactory = factory;
         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});
+            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});
         } catch(Exception ex) {
             throw JAXBException.invalidAccessorFactory(accessorClass, ex);
         }
     }
 
-    public Object createFieldAccessor(Class beanClass, Field field, boolean isReadOnly) {
+    public Object createFieldAccessor(Class<?> beanClass, Field field, boolean isReadOnly) {
         try {
             return PrivilegedAccessHelper.invokeMethod(createFieldAccessorMethod, accessorFactory, new Object[]{beanClass, field, isReadOnly});
         } catch(Exception ex) {
@@ -58,7 +58,7 @@
         }
     }
 
-    public Object createPropertyAccessor(Class beanClass, Method getMethod, Method setMethod) {
+    public Object createPropertyAccessor(Class<?> beanClass, Method getMethod, Method setMethod) {
         try {
             return PrivilegedAccessHelper.invokeMethod(createPropertyAccessorMethod, accessorFactory, new Object[]{beanClass, getMethod, setMethod});
         } catch(Exception ex) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/CustomAccessorAttributeAccessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/CustomAccessorAttributeAccessor.java
index bb8ac17..506dede 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/CustomAccessorAttributeAccessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/CustomAccessorAttributeAccessor.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
@@ -39,8 +39,8 @@
     public CustomAccessorAttributeAccessor(Object accessor) {
         this.accessor = accessor;
 
-        Class[] getMethodParams = new Class[]{Object.class};
-        Class[] setMethodParams = new Class[]{Object.class, Object.class};
+        Class<?>[] getMethodParams = new Class<?>[]{Object.class};
+        Class<?>[] setMethodParams = new Class<?>[]{Object.class, Object.class};
         try {
             getMethod = PrivilegedAccessHelper.getDeclaredMethod(accessor.getClass(), "get", getMethodParams);
             setMethod = PrivilegedAccessHelper.getDeclaredMethod(accessor.getClass(), "set", setMethodParams);
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 2e8ab6b..641d26b 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
@@ -57,8 +57,8 @@
     private DomHandler domHandler;
     private XMLPlatform xmlPlatform;
     private String domHandlerClassName;
-    private Class elementClass;
-    private Class resultType;
+    private Class<?> elementClass;
+    private Class<?> resultType;
 
     public DomHandlerConverter(String domHandlerClassName) {
         this.domHandlerClassName = domHandlerClassName;
@@ -70,13 +70,13 @@
             ConversionManager cMgr = session.getDatasourcePlatform().getConversionManager();
             Class<? extends DomHandler> domHandlerClass = PrivilegedAccessHelper.getClassForName(domHandlerClassName, true, cMgr.getLoader());
 
-            Constructor<? extends DomHandler> cons = PrivilegedAccessHelper.getDeclaredConstructorFor(domHandlerClass, new Class[]{}, true);
+            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});
+            Method createUnmarshallerMethod = PrivilegedAccessHelper.getDeclaredMethod(domHandlerClass, "createUnmarshaller", new Class<?>[]{ValidationEventHandler.class});
             resultType = PrivilegedAccessHelper.getMethodReturnType(createUnmarshallerMethod);
 
-            Method getElementMethod = PrivilegedAccessHelper.getDeclaredMethod(domHandlerClass, "getElement", new Class[]{resultType});
+            Method getElementMethod = PrivilegedAccessHelper.getDeclaredMethod(domHandlerClass, "getElement", new Class<?>[]{resultType});
             elementClass = PrivilegedAccessHelper.getMethodReturnType(getElementMethod);
 
             xmlPlatform = XMLPlatformFactory.getInstance().getXMLPlatform();
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/GenericsClassHelper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/GenericsClassHelper.java
index 38ca96a..1c0ba98 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/GenericsClassHelper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/GenericsClassHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2014, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -32,13 +32,13 @@
      * generic interface type.
      */
     private static class DeclaringClassInterfacePair {
-        public final Class concreteClass;
+        public final Class<?> concreteClass;
 
-        public final Class declaringClass;
+        public final Class<?> declaringClass;
 
         public final Type genericInterface;
 
-        private DeclaringClassInterfacePair(Class concreteClass, Class declaringClass, Type genericInteface) {
+        private DeclaringClassInterfacePair(Class<?> concreteClass, Class<?> declaringClass, Type genericInteface) {
             this.concreteClass = concreteClass;
             this.declaringClass = declaringClass;
             this.genericInterface = genericInteface;
@@ -55,7 +55,7 @@
      * @return the parameterized type arguments, or null if the generic
      * interface type is not a parameterized type.
      */
-    public static Type[] getParameterizedTypeArguments(Class concrete, Class classOrIface) {
+    public static Type[] getParameterizedTypeArguments(Class<?> concrete, Class<?> classOrIface) {
         DeclaringClassInterfacePair declaringClassInterfacePair = getClass(concrete, classOrIface);
         if (null != declaringClassInterfacePair) {
             return getParameterizedTypeArguments(declaringClassInterfacePair);
@@ -106,11 +106,11 @@
      * @return the tuple of the declaring class and the generic interface or class
      * type.
      */
-    private static DeclaringClassInterfacePair getClass(Class concrete, Class classOrIface) {
+    private static DeclaringClassInterfacePair getClass(Class<?> concrete, Class<?> classOrIface) {
         return getClass(concrete, classOrIface, concrete);
     }
 
-    private static DeclaringClassInterfacePair getClass(Class concrete, Class classOrIface, Class c) {
+    private static DeclaringClassInterfacePair getClass(Class<?> concrete, Class<?> classOrIface, Class<?> c) {
         Type[] gis = null;
 
         if (null != c.getGenericSuperclass()) {
@@ -132,7 +132,7 @@
         return getClass(concrete, classOrIface, c);
     }
 
-    private static DeclaringClassInterfacePair getType(Class concrete, Class classOrIface, Class c, Type[] ts) {
+    private static DeclaringClassInterfacePair getType(Class<?> concrete, Class<?> classOrIface, Class<?> c, Type[] ts) {
         for (Type t : ts) {
             DeclaringClassInterfacePair p = getType(concrete, classOrIface, c, t);
             if (p != null)
@@ -141,7 +141,7 @@
         return null;
     }
 
-    private static DeclaringClassInterfacePair getType(Class concrete, Class classOrIface, Class c, Type t) {
+    private static DeclaringClassInterfacePair getType(Class<?> concrete, Class<?> classOrIface, Class<?> c, Type t) {
         if (t instanceof Class) {
             if (t == classOrIface) {
                 return new DeclaringClassInterfacePair(concrete, c, t);
@@ -169,11 +169,11 @@
          */
         public final Type t;
 
-        public ClassTypePair(Class c) {
+        public ClassTypePair(Class<?> c) {
             this(c, c);
         }
 
-        public ClassTypePair(Class c, Type t) {
+        public ClassTypePair(Class<?> c, Type t) {
             this.t = t;
         }
     }
@@ -187,11 +187,11 @@
      * @return the resolved Java class and type, otherwise null if the type variable
      * could not be resolved
      */
-    private static ClassTypePair resolveTypeVariable(Class c, Class dc, TypeVariable tv) {
+    private static ClassTypePair resolveTypeVariable(Class<?> c, Class<?> dc, TypeVariable tv) {
         return resolveTypeVariable(c, dc, tv, new HashMap<TypeVariable, Type>());
     }
 
-    private static ClassTypePair resolveTypeVariable(Class c, Class dc, TypeVariable tv,
+    private static ClassTypePair resolveTypeVariable(Class<?> c, Class<?> dc, TypeVariable tv,
                                                      Map<TypeVariable, Type> map) {
         Type[] gis = c.getGenericInterfaces();
         for (Type gi : gis) {
@@ -215,7 +215,7 @@
         return null;
     }
 
-    private static ClassTypePair resolveTypeVariable(ParameterizedType pt, Class c, Class dc, TypeVariable tv,
+    private static ClassTypePair resolveTypeVariable(ParameterizedType pt, Class<?> c, Class<?> dc, TypeVariable tv,
                                                      Map<TypeVariable, Type> map) {
         Type[] typeArguments = pt.getActualTypeArguments();
 
@@ -274,7 +274,7 @@
         }
     }
 
-    protected static Class getClassOfType(Type type) {
+    protected static Class<?> getClassOfType(Type type) {
         if (type instanceof Class) {
             return (Class) type;
         } else if (type instanceof GenericArrayType) {
@@ -299,7 +299,7 @@
      * @param c the component class of the array
      * @return the array class.
      */
-    private static Class getArrayClass(Class c) {
+    private static Class<?> getArrayClass(Class<?> c) {
         try {
             Object o = Array.newInstance(c, 0);
             return o.getClass();
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 ae91903..c2b588a 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
@@ -40,9 +40,9 @@
     private final static String RESOLVE_METHOD_NAME = "resolve";
     private final static String START_DOCUMENT_METHOD_NAME = "startDocument";
 
-    private final static Class[] BIND_PARAMS = new Class[] { CoreClassConstants.STRING, CoreClassConstants.OBJECT };
-    private final static Class[] RESOLVE_PARAMS = new Class[] { CoreClassConstants.STRING, CoreClassConstants.CLASS };
-    private final static Class[] START_DOCUMENT_PARAMS = new Class[] { ValidationEventHandler.class };
+    private final static Class<?>[] BIND_PARAMS = new Class<?>[] { CoreClassConstants.STRING, CoreClassConstants.OBJECT };
+    private final static Class<?>[] RESOLVE_PARAMS = new Class<?>[] { CoreClassConstants.STRING, CoreClassConstants.CLASS };
+    private final static Class<?>[] START_DOCUMENT_PARAMS = new Class<?>[] { ValidationEventHandler.class };
 
     private Object resolver;
     private Method bindMethod, endDocumentMethod, resolveMethod, startDocumentMethod;
@@ -57,7 +57,7 @@
             throw XMLMarshalException.errorProcessingIDResolver(BIND_METHOD_NAME, sunResolver, ex);
         }
         try {
-            this.endDocumentMethod = PrivilegedAccessHelper.getMethod(resolverClass, END_DOCUMENT_METHOD_NAME, new Class[] {}, false);
+            this.endDocumentMethod = PrivilegedAccessHelper.getMethod(resolverClass, END_DOCUMENT_METHOD_NAME, new Class<?>[] {}, false);
         } catch (Exception ex) {
             throw XMLMarshalException.errorProcessingIDResolver(END_DOCUMENT_METHOD_NAME, sunResolver, ex);
         }
@@ -103,7 +103,7 @@
     }
 
     @Override
-    public Callable<?> resolve(Object id, Class targetType) throws SAXException {
+    public Callable<?> resolve(Object id, Class<?> targetType) throws SAXException {
         try {
             Object[] params = new Object[] { id.toString(), targetType };
             return PrivilegedAccessHelper.invokeMethod(this.resolveMethod, this.resolver, params);
@@ -113,7 +113,7 @@
     }
 
     @Override
-    public Callable<?> resolve(Map<String, Object> id, Class type) throws SAXException {
+    public Callable<?> resolve(Map<String, Object> id, Class<?> type) throws SAXException {
         // If the user is still using a Sun IDResolver, then they must only have one XML ID,
         // as only EclipseLink supports multiple IDs through XmlKey.  So if this method is called,
         // throw an exception informing the user.
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementConverter.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementConverter.java
index 63a30e3..437fd66 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementConverter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementConverter.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
@@ -36,10 +36,10 @@
     private Field associatedField;
     private CoreMapping mapping;
     private CoreConverter nestedConverter;
-    private Class declaredType;
-    private Class scope;
+    private Class<?> declaredType;
+    private Class<?> scope;
 
-    public JAXBElementConverter(Field associatedField, Class declaredType, Class scope) {
+    public JAXBElementConverter(Field associatedField, Class<?> declaredType, Class<?> scope) {
         this.associatedField = associatedField;
         this.declaredType = declaredType;
         this.scope = scope;
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementRootConverter.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementRootConverter.java
index d34f565..6027a50 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementRootConverter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/JAXBElementRootConverter.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,10 +33,10 @@
  */
 public class JAXBElementRootConverter implements XMLConverter {
 
-    private Class declaredType;
+    private Class<?> declaredType;
     private XMLConverter nestedConverter;
 
-    public JAXBElementRootConverter(Class declaredType) {
+    public JAXBElementRootConverter(Class<?> declaredType) {
         this.declaredType = declaredType;
     }
 
@@ -112,7 +112,7 @@
         return false;
     }
 
-    private JAXBElement createJAXBElement(QName qname, Class theClass, Object value){
+    private JAXBElement createJAXBElement(QName qname, Class<?> theClass, Object value){
         if(value != null && value instanceof JAXBElement){
             return (JAXBElement)value;
         }
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 05ead14..d6c82ca 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
@@ -38,7 +38,7 @@
 public class JAXBSetMethodAttributeAccessor extends MethodAttributeAccessor {
     String parameterTypeAsString;
     ClassLoader loader;
-    Class<Object> attributeClassification = CoreClassConstants.OBJECT;
+    Class<?> attributeClassification = CoreClassConstants.OBJECT;
 
     /**
      * This constructor sets the set method input parameter type (as string) as
@@ -55,13 +55,13 @@
      * Override to avoid exceptions due to lack of get method.
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
         try {
             if (!isWriteOnly()) {
-                Class[] parameterTypes = new Class[1];
+                Class<?>[] parameterTypes = new Class<?>[1];
                 parameterTypes[0] = Helper.getClassFromClasseName(parameterTypeAsString, loader);
                 attributeClassification = parameterTypes[0];
                 setSetMethod(Helper.getDeclaredMethod(theJavaClass, setMethodName, parameterTypes));
@@ -77,7 +77,7 @@
      * Return the return type of the method accessor.
      */
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         return attributeClassification;
     }
 }
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 c92de7e..7e2ec0d 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
@@ -47,12 +47,12 @@
         this.generatedClasses = new HashMap<String, Type>();
     }
 
-    public JaxbClassLoader(ClassLoader nestedClassLoader, Class[] classes) {
+    public JaxbClassLoader(ClassLoader nestedClassLoader, Class<?>[] classes) {
         super(nestedClassLoader);
         this.generatedClasses = new HashMap();
         if(classes != null){
             for(int i=0; i<classes.length; i++){
-                Class nextClass = classes[i];
+                Class<?> nextClass = classes[i];
                 generatedClasses.put(nextClass.getName(), nextClass);
             }
         }
@@ -90,8 +90,8 @@
     }
 
     @Override
-    public Class loadClass(String className) throws ClassNotFoundException {
-        Class javaClass = null;
+    public Class<?> loadClass(String className) throws ClassNotFoundException {
+        Class<?> javaClass = null;
         if (className.indexOf('.') == -1 &&
             (className.equals("boolean") ||
             className.equals("short") ||
@@ -123,13 +123,13 @@
         return javaClass;
     }
 
-    public Class generateClass(String className, byte[] bytes) {
+    public Class<?> generateClass(String className, byte[] bytes) {
         Class<?> theClass = this.defineClass(className, bytes, 0, bytes.length);
         generatedClasses.put(className, theClass);
         return theClass;
     }
 
-    public void putClass(String className, Class clazz) {
+    public void putClass(String className, Class<?> clazz) {
         generatedClasses.put(className, clazz);
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/MultiArgInstantiationPolicy.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/MultiArgInstantiationPolicy.java
index f4fefda..4e5bd50 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/MultiArgInstantiationPolicy.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/MultiArgInstantiationPolicy.java
@@ -36,7 +36,7 @@
  */
 public class MultiArgInstantiationPolicy extends InstantiationPolicy {
     private String[] parameterTypeNames;
-    private Class[] parameterTypes;
+    private Class<?>[] parameterTypes;
 
     private Object[] defaultValues;
 
@@ -45,7 +45,7 @@
         this.parameterTypeNames = parameterTypeNames;
     }
 
-    public void setParameterTypes(Class[] parameterTypes) {
+    public void setParameterTypes(Class<?>[] parameterTypes) {
         this.parameterTypes = parameterTypes;
     }
 
@@ -58,7 +58,7 @@
         super.convertClassNamesToClasses(loader);
         if(parameterTypes == null) {
             if(parameterTypeNames != null) {
-                Class[] values = new Class[parameterTypeNames.length];
+                Class<?>[] values = new Class<?>[parameterTypeNames.length];
                 for(int i = 0; i < values.length; i++) {
                     try{
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()){
@@ -81,7 +81,7 @@
     }
     @Override
     protected void initializeMethod() throws DescriptorException {
-        Class tempClass;
+        Class<?> tempClass;
         if (this.getFactory() != null) {
             tempClass = this.getFactory().getClass();
         } else if (this.getFactoryClass() == null) {
@@ -90,7 +90,7 @@
             tempClass = this.getFactoryClass();
         }
         if(this.parameterTypes == null) {
-            this.setMethod(this.buildMethod(tempClass, this.getMethodName(), new Class[0]));
+            this.setMethod(this.buildMethod(tempClass, this.getMethodName(), new Class<?>[0]));
         } else {
             this.setMethod(this.buildMethod(tempClass, this.getMethodName(), this.parameterTypes));
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/ObjectGraphImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/ObjectGraphImpl.java
index 604d269..fe56e92 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/ObjectGraphImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/ObjectGraphImpl.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
@@ -34,7 +34,7 @@
         this.attributeNodes = new HashMap<String, AttributeNode>();
     }
     @Override
-    public Class getClassType() {
+    public Class<?> getClassType() {
         return attributeGroup.getType();
     }
 
@@ -65,7 +65,7 @@
     }
 
     @Override
-    public Subgraph addSubgraph(String attribute, Class type) {
+    public Subgraph addSubgraph(String attribute, Class<?> type) {
         CoreAttributeGroup group = new CoreAttributeGroup(null, type, true);
         if(attributeGroup.getItem(attribute) == null) {
             AttributeNodeImpl impl = new AttributeNodeImpl(attribute);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/WrappedValue.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/WrappedValue.java
index 17df64f..d6d51be 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/WrappedValue.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/WrappedValue.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 boolean setValue;
 
-    public WrappedValue(QName name, Class declaredType, Object value) {
+    public WrappedValue(QName name, Class<?> declaredType, Object value) {
         super(name, declaredType, value);
         this.setValue = false;
     }
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 b02d422..b4fff8a 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<Object> boundType = Object.class;
-    protected Class<Object> valueType = Object.class;
+    protected Class<?> boundType = Object.class;
+    protected Class<?> valueType = Object.class;
     protected Class<?> xmlAdapterClass;
     protected String xmlAdapterClassName;
     protected XmlAdapter xmlAdapter;
@@ -71,7 +71,7 @@
      * converter.
      *
      */
-    public XMLJavaTypeConverter(Class xmlAdapterClass) {
+    public XMLJavaTypeConverter(Class<?> xmlAdapterClass) {
         setXmlAdapterClass(xmlAdapterClass);
     }
 
@@ -92,7 +92,7 @@
      * will occur during marshal.
      *
      */
-    public XMLJavaTypeConverter(Class xmlAdapterClass, QName schemaType) {
+    public XMLJavaTypeConverter(Class<?> xmlAdapterClass, QName schemaType) {
         setSchemaType(schemaType);
         setXmlAdapterClass(xmlAdapterClass);
     }
@@ -203,7 +203,7 @@
      *
      * @return xmlAdapterClass
      */
-    public Class getXmlAdapterClass() {
+    public Class<?> getXmlAdapterClass() {
         return xmlAdapterClass;
     }
 
@@ -259,9 +259,9 @@
             } catch (IllegalAccessException e) {
                 Constructor ctor = null;
                 if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
-                        ctor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(xmlAdapterClass, new Class[0], true));
+                        ctor = AccessController.doPrivileged(new PrivilegedGetConstructorFor<>(xmlAdapterClass, new Class<?>[0], true));
                 } else {
-                    ctor = PrivilegedAccessHelper.getDeclaredConstructorFor(xmlAdapterClass, new Class[0], true);
+                    ctor = PrivilegedAccessHelper.getDeclaredConstructorFor(xmlAdapterClass, new Class<?>[0], true);
                 }
                 xmlAdapter = (XmlAdapter) PrivilegedAccessHelper.invokeConstructor(ctor, new Object[0]);
             }
@@ -280,7 +280,7 @@
         Type[] parameterizedTypeArguments = GenericsClassHelper.getParameterizedTypeArguments(xmlAdapterClass, XmlAdapter.class);
 
         if (null != parameterizedTypeArguments) {
-            Class valueTypeClass = GenericsClassHelper.getClassOfType(parameterizedTypeArguments[0]);
+            Class<?> valueTypeClass = GenericsClassHelper.getClassOfType(parameterizedTypeArguments[0]);
             if (null != valueTypeClass) {
                 valueType = valueTypeClass;
             }
@@ -288,7 +288,7 @@
                 valueType = Object.class; // during unmarshalling we'll need to instantiate this, so -> no interfaces
             }
 
-            Class boundTypeClass = GenericsClassHelper.getClassOfType(parameterizedTypeArguments[1]);
+            Class<?> boundTypeClass = GenericsClassHelper.getClassOfType(parameterizedTypeArguments[1]);
             if (null != boundTypeClass) {
                 boundType = boundTypeClass;
             }
@@ -315,7 +315,7 @@
      * Set the XmlAdapter class to be used with this converter.
      *
      */
-    public void setXmlAdapterClass(Class xmlAdapterClass) {
+    public void setXmlAdapterClass(Class<?> xmlAdapterClass) {
         this.xmlAdapterClass = xmlAdapterClass;
     }
 
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 8b8e83b..c57de8e 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
@@ -73,7 +73,7 @@
     JsonSchema schema;
     Map contextProperties;
     String attributePrefix;
-    Class rootClass;
+    Class<?> rootClass;
     boolean namespaceAware;
     NamespaceResolver resolver;
     String NAMESPACE_SEPARATOR = ".";
@@ -113,13 +113,13 @@
         }
     }
 
-    public JsonSchema generateSchema(Class rootClass) {
+    public JsonSchema generateSchema(Class<?> rootClass) {
         this.rootClass = rootClass;
         schema = new JsonSchema();
         schema.setTitle(rootClass.getName());
 
         if(rootClass.isEnum()) {
-            Class generatedWrapper = jaxbContext.getClassToGeneratedClasses().get(rootClass.getName());
+            Class<?> generatedWrapper = jaxbContext.getClassToGeneratedClasses().get(rootClass.getName());
             if(generatedWrapper != null) {
                 rootClass = generatedWrapper;
             } else {
@@ -144,14 +144,14 @@
         if(rootClass.isArray() || isCollection(rootClass)) {
             schema.setType(JsonType.ARRAY);
             schema.setItems(new Property());
-            Class<Object> itemType = Object.class;
+            Class<?> itemType = Object.class;
 
             if(rootClass.isArray()) {
                 itemType = rootClass.getComponentType();
             } else {
                 Type pType = rootClass.getGenericSuperclass();
                 if(pType instanceof ParameterizedType) {
-                    itemType = (Class)((ParameterizedType)pType).getActualTypeArguments()[0];
+                    itemType = (Class<?>)((ParameterizedType)pType).getActualTypeArguments()[0];
                 }
             }
             rootType = getJsonTypeForJavaType(itemType);
@@ -330,7 +330,7 @@
                 if(directMapping.getValueConverter() instanceof JAXBEnumTypeConverter) {
                     return JsonType.ENUMTYPE;
                 }
-                Class type = directMapping.getAttributeElementClass();
+                Class<?> type = directMapping.getAttributeElementClass();
                 if(type == null) {
                     type = CoreClassConstants.STRING;
                 }
@@ -452,7 +452,7 @@
                     String propertyName = getNameForFragment(frag);
 
                     XMLField targetField = (XMLField) mapping.getSourceToTargetKeyFieldAssociations().get(nextField);
-                    Class<String> type = CoreClassConstants.STRING;
+                    Class<?> type = CoreClassConstants.STRING;
                     if(reference != null) {
                         type = getTypeForTargetField(targetField, reference);
                     }
@@ -530,7 +530,7 @@
                 if(enumeration != null) {
                     nestedProperty.getItem().setEnumeration(enumeration);
                 }
-                Class type = mapping.getAttributeElementClass();
+                Class<?> type = mapping.getAttributeElementClass();
                 if(type == null) {
                     type = CoreClassConstants.STRING;
                 }
@@ -625,7 +625,7 @@
                     XPathFragment frag = nextField.getXPathFragment();
                     String propName = getNameForFragment(frag);
                     XMLField targetField = (XMLField) mapping.getSourceToTargetKeyFieldAssociations().get(nextField);
-                    Class<String> type = CoreClassConstants.STRING;
+                    Class<?> type = CoreClassConstants.STRING;
                     if(reference != null) {
                         type = getTypeForTargetField(targetField, reference);
                     }
@@ -807,7 +807,7 @@
         return referenceName;
     }
 
-    private Class getTypeForTargetField(XMLField targetField, XMLDescriptor reference) {
+    private Class<?> getTypeForTargetField(XMLField targetField, XMLDescriptor reference) {
         for(DatabaseMapping next: reference.getMappings()) {
             if(next.isDirectToFieldMapping()) {
                 DirectMapping directMapping = (DirectMapping)next;
@@ -819,7 +819,7 @@
         return null;
     }
 
-    private JsonType getJsonTypeForJavaType(Class attributeClassification) {
+    private JsonType getJsonTypeForJavaType(Class<?> attributeClassification) {
         if(attributeClassification.isEnum()) {
             return JsonType.ENUMTYPE;
         }
@@ -920,7 +920,7 @@
         return this.xopIncludeProp;
     }
 
-    private boolean isCollection(Class type) {
+    private boolean isCollection(Class<?> type) {
         if (CoreClassConstants.Collection_Class.isAssignableFrom(type)
                 || CoreClassConstants.List_Class.isAssignableFrom(type)
                 || CoreClassConstants.Set_Class.isAssignableFrom(type)) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/JAXBArrayAttributeAccessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/JAXBArrayAttributeAccessor.java
index 2c951f2..e63933c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/JAXBArrayAttributeAccessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/JAXBArrayAttributeAccessor.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
@@ -34,7 +34,7 @@
     private CoreAttributeAccessor nestedAccessor;
     private CoreContainerPolicy containerPolicy;
     private String componentClassName;
-    private Class componentClass;
+    private Class<?> componentClass;
     private String adaptedClassName;
     private Class<? extends ManyValue> adaptedClass;
     private ClassLoader classLoader;
@@ -103,7 +103,7 @@
     }
 
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         nestedAccessor.initializeAttributes(theJavaClass);
         if (adaptedClass == null && adaptedClassName != null) {
             try {
@@ -121,11 +121,11 @@
         }
     }
 
-    public void setAdaptedClass(Class adaptedClass) {
-        this.adaptedClass = componentClass;
+    public void setAdaptedClass(Class<? extends ManyValue> adaptedClass) {
+        this.adaptedClass = adaptedClass;
     }
 
-    public void setComponentClass(Class componentClass) {
+    public void setComponentClass(Class<?> componentClass) {
         this.componentClass = componentClass;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MapValueAttributeAccessor.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MapValueAttributeAccessor.java
index 0f7033b..4288757 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MapValueAttributeAccessor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/internal/jaxb/many/MapValueAttributeAccessor.java
@@ -33,12 +33,12 @@
 
     private CoreAttributeAccessor nestedAccessor;
     private String mapClassName;
-    private Class mapClass;
+    private Class<?> mapClass;
     private CoreContainerPolicy containerPolicy;
-    private Class generatedEntryClass;
+    private Class<?> generatedEntryClass;
     private ClassLoader classLoader;
 
-    public MapValueAttributeAccessor(CoreAttributeAccessor nestedAccessor, CoreContainerPolicy cp, Class generatedEntryClass, String mapClassName, ClassLoader classLoader) {
+    public MapValueAttributeAccessor(CoreAttributeAccessor nestedAccessor, CoreContainerPolicy cp, Class<?> generatedEntryClass, String mapClassName, ClassLoader classLoader) {
         this.nestedAccessor = nestedAccessor;
         this.mapClassName = mapClassName;
         this.containerPolicy = cp;
@@ -94,7 +94,7 @@
     }
 
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         nestedAccessor.initializeAttributes(theJavaClass);
 
         if(mapClassName.equals("java.util.Map")){
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 2e88dc0..2df447b 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
@@ -370,7 +370,7 @@
         }
     }
 
-    public void generateJsonSchema(SchemaOutputResolver outputResolver, Class rootClass) {
+    public void generateJsonSchema(SchemaOutputResolver outputResolver, Class<?> rootClass) {
         JsonSchemaGenerator generator = new JsonSchemaGenerator(this, this.contextState.properties);
         JsonSchema schema = generator.generateSchema(rootClass);
         try {
@@ -383,7 +383,7 @@
 
     private Marshaller getJsonSchemaMarshaller() throws jakarta.xml.bind.JAXBException {
         if (this.jsonSchemaMarshaller == null) {
-            JAXBContext ctx = (JAXBContext) JAXBContextFactory.createContext(new Class[] { JsonSchema.class }, null);
+            JAXBContext ctx = (JAXBContext) JAXBContextFactory.createContext(new Class<?>[] { JsonSchema.class }, null);
             this.jsonSchemaMarshaller = ctx.createMarshaller();
             this.jsonSchemaMarshaller.setProperty(MarshallerProperties.MEDIA_TYPE, MediaType.APPLICATION_JSON);
             this.jsonSchemaMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
@@ -483,7 +483,7 @@
      * INTERNAL:
      * Set the map containing which QName corresponds to which generated class.
      */
-    public void setQNameToGeneratedClasses(HashMap<QName, Class> qNameToClass) {
+    public void setQNameToGeneratedClasses(HashMap<QName, Class<?>> qNameToClass) {
         contextState.setQNameToGeneratedClasses(qNameToClass);
     }
 
@@ -491,7 +491,7 @@
      * INTERNAL:
      * Get the map containing which Class (by name) corresponds to which generated class.
      */
-    public Map<String, Class> getClassToGeneratedClasses() {
+    public Map<String, Class<?>> getClassToGeneratedClasses() {
         return contextState.getClassToGeneratedClasses();
     }
 
@@ -499,7 +499,7 @@
      * INTERNAL:
      * Set the map containing which Class (by name) corresponds to which generated class.
      */
-    public void setClassToGeneratedClasses(HashMap<String, Class> classToClass) {
+    public void setClassToGeneratedClasses(HashMap<String, Class<?>> classToClass) {
         contextState.setClassToGeneratedClasses(classToClass);
     }
 
@@ -515,7 +515,7 @@
      * INTERNAL:
      * Get the map of which QName corresponds to which declared class.
      */
-    public Map<QName, Class> getQNamesToDeclaredClasses() {
+    public Map<QName, Class<?>> getQNamesToDeclaredClasses() {
         return contextState.getQNamesToDeclaredClasses();
     }
 
@@ -523,7 +523,7 @@
      * INTERNAL:
      * Get the map of which QName corresponds to which generated class.
      */
-    Map<QName, Class> getQNameToGeneratedClasses() {
+    Map<QName, Class<?>> getQNameToGeneratedClasses() {
         return contextState.getQNameToGeneratedClasses();
     }
 
@@ -531,7 +531,7 @@
      *  INTERNAL:
      *  Set the map of which QName corresponds to which declared class.
      */
-    public void setQNamesToDeclaredClasses(HashMap<QName, Class> nameToDeclaredClasses) {
+    public void setQNamesToDeclaredClasses(HashMap<QName, Class<?>> nameToDeclaredClasses) {
         contextState.setQNamesToDeclaredClasses(nameToDeclaredClasses);
     }
 
@@ -539,7 +539,7 @@
      * INTERNAL:
      * Get the map for which array class (by name) corresponds to which generated class
      */
-    public Map<String, Class> getArrayClassesToGeneratedClasses() {
+    public Map<String, Class<?>> getArrayClassesToGeneratedClasses() {
         if (contextState.getGenerator() == null) {
             return null;
         }
@@ -550,7 +550,7 @@
      * INTERNAL:
      * Get the map for which collection class (by Type) corresponds to which generated class
      */
-    public Map<Type, Class> getCollectionClassesToGeneratedClasses() {
+    public Map<Type, Class<?>> getCollectionClassesToGeneratedClasses() {
         if (contextState.getGenerator() == null) {
             return null;
         }
@@ -590,7 +590,7 @@
         return contextState.getTypeToSchemaType();
     }
 
-    Map<TypeMappingInfo, Class> getTypeMappingInfoToGeneratedType() {
+    Map<TypeMappingInfo, Class<?>> getTypeMappingInfoToGeneratedType() {
         return contextState.getTypeMappingInfoToGeneratedType();
     }
 
@@ -608,9 +608,9 @@
 
     static class RootLevelXmlAdapter {
         private XmlAdapter xmlAdapter;
-        private Class boundType;
+        private Class<?> boundType;
 
-        public RootLevelXmlAdapter(XmlAdapter adapter, Class boundType) {
+        public RootLevelXmlAdapter(XmlAdapter adapter, Class<?> boundType) {
             this.xmlAdapter = adapter;
             this.boundType = boundType;
         }
@@ -619,7 +619,7 @@
             return xmlAdapter;
         }
 
-        public Class getBoundType() {
+        public Class<?> getBoundType() {
             return boundType;
         }
 
@@ -627,7 +627,7 @@
             this.xmlAdapter = xmlAdapter;
         }
 
-        public void setBoundType(Class boundType) {
+        public void setBoundType(Class<?> boundType) {
             this.boundType = boundType;
         }
     }
@@ -714,7 +714,7 @@
         return getXMLContext().createByXPath(parentObject, xPath, namespaceResolver, returnType);
     }
 
-    public ObjectGraph createObjectGraph(Class type) {
+    public ObjectGraph createObjectGraph(Class<?> type) {
         CoreAttributeGroup group = new CoreAttributeGroup(null, type, true);
         return new ObjectGraphImpl(group);
     }
@@ -729,7 +729,7 @@
         }
     }
 
-    protected JAXBElement createJAXBElementFromXMLRoot(Root xmlRoot, Class declaredType) {
+    protected JAXBElement createJAXBElementFromXMLRoot(Root xmlRoot, Class<?> declaredType) {
         Object value = xmlRoot.getObject();
 
         if (value instanceof List) {
@@ -751,22 +751,22 @@
 
         QName qname = new QName(xmlRoot.getNamespaceURI(), xmlRoot.getLocalName());
 
-        Map<QName, Class> qNamesToDeclaredClasses = getQNamesToDeclaredClasses();
+        Map<QName, Class<?>> qNamesToDeclaredClasses = getQNamesToDeclaredClasses();
         if (qNamesToDeclaredClasses != null && qNamesToDeclaredClasses.size() > 0) {
-            Class declaredClass = qNamesToDeclaredClasses.get(qname);
+            Class<?> declaredClass = qNamesToDeclaredClasses.get(qname);
             if (declaredClass != null) {
                 return createJAXBElement(qname, declaredClass, value);
             }
         }
 
-        Class xmlRootDeclaredType = xmlRoot.getDeclaredType();
+        Class<?> xmlRootDeclaredType = xmlRoot.getDeclaredType();
         if (xmlRootDeclaredType != null) {
             return createJAXBElement(qname, xmlRootDeclaredType, value);
         }
         return createJAXBElement(qname, declaredType, value);
     }
 
-    protected JAXBElement createJAXBElement(QName qname, Class theClass, Object value) {
+    protected JAXBElement createJAXBElement(QName qname, Class<?> theClass, Object value) {
         if (theClass == null) {
             return new JAXBElement(qname, Object.class, value);
         }
@@ -865,7 +865,7 @@
         @Override
         protected JAXBContextState createContextState() throws jakarta.xml.bind.JAXBException {
             boolean foundMetadata = false;
-            List<Class> classes = new ArrayList<>();
+            List<Class<?>> classes = new ArrayList<>();
 
             // Check properties map for eclipselink-oxm.xml entries
             Map<String, XmlBindings> xmlBindingMap = JAXBContextFactory.getXmlBindingsFromProperties(properties, classLoader);
@@ -916,7 +916,7 @@
                 }
             }
             if (foundMetadata) {
-                Class[] classArray = new Class[classes.size()];
+                Class<?>[] classArray = new Class<?>[classes.size()];
                 for (int i = 0; i < classes.size(); i++) {
                     classArray[i] = classes.get(i);
                 }
@@ -944,7 +944,7 @@
          * based on method parameters.  This method is useful when JAXB is used as
          * the binding layer for a Web Service provider.
          */
-        private JAXBContextState createContextState(Class[] classesToBeBound, Map<String, XmlBindings> xmlBindings) throws jakarta.xml.bind.JAXBException {
+        private JAXBContextState createContextState(Class<?>[] classesToBeBound, Map<String, XmlBindings> xmlBindings) throws jakarta.xml.bind.JAXBException {
             JaxbClassLoader loader = PrivilegedAccessHelper.shouldUsePrivilegedAccess()
                     ? AccessController.doPrivileged(new PrivilegedAction<JaxbClassLoader>() {
                         @Override
@@ -1033,8 +1033,8 @@
          * Convenience method that returns an array of Classes based on a map given XmlBindings and an
          * array of existing classes. The resulting array will not contain duplicate entries.
          */
-        private List<Class> getXmlBindingsClassesFromMap(Map<String, XmlBindings> xmlBindingMap, ClassLoader classLoader, List<Class> existingClasses) {
-            List<Class> additionalClasses = existingClasses;
+        private List<Class<?>> getXmlBindingsClassesFromMap(Map<String, XmlBindings> xmlBindingMap, ClassLoader classLoader, List<Class<?>> existingClasses) {
+            List<Class<?>> additionalClasses = existingClasses;
             // for each xmlBindings
             for (Entry<String, XmlBindings> entry : xmlBindingMap.entrySet()) {
                 additionalClasses = getXmlBindingsClasses(entry.getValue(), classLoader, additionalClasses);
@@ -1046,8 +1046,8 @@
          * Convenience method that returns a list of Classes based on a given XmlBindings and an array
          * of existing classes. The resulting array will not contain duplicate entries.
          */
-        private List<Class> getXmlBindingsClasses(XmlBindings xmlBindings, ClassLoader classLoader, List<Class> existingClasses) {
-            List<Class> additionalClasses = existingClasses;
+        private List<Class<?>> getXmlBindingsClasses(XmlBindings xmlBindings, ClassLoader classLoader, List<Class<?>> existingClasses) {
+            List<Class<?>> additionalClasses = existingClasses;
             JavaTypes jTypes = xmlBindings.getJavaTypes();
             if (jTypes != null) {
                 for (JavaType javaType : jTypes.getJavaType()) {
@@ -1064,9 +1064,9 @@
             return additionalClasses;
         }
 
-        private boolean isJAXB2ObjectFactory(Class objectFactoryClass, ClassLoader classLoader) {
+        private boolean isJAXB2ObjectFactory(Class<?> objectFactoryClass, ClassLoader classLoader) {
             try {
-                Class<Object> xmlRegistry = PrivilegedAccessHelper.getClassForName("jakarta.xml.bind.annotation.XmlRegistry", false, classLoader);
+                Class xmlRegistry = PrivilegedAccessHelper.getClassForName("jakarta.xml.bind.annotation.XmlRegistry", false, classLoader);
                 if (objectFactoryClass.isAnnotationPresent(xmlRegistry)) {
                     return true;
                 }
@@ -1102,7 +1102,7 @@
                     if (type instanceof Class) {
                         return ((Class)type).getCanonicalName();
                     } else if (type instanceof GenericArrayType) {
-                        Class genericTypeClass = (Class) ((GenericArrayType) type).getGenericComponentType();
+                        Class<?> genericTypeClass = (Class) ((GenericArrayType) type).getGenericComponentType();
                         return genericTypeClass.getCanonicalName();
                     } else {
                         // assume parameterized type
@@ -1214,7 +1214,7 @@
             for (TypeMappingInfo typeMappingInfo : typesToBeBound) {
                 Type classToLookup = typeMappingInfo.getType();
                 if (contextState.getTypeMappingInfoToGeneratedType() != null && contextState.getTypeMappingInfoToGeneratedType().size() > 0) {
-                    Class generatedClass = contextState.getTypeMappingInfoToGeneratedType().get(typeMappingInfo);
+                    Class<?> generatedClass = contextState.getTypeMappingInfoToGeneratedType().get(typeMappingInfo);
                     if (generatedClass != null) {
                         classToLookup = generatedClass;
                     }
@@ -1235,7 +1235,7 @@
         private static TypeMappingInfo[] getXmlBindingsClasses(XmlBindings xmlBindings, ClassLoader classLoader, TypeMappingInfo[] existingTypes) {
             JavaTypes jTypes = xmlBindings.getJavaTypes();
             if (jTypes != null) {
-                List<Class> existingClasses = new ArrayList<>(existingTypes.length);
+                List<Class<?>> existingClasses = new ArrayList<>(existingTypes.length);
                 for (TypeMappingInfo typeMappingInfo : existingTypes) {
                     Type type = typeMappingInfo.getType();
                     if (type == null) {
@@ -1243,7 +1243,7 @@
                     }
                     // ignore ParameterizedTypes
                     if (type instanceof Class) {
-                        Class cls = (Class) type;
+                        Class<?> cls = (Class) type;
                         existingClasses.add(cls);
                     }
                 }
@@ -1278,12 +1278,12 @@
 
         private XMLContext xmlContext;
         private org.eclipse.persistence.jaxb.compiler.Generator generator;
-        private Map<QName, Class> qNameToGeneratedClasses;
-        private Map<String, Class> classToGeneratedClasses;
-        private Map<QName, Class> qNamesToDeclaredClasses;
+        private Map<QName, Class<?>> qNameToGeneratedClasses;
+        private Map<String, Class<?>> classToGeneratedClasses;
+        private Map<QName, Class<?>> qNamesToDeclaredClasses;
         private Map<Type, QName> typeToSchemaType;
         private TypeMappingInfo[] boundTypes;
-        private Map<TypeMappingInfo, Class> typeMappingInfoToGeneratedType;
+        private Map<TypeMappingInfo, Class<?>> typeMappingInfoToGeneratedType;
         private Map<Type, TypeMappingInfo> typeToTypeMappingInfo;
         private Map<TypeMappingInfo, JAXBContext.RootLevelXmlAdapter> typeMappingInfoToJavaTypeAdapters;
         private Map properties;
@@ -1327,14 +1327,14 @@
             }
         }
 
-        private Map<TypeMappingInfo, JAXBContext.RootLevelXmlAdapter> createAdaptersForAdapterClasses(Map<TypeMappingInfo, Class> typeMappingInfoToAdapterClasses) {
+        private Map<TypeMappingInfo, JAXBContext.RootLevelXmlAdapter> createAdaptersForAdapterClasses(Map<TypeMappingInfo, Class<?>> typeMappingInfoToAdapterClasses) {
             Map<TypeMappingInfo, JAXBContext.RootLevelXmlAdapter> typeMappingInfoToAdapters = new HashMap<>();
-            for (Entry<TypeMappingInfo, Class> entry : typeMappingInfoToAdapterClasses.entrySet()) {
-                Class adapterClass = entry.getValue();
+            for (Entry<TypeMappingInfo, Class<?>> entry : typeMappingInfoToAdapterClasses.entrySet()) {
+                Class<?> adapterClass = entry.getValue();
                 if (adapterClass != null) {
                     try {
                         XmlAdapter adapter = (XmlAdapter) adapterClass.getConstructor().newInstance();
-                        Class boundType = getBoundTypeForXmlAdapterClass(adapterClass);
+                        Class<?> boundType = getBoundTypeForXmlAdapterClass(adapterClass);
                         RootLevelXmlAdapter rootLevelXmlAdapter = new RootLevelXmlAdapter(adapter, boundType);
 
                         typeMappingInfoToAdapters.put(entry.getKey(), rootLevelXmlAdapter);
@@ -1345,7 +1345,7 @@
             return typeMappingInfoToAdapters;
         }
 
-        private Class getBoundTypeForXmlAdapterClass(Class adapterClass) {
+        private Class<?> getBoundTypeForXmlAdapterClass(Class<?> adapterClass) {
             Class<Object> boundType = Object.class;
 
             for (Method method : PrivilegedAccessHelper.getDeclaredMethods(adapterClass)) {
@@ -1374,7 +1374,7 @@
         private void processRefClasses(List processed, Set refClasses, org.eclipse.persistence.internal.oxm.NamespaceResolver nr) {
             if (refClasses != null) {
                 for (Object refClass : refClasses) {
-                    Class nextClass = (Class) refClass;
+                    Class<?> nextClass = (Class) refClass;
                     Descriptor desc = (Descriptor) xmlContext.getSession().getProject().getDescriptor(nextClass);
                     processXMLDescriptor(processed, desc, nr);
                 }
@@ -1432,7 +1432,7 @@
             }
         }
 
-        private Map<String, Class> getClassToGeneratedClasses() {
+        private Map<String, Class<?>> getClassToGeneratedClasses() {
             return classToGeneratedClasses;
         }
 
@@ -1451,7 +1451,7 @@
             return typeToSchemaType;
         }
 
-        private Map<TypeMappingInfo, Class> getTypeMappingInfoToGeneratedType() {
+        private Map<TypeMappingInfo, Class<?>> getTypeMappingInfoToGeneratedType() {
             return this.typeMappingInfoToGeneratedType;
         }
 
@@ -1470,7 +1470,7 @@
             return generator.getAnnotationsProcessor().getTypeMappingInfosToSchemaTypes();
         }
 
-        private Map<QName, Class> getQNamesToDeclaredClasses() {
+        private Map<QName, Class<?>> getQNamesToDeclaredClasses() {
             return qNamesToDeclaredClasses;
         }
 
@@ -1487,7 +1487,7 @@
             if (type instanceof Class) {
                 name = generator.getAnnotationsProcessor().getUserDefinedSchemaTypes().get(((Class) type).getName());
                 if (name == null) {
-                    Class theClass = (Class) type;
+                    Class<?> theClass = (Class) type;
                     //Change default for byte[] to Base64 (JAXB 2.0 default)
                     if (type == CoreClassConstants.ABYTE || type == CoreClassConstants.APBYTE || type == Image.class || type == Source.class || theClass.getCanonicalName().equals("jakarta.activation.DataHandler")) {
                         name = Constants.BASE_64_BINARY_QNAME;
@@ -1503,7 +1503,7 @@
             return name;
         }
 
-        private Map<QName, Class> getQNameToGeneratedClasses() {
+        private Map<QName, Class<?>> getQNameToGeneratedClasses() {
             return qNameToGeneratedClasses;
         }
 
@@ -1537,7 +1537,7 @@
                             }
 
                             if (type == null && getTypeMappingInfoToGeneratedType() != null) {
-                                for (Entry<TypeMappingInfo, Class> entry : getTypeMappingInfoToGeneratedType().entrySet()) {
+                                for (Entry<TypeMappingInfo, Class<?>> entry : getTypeMappingInfoToGeneratedType().entrySet()) {
                                     if (entry.getValue().equals(javaClass)) {
                                         type = entry.getKey().getType();
                                         break;
@@ -1570,7 +1570,7 @@
             }
         }
 
-        private void setClassToGeneratedClasses(HashMap<String, Class> classToClass) {
+        private void setClassToGeneratedClasses(HashMap<String, Class<?>> classToClass) {
             this.classToGeneratedClasses = classToClass;
         }
 
@@ -1585,11 +1585,11 @@
             this.typeMappingInfoToJavaTypeAdapters = typeMappingInfoToAdapters;
         }
 
-        private void setQNamesToDeclaredClasses(HashMap<QName, Class> nameToDeclaredClasses) {
+        private void setQNamesToDeclaredClasses(HashMap<QName, Class<?>> nameToDeclaredClasses) {
             qNamesToDeclaredClasses = nameToDeclaredClasses;
         }
 
-        private void setQNameToGeneratedClasses(Map<QName, Class> qNameToClass) {
+        private void setQNameToGeneratedClasses(Map<QName, Class<?>> qNameToClass) {
             this.qNameToGeneratedClasses = qNameToClass;
         }
 
@@ -1705,7 +1705,7 @@
 
     private static void openToCore(JavaModelInputImpl input) {
         JavaClass[] javaClasses = input.getJavaClasses();
-        Set<Class> classes = new HashSet<>();
+        Set<Class<?>> classes = new HashSet<>();
         for (JavaClass jc: javaClasses) {
             classes.add(((JavaClassImpl) jc).getJavaClass());
         }
@@ -1715,13 +1715,13 @@
     //we need to open what has been opened to us either directly
     //or by jakarta.xml.bind API also to core on which we depend
     //to allow reflection access to code we use from that module
-    private static void openToCore(Collection<Class> classes) {
+    private static void openToCore(Collection<Class<?>> classes) {
         // need to open to core IF we're not eclipselink.jar
         if (NEEDS_OPEN) {
             final Module moxyModule = JAXBContext.class.getModule();
             final Module coreModule = Version.class.getModule();
-            for (Class cls : classes) {
-                Class jaxbClass = cls.isArray()
+            for (Class<?> cls : classes) {
+                Class<?> jaxbClass = cls.isArray()
                         ? cls.getComponentType() : cls;
 
                 final Module classModule = jaxbClass.getModule();
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBMarshaller.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBMarshaller.java
index 8e81fbb..8914a3f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBMarshaller.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBMarshaller.java
@@ -174,7 +174,7 @@
                 elt.getDeclaredType().getCanonicalName().equals("jakarta.activation.DataHandler") ||
                 elt.getDeclaredType().isEnum()) {
             // need a binary data mapping so need to wrap
-            Class generatedClass = getClassToGeneratedClasses().get(elt.getDeclaredType().getCanonicalName());
+            Class<?> generatedClass = getClassToGeneratedClasses().get(elt.getDeclaredType().getCanonicalName());
             if(!elt.getDeclaredType().isEnum()) {
                 xmlroot.setSchemaType(Constants.BASE_64_BINARY_QNAME);
             }
@@ -193,9 +193,9 @@
             xmlroot.setObject(elt);
             return xmlroot;
         }
-        Map<QName, Class> qNameToGeneratedClasses = jaxbContext.getQNameToGeneratedClasses();
+        Map<QName, Class<?>> qNameToGeneratedClasses = jaxbContext.getQNameToGeneratedClasses();
         if (qNameToGeneratedClasses != null) {
-            Class theClass = qNameToGeneratedClasses.get(qname);
+            Class<?> theClass = qNameToGeneratedClasses.get(qname);
             if (theClass != null && WrappedValue.class.isAssignableFrom(theClass)) {
                 ClassDescriptor desc = xmlMarshaller.getXMLContext().getSession(theClass).getDescriptor(theClass);
                 Object newObject = desc.getInstantiationPolicy().buildNewInstance();
@@ -205,7 +205,7 @@
             }
         }
 
-        Class generatedClass = null;
+        Class<?> generatedClass = null;
         if (jaxbContext.getTypeMappingInfoToGeneratedType() != null) {
             if (jaxbContext.getTypeToTypeMappingInfo() != null) {
                 if (elt.getDeclaredType() != null && elt.getDeclaredType().isArray()) {
@@ -391,8 +391,8 @@
         }
     }
 
-    private Object wrapEnumeration(Object object, Class enumerationClass) {
-        Class generatedClass = this.getClassToGeneratedClasses().get(enumerationClass.getName());
+    private Object wrapEnumeration(Object object, Class<?> enumerationClass) {
+        Class<?> generatedClass = this.getClassToGeneratedClasses().get(enumerationClass.getName());
         if (generatedClass != null && WrappedValue.class.isAssignableFrom(generatedClass)) {
             ClassDescriptor desc = xmlMarshaller.getXMLContext().getSession(generatedClass).getDescriptor(generatedClass);
             Object newObject = desc.getInstantiationPolicy().buildNewInstance();
@@ -684,7 +684,7 @@
 
     private Object wrapObject(Object object, JAXBElement wrapperElement, TypeMappingInfo typeMappingInfo) {
         if(jaxbContext.getTypeMappingInfoToGeneratedType().size() > 0){
-            Class generatedClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(typeMappingInfo);
+            Class<?> generatedClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(typeMappingInfo);
             if(generatedClass != null && object == null && wrapperElement != null) {
             return wrapObjectInXMLRoot(wrapperElement, null, typeMappingInfo);
             }
@@ -1027,7 +1027,7 @@
         this.xmlMarshaller.setSchema(schema);
     }
 
-    private Map<String, Class> getClassToGeneratedClasses() {
+    private Map<String, Class<?>> getClassToGeneratedClasses() {
         return jaxbContext.getClassToGeneratedClasses();
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypeElement.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypeElement.java
index 84e400e..83cfa44 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypeElement.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypeElement.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
@@ -45,7 +45,7 @@
      * @param value Object representing the value of an xml element.
      * @param type Class associated with this JAXBTypeElement.
      */
-    public JAXBTypeElement(QName name, Object value, Class type) {
+    public JAXBTypeElement(QName name, Object value, Class<?> type) {
         super(name, type, value);
         this.type = type;
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypesafeEnumConverter.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypesafeEnumConverter.java
index 3e77cd2..4a2cce5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypesafeEnumConverter.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBTypesafeEnumConverter.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 @@
  */
 public class JAXBTypesafeEnumConverter implements Converter {
     String enumClassName;
-    Class enumClass;
+    Class<?> enumClass;
     transient Method fromStringMethod;
 
     /**
@@ -91,7 +91,7 @@
             }
         }
         try {
-            fromStringMethod = PrivilegedAccessHelper.getMethod(enumClass, "fromString", new Class[] { String.class },true);
+            fromStringMethod = PrivilegedAccessHelper.getMethod(enumClass, "fromString", new Class<?>[] { String.class },true);
         } catch (Exception ex) {
             throw XMLMarshalException.errorInvokingFromStringMethod(ex, enumClass.getName());
         }
@@ -117,7 +117,7 @@
       * PUBLIC:
       * Set the enum class to know which class to invoke the fromValue method on.
       */
-    public void setEnumClass(Class enumClass) {
+    public void setEnumClass(Class<?> enumClass) {
         this.enumClass = enumClass;
     }
 
@@ -125,7 +125,7 @@
     * PUBLIC:
     * Get the class which was set as the enum class which contains the fromValue method.
     */
-    public Class getEnumClass() {
+    public Class<?> getEnumClass() {
         return enumClass;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBUnmarshaller.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBUnmarshaller.java
index 8351fe1..1af84c2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBUnmarshaller.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/JAXBUnmarshaller.java
@@ -243,7 +243,7 @@
         }
     }
 
-    private JAXBElement validateAndBuildJAXBElement(Object obj, Class declaredClass) throws BeanValidationException {
+    private JAXBElement validateAndBuildJAXBElement(Object obj, Class<?> declaredClass) throws BeanValidationException {
         if (beanValidator != null && beanValidator.shouldValidate(obj, beanValidationMode, prefValidatorFactory, bvNoOptimisation)) {
             beanValidator.validate(obj, beanValidationGroups);
         }
@@ -259,7 +259,7 @@
      * prefix will be resolved, and a QName created.
      *
      */
-    private JAXBElement buildJAXBElementFromObject(Object obj, Class declaredClass) {
+    private JAXBElement buildJAXBElementFromObject(Object obj, Class<?> declaredClass) {
         // if an XMLRoot was returned, the root element != the default root
         // element of the object being marshalled to - need to create a
         // JAXBElement from the returned XMLRoot object
@@ -316,9 +316,9 @@
             throw new IllegalArgumentException();
         }
         try {
-            Class classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
+            Class<?> classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
             if(jaxbContext.getArrayClassesToGeneratedClasses() != null) {
-                Class generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(javaClass.getCanonicalName());
+                Class<?> generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(javaClass.getCanonicalName());
                 if(generatedClass != null){
                     classToUnmarshalTo = generatedClass;
                 }
@@ -346,7 +346,7 @@
         if(null == javaClass) {
             throw new IllegalArgumentException();
         }
-        Class classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
+        Class<?> classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
 
         try {
             return validateAndBuildJAXBElement(xmlUnmarshaller.unmarshal(source, classToUnmarshalTo), javaClass); // json object + xml bindings
@@ -355,10 +355,10 @@
         }
     }
 
-    private JAXBElement unmarshal(Source source, Class javaClass, Class declaredType) {
-        Class classToUnmarshalTo = javaClass;
+    private JAXBElement unmarshal(Source source, Class<?> javaClass, Class<?> declaredType) {
+        Class<?> classToUnmarshalTo = javaClass;
         if(jaxbContext.getArrayClassesToGeneratedClasses() != null) {
-            Class generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(javaClass.getCanonicalName());
+            Class<?> generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(javaClass.getCanonicalName());
             if(generatedClass != null){
                 classToUnmarshalTo = generatedClass;
             }
@@ -378,10 +378,10 @@
                 }
             }
 
-            Class unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
+            Class<?> unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
             if(unmarshalClass != null){
                 JAXBElement unmarshalled =  unmarshal(source, unmarshalClass, Object.class);
-                Class declaredClass;
+                Class<?> declaredClass;
                 if(type instanceof Class){
                     declaredClass = (Class)type;
                 }else{
@@ -404,11 +404,11 @@
      */
     public JAXBElement unmarshal(Source source, TypeMappingInfo type) throws JAXBException {
         try {
-            Class unmarshalClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(type);
+            Class<?> unmarshalClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(type);
             RootLevelXmlAdapter adapter = jaxbContext.getTypeMappingInfoToJavaTypeAdapters().get(type);
             if(unmarshalClass != null){
                 JAXBElement unmarshalled = unmarshal(source, unmarshalClass);
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type.getType() instanceof Class){
                     declaredClass = (Class)type.getType();
                 }else{
@@ -459,7 +459,7 @@
                 staxReader.parse(inputSource);
                 return primitiveContentHandler.getJaxbElement();
             }
-            Class classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
+            Class<?> classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
             JAXBElement unmarshalled = validateAndBuildJAXBElement(xmlUnmarshaller.unmarshal(staxReader, inputSource, classToUnmarshalTo), javaClass); // xmlbindings + object (xmlelement) + "nomappings.SomeClass" + "jaxb.stax.EndEventRoot"
 
             if(classToUnmarshalTo != javaClass){
@@ -486,10 +486,10 @@
                 }
             }
 
-            Class unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
+            Class<?> unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
             if(unmarshalClass != null){
                 JAXBElement unmarshalled = unmarshal(streamReader, unmarshalClass);
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type instanceof Class){
                     declaredClass = (Class)type;
                 }else{
@@ -516,8 +516,8 @@
             Descriptor xmlDescriptor = type.getXmlDescriptor();
 
             if (type.getType() instanceof Class) {
-                Class javaClass = (Class) type.getType();
-                Class componentClass = javaClass.getComponentType();
+                Class<?> javaClass = (Class) type.getType();
+                Class<?> componentClass = javaClass.getComponentType();
                 if (javaClass.isArray() && javaClass != CoreClassConstants.APBYTE && javaClass != CoreClassConstants.ABYTE && XMLConversionManager.getDefaultJavaTypes().get(componentClass) != null) {
                     // Top-level array.  Descriptor will be for an EL-generated class, containing one DirectCollection mapping.
                     DirectCollectionMapping mapping = (DirectCollectionMapping) xmlDescriptor.getMappings().get(0);
@@ -566,7 +566,7 @@
                         throw new JAXBException(XMLMarshalException.marshalException(ex));
                     }
                 }
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type.getType() instanceof Class){
                     declaredClass = (Class)type.getType();
                 }else{
@@ -581,14 +581,14 @@
             if(jaxbContext.getTypeMappingInfoToJavaTypeAdapters().size() >0){
                 adapter = jaxbContext.getTypeMappingInfoToJavaTypeAdapters().get(type);
             }
-            Class unmarshalClass = null;
+            Class<?> unmarshalClass = null;
             if(jaxbContext.getTypeMappingInfoToGeneratedType().size() >0){
                 unmarshalClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(type);
             }
 
             if(unmarshalClass != null){
                 JAXBElement unmarshalled = unmarshal(streamReader, unmarshalClass);
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type.getType() instanceof Class){
                     declaredClass = (Class)type.getType();
                 }else{
@@ -650,7 +650,7 @@
             throw new IllegalArgumentException();
         }
         try {
-            Class classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
+            Class<?> classToUnmarshalTo = getClassToUnmarshalTo(javaClass);
             XMLEventReaderReader staxReader = new XMLEventReaderReader(xmlUnmarshaller);
             XMLEventReaderInputSource inputSource = new XMLEventReaderInputSource(eventReader);
             JAXBElement unmarshalled =  validateAndBuildJAXBElement(xmlUnmarshaller.unmarshal(staxReader, inputSource, classToUnmarshalTo), javaClass); // json object + xml bindings
@@ -676,10 +676,10 @@
                     return unmarshal(eventReader, tmi);
                 }
             }
-            Class unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
+            Class<?> unmarshalClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(type);
             if(unmarshalClass != null){
                 JAXBElement unmarshalled = unmarshal(eventReader, unmarshalClass);
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type instanceof Class){
                     declaredClass = (Class)type;
                 }else{
@@ -706,11 +706,11 @@
                 return unmarshal(eventReader, type.getType());
             }
 
-            Class unmarshalClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(type);
+            Class<?> unmarshalClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(type);
             RootLevelXmlAdapter adapter = jaxbContext.getTypeMappingInfoToJavaTypeAdapters().get(type);
             if(unmarshalClass != null){
                 JAXBElement unmarshalled = unmarshal(eventReader, unmarshalClass);
-                Class declaredClass = null;
+                Class<?> declaredClass = null;
                 if(type.getType() instanceof Class){
                     declaredClass = (Class)type.getType();
                 }else{
@@ -1099,16 +1099,16 @@
         return jaxbContext;
     }
 
-    private Class getClassToUnmarshalTo(Class originalClass) {
-        Class classToUnmarshalTo = originalClass;
+    private Class<?> getClassToUnmarshalTo(Class<?> originalClass) {
+        Class<?> classToUnmarshalTo = originalClass;
         if(jaxbContext.getArrayClassesToGeneratedClasses() != null && jaxbContext.getArrayClassesToGeneratedClasses().size() >0) {
-            Class generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(originalClass.getCanonicalName());
+            Class<?> generatedClass = jaxbContext.getArrayClassesToGeneratedClasses().get(originalClass.getCanonicalName());
             if(generatedClass != null){
                 classToUnmarshalTo = generatedClass;
             }
         }
         if(jaxbContext.getCollectionClassesToGeneratedClasses() != null && jaxbContext.getCollectionClassesToGeneratedClasses().size() >0){
-            Class generatedClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(originalClass);
+            Class<?> generatedClass = jaxbContext.getCollectionClassesToGeneratedClasses().get(originalClass);
             if(generatedClass != null){
                 classToUnmarshalTo = generatedClass;
             }
@@ -1116,7 +1116,7 @@
         if(jaxbContext.getTypeToTypeMappingInfo() != null){
             TypeMappingInfo tmi = jaxbContext.getTypeToTypeMappingInfo().get(originalClass);
             if(tmi != null && jaxbContext.getTypeMappingInfoToGeneratedType() != null) {
-                Class generatedClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(tmi);
+                Class<?> generatedClass = jaxbContext.getTypeMappingInfoToGeneratedType().get(tmi);
                 if(generatedClass != null){
                     classToUnmarshalTo = generatedClass;
                 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/ObjectGraph.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/ObjectGraph.java
index 7d8db77..1511bd2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/ObjectGraph.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/ObjectGraph.java
@@ -72,7 +72,7 @@
      * @throws IllegalStateException
      *             if this EntityGraph has been statically defined
      */
-    Subgraph addSubgraph(String attribute, Class type);
+    Subgraph addSubgraph(String attribute, Class<?> type);
 
     /*
      * returns the attributes of this entity that are included in the entity
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/Subgraph.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/Subgraph.java
index b04b98a..46422ee 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/Subgraph.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/Subgraph.java
@@ -61,7 +61,7 @@
      * @throws IllegalStateException
      *             if this EntityGraph has been statically defined
      */
-    Subgraph addSubgraph(String attribute, Class type);
+    Subgraph addSubgraph(String attribute, Class<?> type);
 
 
 
@@ -75,5 +75,5 @@
      * returns the type of this sub-graph if it was used to extend a superclass
      * sub-graph definition.
      */
-    Class getClassType();
+    Class<?> getClassType();
 }
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 6fd7c97..cd4a381 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
@@ -241,13 +241,13 @@
     private List<String> objectFactoryClassNames;
     private List<JavaClass> classesToProcessPropertyTypes;
 
-    private Map<String, Class> arrayClassesToGeneratedClasses;
-    private Map<Class, JavaClass> generatedClassesToArrayClasses;
-    private Map<java.lang.reflect.Type, Class> collectionClassesToGeneratedClasses;
-    private Map<Class, java.lang.reflect.Type> generatedClassesToCollectionClasses;
+    private Map<String, Class<?>> arrayClassesToGeneratedClasses;
+    private Map<Class<?>, JavaClass> generatedClassesToArrayClasses;
+    private Map<java.lang.reflect.Type, Class<?>> collectionClassesToGeneratedClasses;
+    private Map<Class<?>, java.lang.reflect.Type> generatedClassesToCollectionClasses;
     private Map<JavaClass, List<TypeMappingInfo>> javaClassToTypeMappingInfos;
-    private Map<TypeMappingInfo, Class> typeMappingInfosToGeneratedClasses;
-    private Map<TypeMappingInfo, Class> typeMappingInfoToAdapterClasses;
+    private Map<TypeMappingInfo, Class<?>> typeMappingInfosToGeneratedClasses;
+    private Map<TypeMappingInfo, Class<?>> typeMappingInfoToAdapterClasses;
     private Map<TypeMappingInfo, QName> typeMappingInfosToSchemaTypes;
 
     private Helper helper;
@@ -320,8 +320,8 @@
                         boolean xmlAttachmentRef = false;
                         String xmlMimeType = null;
                         java.lang.annotation.Annotation[] annotations = getAnnotations(nextInfo);
-                        Class adapterClass = typeMappingInfoToAdapterClasses.get(nextInfo);
-                        Class declJavaType = null;
+                        Class<?> adapterClass = typeMappingInfoToAdapterClasses.get(nextInfo);
+                        Class<?> declJavaType = null;
                         if (adapterClass != null) {
                             declJavaType = CompilerHelper.getTypeFromAdapterClass(adapterClass);
                         }
@@ -350,7 +350,7 @@
                         }
 
                         if (typeMappingInfosToGeneratedClasses != null) {
-                            Class generatedClass = typeMappingInfosToGeneratedClasses.get(nextInfo);
+                            Class<?> generatedClass = typeMappingInfosToGeneratedClasses.get(nextInfo);
                             if (generatedClass != null) {
                                 nextClassName = generatedClass.getCanonicalName();
                             }
@@ -373,7 +373,7 @@
                                 } else if (nextClassName.equals(ClassConstants.XML_GREGORIAN_CALENDAR.getName())) {
                                     qname = Constants.ANY_SIMPLE_TYPE_QNAME;
                                 } else {
-                                    Class theClass = helper.getClassForJavaClass(nextClass);
+                                    Class<?> theClass = helper.getClassForJavaClass(nextClass);
                                     qname = XMLConversionManager.getDefaultJavaTypes().get(theClass);
                                 }
                             }
@@ -393,7 +393,7 @@
                             if (declJavaType != null) {
                                 element.setJavaType(helper.getJavaClass(declJavaType));
                             }
-                            Class generatedClass = typeMappingInfosToGeneratedClasses.get(nextInfo);
+                            Class<?> generatedClass = typeMappingInfosToGeneratedClasses.get(nextInfo);
                             if (generatedClass != null) {
                                 element.setJavaType(helper.getJavaClass(generatedClass));
                             }
@@ -444,13 +444,13 @@
 
             // unmarshal the node into an XmlElement
             org.eclipse.persistence.jaxb.xmlmodel.XmlElement xElt = CompilerHelper.getXmlElement(tmInfo.getXmlElement(), loader);
-            List annotations = new ArrayList();
+            List<Annotation> annotations = new ArrayList<>();
             // where applicable, a given dynamic proxy will contain a Map of
             // method name/return value entries
             Map<String, Object> components = null;
             // handle @XmlElement: set 'type' method
             if (!(xElt.getType().equals("jakarta.xml.bind.annotation.XmlElement.DEFAULT"))) {
-                components = new HashMap<String, Object>();
+                components = new HashMap<>();
                 components.put(TYPE_METHOD_NAME, xElt.getType());
                 annotations.add(AnnotationProxy.getProxy(components, XmlElement.class, loader, cMgr));
             }
@@ -464,19 +464,19 @@
             }
             // handle @XmlMimeType: set 'value' method
             if (xElt.getXmlMimeType() != null) {
-                components = new HashMap<String, Object>();
+                components = new HashMap<>();
                 components.put(VALUE_METHOD_NAME, xElt.getXmlMimeType());
                 annotations.add(AnnotationProxy.getProxy(components, XmlMimeType.class, loader, cMgr));
             }
             // handle @XmlJavaTypeAdapter: set 'type' and 'value' methods
             if (xElt.getXmlJavaTypeAdapter() != null) {
-                components = new HashMap<String, Object>();
+                components = new HashMap<>();
                 components.put(TYPE_METHOD_NAME, xElt.getXmlJavaTypeAdapter().getType());
                 components.put(VALUE_METHOD_NAME, xElt.getXmlJavaTypeAdapter().getValue());
                 annotations.add(AnnotationProxy.getProxy(components, XmlJavaTypeAdapter.class, loader, cMgr));
             }
             // return the newly created array of dynamic proxy objects
-            return (java.lang.annotation.Annotation[]) annotations.toArray(new java.lang.annotation.Annotation[annotations.size()]);
+            return annotations.toArray(new Annotation[annotations.size()]);
         }
         // no xml-element set on the info, (i.e. no xml overrides) so return the
         // array of Annotation objects
@@ -488,38 +488,38 @@
      * of classes via preBuildTypeInfo, postBuildTypeInfo, processJavaClasses.
      */
     void init(JavaClass[] classes, TypeMappingInfo[] typeMappingInfos) {
-        typeInfoClasses = new ArrayList<JavaClass>();
-        referencedByTransformer = new ArrayList<String>();
-        typeInfos = new HashMap<String, TypeInfo>();
-        typeQNames = new ArrayList<QName>();
-        classesToProcessPropertyTypes = new ArrayList<JavaClass>();
-        objectFactoryClassNames = new ArrayList<String>();
-        userDefinedSchemaTypes = new HashMap<String, QName>();
+        typeInfoClasses = new ArrayList<>();
+        referencedByTransformer = new ArrayList<>();
+        typeInfos = new HashMap<>();
+        typeQNames = new ArrayList<>();
+        classesToProcessPropertyTypes = new ArrayList<>();
+        objectFactoryClassNames = new ArrayList<>();
+        userDefinedSchemaTypes = new HashMap<>();
         if (packageToPackageInfoMappings == null) {
-            packageToPackageInfoMappings = new HashMap<String, PackageInfo>();
+            packageToPackageInfoMappings = new HashMap<>();
         }
-        this.factoryMethods = new HashMap<String, JavaMethod>();
-        this.xmlRegistries = new HashMap<String, org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry>();
-        this.xmlRootElements = new HashMap<String, ElementDeclaration>();
+        this.factoryMethods = new HashMap<>();
+        this.xmlRegistries = new HashMap<>();
+        this.xmlRootElements = new HashMap<>();
 
-        arrayClassesToGeneratedClasses = new HashMap<String, Class>();
-        collectionClassesToGeneratedClasses = new HashMap<java.lang.reflect.Type, Class>();
-        generatedClassesToArrayClasses = new HashMap<Class, JavaClass>();
-        generatedClassesToCollectionClasses = new HashMap<Class, java.lang.reflect.Type>();
-        typeMappingInfosToGeneratedClasses = new HashMap<TypeMappingInfo, Class>();
-        typeMappingInfosToSchemaTypes = new HashMap<TypeMappingInfo, QName>();
-        elementDeclarations = new HashMap<String, Map<QName, ElementDeclaration>>();
+        arrayClassesToGeneratedClasses = new HashMap<>();
+        collectionClassesToGeneratedClasses = new HashMap<>();
+        generatedClassesToArrayClasses = new HashMap<>();
+        generatedClassesToCollectionClasses = new HashMap<>();
+        typeMappingInfosToGeneratedClasses = new HashMap<>();
+        typeMappingInfosToSchemaTypes = new HashMap<>();
+        elementDeclarations = new HashMap<>();
         Map<QName, ElementDeclaration> globalElements = new HashMap<>();
         elementDeclarations.put(XmlElementDecl.GLOBAL.class.getName(), globalElements);
-        localElements = new ArrayList<ElementDeclaration>();
+        localElements = new ArrayList<>();
 
-        javaClassToTypeMappingInfos = new HashMap<JavaClass, List<TypeMappingInfo>>();
-        typeMappingInfoToAdapterClasses = new HashMap<TypeMappingInfo, Class>();
+        javaClassToTypeMappingInfos = new HashMap<>();
+        typeMappingInfoToAdapterClasses = new HashMap<>();
         if (typeMappingInfos != null) {
             for (int i = 0; i < typeMappingInfos.length; i++) {
                 List<TypeMappingInfo> infos = javaClassToTypeMappingInfos.get(classes[i]);
                 if(infos == null) {
-                    infos = new ArrayList<TypeMappingInfo>();
+                    infos = new ArrayList<>();
                     javaClassToTypeMappingInfos.put(classes[i], infos);
                 }
                 infos.add(typeMappingInfos[i]);
@@ -547,7 +547,7 @@
         for (JavaClass javaClass : javaClasses) {
             String qualifiedName = javaClass.getQualifiedName();
             TypeInfo info = typeInfos.get(qualifiedName);
-            if (javaClass == null || javaClass.isArray()|| (info!=null && info.isPreBuilt()) || !shouldGenerateTypeInfo(javaClass) || isXmlRegistry(javaClass) ) {
+            if (javaClass.isArray()|| (info!=null && info.isPreBuilt()) || !shouldGenerateTypeInfo(javaClass) || isXmlRegistry(javaClass) ) {
                 continue;
             }
 
@@ -673,7 +673,7 @@
     }
 
     private void processNamedObjectGraphs(JavaClass javaClass, TypeInfo info) {
-        List<XmlNamedObjectGraph> objectGraphs = new ArrayList<XmlNamedObjectGraph>();
+        List<XmlNamedObjectGraph> objectGraphs = new ArrayList<>();
         if(helper.isAnnotationPresent(javaClass, XmlNamedObjectGraphs.class)) {
             XmlNamedObjectGraphs graphs = (XmlNamedObjectGraphs)helper.getAnnotation(javaClass, XmlNamedObjectGraphs.class);
             Collections.addAll(objectGraphs, graphs.value());
@@ -737,7 +737,7 @@
             }
         }
         if(xmlAccessorFactory != null) {
-            Class xmlAccessorFactoryClass = null;
+            Class<?> xmlAccessorFactoryClass = null;
             try {
                 xmlAccessorFactoryClass = PrivilegedAccessHelper.invokeMethod(valueMethod, xmlAccessorFactory, new Object[]{});
                 info.setXmlAccessorFactory(new AccessorFactoryWrapper(PrivilegedAccessHelper.newInstanceFromClass(xmlAccessorFactoryClass)));
@@ -772,7 +772,7 @@
         buildTypeInfo(javaClasses);
         updateGlobalElements(javaClasses);
         if(javaClasses.length > originalList.size()) {
-            List<JavaClass> newClasses = new ArrayList<JavaClass>(javaClasses.length - originalList.size());
+            List<JavaClass> newClasses = new ArrayList<>(javaClasses.length - originalList.size());
             for(JavaClass next:javaClasses) {
                 if(!(originalList.contains(next))) {
                     newClasses.add(next);
@@ -970,7 +970,7 @@
 
             // Keep a list of "any" properties to verify if multiples exist
             // that they have different element wrappers
-            List<Property> anyElementProperties = new ArrayList<Property>();
+            List<Property> anyElementProperties = new ArrayList<>();
 
             for (Property property : tInfo.getPropertyList()) {
                 // Check that @XmlAttribute references a Java type that maps to text in XML
@@ -1170,8 +1170,8 @@
      *
      */
     private JavaClass[] processAdditionalClasses(JavaClass[] classes) {
-        ArrayList<JavaClass> extraClasses = new ArrayList<JavaClass>();
-        ArrayList<JavaClass> classesToProcess = new ArrayList<JavaClass>();
+        ArrayList<JavaClass> extraClasses = new ArrayList<>();
+        ArrayList<JavaClass> classesToProcess = new ArrayList<>();
         for (JavaClass jClass : classes) {
             List<TypeMappingInfo> infos = this.javaClassToTypeMappingInfos.get(jClass);
             if(infos != null && infos.size() > 0) {
@@ -1191,10 +1191,10 @@
     }
 
     private void processAdditionalClasses(JavaClass cls, TypeMappingInfo tmi, ArrayList<JavaClass> extraClasses, ArrayList<JavaClass> classesToProcess) {
-        Class xmlElementType = null;
+        Class<?> xmlElementType = null;
         JavaClass javaClass = cls;
         if (tmi != null) {
-            Class adapterClass = this.typeMappingInfoToAdapterClasses.get(tmi);
+            Class<?> adapterClass = this.typeMappingInfoToAdapterClasses.get(tmi);
             if (adapterClass != null) {
                 JavaClass adapterJavaClass = helper.getJavaClass(adapterClass);
                 JavaClass newType = helper.getJavaClass(Object.class);
@@ -1238,7 +1238,7 @@
             if (!helper.isBuiltInJavaType(javaClass.getComponentType())) {
                 extraClasses.add(javaClass.getComponentType());
             }
-            Class generatedClass;
+            Class<?> generatedClass;
             if (null == tmi) {
                 generatedClass = arrayClassesToGeneratedClasses.get(javaClass.getName());
             } else {
@@ -1264,7 +1264,7 @@
                 componentClass = helper.getJavaClass(Object.class);
             }
 
-            Class generatedClass = CompilerHelper.getExisitingGeneratedClass(tmi, typeMappingInfosToGeneratedClasses, typeMappingInfoToAdapterClasses, helper.getClassLoader());
+            Class<?> generatedClass = CompilerHelper.getExisitingGeneratedClass(tmi, typeMappingInfosToGeneratedClasses, typeMappingInfoToAdapterClasses, helper.getClassLoader());
             if (generatedClass == null) {
                 generatedClass = generateCollectionValue(javaClass, tmi, xmlElementType, extraClasses);
                 extraClasses.add(helper.getJavaClass(generatedClass));
@@ -1289,7 +1289,7 @@
                 valueClass = helper.getJavaClass(Object.class);
             }
 
-            Class generatedClass = CompilerHelper.getExisitingGeneratedClass(tmi, typeMappingInfosToGeneratedClasses, typeMappingInfoToAdapterClasses, helper.getClassLoader());
+            Class<?> generatedClass = CompilerHelper.getExisitingGeneratedClass(tmi, typeMappingInfosToGeneratedClasses, typeMappingInfoToAdapterClasses, helper.getClassLoader());
             if (generatedClass == null) {
                 generatedClass = generateWrapperForMapClass(javaClass, keyClass, valueClass, tmi);
                 extraClasses.add(helper.getJavaClass(generatedClass));
@@ -1331,11 +1331,11 @@
      */
     private void processXmlSeeAlso(JavaClass javaClass, TypeInfo info) {
         // reflectively load @XmlSeeAlso class to avoid dependency
-        Class xmlSeeAlsoClass = null;
+        Class<?> xmlSeeAlsoClass = null;
         Method valueMethod = null;
         try {
             xmlSeeAlsoClass = PrivilegedAccessHelper.getClassForName("jakarta.xml.bind.annotation.XmlSeeAlso", false, helper.getClassLoader());
-            valueMethod = PrivilegedAccessHelper.getDeclaredMethod(xmlSeeAlsoClass, "value", new Class[] {});
+            valueMethod = PrivilegedAccessHelper.getDeclaredMethod(xmlSeeAlsoClass, "value", new Class<?>[] {});
         } catch (ClassNotFoundException ex) {
             // Ignore this exception. If SeeAlso isn't available, don't try to
             // process
@@ -1343,15 +1343,15 @@
         }
         if (xmlSeeAlsoClass != null && helper.isAnnotationPresent(javaClass, xmlSeeAlsoClass)) {
             Object seeAlso = helper.getAnnotation(javaClass, xmlSeeAlsoClass);
-            Class[] values = null;
+            Class<?>[] values = null;
             try {
                 values = PrivilegedAccessHelper.invokeMethod(valueMethod, seeAlso, new Object[] {});
             } catch (Exception ex) {
             }
 
             if (values != null) {
-                List<String> seeAlsoClassNames = new ArrayList<String>();
-                for (Class next : values) {
+                List<String> seeAlsoClassNames = new ArrayList<>();
+                for (Class<?> next : values) {
                     seeAlsoClassNames.add(next.getName());
                 }
                 info.setXmlSeeAlso(seeAlsoClassNames);
@@ -1501,7 +1501,7 @@
                 xmlType.getPropOrder().add(prop); // 20 - puts "car" into xmlType.propOrder
             }
             // set factoryClass
-            Class factoryClass = typeAnnotation.factoryClass(); // 21 factoryClass=java.lang.Class"class jakarta.xml.bind.annotation.XmlType$DEFAULT"
+            Class<?> factoryClass = typeAnnotation.factoryClass(); // 21 factoryClass=java.lang.Class"class jakarta.xml.bind.annotation.XmlType$DEFAULT"
             if (factoryClass == DEFAULT.class) {
                 xmlType.setFactoryClass("jakarta.xml.bind.annotation.XmlType.DEFAULT"); // 22
             } else {
@@ -1737,7 +1737,7 @@
         }) */
         if (helper.isAnnotationPresent(element, Pattern.List.class)) {
             Pattern.List a = (Pattern.List) helper.getAnnotation(element, Pattern.List.class);
-            PatternListFacet facet = new PatternListFacet(new ArrayList<PatternFacet>());
+            PatternListFacet facet = new PatternListFacet(new ArrayList<>());
             for (Pattern pat : a.value()) {
                 PatternFacet pf = new PatternFacet(pat.regexp(), pat.flags());
                 facet.addPattern(pf);
@@ -1877,7 +1877,7 @@
     }
 
     public ArrayList<Property> getPropertiesForClass(JavaClass cls, TypeInfo info) {
-        ArrayList<Property> returnList = new ArrayList<Property>();
+        ArrayList<Property> returnList = new ArrayList<>();
 
         if (!info.isTransient()) {
             JavaClass superClass = cls.getSuperclass();
@@ -1925,7 +1925,7 @@
     }
 
     public ArrayList<Property> getFieldPropertiesForClass(JavaClass cls, TypeInfo info, boolean onlyPublic, boolean onlyExplicit) {
-        ArrayList<Property> properties = new ArrayList<Property>();
+        ArrayList<Property> properties = new ArrayList<>();
         if (cls == null) {
             return properties;
         }
@@ -2229,11 +2229,11 @@
         if (helper.isAnnotationPresent(javaHasAnnotations, XmlElementsJoinNodes.class)) {
             org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes xmlJoinNodes;
             org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode xmlJoinNode;
-            List<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes> xmlJoinNodesList = new ArrayList<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes>();
+            List<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes> xmlJoinNodesList = new ArrayList<>();
             List<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode> xmlJoinNodeList = null;
 
             for (XmlJoinNodes xmlJNs : ((XmlElementsJoinNodes) helper.getAnnotation(javaHasAnnotations, XmlElementsJoinNodes.class)).value()) {
-                xmlJoinNodeList = new ArrayList<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode>();
+                xmlJoinNodeList = new ArrayList<>();
                 for (XmlJoinNode xmlJN : xmlJNs.value()) {
                     xmlJoinNode = new org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode();
                     xmlJoinNode.setXmlPath(xmlJN.xmlPath());
@@ -2321,7 +2321,7 @@
             XmlPaths pathAnnotation = (XmlPaths) helper.getAnnotation(choiceProperty.getElement(), XmlPaths.class);
             paths = pathAnnotation.value();
         }
-        List<Property> choiceProperties = new ArrayList<Property>();
+        List<Property> choiceProperties = new ArrayList<>();
         for (int i = 0; i < choiceProperty.getXmlElements().getXmlElement().size(); i++) {
             org.eclipse.persistence.jaxb.xmlmodel.XmlElement next = choiceProperty.getXmlElements().getXmlElement().get(i);
             Property choiceProp = new Property(helper);
@@ -2477,7 +2477,7 @@
             info.setElementRefsPropertyName(propertyName);
         }
 
-        List<org.eclipse.persistence.jaxb.xmlmodel.XmlElementRef> eltRefs = new ArrayList<org.eclipse.persistence.jaxb.xmlmodel.XmlElementRef>();
+        List<org.eclipse.persistence.jaxb.xmlmodel.XmlElementRef> eltRefs = new ArrayList<>();
         for (XmlElementRef nextRef : elementRefs) {
             org.eclipse.persistence.jaxb.xmlmodel.XmlElementRef eltRef = new org.eclipse.persistence.jaxb.xmlmodel.XmlElementRef();
             eltRef.setName(nextRef.name());
@@ -2485,7 +2485,7 @@
             eltRef.setType(nextRef.type().getName());
             property.setIsRequired(true);
             try{
-                Method requireMethod = PrivilegedAccessHelper.getMethod(XmlElementRef.class, "required", new Class[0], true);
+                Method requireMethod = PrivilegedAccessHelper.getMethod(XmlElementRef.class, "required", new Class<?>[0], true);
                 if(requireMethod != null){
                     Boolean val = PrivilegedAccessHelper.invokeMethod(requireMethod, nextRef);
                     property.setIsRequired(val);
@@ -2758,7 +2758,7 @@
         org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes xmlJoinNodes;
         // handle XmlJoinNodes
         if (helper.isAnnotationPresent(property.getElement(), XmlJoinNodes.class)) {
-            xmlJoinNodeList = new ArrayList<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode>();
+            xmlJoinNodeList = new ArrayList<>();
             for (XmlJoinNode xmlJN : ((XmlJoinNodes) helper.getAnnotation(property.getElement(), XmlJoinNodes.class)).value()) {
                 xmlJoinNode = new org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode();
                 xmlJoinNode.setXmlPath(xmlJN.xmlPath());
@@ -2775,7 +2775,7 @@
             xmlJoinNode = new org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode();
             xmlJoinNode.setXmlPath(xmlJN.xmlPath());
             xmlJoinNode.setReferencedXmlPath(xmlJN.referencedXmlPath());
-            xmlJoinNodeList = new ArrayList<org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes.XmlJoinNode>();
+            xmlJoinNodeList = new ArrayList<>();
             xmlJoinNodeList.add(xmlJoinNode);
             xmlJoinNodes = new org.eclipse.persistence.jaxb.xmlmodel.XmlJoinNodes();
             xmlJoinNodes.setXmlJoinNode(xmlJoinNodeList);
@@ -2842,7 +2842,7 @@
      * name of the JavaClass compared to the canonical name of the Class.
      *
      */
-    protected boolean areEquals(JavaClass src, Class tgt) {
+    protected boolean areEquals(JavaClass src, Class<?> tgt) {
         if (src == null || tgt == null) {
             return false;
         }
@@ -2925,14 +2925,14 @@
     }
 
     public ArrayList<Property> getPropertyPropertiesForClass(JavaClass cls, TypeInfo info, boolean onlyPublic, boolean onlyExplicit) {
-        ArrayList<Property> properties = new ArrayList<Property>();
+        ArrayList<Property> properties = new ArrayList<>();
         if (cls == null) {
             return properties;
         }
 
         // First collect all the getters and setters
-        ArrayList<JavaMethod> propertyMethods = new ArrayList<JavaMethod>();
-        for (JavaMethod next : new ArrayList<JavaMethod>(cls.getDeclaredMethods())) {
+        ArrayList<JavaMethod> propertyMethods = new ArrayList<>();
+        for (JavaMethod next : new ArrayList<>(cls.getDeclaredMethods())) {
             if(!next.isSynthetic()){
                 if (((next.getName().startsWith(GET_STR) && next.getName().length() > 3) || (next.getName().startsWith(IS_STR) && next.getName().length() > 2)) && next.getParameterTypes().length == 0 && next.getReturnType() != helper.getJavaClass(java.lang.Void.class)) {
                     int modifiers = next.getModifiers();
@@ -2954,7 +2954,7 @@
 
         // keep track of property names to avoid processing the same property
         // twice (for getter and setter)
-        List<String> propertyNames = new ArrayList<String>();
+        List<String> propertyNames = new ArrayList<>();
         for (JavaMethod propertyMethod1 : propertyMethods) {
             boolean isPropertyTransient = false;
             JavaMethod nextMethod = propertyMethod1;
@@ -3132,7 +3132,7 @@
     }
 
     private ArrayList<Property> removeSuperclassProperties(JavaClass cls, ArrayList<Property> properties) {
-        ArrayList<Property> revisedProperties = new ArrayList<Property>();
+        ArrayList<Property> revisedProperties = new ArrayList<>();
         revisedProperties.addAll(properties);
 
         // Check for any get() methods that are overridden in the subclass.
@@ -3160,8 +3160,8 @@
         ArrayList<Property> methodProperties = getPropertyPropertiesForClass(cls, info, !hasXmlBindings());
 
         // filter out non-public properties that aren't annotated
-        ArrayList<Property> publicFieldProperties = new ArrayList<Property>();
-        ArrayList<Property> publicMethodProperties = new ArrayList<Property>();
+        ArrayList<Property> publicFieldProperties = new ArrayList<>();
+        ArrayList<Property> publicMethodProperties = new ArrayList<>();
 
         for (Property next : fieldProperties) {
             if (Modifier.isPublic(((JavaField) next.getElement()).getModifiers())) {
@@ -3223,7 +3223,7 @@
     }
 
     public ArrayList getNoAccessTypePropertiesForClass(JavaClass cls, TypeInfo info) {
-        ArrayList<Property> list = new ArrayList<Property>();
+        ArrayList<Property> list = new ArrayList<>();
         if (cls == null) {
             return list;
         }
@@ -3232,7 +3232,7 @@
         // annotation and
         // doesn't appear in the other list, add it to the final list
         List<Property> fieldProperties = getFieldPropertiesForClass(cls, info, false);
-        Map<String, Property> fields = new HashMap<String, Property>(fieldProperties.size());
+        Map<String, Property> fields = new HashMap<>(fieldProperties.size());
         for (Property next : fieldProperties) {
             JavaHasAnnotations elem = next.getElement();
             if (!hasJAXBAnnotations(elem)) {
@@ -3399,7 +3399,7 @@
 
             // reflectively load XmlSchema class to avoid dependency
             try {
-                Method locationMethod = PrivilegedAccessHelper.getDeclaredMethod(XmlSchema.class, "location", new Class[] {});
+                Method locationMethod = PrivilegedAccessHelper.getDeclaredMethod(XmlSchema.class, "location", new Class<?>[] {});
                 String location = PrivilegedAccessHelper.invokeMethod(locationMethod, xmlSchema, new Object[] {});
 
                 if (location != null) {
@@ -3541,7 +3541,7 @@
 
     private XmlNillableInfo getXmlNillableInfoWithLazyInit(String packageName) {
         if (packageToXmlNillableInfoMappings == null) {
-            packageToXmlNillableInfoMappings = new HashMap<String, XmlNillableInfo>();
+            packageToXmlNillableInfoMappings = new HashMap<>();
         }
         XmlNillableInfo info = packageToXmlNillableInfoMappings.get(packageName);
         if (info == null) {
@@ -3553,7 +3553,7 @@
 
     private PackageInfo getPackageInfoWithLazyInit(String packageName) {
         if (packageToPackageInfoMappings == null) {
-            packageToPackageInfoMappings = new HashMap<String, PackageInfo>();
+            packageToPackageInfoMappings = new HashMap<>();
         }
         PackageInfo info = packageToPackageInfoMappings.get(packageName);
         if (info == null) {
@@ -3565,7 +3565,7 @@
 
     public void addPackageToPackageInfoMapping(String packageName, PackageInfo packageInfo) {
         if(packageToPackageInfoMappings == null) {
-            packageToPackageInfoMappings = new HashMap<String, PackageInfo>();
+            packageToPackageInfoMappings = new HashMap<>();
         }
         packageToPackageInfoMappings.put(packageName, packageInfo);
     }
@@ -3602,7 +3602,7 @@
             }
             if (CompilerHelper.ACCESSOR_FACTORY_ANNOTATION_CLASS != null && helper.isAnnotationPresent(pack, CompilerHelper.ACCESSOR_FACTORY_ANNOTATION_CLASS)) {
                 Annotation xmlAccessorFactory = helper.getAnnotation(pack, CompilerHelper.ACCESSOR_FACTORY_ANNOTATION_CLASS);
-                Class xmlAccessorFactoryClass = null;
+                Class<?> xmlAccessorFactoryClass = null;
                 try {
                     xmlAccessorFactoryClass = PrivilegedAccessHelper.invokeMethod(CompilerHelper.ACCESSOR_FACTORY_VALUE_METHOD, xmlAccessorFactory, new Object[]{});
                     packageInfo.setAccessorFactory(new AccessorFactoryWrapper(PrivilegedAccessHelper.newInstanceFromClass(xmlAccessorFactoryClass)));
@@ -3611,7 +3611,7 @@
                 }
             } else if (CompilerHelper.OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS != null && helper.isAnnotationPresent(pack, CompilerHelper.OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS)) {
                 Annotation xmlAccessorFactory = helper.getAnnotation(pack, CompilerHelper.OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS);
-                Class xmlAccessorFactoryClass = null;
+                Class<?> xmlAccessorFactoryClass = null;
                 try {
                     xmlAccessorFactoryClass = PrivilegedAccessHelper.invokeMethod(CompilerHelper.OLD_ACCESSOR_FACTORY_VALUE_METHOD, xmlAccessorFactory, new Object[]{});
                     packageInfo.setAccessorFactory(new AccessorFactoryWrapper(PrivilegedAccessHelper.newInstanceFromClass(xmlAccessorFactoryClass)));
@@ -3620,7 +3620,7 @@
                 }
             } else if (CompilerHelper.INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS != null && helper.isAnnotationPresent(pack, CompilerHelper.INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS)) {
                 Annotation xmlAccessorFactory = helper.getAnnotation(pack, CompilerHelper.INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS);
-                Class xmlAccessorFactoryClass = null;
+                Class<?> xmlAccessorFactoryClass = null;
                 try {
                     xmlAccessorFactoryClass = PrivilegedAccessHelper.invokeMethod(CompilerHelper.INTERNAL_ACCESSOR_FACTORY_VALUE_METHOD, xmlAccessorFactory, new Object[]{});
                     packageInfo.setAccessorFactory(new AccessorFactoryWrapper(PrivilegedAccessHelper.newInstanceFromClass(xmlAccessorFactoryClass)));
@@ -3682,7 +3682,7 @@
             // the list
             if (unmarshalCallback != null) {
                 if (this.unmarshalCallbacks == null) {
-                    this.unmarshalCallbacks = new HashMap<String, UnmarshalCallback>();
+                    this.unmarshalCallbacks = new HashMap<>();
                 }
                 unmarshalCallbacks.put(next.getQualifiedName(), unmarshalCallback);
             }
@@ -3704,7 +3704,7 @@
             // the list
             if (marshalCallback != null) {
                 if (this.marshalCallbacks == null) {
-                    this.marshalCallbacks = new HashMap<String, MarshalCallback>();
+                    this.marshalCallbacks = new HashMap<>();
                 }
                 marshalCallbacks.put(next.getQualifiedName(), marshalCallback);
             }
@@ -3735,7 +3735,7 @@
             }
             JavaClass javaClass = helper.getJavaClass(objectFactoryClassName);
             if (isXmlRegistry(javaClass)) {
-                JavaClass[] processed = this.processObjectFactory(javaClass, new ArrayList<JavaClass>());
+                JavaClass[] processed = this.processObjectFactory(javaClass, new ArrayList<>());
                 preBuildTypeInfo(processed);
                 buildTypeInfo(processed);
                 updateGlobalElements(processed);
@@ -3753,7 +3753,7 @@
         // if there is an xml-registry from XML for this JavaClass, create a map
         // of method names to XmlElementDecl objects to simplify processing
         // later on in this method
-        Map<String, org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry.XmlElementDecl> elemDecls = new HashMap<String, org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry.XmlElementDecl>();
+        Map<String, org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry.XmlElementDecl> elemDecls = new HashMap<>();
         org.eclipse.persistence.jaxb.xmlmodel.XmlRegistry xmlReg = xmlRegistries.get(objectFactoryClass.getQualifiedName());
         if (xmlReg != null) {
             // process xml-element-decl entries
@@ -3888,7 +3888,7 @@
                 Class<? extends XmlAdapter> typeAdapterClass = typeAdapter.value();
                 declaration.setJavaTypeAdapterClass(typeAdapterClass);
 
-                Class declJavaType = CompilerHelper.getTypeFromAdapterClass(typeAdapterClass);
+                Class<?> declJavaType = CompilerHelper.getTypeFromAdapterClass(typeAdapterClass);
                 JavaClass adaptedType = helper.getJavaClass(declJavaType);
                 declaration.setJavaType(adaptedType);
                 declaration.setAdaptedJavaType(type);
@@ -3903,7 +3903,7 @@
             }
             Map<QName, ElementDeclaration> elements = getElementDeclarationsForScope(scopeClass.getName());
             if (elements == null) {
-                elements = new HashMap<QName, ElementDeclaration>();
+                elements = new HashMap<>();
                 this.elementDeclarations.put(scopeClass.getName(), elements);
             }
             if(elements.containsKey(qname)){
@@ -4139,7 +4139,7 @@
         return (hasXmlValue || hasXmlId);
     }
 
-    private Class generateWrapperForMapClass(JavaClass mapClass, JavaClass keyClass, JavaClass valueClass, TypeMappingInfo typeMappingInfo) {
+    private Class<?> generateWrapperForMapClass(JavaClass mapClass, JavaClass keyClass, JavaClass valueClass, TypeMappingInfo typeMappingInfo) {
         String packageName = JAXB_DEV;
         NamespaceResolver combinedNamespaceResolver = new NamespaceResolver();
         if (!helper.isBuiltInJavaType(keyClass)) {
@@ -4315,7 +4315,7 @@
         return generateClassFromBytes(qualifiedClassName, classBytes);
     }
 
-    private Class generateWrapperForArrayClass(JavaClass arrayClass, TypeMappingInfo typeMappingInfo, Class xmlElementType, List<JavaClass> classesToProcess) {
+    private Class<?> generateWrapperForArrayClass(JavaClass arrayClass, TypeMappingInfo typeMappingInfo, Class<?> xmlElementType, List<JavaClass> classesToProcess) {
         JavaClass componentClass = null;
         if (typeMappingInfo != null && xmlElementType != null) {
             componentClass = helper.getJavaClass(xmlElementType);
@@ -4323,7 +4323,7 @@
             componentClass = arrayClass.getComponentType();
         }
         if (componentClass.isArray()) {
-            Class nestedArrayClass = arrayClassesToGeneratedClasses.get(componentClass.getName());
+            Class<?> nestedArrayClass = arrayClassesToGeneratedClasses.get(componentClass.getName());
             if (nestedArrayClass == null) {
                 nestedArrayClass = generateWrapperForArrayClass(componentClass, typeMappingInfo, xmlElementType, classesToProcess);
                 arrayClassesToGeneratedClasses.put(componentClass.getName(), nestedArrayClass);
@@ -4335,7 +4335,7 @@
         }
     }
 
-    private Class generateArrayValue(JavaClass arrayClass, JavaClass componentClass, JavaClass nestedClass, TypeMappingInfo typeMappingInfo) {
+    private Class<?> generateArrayValue(JavaClass arrayClass, JavaClass componentClass, JavaClass nestedClass, TypeMappingInfo typeMappingInfo) {
         String packageName;
         String qualifiedClassName;
         QName qName = null;
@@ -4395,13 +4395,13 @@
     private JavaClass getObjectType(JavaClass javaClass) {
         if (javaClass.isPrimitive()) {
             String primitiveClassName = javaClass.getRawName();
-            Class primitiveClass = getPrimitiveClass(primitiveClassName);
+            Class<?> primitiveClass = getPrimitiveClass(primitiveClassName);
             return helper.getJavaClass(getObjectClass(primitiveClass));
         }
         return javaClass;
     }
 
-    private Class generateCollectionValue(JavaClass collectionClass, TypeMappingInfo typeMappingInfo, Class xmlElementType, List<JavaClass> classesToProcess) {
+    private Class<?> generateCollectionValue(JavaClass collectionClass, TypeMappingInfo typeMappingInfo, Class<?> xmlElementType, List<JavaClass> classesToProcess) {
 
         JavaClass componentClass;
 
@@ -4418,12 +4418,12 @@
 
         boolean multiDimensional = false;
         if (componentClass.isPrimitive()) {
-            Class primitiveClass = getPrimitiveClass(componentClass.getRawName());
+            Class<?> primitiveClass = getPrimitiveClass(componentClass.getRawName());
             componentClass = helper.getJavaClass(getObjectClass(primitiveClass));
         } else if(helper.getJavaClass(Collection.class).isAssignableFrom(componentClass)) {
             multiDimensional = true;
             java.lang.reflect.Type nestedCollectionType = getNestedCollectionType(typeMappingInfo);
-            Class nestedCollectionClass = collectionClassesToGeneratedClasses.get(nestedCollectionType);
+            Class<?> nestedCollectionClass = collectionClassesToGeneratedClasses.get(nestedCollectionType);
             if (nestedCollectionClass == null) {
                 nestedCollectionClass = generateCollectionValue(componentClass, typeMappingInfo, xmlElementType, classesToProcess);
                 collectionClassesToGeneratedClasses.put(nestedCollectionType, nestedCollectionClass);
@@ -4435,7 +4435,7 @@
                 multiDimensional = false;
             } else {
                 multiDimensional = true;
-                Class nestedArrayClass = arrayClassesToGeneratedClasses.get(componentClass.getName());
+                Class<?> nestedArrayClass = arrayClassesToGeneratedClasses.get(componentClass.getName());
                 if (nestedArrayClass == null) {
                     nestedArrayClass = generateWrapperForArrayClass(componentClass, typeMappingInfo, xmlElementType, classesToProcess);
                     arrayClassesToGeneratedClasses.put(componentClass.getName(), nestedArrayClass);
@@ -4516,14 +4516,14 @@
         return result;
     }
 
-    private byte[] generateManyValue(TypeMappingInfo typeMappingInfo, String namespace, Class superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
+    private byte[] generateManyValue(TypeMappingInfo typeMappingInfo, String namespace, Class<?> superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
         EclipseLinkASMClassWriter cw = new EclipseLinkASMClassWriter();
         generateManyValueClass(cw, typeMappingInfo, namespace, superType, classNameSeparatedBySlash, componentType, containerType);
         cw.visitEnd();
         return cw.toByteArray();
     }
 
-    private void generateManyValueClass(EclipseLinkASMClassWriter cw, TypeMappingInfo typeMappingInfo, String namespace, Class superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
+    private void generateManyValueClass(EclipseLinkASMClassWriter cw, TypeMappingInfo typeMappingInfo, String namespace, Class<?> superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
         String componentClassNameSeparatedBySlash = getObjectType(componentType).getQualifiedName().replace(DOT_CHR, SLASH_CHR);
         String containerClassNameSeperatedBySlash = containerType.getQualifiedName().replace(DOT_CHR, SLASH_CHR);
         if("[B".equals(componentClassNameSeparatedBySlash)) {
@@ -4704,7 +4704,7 @@
         mv.visitEnd();
     }
 
-    private byte[] generateMultiDimensionalManyValueClass(TypeMappingInfo typeMappingInfo, String namespace, Class superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
+    private byte[] generateMultiDimensionalManyValueClass(TypeMappingInfo typeMappingInfo, String namespace, Class<?> superType, String classNameSeparatedBySlash, JavaClass componentType, JavaClass containerType) {
         EclipseLinkASMClassWriter cw = new EclipseLinkASMClassWriter();
         generateManyValueClass(cw, typeMappingInfo, namespace, superType, classNameSeparatedBySlash, componentType, containerType);
         generateMultiDimensionalManyValueClass(cw, componentType);
@@ -4725,9 +4725,9 @@
         mv.visitEnd();
     }
 
-    private Class generateClassFromBytes(String className, byte[] classBytes) {
+    private Class<?> generateClassFromBytes(String className, byte[] classBytes) {
         JaxbClassLoader loader = (JaxbClassLoader) helper.getClassLoader();
-        Class generatedClass = loader.generateClass(className, classBytes);
+        Class<?> generatedClass = loader.generateClass(className, classBytes);
         return generatedClass;
     }
 
@@ -4750,9 +4750,9 @@
 
     private String getNextAvailableClassName(String suggestedBaseName, String suggestedName, int counter) {
 
-        Iterator<Class> iter = typeMappingInfosToGeneratedClasses.values().iterator();
+        Iterator<Class<?>> iter = typeMappingInfosToGeneratedClasses.values().iterator();
         while (iter.hasNext()) {
-            Class nextClass = iter.next();
+            Class<?> nextClass = iter.next();
             if (nextClass.getName().equals(suggestedName)) {
                 counter = counter + 1;
                 return getNextAvailableClassName(suggestedBaseName, suggestedBaseName + counter, counter);
@@ -4761,27 +4761,27 @@
         return suggestedName;
     }
 
-    private Class getPrimitiveClass(String primitiveClassName) {
+    private Class<?> getPrimitiveClass(String primitiveClassName) {
         return ConversionManager.getDefaultManager().convertClassNameToClass(primitiveClassName);
     }
 
-    private Class getObjectClass(Class primitiveClass) {
+    private Class<?> getObjectClass(Class<?> primitiveClass) {
         return ConversionManager.getObjectClass(primitiveClass);
     }
 
-    public Map<java.lang.reflect.Type, Class> getCollectionClassesToGeneratedClasses() {
+    public Map<java.lang.reflect.Type, Class<?>> getCollectionClassesToGeneratedClasses() {
         return collectionClassesToGeneratedClasses;
     }
 
-    public Map<String, Class> getArrayClassesToGeneratedClasses() {
+    public Map<String, Class<?>> getArrayClassesToGeneratedClasses() {
         return arrayClassesToGeneratedClasses;
     }
 
-    public Map<Class, java.lang.reflect.Type> getGeneratedClassesToCollectionClasses() {
+    public Map<Class<?>, java.lang.reflect.Type> getGeneratedClassesToCollectionClasses() {
         return generatedClassesToCollectionClasses;
     }
 
-    public Map<Class, JavaClass> getGeneratedClassesToArrayClasses() {
+    public Map<Class<?>, JavaClass> getGeneratedClassesToArrayClasses() {
         return generatedClassesToArrayClasses;
     }
 
@@ -4798,7 +4798,7 @@
      * @return List of TypeInfo objects for a given package name
      */
     public Map<String, TypeInfo> getTypeInfosForPackage(String packageName) {
-        Map<String, TypeInfo> typeInfos = new HashMap<String, TypeInfo>();
+        Map<String, TypeInfo> typeInfos = new HashMap<>();
         List<JavaClass> jClasses = getTypeInfoClasses();
         for (JavaClass jClass : jClasses) {
             if (jClass.getPackageName().equals(packageName)) {
@@ -4831,11 +4831,11 @@
 
         if (typeInfos == null) {
             // this is the first class. Initialize all the properties
-            this.typeInfoClasses = new ArrayList<JavaClass>();
-            this.typeInfos = new HashMap<String, TypeInfo>();
-            this.typeQNames = new ArrayList<QName>();
-            this.userDefinedSchemaTypes = new HashMap<String, QName>();
-            this.packageToPackageInfoMappings = new HashMap<String, PackageInfo>();
+            this.typeInfoClasses = new ArrayList<>();
+            this.typeInfos = new HashMap<>();
+            this.typeQNames = new ArrayList<>();
+            this.userDefinedSchemaTypes = new HashMap<>();
+            this.packageToPackageInfoMappings = new HashMap<>();
         }
 
         JavaClass[] jClasses = new JavaClass[] { javaClass };
@@ -4932,11 +4932,11 @@
         return this.localElements;
     }
 
-    public Map<TypeMappingInfo, Class> getTypeMappingInfosToGeneratedClasses() {
+    public Map<TypeMappingInfo, Class<?>> getTypeMappingInfosToGeneratedClasses() {
         return this.typeMappingInfosToGeneratedClasses;
     }
 
-    public Map<TypeMappingInfo, Class> getTypeMappingInfoToAdapterClasses() {
+    public Map<TypeMappingInfo, Class<?>> getTypeMappingInfoToAdapterClasses() {
         return this.typeMappingInfoToAdapterClasses;
     }
 
@@ -4993,7 +4993,7 @@
     }
 
     private Map<Object, Object> createUserPropertiesMap(XmlProperty[] properties) {
-        Map<Object, Object> propMap = new HashMap<Object, Object>();
+        Map<Object, Object> propMap = new HashMap<>();
         for (XmlProperty prop : properties) {
             Object pvalue = prop.value();
             if (!(prop.valueType() == String.class)) {
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 350f270..9e168a4 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
@@ -62,22 +62,22 @@
     private static final String INTERNAL_ACCESSOR_FACTORY_ANNOTATION_NAME = "com.sun.xml.internal.bind.XmlAccessorFactory";
     private static final String METADATA_MODEL_PACKAGE = "org.eclipse.persistence.jaxb.xmlmodel";
 
-    public static Class ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
+    public static Class<?> ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
     public static Method ACCESSOR_FACTORY_VALUE_METHOD = null;
-    public static Class OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
+    public static Class<?> OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
     public static Method OLD_ACCESSOR_FACTORY_VALUE_METHOD = null;
-    public static Class INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
+    public static Class<?> INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS = null;
     public static Method INTERNAL_ACCESSOR_FACTORY_VALUE_METHOD = null;
-    public static Class XML_LOCATION_ANNOTATION_CLASS = null;
-    public static Class OLD_XML_LOCATION_ANNOTATION_CLASS = null;
-    public static Class INTERNAL_XML_LOCATION_ANNOTATION_CLASS = null;
+    public static Class<?> XML_LOCATION_ANNOTATION_CLASS = null;
+    public static Class<?> OLD_XML_LOCATION_ANNOTATION_CLASS = null;
+    public static Class<?> INTERNAL_XML_LOCATION_ANNOTATION_CLASS = null;
 
     private static JAXBContext xmlBindingsModelContext;
 
     static {
         try {
             ACCESSOR_FACTORY_ANNOTATION_CLASS = PrivilegedAccessHelper.getClassForName(XML_ACCESSOR_FACTORY_ANNOTATION_NAME, true, CompilerHelper.class.getClassLoader());
-            ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class[]{});
+            ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class<?>[]{});
         } catch (Exception ex) {
         }
 
@@ -93,13 +93,13 @@
 
         try{
             OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS = PrivilegedAccessHelper.getClassForName(OLD_ACCESSOR_FACTORY_ANNOTATION_NAME);
-            OLD_ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class[]{});
+            OLD_ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(OLD_ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class<?>[]{});
         } catch (Exception ex) {
         }
 
         try{
             INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS = PrivilegedAccessHelper.getClassForName(INTERNAL_ACCESSOR_FACTORY_ANNOTATION_NAME);
-            INTERNAL_ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class[]{});
+            INTERNAL_ACCESSOR_FACTORY_VALUE_METHOD = PrivilegedAccessHelper.getDeclaredMethod(INTERNAL_ACCESSOR_FACTORY_ANNOTATION_CLASS, "value", new Class<?>[]{});
         } catch (Exception ex) {
         }
 
@@ -116,11 +116,11 @@
      * therefore complex type) then return the existing class otherwise return
      * null.
      */
-    static Class getExisitingGeneratedClass(TypeMappingInfo tmi, Map<TypeMappingInfo, Class> typeMappingInfoToGeneratedClasses, Map<TypeMappingInfo, Class> typeMappingInfoToAdapterClasses, ClassLoader loader) {
+    static Class<?> getExisitingGeneratedClass(TypeMappingInfo tmi, Map<TypeMappingInfo, Class<?>> typeMappingInfoToGeneratedClasses, Map<TypeMappingInfo, Class<?>> typeMappingInfoToAdapterClasses, ClassLoader loader) {
 
-        Iterator<Map.Entry<TypeMappingInfo, Class>> iter = typeMappingInfoToGeneratedClasses.entrySet().iterator();
+        Iterator<Map.Entry<TypeMappingInfo, Class<?>>> iter = typeMappingInfoToGeneratedClasses.entrySet().iterator();
         while (iter.hasNext()) {
-            Map.Entry<TypeMappingInfo, Class> next = iter.next();
+            Map.Entry<TypeMappingInfo, Class<?>> next = iter.next();
             TypeMappingInfo nextTMI = next.getKey();
             if (CompilerHelper.generatesSameComplexType(tmi, nextTMI, loader)) {
                 return next.getValue();
@@ -187,7 +187,7 @@
             return false;
         } else if (type1 == null && type2 != null) {
             return false;
-        } else if (type1 instanceof Class && type2 instanceof Class){
+        } else if (type1 instanceof Class<?> && type2 instanceof Class){
 
             String typeName1 = ((Class)type1).getName();
             String typeName2 = ((Class)type2).getName();
@@ -330,7 +330,7 @@
      * returns something other than Object on the adapter class return the
      * return type of that method Otherwise return Object.class
      */
-    static Class getTypeFromAdapterClass(Class adapterClass) {
+    static Class<?> getTypeFromAdapterClass(Class<?> adapterClass) {
         if (adapterClass != null) {
             Class<Object> declJavaType = Object.class;
             // look for marshal method
@@ -409,18 +409,18 @@
                         java.lang.annotation.Annotation nextAnnotation = tmi.getAnnotations()[i];
                         if (nextAnnotation != null) {
                             if (nextAnnotation instanceof XmlJavaTypeAdapter) {
-                                Class typeClass = ((XmlJavaTypeAdapter) nextAnnotation).type();
+                                Class<?> typeClass = ((XmlJavaTypeAdapter) nextAnnotation).type();
                                 if (typeClass.getName().equals("jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter$DEFAULT")) {
                                     Class<? extends XmlAdapter> adapterClass = ((XmlJavaTypeAdapter) nextAnnotation).value();
                                     return getTypeFromAdapterClass(adapterClass);
                                 }
                                 return typeClass;
                             } else if (nextAnnotation instanceof XmlElement) {
-                                Class typeClass = ((XmlElement) nextAnnotation).type();
+                                Class<?> typeClass = ((XmlElement) nextAnnotation).type();
                                 if (!typeClass.getName().equals("jakarta.xml.bind.annotation.XmlElement.DEFAULT")) {
                                     final Type tmiType = tmi.getType();
                                     if (isCollectionType(tmiType)) {
-                                        final Class itemType = typeClass;
+                                        final Class<?> itemType = typeClass;
                                         Type parameterizedType = new ParameterizedType() {
                                             Type[] typeArgs = { itemType };
 
@@ -536,7 +536,7 @@
     public static void addClassToClassLoader(JavaClass cls, ClassLoader loader) {
 
         if(loader.getClass() == JaxbClassLoader.class && cls.getClass() == JavaClassImpl.class) {
-            Class wrappedClass = ((JavaClassImpl)cls).getJavaClass();
+            Class<?> wrappedClass = ((JavaClassImpl)cls).getJavaClass();
             ((JaxbClassLoader)loader).putClass(wrappedClass.getName(), wrappedClass);
         }
     }
@@ -565,18 +565,18 @@
         if(!(jClass.getClass() == JavaClassImpl.class)) {
             return null;
         }
-        Class beanClass = ((JavaClassImpl)jClass).getJavaClass();
+        Class<?> beanClass = ((JavaClassImpl)jClass).getJavaClass();
         if(property.isMethodProperty()) {
             try {
                 Method getMethod = null;
                 Method setMethod = null;
                 if(property.getGetMethodName() != null) {
-                    getMethod = PrivilegedAccessHelper.getMethod(beanClass, property.getGetMethodName(), new Class[]{}, true);
+                    getMethod = PrivilegedAccessHelper.getMethod(beanClass, property.getGetMethodName(), new Class<?>[]{}, true);
                 }
                 if(property.getSetMethodName() != null) {
                     String setMethodParamTypeName = property.getType().getName();
                     JavaClassImpl paramType = (JavaClassImpl)helper.getJavaClass(setMethodParamTypeName);
-                    Class[] setMethodParams = new Class[]{paramType.getJavaClass()};
+                    Class<?>[] setMethodParams = new Class<?>[]{paramType.getJavaClass()};
                     setMethod = PrivilegedAccessHelper.getMethod(beanClass, property.getSetMethodName(), setMethodParams, true);
                 }
                 return accessorFactory.createPropertyAccessor(beanClass, getMethod, setMethod);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/ElementDeclaration.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/ElementDeclaration.java
index 7436c29..d39950d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/ElementDeclaration.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/ElementDeclaration.java
@@ -40,8 +40,8 @@
     private List<ElementDeclaration> substitutableElements;
     private boolean isXmlRootElement = false;
     private boolean isList = false;
-    private Class javaTypeAdapterClass;
-    private Class scopeClass;
+    private Class<?> javaTypeAdapterClass;
+    private Class<?> scopeClass;
     private String defaultValue;
     private TypeMappingInfo typeMappingInfo;
     private boolean xmlAttachmentRef;
@@ -73,7 +73,7 @@
      * @param isList A boolean representing if this corresponds to an xsd:list
      * @param scopeClass The class representing the scope of this element
      */
-    public ElementDeclaration(QName name, JavaClass javaType, String javaTypeName, boolean isList, Class scopeClass) {
+    public ElementDeclaration(QName name, JavaClass javaType, String javaTypeName, boolean isList, Class<?> scopeClass) {
         this(name, javaType, javaTypeName, isList);
         this.scopeClass = scopeClass;
     }
@@ -204,7 +204,7 @@
      * Get the java type adapter class associated with the element
      * @return the java type adapater class associated with this element. May return null.
      */
-    public Class getJavaTypeAdapterClass() {
+    public Class<?> getJavaTypeAdapterClass() {
         return javaTypeAdapterClass;
     }
 
@@ -212,7 +212,7 @@
      * Set the java type adapter class associated with this element if applicable.
      * @param javaTypeAdapterClass Class of the java type adapter associated with this element.
      */
-    public void setJavaTypeAdapterClass(Class javaTypeAdapterClass) {
+    public void setJavaTypeAdapterClass(Class<?> javaTypeAdapterClass) {
         this.javaTypeAdapterClass = javaTypeAdapterClass;
     }
 
@@ -251,7 +251,7 @@
      * will be XmlElementDecl.GLOBAL
      * @return the scope class associated with this element
      */
-    public Class getScopeClass() {
+    public Class<?> getScopeClass() {
         return scopeClass;
     }
 
@@ -260,7 +260,7 @@
      * Default setting is XmlElementDecl.GLOBAL
      * @param scopeClass associated with this element.
      */
-    public void setScopeClass(Class scopeClass) {
+    public void setScopeClass(Class<?> scopeClass) {
         this.scopeClass = scopeClass;
     }
 
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 3d96104..7fc55f6 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
@@ -210,17 +210,17 @@
     private JavaClass jotTreeSet;
     private Map<String, PackageInfo> packageToPackageInfoMappings;
     private Map<String, TypeInfo> typeInfo;
-    private Map<QName, Class> qNamesToGeneratedClasses;
-    private Map<String, Class> classToGeneratedClasses;
-    private Map<QName, Class> qNamesToDeclaredClasses;
+    private Map<QName, Class<?>> qNamesToGeneratedClasses;
+    private Map<String, Class<?>> classToGeneratedClasses;
+    private Map<QName, Class<?>> qNamesToDeclaredClasses;
     private Map<QName, ElementDeclaration> globalElements;
     private List<ElementDeclaration> localElements;
-    private Map<TypeMappingInfo, Class> typeMappingInfoToGeneratedClasses;
-    private Map<MapEntryGeneratedKey, Class> generatedMapEntryClasses;
+    private Map<TypeMappingInfo, Class<?>> typeMappingInfoToGeneratedClasses;
+    private Map<MapEntryGeneratedKey, Class<?>> generatedMapEntryClasses;
     private CoreProject project;
     private org.eclipse.persistence.oxm.NamespaceResolver globalNamespaceResolver;
     private boolean isDefaultNamespaceAllowed;
-    private Map<TypeMappingInfo, Class>typeMappingInfoToAdapterClasses;
+    private Map<TypeMappingInfo, Class<?>>typeMappingInfoToAdapterClasses;
 
     public MappingsGenerator(Helper helper) {
         this.helper = helper;
@@ -236,7 +236,7 @@
         isDefaultNamespaceAllowed = true;
     }
 
-    public CoreProject generateProject(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> globalElements, List<ElementDeclaration> localElements, Map<TypeMappingInfo, Class> typeMappingInfoToGeneratedClass, Map<TypeMappingInfo, Class> typeMappingInfoToAdapterClasses,  boolean isDefaultNamespaceAllowed) throws Exception {
+    public CoreProject generateProject(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> globalElements, List<ElementDeclaration> localElements, Map<TypeMappingInfo, Class<?>> typeMappingInfoToGeneratedClass, Map<TypeMappingInfo, Class<?>> typeMappingInfoToAdapterClasses,  boolean isDefaultNamespaceAllowed) throws Exception {
         this.typeInfo = typeInfo;
         this.userDefinedSchemaTypes = userDefinedSchemaTypes;
         this.packageToPackageInfoMappings = packageToPackageInfoMappings;
@@ -564,7 +564,7 @@
                 mapping.setSetMethodName("setValue");
                 mapping.setGetMethodName("getValue");
 
-                Class attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
+                Class<?> attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
                 mapping.setAttributeClassification(attributeClassification);
                 mapping.getNullPolicy().setNullRepresentedByEmptyNode(false);
 
@@ -584,7 +584,7 @@
                 mapping.setGetMethodName("getValue");
                 mapping.setSetMethodName("setValue");
                 mapping.setXPath("text()");
-                Class attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
+                Class<?> attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
                 mapping.setAttributeClassification(attributeClassification);
                 xmlDescriptor.addMapping((CoreMapping)mapping);
             }
@@ -598,7 +598,7 @@
              mapping.setGetMethodName("getValue");
              mapping.setSetMethodName("setValue");
              mapping.setXPath("text()");
-             Class attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
+             Class<?> attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(factoryMethodParamTypes[0], helper.getClassLoader());
              mapping.setAttributeClassification(attributeClassification);
              xmlDescriptor.addMapping((CoreMapping)mapping);
 
@@ -1352,7 +1352,7 @@
             accessor.setComponentClassName(property.getType().getComponentType().getQualifiedName());
             JavaClass componentType = propertyType.getComponentType();
             if(componentType.isArray()) {
-                Class adaptedClass = classToGeneratedClasses.get(componentType.getQualifiedName());
+                Class<?> adaptedClass = classToGeneratedClasses.get(componentType.getQualifiedName());
                 accessor.setAdaptedClassName(adaptedClass.getName());
             }
             mapping.setAttributeAccessor(accessor);
@@ -1456,12 +1456,12 @@
                 nullPolicy.setIgnoreAttributesForNil(false);
             }
             if (!element.isXmlRootElement()) {
-                Class scopeClass = element.getScopeClass();
+                Class<?> scopeClass = element.getScopeClass();
                 if (scopeClass == jakarta.xml.bind.annotation.XmlElementDecl.GLOBAL.class){
                     scopeClass = JAXBElement.GlobalScope.class;
                 }
 
-                Class declaredType = null;
+                Class<?> declaredType = null;
                 if(element.getAdaptedJavaType() != null){
                     declaredType =  org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(element.getAdaptedJavaType().getQualifiedName(), helper.getClassLoader());
                 }else{
@@ -1532,7 +1532,7 @@
             mapping.setWrapperNullPolicy(getWrapperNullPolicyFromProperty(property));
         }
 
-        Class declaredType = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getActualType().getQualifiedName(), helper.getClassLoader());
+        Class<?> declaredType = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getActualType().getQualifiedName(), helper.getClassLoader());
         JAXBElementRootConverter jaxbElementRootConverter = new JAXBElementRootConverter(declaredType);
         mapping.setConverter(jaxbElementRootConverter);
         if (property.getDomHandlerClassName() != null) {
@@ -1673,10 +1673,10 @@
             // Try to get the actual Class
             try {
                 JavaClass actualJavaClass = helper.getJavaClass(theClass);
-                Class actualClass =  org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(actualJavaClass.getQualifiedName(), helper.getClassLoader());
+                Class<?> actualClass =  org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(actualJavaClass.getQualifiedName(), helper.getClassLoader());
                 mapping.setAttributeClassification(actualClass);
                 if(targetClass != null) {
-                    Class fieldClass = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(targetClass, helper.getClassLoader());
+                    Class<?> fieldClass = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(targetClass, helper.getClassLoader());
                     mapping.getField().setType(fieldClass);
                 }
 
@@ -1896,7 +1896,7 @@
             mapping.setField(new XMLField(property.getXmlPath()));
         }
 
-        Class declaredType = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getActualType().getQualifiedName(), helper.getClassLoader());
+        Class<?> declaredType = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getActualType().getQualifiedName(), helper.getClassLoader());
         JAXBElementRootConverter jaxbElementRootConverter = new JAXBElementRootConverter(declaredType);
         mapping.setConverter(jaxbElementRootConverter);
         if (property.getDomHandlerClassName() != null) {
@@ -1918,7 +1918,7 @@
         return mapping;
     }
 
-    protected boolean areEquals(JavaClass src, Class tgt) {
+    protected boolean areEquals(JavaClass src, Class<?> tgt) {
         if (src == null || tgt == null) {
             return false;
         }
@@ -1939,7 +1939,7 @@
     }
 
 
-    private Class generateMapEntryClassAndDescriptor(Property property, NamespaceResolver nr){
+    private Class<?> generateMapEntryClassAndDescriptor(Property property, NamespaceResolver nr){
         JavaClass keyType = property.getKeyType();
         JavaClass valueType = property.getValueType();
         if(keyType == null){
@@ -1952,7 +1952,7 @@
         String mapEntryClassName = getJaxbClassLoader().nextAvailableGeneratedClassName();
 
         MapEntryGeneratedKey mapKey = new MapEntryGeneratedKey(keyType.getQualifiedName(),valueType.getQualifiedName());
-        Class generatedClass = getGeneratedMapEntryClasses().get(mapKey);
+        Class<?> generatedClass = getGeneratedMapEntryClasses().get(mapKey);
 
         if(generatedClass == null){
             generatedClass = generateMapEntryClass(mapEntryClassName, keyType.getQualifiedName(), valueType.getQualifiedName());
@@ -1968,7 +1968,7 @@
         return generatedClass;
     }
 
-    private Class generateMapEntryClass(String className, String keyType, String valueType){
+    private Class<?> generateMapEntryClass(String className, String keyType, String valueType){
 
         EclipseLinkASMClassWriter cw = new EclipseLinkASMClassWriter();
 
@@ -2070,7 +2070,7 @@
         cw.visitEnd();
 
         byte[] classBytes =cw.toByteArray();
-        Class generatedClass = getJaxbClassLoader().generateClass(className, classBytes);
+        Class<?> generatedClass = getJaxbClassLoader().generateClass(className, classBytes);
         return generatedClass;
     }
 
@@ -2110,7 +2110,7 @@
 
                     JavaClass componentType = theType.getComponentType();
                     try {
-                        Class declaredClass;
+                        Class<?> declaredClass;
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                                 try {
                                     declaredClass = AccessController.doPrivileged(new PrivilegedClassForName<>(componentType.getRawName(), false, helper.getClassLoader()));
@@ -2130,7 +2130,7 @@
                 if (args.size() > 0) {
                     JavaClass itemType = (JavaClass)args.iterator().next();
                     try {
-                        Class declaredClass;
+                        Class<?> declaredClass;
                         if (PrivilegedAccessHelper.shouldUsePrivilegedAccess()) {
                                 try {
                                     declaredClass = AccessController.doPrivileged(new PrivilegedClassForName<>(itemType.getRawName(), false, helper.getClassLoader()));
@@ -2199,7 +2199,7 @@
             JAXBArrayAttributeAccessor accessor = new JAXBArrayAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy(), helper.getClassLoader());
             JavaClass componentType = collectionType.getComponentType();
             if(componentType.isArray()) {
-                Class adaptedClass = classToGeneratedClasses.get(componentType.getName());
+                Class<?> adaptedClass = classToGeneratedClasses.get(componentType.getName());
                 referenceClassName = adaptedClass.getName();
                 accessor.setAdaptedClassName(referenceClassName);
                 JavaClass baseComponentType = getBaseComponentType(componentType);
@@ -2214,7 +2214,7 @@
             }
             mapping.setAttributeAccessor(accessor);
         }else if (helper.isMapType(property.getType())){
-            Class generatedClass = generateMapEntryClassAndDescriptor(property, descriptor.getNonNullNamespaceResolver());
+            Class<?> generatedClass = generateMapEntryClassAndDescriptor(property, descriptor.getNonNullNamespaceResolver());
             referenceClassName = generatedClass.getName();
             String mapClassName = property.getType().getRawName();
             mapping.setAttributeAccessor(new MapValueAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy(), generatedClass, mapClassName, helper.getClassLoader()));
@@ -2337,7 +2337,7 @@
         }
 
         if (property.isXmlElementType() && property.getGenericType()!=null ){
-            Class theClass = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getGenericType().getQualifiedName(), helper.getClassLoader());
+            Class<?> theClass = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(property.getGenericType().getQualifiedName(), helper.getClassLoader());
             mapping.setAttributeElementClass(theClass);
         }
 
@@ -2649,7 +2649,7 @@
             JAXBArrayAttributeAccessor accessor = new JAXBArrayAttributeAccessor(mapping.getAttributeAccessor(), mapping.getContainerPolicy(), helper.getClassLoader());
             JavaClass componentType = collectionType.getComponentType();
             if(componentType.isArray()) {
-                Class adaptedClass = classToGeneratedClasses.get(componentType.getName());
+                Class<?> adaptedClass = classToGeneratedClasses.get(componentType.getName());
                 referenceClassName = adaptedClass.getName();
                 accessor.setAdaptedClassName(referenceClassName);
                 JavaClass baseComponentType = getBaseComponentType(componentType);
@@ -2980,7 +2980,7 @@
 
                 if(next == null){
                     if(isBinaryData(nextElement.getJavaType())){
-                        Class generatedClass = addByteArrayWrapperAndDescriptor(type, nextElement.getJavaType().getRawName(), nextElement,nextClassName, attributeTypeName);
+                        Class<?> generatedClass = addByteArrayWrapperAndDescriptor(type, nextElement.getJavaType().getRawName(), nextElement,nextClassName, attributeTypeName);
                          this.qNamesToGeneratedClasses.put(next, generatedClass);
                          if(nextElement.getTypeMappingInfo() != null) {
                              typeMappingInfoToGeneratedClasses.put(nextElement.getTypeMappingInfo(), generatedClass);
@@ -2994,7 +2994,7 @@
                     if(nextElement.getJavaType().isEnum()) {
                         if(!(helper.getClassLoader() instanceof DynamicClassLoader)) {
                             //  Only generate enum wrappers in non-dynamic case.
-                            Class generatedClass = addEnumerationWrapperAndDescriptor(type, nextElement.getJavaType().getRawName(), nextElement, nextClassName, attributeTypeName);
+                            Class<?> generatedClass = addEnumerationWrapperAndDescriptor(type, nextElement.getJavaType().getRawName(), nextElement, nextClassName, attributeTypeName);
                             this.qNamesToGeneratedClasses.put(next, generatedClass);
                             if(nextElement.getTypeMappingInfo() != null) {
                                 typeMappingInfoToGeneratedClasses.put(nextElement.getTypeMappingInfo(), generatedClass);
@@ -3010,7 +3010,7 @@
                     }
                     continue;
                 }
-                Class generatedClass = generateWrapperClassAndDescriptor(type, next, nextElement, nextClassName, attributeTypeName);
+                Class<?> generatedClass = generateWrapperClassAndDescriptor(type, next, nextElement, nextClassName, attributeTypeName);
 
                 this.qNamesToGeneratedClasses.put(next, generatedClass);
                 if(type != null && type.isEnumerationType() && nextElement.isXmlRootElement()) {
@@ -3035,8 +3035,8 @@
         }
     }
 
-    private Class addByteArrayWrapperAndDescriptor(TypeInfo type , String javaClassName,  ElementDeclaration nextElement, String nextClassName, String attributeTypeName){
-        Class generatedClass = classToGeneratedClasses.get(javaClassName);
+    private Class<?> addByteArrayWrapperAndDescriptor(TypeInfo type , String javaClassName,  ElementDeclaration nextElement, String nextClassName, String attributeTypeName){
+        Class<?> generatedClass = classToGeneratedClasses.get(javaClassName);
         if(generatedClass == null){
             generatedClass = generateWrapperClassAndDescriptor(type, null, nextElement, nextClassName, attributeTypeName);
             classToGeneratedClasses.put(javaClassName, generatedClass);
@@ -3044,8 +3044,8 @@
         return generatedClass;
     }
 
-    private Class addEnumerationWrapperAndDescriptor(TypeInfo type, String javaClassName, ElementDeclaration nextElement, String nextClassName, String attributeTypeName) {
-        Class generatedClass = classToGeneratedClasses.get(javaClassName);
+    private Class<?> addEnumerationWrapperAndDescriptor(TypeInfo type, String javaClassName, ElementDeclaration nextElement, String nextClassName, String attributeTypeName) {
+        Class<?> generatedClass = classToGeneratedClasses.get(javaClassName);
         if(generatedClass == null){
             generatedClass = generateWrapperClassAndDescriptor(type, nextElement.getElementName(), nextElement, nextClassName, attributeTypeName);
             classToGeneratedClasses.put(javaClassName, generatedClass);
@@ -3053,7 +3053,7 @@
         return generatedClass;
     }
 
-     private Class generateWrapperClassAndDescriptor(TypeInfo type, QName next, ElementDeclaration nextElement, String nextClassName, String attributeTypeName){
+     private Class<?> generateWrapperClassAndDescriptor(TypeInfo type, QName next, ElementDeclaration nextElement, String nextClassName, String attributeTypeName){
         String namespaceUri = null;
           if(next!= null){
               //generate a class/descriptor for this element
@@ -3064,7 +3064,7 @@
           }
 
           TypeMappingInfo tmi = nextElement.getTypeMappingInfo();
-          Class generatedClass = null;
+          Class<?> generatedClass = null;
 
         JaxbClassLoader loader = getJaxbClassLoader();
 
@@ -3139,7 +3139,7 @@
                       mapping.getNullPolicy().setNullRepresentedByXsiNil(true);
                       mapping.getNullPolicy().setNullRepresentedByEmptyNode(false);
 
-                      Class attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName, helper.getClassLoader());
+                      Class<?> attributeClassification = org.eclipse.persistence.internal.helper.Helper.getClassFromClasseName(attributeTypeName, helper.getClassLoader());
                       mapping.setAttributeClassification(attributeClassification);
 
                         mapping.setShouldInlineBinaryData(false);
@@ -3163,7 +3163,7 @@
 
 
                       if(helper.isBuiltInJavaType(nextElement.getJavaType())){
-                          Class attributeClassification = null;
+                          Class<?> attributeClassification = null;
                           if(nextElement.getJavaType().isPrimitive()) {
                               attributeClassification = XMLConversionManager.getDefaultManager().convertClassNameToClass(attributeTypeName);
                           } else {
@@ -3265,7 +3265,7 @@
         return null;
     }
 
-    public Class generateWrapperClass(String className, String attributeType, boolean isList, QName theQName) {
+    public Class<?> generateWrapperClass(String className, String attributeType, boolean isList, QName theQName) {
         EclipseLinkASMClassWriter cw = new EclipseLinkASMClassWriter();
 
         String sig = null;
@@ -3313,22 +3313,22 @@
             // to the unnamed module as we don't want to export internal package from eclipselink.jar
             moxyModule.addExports(WrappedValue.class.getPackageName(), getJaxbClassLoader().getUnnamedModule());
         }
-        Class generatedClass = getJaxbClassLoader().generateClass(className, classBytes);
+        Class<?> generatedClass = getJaxbClassLoader().generateClass(className, classBytes);
         return generatedClass;
     }
 
-    public Map<QName, Class> getQNamesToGeneratedClasses() {
+    public Map<QName, Class<?>> getQNamesToGeneratedClasses() {
         return qNamesToGeneratedClasses;
     }
 
-    public Map<String, Class> getClassToGeneratedClasses() {
+    public Map<String, Class<?>> getClassToGeneratedClasses() {
         return classToGeneratedClasses;
     }
-    public Map<QName, Class> getQNamesToDeclaredClasses() {
+    public Map<QName, Class<?>> getQNamesToDeclaredClasses() {
         return qNamesToDeclaredClasses;
     }
 
-    private Map<MapEntryGeneratedKey, Class> getGeneratedMapEntryClasses() {
+    private Map<MapEntryGeneratedKey, Class<?>> getGeneratedMapEntryClasses() {
         if(generatedMapEntryClasses == null){
             generatedMapEntryClasses = new HashMap<>();
         }
@@ -3392,7 +3392,7 @@
             isSetNullPolicy.setIsSetMethodName(xmlIsSetNullPolicy.getIsSetMethodName());
             // handle isSetParams
             ArrayList<Object> parameters = new ArrayList<>();
-            ArrayList<Class> parameterTypes = new ArrayList<>();
+            ArrayList<Class<?>> parameterTypes = new ArrayList<>();
             List<XmlIsSetNullPolicy.IsSetParameter> params = xmlIsSetNullPolicy.getIsSetParameter();
             for (XmlIsSetNullPolicy.IsSetParameter param : params) {
                 String valueStr = param.getValue();
@@ -3408,7 +3408,7 @@
                 parameterTypes.add(typeClass);
             }
             isSetNullPolicy.setIsSetParameters(parameters.toArray());
-            isSetNullPolicy.setIsSetParameterTypes(parameterTypes.toArray(new Class[parameterTypes.size()]));
+            isSetNullPolicy.setIsSetParameterTypes(parameterTypes.toArray(new Class<?>[parameterTypes.size()]));
             absNullPolicy = isSetNullPolicy;
         }
         // handle commmon settings
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MarshalCallback.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MarshalCallback.java
index 3e5da2e..48e07a4 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MarshalCallback.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/MarshalCallback.java
@@ -42,7 +42,7 @@
  *  @see org.eclipse.persistence.jaxb.JAXBMarshaller
  */
 public class MarshalCallback {
-    private Class domainClass;
+    private Class<?> domainClass;
     private String domainClassName;
     private Method beforeMarshalCallback;
     private Method afterMarshalCallback;
@@ -57,7 +57,7 @@
         return beforeMarshalCallback;
     }
 
-    public Class getDomainClass() {
+    public Class<?> getDomainClass() {
         return domainClass;
     }
 
@@ -80,7 +80,7 @@
         } catch (ClassNotFoundException ex) {
             return;
         }
-        Class[] params = new Class[] { Marshaller.class };
+        Class<?>[] params = new Class<?>[] { Marshaller.class };
         if (hasBeforeMarshalCallback) {
             try {
                 Method beforeMarshal = null;
@@ -148,7 +148,7 @@
      * the set value with Class.forName(domainClassName).
      *
      */
-    public void setDomainClass(Class clazz) {
+    public void setDomainClass(Class<?> clazz) {
         domainClass = clazz;
         setDomainClassName(clazz.getName());
     }
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 8f5c098..0a3ec20 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
@@ -435,7 +435,7 @@
             ParameterizedType parameterizedType = (ParameterizedType) type;
             Type rawType = parameterizedType.getRawType();
             if(rawType instanceof Class) {
-                Class rawTypeClass = (Class) rawType;
+                Class<?> rawTypeClass = (Class) rawType;
                 Type[] typeArgs = parameterizedType.getActualTypeArguments();
                 TypeVariable[] tvs = rawTypeClass.getTypeParameters();
                 if(tvs.length == typeArgs.length){
@@ -462,7 +462,7 @@
                 return getGenericType(parameterizedType.getRawType(), argument,variableToType);
             }
         } else if(type instanceof Class) {
-            Class clazz = (Class) type;
+            Class<?> clazz = (Class) type;
             for(Type genericInterface : clazz.getGenericInterfaces()) {
                 Type genericType = getGenericType(genericInterface, argument, variableToType);
                 if(null != genericType) {
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 78164fe..f044bf4 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
@@ -111,7 +111,7 @@
     private Map<String, PackageInfo> packageToPackageInfoMappings;
     private Map<String, SchemaTypeInfo> schemaTypeInfo;
     private Map<String, QName> userDefinedSchemaTypes;
-    private Map<String, Class> arrayClassesToGeneratedClasses;
+    private Map<String, Class<?>> arrayClassesToGeneratedClasses;
 
     private static final String JAVAX_ACTIVATION_DATAHANDLER = "jakarta.activation.DataHandler";
     private static final String JAVAX_MAIL_INTERNET_MIMEMULTIPART = "jakarta.mail.internet.MimeMultipart";
@@ -141,12 +141,12 @@
         this.facets = helper.isFacets();
     }
 
-    public void generateSchema(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> additionalGlobalElements, Map<String, Class> arrayClassesToGeneratedClasses, SchemaOutputResolver outputResolver) {
+    public void generateSchema(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> additionalGlobalElements, Map<String, Class<?>> arrayClassesToGeneratedClasses, SchemaOutputResolver outputResolver) {
         this.outputResolver = outputResolver;
         generateSchema(typeInfoClasses, typeInfo, userDefinedSchemaTypes, packageToPackageInfoMappings, additionalGlobalElements, arrayClassesToGeneratedClasses);
     }
 
-    public void generateSchema(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> additionalGlobalElements, Map<String, Class> arrayClassesToGeneratedClasses) {
+    public void generateSchema(List<JavaClass> typeInfoClasses, Map<String, TypeInfo> typeInfo, Map<String, QName> userDefinedSchemaTypes, Map<String, PackageInfo> packageToPackageInfoMappings, Map<QName, ElementDeclaration> additionalGlobalElements, Map<String, Class<?>> arrayClassesToGeneratedClasses) {
         this.typeInfo = typeInfo;
         this.userDefinedSchemaTypes = userDefinedSchemaTypes;
         this.packageToPackageInfoMappings = packageToPackageInfoMappings;
@@ -552,7 +552,7 @@
     public QName getSchemaTypeFor(JavaClass javaClass) {
         String className;
         if (javaClass.isArray()) {
-            Class wrapperClass = arrayClassesToGeneratedClasses.get(javaClass.getName());
+            Class<?> wrapperClass = arrayClassesToGeneratedClasses.get(javaClass.getName());
             if (null == wrapperClass) {
                 className = javaClass.getQualifiedName();
             } else {
@@ -1019,7 +1019,7 @@
      * name of the Class.
      *
      */
-    protected boolean areEquals(JavaClass src, Class tgt) {
+    protected boolean areEquals(JavaClass src, Class<?> tgt) {
         if (src == null || tgt == null) {
             return false;
         }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/UnmarshalCallback.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/UnmarshalCallback.java
index ab5f573..1c60ccc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/UnmarshalCallback.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/UnmarshalCallback.java
@@ -42,7 +42,7 @@
  *  @see org.eclipse.persistence.jaxb.JAXBUnmarshaller
  */
 public class UnmarshalCallback {
-    private Class domainClass;
+    private Class<?> domainClass;
     private String domainClassName;
     private Method afterUnmarshalCallback;
     private Method beforeUnmarshalCallback;
@@ -57,7 +57,7 @@
         return beforeUnmarshalCallback;
     }
 
-    public Class getDomainClass() {
+    public Class<?> getDomainClass() {
         return domainClass;
     }
 
@@ -80,7 +80,7 @@
         } catch (ClassNotFoundException ex) {
             return;
         }
-        Class[] params = new Class[]{ Unmarshaller.class, Object.class };
+        Class<?>[] params = new Class<?>[]{ Unmarshaller.class, Object.class };
         if (hasBeforeUnmarshalCallback) {
             try {
                 Method beforeUnmarshal = null;
@@ -148,7 +148,7 @@
      * the set value with Class.forName(domainClassName)
      *
      */
-    public void setDomainClass(Class clazz) {
+    public void setDomainClass(Class<?> clazz) {
         domainClass = clazz;
         setDomainClassName(clazz.getName());
     }
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 cb52583..d75cdae 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
@@ -473,7 +473,7 @@
     private XMLNameTransformer getXMLNameTransformerClassFromString(String transformerClassName){
     XMLNameTransformer transformer = null;
         if(transformerClassName != null){
-           Class nameTransformerClass;
+           Class<?> nameTransformerClass;
 
              try {
                  nameTransformerClass = Class.forName(transformerClassName);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/builder/helper/TransformerReflectionHelper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/builder/helper/TransformerReflectionHelper.java
index b650487..82130a2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/builder/helper/TransformerReflectionHelper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/compiler/builder/helper/TransformerReflectionHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -46,7 +46,7 @@
 
     private JavaClass getReturnTypeForWriteTransformationMethod(String methodName, JavaClass writerClass, boolean isSetTransformerClass) throws JAXBException {
         JavaMethod javaMethod = null;
-        for (Class[] methodParameters : getTransformerHelper().getTransformerMethodParameters(isSetTransformerClass)) {
+        for (Class<?>[] methodParameters : getTransformerHelper().getTransformerMethodParameters(isSetTransformerClass)) {
             javaMethod = writerClass.getDeclaredMethod(methodName, helper.getJavaClassArray(methodParameters));
             if (null != javaMethod) {
                 return javaMethod.getReturnType();
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 738e5f8..1284f77 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
@@ -115,7 +115,7 @@
         // Pass the classloader to the ConversionManager as well
         // conversionMgr.setLoader(cl);
 
-        return (A) Proxy.newProxyInstance(cl, new Class[] { annoClass }, new AnnotationProxy(components, conversionMgr));
+        return (A) Proxy.newProxyInstance(cl, new Class<?>[] { annoClass }, new AnnotationProxy(components, conversionMgr));
     }
 
     /**
@@ -169,13 +169,13 @@
         return conversionMgr.convertObject(value, returnType);
     }
 
-    private Object handleArrayData(Class returnType, Object value) {
+    private Object handleArrayData(Class<?> returnType, Object value) {
         if (value == null) {
             return null;
         }
 
         Object[] data = (Object[]) value;
-        Class componentType = returnType.getComponentType();
+        Class<?> componentType = returnType.getComponentType();
         Object[] convertedArray = (Object[]) Array.newInstance(componentType, data.length);
 
         for (int i = 0; i < data.length; i++) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/Helper.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/Helper.java
index b9186fd..bfa0429 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/Helper.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/Helper.java
@@ -196,7 +196,7 @@
      * - null is returned otherwise.
      *
      */
-    public JavaClass getJavaClass(Class javaClass) {
+    public JavaClass getJavaClass(Class<?> javaClass) {
         return jModel.getClass(javaClass);
     }
 
@@ -206,13 +206,13 @@
      *
      * @return JavaClass array
      */
-    public JavaClass[] getJavaClassArray(Class... classes) {
+    public JavaClass[] getJavaClassArray(Class<?>... classes) {
         if (0 == classes.length) {
             return new JavaClass[0];
         }
         JavaClass[] result = new JavaClass[classes.length];
         int i = 0;
-        for (Class clazz : classes) {
+        for (Class<?> clazz : classes) {
             result[i++] = getJavaClass(clazz);
         }
         return result;
@@ -244,7 +244,7 @@
      *
      * @see #isAnnotationPresent
      */
-    public Annotation getAnnotation(JavaHasAnnotations element, Class annotationClass) {
+    public Annotation getAnnotation(JavaHasAnnotations element, Class<?> annotationClass) {
         JavaAnnotation janno = element.getAnnotation(jModel.getClass(annotationClass));
         if (janno == null) {
             return null;
@@ -289,7 +289,7 @@
      * Indicates if element contains a given annotation.
      *
      */
-    public boolean isAnnotationPresent(JavaHasAnnotations element, Class annotationClass) {
+    public boolean isAnnotationPresent(JavaHasAnnotations element, Class<?> annotationClass) {
         if (element == null || annotationClass == null) {
             return false;
         }
@@ -330,7 +330,7 @@
         return loader;
     }
 
-    public Class getClassForJavaClass(JavaClass javaClass){
+    public Class<?> getClassForJavaClass(JavaClass javaClass){
         String javaClassName = javaClass.getRawName();
         if (javaClass.isPrimitive() || javaClass.isArray() && javaClass.getComponentType().isPrimitive()){
             if (CoreClassConstants.APBYTE.getCanonicalName().equals(javaClassName)){
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaClassImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaClassImpl.java
index 36df38a..93c1956 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaClassImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaClassImpl.java
@@ -60,20 +60,20 @@
 public class JavaClassImpl implements JavaClass {
 
     protected ParameterizedType jType;
-    protected Class jClass;
+    protected Class<?> jClass;
     protected JavaModelImpl javaModelImpl;
     protected boolean isMetadataComplete;
     protected JavaClass superClassOverride;
 
     protected static final String XML_REGISTRY_CLASS_NAME = "jakarta.xml.bind.annotation.XmlRegistry";
 
-    public JavaClassImpl(Class javaClass, JavaModelImpl javaModelImpl) {
+    public JavaClassImpl(Class<?> javaClass, JavaModelImpl javaModelImpl) {
         this.jClass = javaClass;
         this.javaModelImpl = javaModelImpl;
         isMetadataComplete = false;
     }
 
-    public JavaClassImpl(ParameterizedType javaType, Class javaClass, JavaModelImpl javaModelImpl) {
+    public JavaClassImpl(ParameterizedType javaType, Class<?> javaClass, JavaModelImpl javaModelImpl) {
         this.jType = javaType;
         this.jClass = javaClass;
         this.javaModelImpl = javaModelImpl;
@@ -103,7 +103,7 @@
                 } else if (type instanceof Class) {
                     argCollection.add(javaModelImpl.getClass((Class) type));
                 } else if(type instanceof GenericArrayType) {
-                    Class genericTypeClass = (Class)((GenericArrayType)type).getGenericComponentType();
+                    Class<?> genericTypeClass = (Class)((GenericArrayType)type).getGenericComponentType();
                     genericTypeClass = java.lang.reflect.Array.newInstance(genericTypeClass, 0).getClass();
                     argCollection.add(javaModelImpl.getClass(genericTypeClass));
                 } else if(type instanceof TypeVariable) {
@@ -132,7 +132,7 @@
     public JavaAnnotation getAnnotation(JavaClass arg0) {
         // the only annotation we will return if isMetadataComplete == true is XmlRegistry
         if (arg0 != null && (!isMetadataComplete || arg0.getQualifiedName().equals(XML_REGISTRY_CLASS_NAME))) {
-            Class annotationClass = ((JavaClassImpl) arg0).getJavaClass();
+            Class<?> annotationClass = ((JavaClassImpl) arg0).getJavaClass();
             if (javaModelImpl.getAnnotationHelper().isAnnotationPresent(getAnnotatedElement(), annotationClass)) {
                 return new JavaAnnotationImpl(this.javaModelImpl.getAnnotationHelper().getAnnotation(getAnnotatedElement(), annotationClass));
             }
@@ -155,8 +155,8 @@
     @Override
     public Collection<JavaClass> getDeclaredClasses() {
         List<JavaClass> classCollection = new ArrayList<>();
-        Class[] classes = jClass.getDeclaredClasses();
-        for (Class javaClass : classes) {
+        Class<?>[] classes = jClass.getDeclaredClasses();
+        for (Class<?> javaClass : classes) {
             classCollection.add(javaModelImpl.getClass(javaClass));
         }
         return classCollection;
@@ -194,7 +194,7 @@
         if (arg1 == null) {
             arg1 = new JavaClass[0];
         }
-        Class[] params = new Class[arg1.length];
+        Class<?>[] params = new Class<?>[arg1.length];
         for (int i=0; i<arg1.length; i++) {
             JavaClass jType = arg1[i];
             if (jType != null) {
@@ -223,7 +223,7 @@
         if (paramTypes == null) {
             paramTypes = new JavaClass[0];
         }
-        Class[] params = new Class[paramTypes.length];
+        Class<?>[] params = new Class<?>[paramTypes.length];
         for (int i=0; i<paramTypes.length; i++) {
             JavaClass jType = paramTypes[i];
             if (jType != null) {
@@ -243,7 +243,7 @@
         if (paramTypes == null) {
             paramTypes = new JavaClass[0];
         }
-        Class[] params = new Class[paramTypes.length];
+        Class<?>[] params = new Class<?>[paramTypes.length];
         for (int i=0; i<paramTypes.length; i++) {
             JavaClass jType = paramTypes[i];
             if (jType != null) {
@@ -295,7 +295,7 @@
         return fieldCollection;
     }
 
-    public Class getJavaClass() {
+    public Class<?> getJavaClass() {
         return jClass;
     }
 
@@ -307,7 +307,7 @@
         if (arg1 == null) {
             arg1 = new JavaClass[0];
         }
-        Class[] params = new Class[arg1.length];
+        Class<?>[] params = new Class<?>[arg1.length];
         for (int i=0; i<arg1.length; i++) {
             JavaClass jType = arg1[i];
             if (jType != null) {
@@ -347,8 +347,8 @@
         if(jClass.getPackage() != null){
             return jClass.getPackage().getName();
         }else{
-            Class nonInnerClass = jClass;
-            Class enclosingClass = jClass.getEnclosingClass();
+            Class<?> nonInnerClass = jClass;
+            Class<?> enclosingClass = jClass.getEnclosingClass();
             while(enclosingClass != null){
                 nonInnerClass = enclosingClass;
                 enclosingClass = nonInnerClass.getEnclosingClass();
@@ -380,13 +380,13 @@
             return this.superClassOverride;
         }
         if(jClass.isInterface()) {
-            Class[] superInterfaces = jClass.getInterfaces();
+            Class<?>[] superInterfaces = jClass.getInterfaces();
             if(superInterfaces != null) {
                 if(superInterfaces.length == 1) {
                     return javaModelImpl.getClass(superInterfaces[0]);
                 } else {
-                    Class parent = null;
-                    for(Class next:superInterfaces) {
+                    Class<?> parent = null;
+                    for(Class<?> next:superInterfaces) {
                         if(!(next.getName().startsWith("java.")
                                 || next.getName().startsWith("javax.")
                                 || next.getName().startsWith("jakarta."))) {
@@ -458,13 +458,13 @@
 
     private boolean customIsAssignableFrom(JavaClass arg0) {
         JavaClassImpl jClass = (JavaClassImpl)arg0;
-        Class cls = jClass.getJavaClass();
+        Class<?> cls = jClass.getJavaClass();
 
         if(cls == this.jClass) {
             return true;
         }
-        Class[] interfaces = cls.getInterfaces();
-        for(Class nextInterface:interfaces) {
+        Class<?>[] interfaces = cls.getInterfaces();
+        for(Class<?> nextInterface:interfaces) {
             if(nextInterface == this.jClass) {
                 return true;
             }
@@ -595,7 +595,7 @@
     public JavaAnnotation getDeclaredAnnotation(JavaClass arg0) {
         // the only annotation we will return if isMetadataComplete == true is XmlRegistry
         if (arg0 != null && (!isMetadataComplete || arg0.getQualifiedName().equals(XML_REGISTRY_CLASS_NAME))) {
-            Class annotationClass = ((JavaClassImpl) arg0).getJavaClass();
+            Class<?> annotationClass = ((JavaClassImpl) arg0).getJavaClass();
             Annotation[] annotations = javaModelImpl.getAnnotationHelper().getDeclaredAnnotations(getAnnotatedElement());
             for (Annotation annotation : annotations) {
                 if (annotation.annotationType().equals(annotationClass)) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaConstructorImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaConstructorImpl.java
index ec4b1dc..4802892 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaConstructorImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaConstructorImpl.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
@@ -57,7 +57,7 @@
 
     @Override
     public JavaClass[] getParameterTypes() {
-        Class[] params = jConstructor.getParameterTypes();
+        Class<?>[] params = jConstructor.getParameterTypes();
         JavaClass[] paramArray = new JavaClass[params.length];
         for (int i=0; i<params.length; i++) {
             paramArray[i] = javaModelImpl.getClass(params[i]);
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 7d1dbc6..4ee2902 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
@@ -65,7 +65,7 @@
     @Override
     public JavaAnnotation getAnnotation(JavaClass arg0) {
         if (arg0 != null && !isMetadataComplete) {
-            Class annotationClass = ((JavaClassImpl) arg0).getJavaClass();
+            Class<?> annotationClass = ((JavaClassImpl) arg0).getJavaClass();
             if (javaModelImpl.getAnnotationHelper().isAnnotationPresent(getAnnotatedElement(), annotationClass)) {
                 return new JavaAnnotationImpl(javaModelImpl.getAnnotationHelper().getAnnotation(getAnnotatedElement(), annotationClass));
             }
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 d4b4071..d0f305c 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
@@ -79,7 +79,7 @@
     @Override
     public JavaAnnotation getAnnotation(JavaClass arg0) {
         if (arg0 != null && !isMetadataComplete) {
-            Class annotationClass = ((JavaClassImpl) arg0).getJavaClass();
+            Class<?> annotationClass = ((JavaClassImpl) arg0).getJavaClass();
             Annotation anno = javaModelImpl.getAnnotationHelper().getAnnotation(getAnnotatedElement(), annotationClass);
             if (anno != null) {
                 return new JavaAnnotationImpl(anno);
@@ -107,7 +107,7 @@
 
     @Override
     public JavaClass[] getParameterTypes() {
-        Class[] params = PrivilegedAccessHelper.getMethodParameterTypes(jMethod);
+        Class<?>[] params = PrivilegedAccessHelper.getMethodParameterTypes(jMethod);
         JavaClass[] paramArray = new JavaClass[params.length];
         for (int i=0; i<params.length; i++) {
             paramArray[i] = javaModelImpl.getClass(params[i]);
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelInputImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelInputImpl.java
index d6381f6..30d75ad 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelInputImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaModelInputImpl.java
@@ -78,7 +78,7 @@
         }
    }
 
-    public JavaModelInputImpl(Class[] classes, JavaModel javaModel) {
+    public JavaModelInputImpl(Class<?>[] classes, JavaModel javaModel) {
         jModel = javaModel;
         jClasses = new JavaClass[classes.length];
         for (int i=0; i<classes.length; i++) {
@@ -91,7 +91,7 @@
         if (type instanceof Class) {
             return (JavaClassImpl) jModel.getClass((Class) type);
         } else if (type instanceof GenericArrayType) {
-            Class genericTypeClass = (Class) ((GenericArrayType) type).getGenericComponentType();
+            Class<?> genericTypeClass = (Class) ((GenericArrayType) type).getGenericComponentType();
             genericTypeClass = java.lang.reflect.Array.newInstance(genericTypeClass, 0).getClass();
             return new JavaClassImpl(genericTypeClass, (JavaModelImpl) jModel);
         } else {
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaPackageImpl.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaPackageImpl.java
index 70561dc..1ac7365 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaPackageImpl.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/javamodel/reflection/JavaPackageImpl.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
@@ -60,7 +60,7 @@
     @Override
     public JavaAnnotation getAnnotation(JavaClass arg0) {
         if (arg0 != null && !isMetadataComplete) {
-            Class annotationClass = ((JavaClassImpl) arg0).getJavaClass();
+            Class<?> annotationClass = ((JavaClassImpl) arg0).getJavaClass();
             if (jPkg != null && jModelImpl.getAnnotationHelper().isAnnotationPresent(getAnnotatedElement(), annotationClass)) {
                return new JavaAnnotationImpl(jModelImpl.getAnnotationHelper().getAnnotation(getAnnotatedElement(), annotationClass));
             }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/json/JsonSchemaOutputResolver.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/json/JsonSchemaOutputResolver.java
index 0b1b0a3..8d48757 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/json/JsonSchemaOutputResolver.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/json/JsonSchemaOutputResolver.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,6 +32,6 @@
      * level structure, so the class returned from this method will represent the root of the
      * json schema.
      */
-    public abstract Class getRootClass();
+    public abstract Class<?> getRootClass();
 
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/rs/MOXyJsonProvider.java b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/rs/MOXyJsonProvider.java
index adfd07d..9600a96 100644
--- a/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/rs/MOXyJsonProvider.java
+++ b/moxy/org.eclipse.persistence.moxy/src/main/java/org/eclipse/persistence/jaxb/rs/MOXyJsonProvider.java
@@ -252,7 +252,7 @@
         if(null == genericType) {
             return asSet(Object.class);
         }
-        if(genericType instanceof Class && genericType != JAXBElement.class) {
+        if(genericType instanceof Class<?> && genericType != JAXBElement.class) {
             Class<?> clazz = (Class<?>) genericType;
             if(clazz.isArray()) {
                 return getDomainClasses(clazz.getComponentType());
@@ -330,13 +330,13 @@
             }
 
             if(null == jaxbContext) {
-                jaxbContext = JAXBContextFactory.createContext(domainClasses.toArray(new Class[0]), null);
+                jaxbContext = JAXBContextFactory.createContext(domainClasses.toArray(new Class<?>[0]), null);
                 contextCache.put(domainClasses, jaxbContext);
                 return jaxbContext;
             } else if (jaxbContext instanceof org.eclipse.persistence.jaxb.JAXBContext) {
                 return jaxbContext;
             } else {
-                jaxbContext = JAXBContextFactory.createContext(domainClasses.toArray(new Class[0]), null);
+                jaxbContext = JAXBContextFactory.createContext(domainClasses.toArray(new Class<?>[0]), null);
                 contextCache.put(domainClasses, jaxbContext);
                 return jaxbContext;
             }
@@ -583,7 +583,7 @@
             //special case for List<JAXBElement<String>>
             //this is quick fix, MOXyJsonProvider should be refactored as stated in issue #459541
             if (domainClasses.size() == 3) {
-                Class[] domainArray = domainClasses.toArray(new Class[domainClasses.size()]);
+                Class<?>[] domainArray = domainClasses.toArray(new Class<?>[domainClasses.size()]);
                 if (JAXBElement.class.isAssignableFrom(domainArray[1]) && String.class == domainArray[2]) {
                     return true;
                 }
@@ -796,7 +796,7 @@
         }
     }
 
-    private Object handleJAXBElement(Object element, Class domainClass, boolean wrapItemInJAXBElement) {
+    private Object handleJAXBElement(Object element, Class<?> domainClass, boolean wrapItemInJAXBElement) {
         if(wrapItemInJAXBElement) {
             if(element instanceof JAXBElement) {
                 return element;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBTestCases.java
index b9af29e..9275289 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/JAXBTestCases.java
@@ -342,7 +342,7 @@
         return jaxbUnmarshaller;
     }
 
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return null;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/ClassLevelAccessorFactory.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/ClassLevelAccessorFactory.java
index aa148e7..9be9232 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/ClassLevelAccessorFactory.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/ClassLevelAccessorFactory.java
@@ -38,7 +38,7 @@
 
     public static class MyCustomFieldAccessor extends Accessor {
 
-        protected MyCustomFieldAccessor(Class valueType) {
+        protected MyCustomFieldAccessor(Class<?> valueType) {
             super(valueType);
         }
 
@@ -58,7 +58,7 @@
 
     public class MyCustomPropertyAccessor extends Accessor{
 
-        protected MyCustomPropertyAccessor(Class valueType) {
+        protected MyCustomPropertyAccessor(Class<?> valueType) {
             super(valueType);
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/MyCustomAccessorFactory.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/MyCustomAccessorFactory.java
index 7f285d7..2875d28 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/MyCustomAccessorFactory.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlaccessorfactory/MyCustomAccessorFactory.java
@@ -37,7 +37,7 @@
 
     public static class MyCustomFieldAccessor extends Accessor {
 
-        protected MyCustomFieldAccessor(Class valueType) {
+        protected MyCustomFieldAccessor(Class<?> valueType) {
             super(valueType);
         }
 
@@ -57,7 +57,7 @@
 
     public class MyCustomPropertyAccessor extends Accessor{
 
-        protected MyCustomPropertyAccessor(Class valueType) {
+        protected MyCustomPropertyAccessor(Class<?> valueType) {
             super(valueType);
         }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/MyClassExtractor.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/MyClassExtractor.java
index af8a22b..84929c2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/MyClassExtractor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/MyClassExtractor.java
@@ -20,7 +20,7 @@
 
 public class MyClassExtractor extends ClassExtractor {
     @Override
-    public Class extractClassFromRow(DataRecord databaseRow, Session session) {
+    public Class<?> extractClassFromRow(DataRecord databaseRow, Session session) {
         return Car.class;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/Vehicle.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/Vehicle.java
index bc326c6..6ee0e8f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/Vehicle.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/annotations/xmlclassextractor/Vehicle.java
@@ -41,7 +41,7 @@
         return false;
     }
 
-    public static Class getClassForRow(DataRecord databaseRow) {
+    public static Class<?> getClassForRow(DataRecord databaseRow) {
         return Car.class;
     }
 }
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 f7910b1..fcea256 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
@@ -26,7 +26,7 @@
     private final static String XML_RESOURCE = "org/eclipse/persistence/testing/jaxb/classloader/classloader.xml";
     private final static String JSON_RESOURCE = "org/eclipse/persistence/testing/jaxb/classloader/classloader.json";
 
-    private Class rootClass;
+    private Class<?> rootClass;
 
     public DifferentClassLoaderTestCases(String name) throws Exception {
         super(name);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromXSDTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromXSDTestCases.java
index 1aed95f..6fd46a3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromXSDTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/DynamicJAXBFromXSDTestCases.java
@@ -1023,7 +1023,7 @@
         }
 
         assertEquals("dateTime was not consistently unmarshalled as XMLGregorianCalendar " + elemClasses, 1, elemClasses.size());
-        Class elemClass = (Class) elemClasses.toArray()[0];
+        Class<?> elemClass = (Class) elemClasses.toArray()[0];
         boolean isXmlGregorianCalendar = ClassConstants.XML_GREGORIAN_CALENDAR.isAssignableFrom(elemClass);
         assertTrue("dateTime was not unmarshalled as XMLGregorianCalendar", isXmlGregorianCalendar);
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/util/TestClassExtractor.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/util/TestClassExtractor.java
index 615fa38..08d9cdc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/util/TestClassExtractor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/dynamic/util/TestClassExtractor.java
@@ -21,8 +21,8 @@
 public class TestClassExtractor extends ClassExtractor {
 
     @Override
-    public Class extractClassFromRow(DataRecord databaseRow, Session session) {
-        Class empClass = session.getProject().getDescriptorForAlias("Employee").getJavaClass();
+    public Class<?> extractClassFromRow(DataRecord databaseRow, Session session) {
+        Class<?> empClass = session.getProject().getDescriptorForAlias("Employee").getJavaClass();
         return empClass;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/employee/EmployeeNullInCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/employee/EmployeeNullInCollectionTestCases.java
index 9320789..44c8add 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/employee/EmployeeNullInCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/employee/EmployeeNullInCollectionTestCases.java
@@ -103,7 +103,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
     return Employee_B.class;
     }
     /*
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/events/ClassLoaderTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/events/ClassLoaderTestCases.java
index 9e3b02e..957d8b2 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/events/ClassLoaderTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/events/ClassLoaderTestCases.java
@@ -37,7 +37,7 @@
 
     private static final String CLASS_NAME = "ClassLoaderChild";
 
-    private Class classLoaderChildClass;
+    private Class<?> classLoaderChildClass;
     private JAXBContext jaxbContext;
 
     @Override
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyClassExtractor.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyClassExtractor.java
index f163765..2afe93a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyClassExtractor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyClassExtractor.java
@@ -20,7 +20,7 @@
 
 public class MyClassExtractor extends ClassExtractor {
     @Override
-    public Class extractClassFromRow(DataRecord databaseRow, Session session) {
+    public Class<?> extractClassFromRow(DataRecord databaseRow, Session session) {
         return Car.class;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyOtherClassExtractor.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyOtherClassExtractor.java
index 51a83a1..d5003e0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyOtherClassExtractor.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/MyOtherClassExtractor.java
@@ -20,7 +20,7 @@
 
 public class MyOtherClassExtractor extends ClassExtractor {
     @Override
-    public Class extractClassFromRow(DataRecord databaseRow, Session session) {
+    public Class<?> extractClassFromRow(DataRecord databaseRow, Session session) {
         return Vehicle.class;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/Vehicle.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/Vehicle.java
index 414b339..13ac853 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/Vehicle.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/externalizedmetadata/xmlclassextractor/Vehicle.java
@@ -36,7 +36,7 @@
         return false;
     }
 
-    public static Class getClassForRow(DataRecord databaseRow) {
+    public static Class<?> getClassForRow(DataRecord databaseRow) {
         return Car.class;
     }
 }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/MyIDResolver.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/MyIDResolver.java
index 7e61f5c..2cf856e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/MyIDResolver.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/MyIDResolver.java
@@ -63,7 +63,7 @@
     }
 
     @Override
-    public Callable<Object> resolve(final Map<String, Object> idWrapper, final Class type) throws SAXException {
+    public Callable<Object> resolve(final Map<String, Object> idWrapper, final Class<?> type) throws SAXException {
         hitResolve = true;
         return new Callable<Object>() {
             @Override
@@ -86,7 +86,7 @@
     }
 
     @Override
-    public Callable<?> resolve(Object id, Class type) throws SAXException {
+    public Callable<?> resolve(Object id, Class<?> type) throws SAXException {
         hitResolveSingle = true;
         Map<String, Object> idMap = new LinkedHashMap<String, Object>(1);
         idMap.put("stringId", id);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/collection/MyIDResolver.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/collection/MyIDResolver.java
index 7e41dbc..96a095a 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/collection/MyIDResolver.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/idresolver/collection/MyIDResolver.java
@@ -53,7 +53,7 @@
     }
 
     @Override
-    public Callable<Object> resolve(final Map<String, Object> idWrapper, final Class type) throws SAXException {
+    public Callable<Object> resolve(final Map<String, Object> idWrapper, final Class<?> type) throws SAXException {
         hitResolve = true;
         return new Callable<Object>() {
             @Override
@@ -75,7 +75,7 @@
     }
 
     @Override
-    public Callable<?> resolve(Object id, Class type) throws SAXException {
+    public Callable<?> resolve(Object id, Class<?> type) throws SAXException {
         hitResolveSingle = true;
         Map<String, Object> idMap = new LinkedHashMap<String, Object>(1);
         idMap.put("stringId", id);
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/JAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/JAXBElementTestCases.java
index 6aca9c5..0d9cfec 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/JAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/JAXBElementTestCases.java
@@ -41,7 +41,7 @@
     protected final static String CONTROL_PERSON_NAME = "Joe Smith";
     protected final static String CONTROL_NAMESPACE_URI = "test";
     protected String resourceName;
-    protected Class target;
+    protected Class<?> target;
 
     public JAXBElementTestCases(String name) throws Exception {
         super(name);
@@ -68,7 +68,7 @@
         resourceName = xmlResource;
     }
 
-    protected void setTargetClass(Class targetCls) {
+    protected void setTargetClass(Class<?> targetCls) {
         target = targetCls;
     }
 
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 a3c202e..35e78bd 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
@@ -37,7 +37,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return targetClass;
     }
 
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 019b142..1b4abfd 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
@@ -35,7 +35,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return targetClass;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementBase64TestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementBase64TestCases.java
index 22bd9ff..0fa5a54 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementBase64TestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementBase64TestCases.java
@@ -36,7 +36,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return byte[].class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementByteArrayAttachmentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementByteArrayAttachmentTestCases.java
index 952c718..cc98e24 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementByteArrayAttachmentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementByteArrayAttachmentTestCases.java
@@ -34,7 +34,7 @@
 
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return byte[].class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementCharacterTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementCharacterTestCases.java
index 047a578..9f5a06c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementCharacterTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementCharacterTestCases.java
@@ -41,7 +41,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return Character.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementDataHandlerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementDataHandlerTestCases.java
index d48d625..32c2b70 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementDataHandlerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/jaxbelement/simple/JAXBElementDataHandlerTestCases.java
@@ -40,7 +40,7 @@
 
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return DataHandler.class;
     }
 
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 dd38772..a1f3b71 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
@@ -36,7 +36,7 @@
 
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return targetClass;
     }
 
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 34d5f30..8626108 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
@@ -41,7 +41,7 @@
         super(name);
     }
 
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return null;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/EmptyAnyCollectionNoRootTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/EmptyAnyCollectionNoRootTestCases.java
index d822160..b1822f7 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/EmptyAnyCollectionNoRootTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/EmptyAnyCollectionNoRootTestCases.java
@@ -47,7 +47,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Root.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/NullAnyCollectionNoRootTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/NullAnyCollectionNoRootTestCases.java
index 8eed0db..a82e6cc 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/NullAnyCollectionNoRootTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/any/NullAnyCollectionNoRootTestCases.java
@@ -55,7 +55,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Root.class;
     }
 
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 63f20c2..5095e57 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
@@ -32,7 +32,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return AddressNoRoot.class;
     }
 
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 cbc1464..1e8322f 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
@@ -34,7 +34,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return AddressNoRoot.class;
     }
 
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 9950a81..70a29cd 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
@@ -35,7 +35,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return AddressNoRoot.class;
     }
 
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 070f537..2b489d7 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
@@ -38,7 +38,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return SimpleBean.class;
     }
 
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 64ff57a..f9d2976 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
@@ -53,7 +53,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return AddressWithRootElement.class;
     }
 
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 3ed4b80..7e761c3 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
@@ -37,7 +37,7 @@
       }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return Address.class;
     }
 
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 6122fd3..5d53462 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
@@ -44,7 +44,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return Address.class;
     }
 
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 4cc0e22..396aece 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
@@ -42,7 +42,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return Address.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementNoRootTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementNoRootTestCases.java
index 89693f8..ec087e5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementNoRootTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementNoRootTestCases.java
@@ -40,7 +40,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithXmlRootElementRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementTestCases.java
index 57eee2d..f5c131d 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithXmlRootElementJAXBElementTestCases.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
@@ -73,7 +73,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithXmlRootElementRoot.class;
     }
 
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 3f6cb30..1448e0d 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
@@ -41,7 +41,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithoutXmlRootElementRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementJAXBElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementJAXBElementTestCases.java
index 1b91e63..7adc865 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementJAXBElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementJAXBElementTestCases.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
@@ -33,7 +33,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithoutXmlRootElementRoot.class;
     }
 
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 c69d659..7da47e8 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
@@ -41,7 +41,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithoutXmlRootElementRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementTestCases.java
index 9456d7b..f2cd397 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/rootlevellist/WithoutXmlRootElementTestCases.java
@@ -39,7 +39,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return WithoutXmlRootElementRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/AnyCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/AnyCollectionTestCases.java
index a45cc7b..d7165dd 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/AnyCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/AnyCollectionTestCases.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
@@ -53,7 +53,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return AnyCollectionRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/BinaryCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/BinaryCollectionTestCases.java
index 2fadd3d..eb06cb8 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/BinaryCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/BinaryCollectionTestCases.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
@@ -44,7 +44,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return BinaryCollectionRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ChoiceCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ChoiceCollectionTestCases.java
index 055330e..0230ddb 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ChoiceCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ChoiceCollectionTestCases.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
@@ -44,7 +44,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return ChoiceCollectionRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/DefaultTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/DefaultTestCases.java
index 00c183b..0c7d8c5 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/DefaultTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/DefaultTestCases.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
@@ -67,7 +67,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ElementRefsCollectionTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ElementRefsCollectionTestCases.java
index 7a7f1fb..b8c2684 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ElementRefsCollectionTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/ElementRefsCollectionTestCases.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
@@ -48,7 +48,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return ElementRefsCollectionRoot.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyAbsentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyAbsentTestCases.java
index fa30565..431291c 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyAbsentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyAbsentTestCases.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
@@ -63,7 +63,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyPresentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyPresentTestCases.java
index 8f6dd0f..a69307f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyPresentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameEmptyPresentTestCases.java
@@ -56,7 +56,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameNullAbsentTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameNullAbsentTestCases.java
index fb3f09f..09c04ce 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameNullAbsentTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameNullAbsentTestCases.java
@@ -75,7 +75,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameSingleItemTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameSingleItemTestCases.java
index a7927f8..a6f827e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameSingleItemTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameSingleItemTestCases.java
@@ -60,7 +60,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameTestCases.java
index 44191ee..d192a87 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNameTestCases.java
@@ -75,7 +75,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNamespaceTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNamespaceTestCases.java
index cab95ab..63009d3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNamespaceTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperNamespaceTestCases.java
@@ -75,7 +75,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Company.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperXmlPathTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperXmlPathTestCases.java
index eb0f98d..4de2d36 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperXmlPathTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/json/wrapper/WrapperXmlPathTestCases.java
@@ -75,7 +75,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return XmlPathCompany.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBByteArrayWithDataHandlerTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBByteArrayWithDataHandlerTestCases.java
index 4aef840..3955bbf 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBByteArrayWithDataHandlerTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBByteArrayWithDataHandlerTestCases.java
@@ -53,7 +53,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return byte[].class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNoJSONTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNoJSONTestCases.java
index 683ea7b..655e5bf 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNoJSONTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsNoJSONTestCases.java
@@ -447,7 +447,7 @@
 
     }
 
-    private Class getClassForDeclaredTypeOnUnmarshal() throws Exception{
+    private Class<?> getClassForDeclaredTypeOnUnmarshal() throws Exception{
         Type typeToUse = getTypeToUnmarshalTo();
         if(typeToUse instanceof Class){
             return (Class)typeToUse;
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsTestCases.java
index 010d212..a29df20 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/listofobjects/JAXBListOfObjectsTestCases.java
@@ -451,7 +451,7 @@
 
     }
 
-    private Class getClassForDeclaredTypeOnUnmarshal() throws Exception{
+    private Class<?> getClassForDeclaredTypeOnUnmarshal() throws Exception{
         Type typeToUse = getTypeToUnmarshalTo();
         if(typeToUse instanceof Class){
             return (Class)typeToUse;
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 0862ccb..1ed616e 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
@@ -56,7 +56,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return SomeClass.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectIntegerNoXsiTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectIntegerNoXsiTestCases.java
index d9bf2e9..2f13551 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectIntegerNoXsiTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectIntegerNoXsiTestCases.java
@@ -109,7 +109,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return Integer.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectObjectNoXsiTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectObjectNoXsiTestCases.java
index 1938424..454502e 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectObjectNoXsiTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectObjectNoXsiTestCases.java
@@ -110,7 +110,7 @@
         return Object.class;
     }
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return Object.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectStringNoXsiTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectStringNoXsiTestCases.java
index 002ba78..9b73114 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectStringNoXsiTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/singleobject/JAXBSingleObjectStringNoXsiTestCases.java
@@ -116,7 +116,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass() {
+    public Class<?> getUnmarshalClass() {
         return String.class;
     }
 
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 317d0a2..cc75048 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
@@ -67,7 +67,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return XmlBindings.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmldecriptor/LazyInitTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmldecriptor/LazyInitTestCases.java
index 11afe9e..268ab46 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmldecriptor/LazyInitTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmldecriptor/LazyInitTestCases.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
@@ -61,7 +61,7 @@
         assertNull(getFieldValue(TreeObjectBuilder.class, "relationshipMappings", treeObjectBuilder));
     }
 
-    private Object getFieldValue(Class clazz, String fieldName, Object object) throws Exception {
+    private Object getFieldValue(Class<?> clazz, String fieldName, Object object) throws Exception {
         Field field = PrivilegedAccessHelper.getField(clazz, fieldName, true);
         return field.get(object);
     }
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/model/Order.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/model/Order.java
index f366432..577432f 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/model/Order.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelement/model/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
@@ -33,7 +33,7 @@
     private Customer customer;
     @XmlPath(value="customerInput/comments/text()")
     private String[] comments;
-    public Class someClass;
+    public Class<?> someClass;
 
     public Order(){
         items = new ArrayList<Item>();
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 f3549a6..9797891 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
@@ -38,7 +38,7 @@
     }
 
     @Override
-    public Class getUnmarshalClass(){
+    public Class<?> getUnmarshalClass(){
         return AlbumInfo.class;
     }
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/nills/XmlElementRefNillStringTestCases.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/nills/XmlElementRefNillStringTestCases.java
index 1f93bb0..e0739f0 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/nills/XmlElementRefNillStringTestCases.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/jaxb/xmlelementref/nills/XmlElementRefNillStringTestCases.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
@@ -26,7 +26,7 @@
         super(name);
         setControlDocument(XML_RESOURCE);
         setControlJSON(JSON_RESOURCE);
-        setClasses(new Class [] {Root.class});
+        setClasses(new Class<?> [] {Root.class});
     }
 
     @Override
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 0714109..c2dea2d 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
@@ -65,9 +65,9 @@
 public abstract class OXTestCase extends XMLTestCase {
     protected static XMLInputFactory XML_INPUT_FACTORY;
     protected static XMLOutputFactory XML_OUTPUT_FACTORY;
-    protected static Class staxResultClass;
+    protected static Class<?> staxResultClass;
     protected static String staxResultClassName = "javax.xml.transform.stax.StAXResult";
-    protected static Class staxSourceClass;
+    protected static Class<?> staxSourceClass;
     protected static String staxSourceClassName = "javax.xml.transform.stax.StAXSource";
     protected static Constructor staxResultStreamWriterConstructor;
     protected static Constructor staxResultEventWriterConstructor;
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 333ab9c..1d80131 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
@@ -79,7 +79,7 @@
 /**
  * Return the class for the specified name, leaving it "unresolved".
  */
-protected Class customLoadUnresolvedClass(String className) throws ClassNotFoundException {
+protected Class<?> customLoadUnresolvedClass(String className) throws ClassNotFoundException {
     String jarFileName = (String) overridePackageNames.get(this.buildPackageName(className));
     ZipFile jarFile = this.buildJARFile(jarFileName);
 
@@ -148,8 +148,8 @@
  * Return the class for the specified name, resolving it if necessary.
  */
 @Override
-protected Class loadClass(String className, boolean resolve) throws ClassNotFoundException {
-    Class c = this.loadUnresolvedClass(className);
+protected Class<?> loadClass(String className, boolean resolve) throws ClassNotFoundException {
+    Class<?> c = this.loadUnresolvedClass(className);
     if (resolve) {
         this.resolveClass(c);
     }
@@ -172,7 +172,7 @@
 /**
  * Return the class for the specified name.
  */
-protected Class loadUnresolvedClass(String className) throws ClassNotFoundException {
+protected Class<?> loadUnresolvedClass(String className) throws ClassNotFoundException {
     // check whether we already loaded the class
     Class<?> c = this.findLoadedClass(className);
     if (c != null) {
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/MappingTestProject.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/MappingTestProject.java
index bfe8746..d12d7a3 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/MappingTestProject.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/classloader/MappingTestProject.java
@@ -42,12 +42,12 @@
  *  - XMLObjectReferenceMapping
  */
 public class MappingTestProject extends Project {
-    private Class rootObjectClass;
-    private Class testObjectClass;
-    private Class addressClass;
-    private Class anyObjectClass;
-    private Class listContainerPolicyClass;
-    private Class mapContainerPolicyClass;
+    private Class<?> rootObjectClass;
+    private Class<?> testObjectClass;
+    private Class<?> addressClass;
+    private Class<?> anyObjectClass;
+    private Class<?> listContainerPolicyClass;
+    private Class<?> mapContainerPolicyClass;
     private OXTestCase.Platform platform;
     private OXTestCase.Metadata metadata;
 
diff --git a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/Vehicle.java b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/Vehicle.java
index e36159f..68e6a52 100644
--- a/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/Vehicle.java
+++ b/moxy/org.eclipse.persistence.moxy/src/test/java/org/eclipse/persistence/testing/oxm/inheritance/Vehicle.java
@@ -39,7 +39,7 @@
         return false;
     }
 
-    public static Class getClassForRow(DataRecord databaseRow) {
+    public static Class<?> getClassForRow(DataRecord databaseRow) {
         return Car.class;
     }
 }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDODataObject.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDODataObject.java
index d88931c..c6e12e2 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDODataObject.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDODataObject.java
@@ -2261,7 +2261,7 @@
      * @throws ClassCastException
      * @throws IllegalArgumentException
      */
-    public Object convertObjectToValue(Property property, Class cls) throws ClassCastException, IllegalArgumentException {
+    public Object convertObjectToValue(Property property, Class<?> cls) throws ClassCastException, IllegalArgumentException {
         //ie get String - convert(thisprop, String.class)
         if (null == property) {
             throw new IllegalArgumentException(SDOException.cannotPerformOperationOnNullArgument("convertObjectToValue"));
@@ -2286,7 +2286,7 @@
      * @throws ClassCastException
      * @throws IllegalArgumentException
      */
-    public Object convertObjectToValue(Property property, int position, Class cls) throws ClassCastException, IllegalArgumentException {
+    public Object convertObjectToValue(Property property, int position, Class<?> cls) throws ClassCastException, IllegalArgumentException {
         if (null == property) {
             throw new IllegalArgumentException(SDOException.cannotPerformOperationOnNullArgument("convertObjectToValue"));
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOProperty.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOProperty.java
index 23e7ad5..bb5cc48 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOProperty.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOProperty.java
@@ -480,7 +480,7 @@
         // Set fields even though defaults are set
         //aNullPolicy.setMarshalNullRepresentation(XMLNullRepresentationType.EMPTY_NODE);
         // Parameter type is always String
-        ((IsSetNullPolicy)aNullPolicy).setIsSetParameterTypes(new Class[] { ClassConstants.STRING });
+        ((IsSetNullPolicy)aNullPolicy).setIsSetParameterTypes(new Class<?>[] { ClassConstants.STRING });
         ((IsSetNullPolicy)aNullPolicy).setIsSetParameters(new Object[] { propertyName });
         aMapping.setNullPolicy(aNullPolicy);
         return aNullPolicy;
@@ -633,7 +633,7 @@
             if (sdoMethodAttributeAccessor) {
                 SDOMethodAttributeAccessor accessor = null;
                 if (this.getType().isDataType()) {
-                    Class theClass = getType().getInstanceClass();
+                    Class<?> theClass = getType().getInstanceClass();
                     accessor = new SDOMethodAttributeAccessor(this, theClass);
                 } else {
                     accessor = new SDOMethodAttributeAccessor(this);
@@ -966,7 +966,7 @@
     private boolean shouldAddInstanceClassConverter() {
         Object value = getType().get(SDOConstants.JAVA_CLASS_PROPERTY);
         if (getType().isDataType() && (value != null)) {
-            Class instanceClass = getType().getInstanceClass();
+            Class<?> instanceClass = getType().getInstanceClass();
             String instanceClassName = getType().getInstanceClassName();
             if (((instanceClassName != null) && instanceClassName.equals("jakarta.activation.DataHandler")) ||//
                     (instanceClass == ClassConstants.ABYTE) ||//
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOType.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOType.java
index b2cceb0..d877f38 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOType.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/SDOType.java
@@ -51,7 +51,7 @@
 import org.eclipse.persistence.oxm.schema.XMLSchemaReference;
 
 public class SDOType implements Type, Serializable {
-    private static final Class[] EMPTY_CLASS_ARRAY = new Class[0];
+    private static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];
 
     private QName qName;
     private boolean open;// if this Type is open
@@ -72,10 +72,10 @@
     private SDOProperty[] allPropertiesArr;
     private List subTypes;
     private boolean finalized;
-    private Class javaClass;
+    private Class<?> javaClass;
     private String javaClassName;
     private String javaImplClassName;
-    protected Class javaImplClass;
+    protected Class<?> javaImplClass;
     private List<SDOProperty> nonFinalizedReferencingProps;
     private List nonFinalizedMappingURIs;
 
@@ -176,7 +176,7 @@
     }
 
     @Override
-    public Class getInstanceClass() {
+    public Class<?> getInstanceClass() {
         if ((javaClass == null) && (javaClassName != null)) {
             try {
                 SDOClassLoader loader = ((SDOXMLHelper)aHelperContext.getXMLHelper()).getLoader();
@@ -201,7 +201,7 @@
     /**
      * Verify that the class is a valid instance class.
      */
-    private boolean isValidInstanceClass(Class clazz) {
+    private boolean isValidInstanceClass(Class<?> clazz) {
         if(isDataType) {
             return true;
         }
@@ -217,7 +217,7 @@
      * @param clazz class to be checked
      * @return {@code true} if given class has getter for each property
      */
-    private boolean hasClassGetterForEachProperty(Class clazz) {
+    private boolean hasClassGetterForEachProperty(Class<?> clazz) {
         for(Object object: this.getDeclaredProperties()) {
             SDOProperty sdoProperty = (SDOProperty) object;
             SDOType sdoPropertyType = sdoProperty.getType();
@@ -268,7 +268,7 @@
         }
 
         //this check is taken from page 77 of the spec
-        Class instanceClass = getInstanceClass();
+        Class<?> instanceClass = getInstanceClass();
         if (instanceClass != null) {
             return instanceClass.isInstance(object);
         }
@@ -527,7 +527,7 @@
       * Sets the Java class that this type represents.
       * @param aClass the Java class that this type represents.
       */
-    public void setInstanceClass(Class aClass) {
+    public void setInstanceClass(Class<?> aClass) {
         javaClass = aClass;
         if (javaClass != null) {
             javaClassName = javaClass.getName();
@@ -745,7 +745,7 @@
      * @param xdesc
      * @param pCls
      */
-    private void addClassIndicator(XMLDescriptor xdesc, Class pCls, boolean isInheritanceRoot) {
+    private void addClassIndicator(XMLDescriptor xdesc, Class<?> pCls, boolean isInheritanceRoot) {
         XMLField field = (XMLField)getXmlDescriptor().buildField("@xsi:type");
         field.initialize();
         xdesc.getInheritancePolicy().setClassIndicatorField(field);
@@ -808,10 +808,10 @@
                     if (prefix != null) {
                         indicator = prefix + SDOConstants.SDO_XPATH_NS_SEPARATOR_FRAGMENT + indicator;
                     }
-                    Class implClass = getImplClass();
+                    Class<?> implClass = getImplClass();
                     parentDescriptor.getInheritancePolicy().addClassIndicator(implClass, indicator);
                     parentDescriptor.getInheritancePolicy().setShouldReadSubclasses(true);
-                    Class parentClass = parentType.getImplClass();
+                    Class<?> parentClass = parentType.getImplClass();
                     getXmlDescriptor().getInheritancePolicy().setParentClass(parentClass);
                     getXmlDescriptor().getInheritancePolicy().setParentDescriptor(parentType.getXmlDescriptor());
                     parentType.getXmlDescriptor().getNamespaceResolver().put(XMLConstants.SCHEMA_INSTANCE_PREFIX, javax.xml.XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI);
@@ -946,7 +946,7 @@
     /**
       * INTERNAL:
       */
-    public Class getImplClass() {
+    public Class<?> getImplClass() {
         if ((javaImplClass == null) && (getImplClassName() != null)) {
             try {
                 SDOClassLoader loader = ((SDOXMLHelper)aHelperContext.getXMLHelper()).getLoader();
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/ApplicationAccessWLS.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/ApplicationAccessWLS.java
index 461fd76..35babf7 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/ApplicationAccessWLS.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/ApplicationAccessWLS.java
@@ -144,14 +144,14 @@
         try {
             // Get component invocation manager
             final Class<Object> cicManagerClass = PrivilegedAccessHelper.getClassForName(CIC_MANAGER_CLASS_NAME);
-            final Method getInstance = PrivilegedAccessHelper.getDeclaredMethod(cicManagerClass, "getInstance", new Class[]{});
+            final Method getInstance = PrivilegedAccessHelper.getDeclaredMethod(cicManagerClass, "getInstance", new Class<?>[]{});
             cicManagerInstance = PrivilegedAccessHelper.invokeMethod(getInstance, cicManagerClass);
 
             // Get component invocation context
-            getCurrentCicMethod = PrivilegedAccessHelper.getMethod(cicManagerClass, "getCurrentComponentInvocationContext", new Class[]{}, true);
+            getCurrentCicMethod = PrivilegedAccessHelper.getMethod(cicManagerClass, "getCurrentComponentInvocationContext", new Class<?>[]{}, true);
 
             final Class<Object> cicClass = PrivilegedAccessHelper.getClassForName(CIC_CLASS_NAME);
-            getApplicationIdMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getApplicationId", new Class[]{});
+            getApplicationIdMethod = PrivilegedAccessHelper.getDeclaredMethod(cicClass, "getApplicationId", new Class<?>[]{});
 
             return true;
         } catch (ClassNotFoundException|NoSuchMethodException|InvocationTargetException|IllegalAccessException e) {
@@ -166,10 +166,10 @@
     protected boolean initUsingApplicationAccess() {
         try {
             final Class<Object> applicationAccessClass = PrivilegedAccessHelper.getClassForName("weblogic.application.ApplicationAccess");
-            final Method getApplicationAccessMethod = PrivilegedAccessHelper.getDeclaredMethod(applicationAccessClass, "getApplicationAccess", new Class[]{});
+            final Method getApplicationAccessMethod = PrivilegedAccessHelper.getDeclaredMethod(applicationAccessClass, "getApplicationAccess", new Class<?>[]{});
             applicationAccessInstance = PrivilegedAccessHelper.invokeMethod(getApplicationAccessMethod, applicationAccessClass);
 
-            final Class[] methodParameterTypes = new Class[]{ClassLoader.class};
+            final Class<?>[] methodParameterTypes = new Class<?>[]{ClassLoader.class};
             getApplicationNameMethod = PrivilegedAccessHelper.getMethod(applicationAccessClass, "getApplicationName", methodParameterTypes, true);
             getApplicationVersionMethod = PrivilegedAccessHelper.getMethod(applicationAccessClass, "getApplicationVersion", methodParameterTypes, true);
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
index c6fd54d..b97ac4c 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/DynamicClassWriter.java
@@ -49,7 +49,7 @@
     private static final String LIST = "List";
     private static final String WRITE_REPLACE = "writeReplace";
 
-    private Class parentClass;
+    private Class<?> parentClass;
     private String typeImplClassDescriptor;
     private SDOType type;
     private Integer startPropertyIndex;
@@ -97,7 +97,7 @@
         }
     }
 
-    public Class getParentClass() {
+    public Class<?> getParentClass() {
         return this.parentClass;
     }
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/InstanceClassConverter.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/InstanceClassConverter.java
index 392b7c1..0364a9b 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/InstanceClassConverter.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/InstanceClassConverter.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 @@
  * Used when the javaClass open content property is set.
  */
 public class InstanceClassConverter implements Converter {
-    private Class customClass;
+    private Class<?> customClass;
 
     public InstanceClassConverter() {
     }
@@ -59,7 +59,7 @@
     @Override
     public Object convertDataValueToObjectValue(Object dataValue, Session session) {
         if (dataValue != null) {
-            Class[] params = new Class[1];
+            Class<?>[] params = new Class<?>[1];
             params[0] = String.class;
             Constructor ctor = null;
             try {
@@ -101,11 +101,11 @@
     public void initialize(DatabaseMapping mapping, Session session) {
     }
 
-    public void setCustomClass(Class customClass) {
+    public void setCustomClass(Class<?> customClass) {
         this.customClass = customClass;
     }
 
-    public Class getCustomClass() {
+    public Class<?> getCustomClass() {
         return customClass;
     }
 }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassLoader.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassLoader.java
index df30ba3..b305c8a 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassLoader.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassLoader.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
@@ -36,17 +36,17 @@
     }
 
     @Override
-    public Class loadClass(String className) throws ClassNotFoundException {
-        Class javaClass = generatedClasses.get(className);
+    public Class<?> loadClass(String className) throws ClassNotFoundException {
+        Class<?> javaClass = generatedClasses.get(className);
         if (javaClass != null) {
             return javaClass;
         }
         return getParent().loadClass(className);
     }
 
-    public Class loadClass(String className, SDOType type) throws ClassNotFoundException {
+    public Class<?> loadClass(String className, SDOType type) throws ClassNotFoundException {
         // To maximize performance, check the generated classes first
-        Class javaClass = generatedClasses.get(className);
+        Class<?> javaClass = generatedClasses.get(className);
         if (javaClass != null) {
             return javaClass;
         }
@@ -70,8 +70,8 @@
         return javaClass;
     }
 
-    public Class createGeneric(String className, SDOType type) {
-        Class javaClass = generatedClasses.get(className);
+    public Class<?> createGeneric(String className, SDOType type) {
+        Class<?> javaClass = generatedClasses.get(className);
         if (javaClass != null) {
             return javaClass;
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDODataHelper.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDODataHelper.java
index ab44eee..8bebb98 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDODataHelper.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDODataHelper.java
@@ -595,7 +595,7 @@
      * @param schemaType The schema type if available.
      * @return the original value converted based on the convertClass parameter.
      */
-    public Object convertValue(Object value, Class convertClass, QName schemaType) {
+    public Object convertValue(Object value, Class<?> convertClass, QName schemaType) {
         return getXMLConversionManager().convertObject(value, convertClass, schemaType);
 
     }
@@ -607,7 +607,7 @@
      * @param convertClass The class to convert the value to.
      * @return the original value converted based on the convertClass parameter.
      */
-    public Object convertFromStringValue(String value, Class convertClass) {
+    public Object convertFromStringValue(String value, Class<?> convertClass) {
         if (convertClass == ClassConstants.UTILDATE) {
             return toDate(value);
         } else if (convertClass == ClassConstants.CALENDAR) {
@@ -639,7 +639,7 @@
      * @return the original value converted based on the convertClass parameter.
      */
     public Object convertFromStringValue(String value, Type sdoType, QName schemaType) {
-        Class convertClass = ((SDOTypeHelper) getHelperContext().getTypeHelper()).getJavaWrapperTypeForSDOType(sdoType);
+        Class<?> convertClass = ((SDOTypeHelper) getHelperContext().getTypeHelper()).getJavaWrapperTypeForSDOType(sdoType);
         if (convertClass != null) {
             if (schemaType == null) {
                 return ((SDODataHelper) getHelperContext().getDataHelper()).convertFromStringValue(value, convertClass);
@@ -658,7 +658,7 @@
      * @param schemaType The schema type if available.
      * @return the original value converted based on the convertClass parameter.
      */
-    public Object convertFromStringValue(String value, Class convertClass, QName schemaType) {
+    public Object convertFromStringValue(String value, Class<?> convertClass, QName schemaType) {
         if (convertClass == ClassConstants.UTILDATE) {
             return toDate(value);
         } else if (convertClass == ClassConstants.CALENDAR) {
@@ -734,8 +734,8 @@
             // calling into conversion manager
             try {
                 Class<Object> binaryDataHelper = PrivilegedAccessHelper.getClassForName("org.eclipse.persistence.internal.oxm.XMLBinaryDataHelper");
-                java.lang.reflect.Method getHelperMethod = PrivilegedAccessHelper.getMethod(binaryDataHelper, "getXMLBinaryDataHelper", new Class[] {}, false);
-                java.lang.reflect.Method stringToDataHandlerMethod = PrivilegedAccessHelper.getMethod(binaryDataHelper, "stringFromDataHandler", new Class[] { Object.class, QName.class, CoreAbstractSession.class }, false);
+                java.lang.reflect.Method getHelperMethod = PrivilegedAccessHelper.getMethod(binaryDataHelper, "getXMLBinaryDataHelper", new Class<?>[] {}, false);
+                java.lang.reflect.Method stringToDataHandlerMethod = PrivilegedAccessHelper.getMethod(binaryDataHelper, "stringFromDataHandler", new Class<?>[] { Object.class, QName.class, CoreAbstractSession.class }, false);
 
                 Object helper = PrivilegedAccessHelper.invokeMethod(getHelperMethod, binaryDataHelper, new Object[] {});
                 String result = PrivilegedAccessHelper.invokeMethod(stringToDataHandlerMethod, helper, new Object[] { value, xsdType, ((SDOXMLHelper) getHelperContext().getXMLHelper()).getXmlContext().getSession() });
@@ -760,7 +760,7 @@
      */
     @Override
     public Object convert(Type type, Object value) {
-        Class convertClass = null;
+        Class<?> convertClass = null;
         if (type.isDataType()) {
             convertClass = type.getInstanceClass();
         } /*else {
@@ -825,7 +825,7 @@
     /**
      * INTERNAL:
      */
-    public Object convertValueToClass(Property prop, Object valueToConvert, Class convertToClass) {
+    public Object convertValueToClass(Property prop, Object valueToConvert, Class<?> convertToClass) {
         try {
             if (valueToConvert == null) {
                 return null;
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOFragmentMappingAttributeAccessor.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOFragmentMappingAttributeAccessor.java
index c176b3f..cba5dd4 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOFragmentMappingAttributeAccessor.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOFragmentMappingAttributeAccessor.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
@@ -77,7 +77,7 @@
      * get and set method names
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOHelperContext.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOHelperContext.java
index 167d226..6f3b323 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOHelperContext.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOHelperContext.java
@@ -150,7 +150,7 @@
     private static final String WLS_APPLICATION_VERSION = "ApplicationVersion";
     private static final String WLS_APPLICATION_NAME_GET_METHOD_NAME = "getApplicationName";
     private static final String WLS_ACTIVE_VERSION_STATE = "ActiveVersionState";
-    private static final Class[] WLS_PARAMETER_TYPES = {};
+    private static final Class<?>[] WLS_PARAMETER_TYPES = {};
 
     // For WebSphere
     private static final String WAS_NEWLINE = "\n";
@@ -1459,14 +1459,14 @@
         public ReflectionHelperContextResolver(Object target) {
             this.target = target;
             try {
-                this.method = findMethod(target.getClass(), "getHelperContext", new Class[]{String.class, ClassLoader.class});
+                this.method = findMethod(target.getClass(), "getHelperContext", new Class<?>[]{String.class, ClassLoader.class});
             } catch (Exception e) {
                 LOGGER.log(Level.SEVERE, e.getMessage(), e);
                 throw new IllegalStateException(e);
             }
         }
 
-        private Method findMethod(Class clazz, String methodName, Class[] params) throws java.security.PrivilegedActionException, NoSuchMethodException {
+        private Method findMethod(Class<?> clazz, String methodName, Class<?>[] params) throws java.security.PrivilegedActionException, NoSuchMethodException {
             if (PrivilegedAccessHelper.shouldUsePrivilegedAccess())
                 return AccessController.doPrivileged(new PrivilegedGetMethod(clazz, methodName, params, true));
             return PrivilegedAccessHelper.getMethod(clazz, methodName, params, true);
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOMethodAttributeAccessor.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOMethodAttributeAccessor.java
index fa70652..54c6cf1 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOMethodAttributeAccessor.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOMethodAttributeAccessor.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,14 +29,14 @@
  * the DataObject and that must be set on this accessor.
  */
 public class SDOMethodAttributeAccessor extends MethodAttributeAccessor {
-    protected Class attributeClass;
+    protected Class<?> attributeClass;
     protected SDOProperty property;
 
     public SDOMethodAttributeAccessor(Property property) {
         setProperty(property);
     }
 
-    public SDOMethodAttributeAccessor(Property property, Class attributeClass) {
+    public SDOMethodAttributeAccessor(Property property, Class<?> attributeClass) {
         setProperty(property);
         this.attributeClass = attributeClass;
     }
@@ -45,7 +45,7 @@
       * Return the return type of the method accessor.
       */
     @Override
-    public Class getAttributeClass() {
+    public Class<?> getAttributeClass() {
         if (attributeClass != null) {
             return attributeClass;
         }
@@ -71,7 +71,7 @@
      * get and set method names
      */
     @Override
-    public void initializeAttributes(Class theJavaClass) throws DescriptorException {
+    public void initializeAttributes(Class<?> theJavaClass) throws DescriptorException {
         if (getAttributeName() == null) {
             throw DescriptorException.attributeNameNotSpecified();
         }
@@ -109,12 +109,12 @@
     }
 
     @Override
-    public Class getGetMethodReturnType() {
+    public Class<?> getGetMethodReturnType() {
         return attributeClass;
     }
 
     @Override
-    public Class getSetMethodParameterType() {
+    public Class<?> getSetMethodParameterType() {
         return attributeClass;
     }
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypeHelper.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypeHelper.java
index b34eb36..2f306bc 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypeHelper.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypeHelper.java
@@ -41,16 +41,16 @@
      * @param sdoType
      * @return
      */
-    Class getJavaWrapperTypeForSDOType(Type sdoType);
+    Class<?> getJavaWrapperTypeForSDOType(Type sdoType);
 
-    SDOType getTypeForImplClass(Class implClass);
+    SDOType getTypeForImplClass(Class<?> implClass);
 
     /**
      * INTERNAL:
      * @param implClass
      * @return
      */
-    Type getTypeForSimpleJavaType(Class implClass);
+    Type getTypeForSimpleJavaType(Class<?> implClass);
 
     /**
      * INTERNAL:
@@ -152,7 +152,7 @@
 
     Map getInterfacesToSDOTypeHashMap();
 
-    Map<Class, SDOType> getImplClassesToSDOType();
+    Map<Class<?>, SDOType> getImplClassesToSDOType();
 
     List getAnonymousTypes();
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypesGenerator.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypesGenerator.java
index cbbcfe8..77a1d58 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypesGenerator.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOTypesGenerator.java
@@ -1566,7 +1566,7 @@
 
     private Object convertDefaultValue(Type type, String stringValue) {
         if (type != null) {
-            Class javaClass = ((SDOTypeHelper) aHelperContext.getTypeHelper()).getJavaWrapperTypeForSDOType(type);
+            Class<?> javaClass = ((SDOTypeHelper) aHelperContext.getTypeHelper()).getJavaWrapperTypeForSDOType(type);
             if (javaClass != null) {
                 Object objectValue = ((SDODataHelper) aHelperContext.getDataHelper()).convertFromStringValue(stringValue, javaClass);
                 return objectValue;
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOUnmappedContentHandler.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOUnmappedContentHandler.java
index 9e88957..9b69797 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOUnmappedContentHandler.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOUnmappedContentHandler.java
@@ -433,7 +433,7 @@
             if(parentRecord != null){
                 unmarshalRecord.setXMLReader(parentRecord.getXMLReader());
             }
-            Class classValue = xmlDescriptor.getInheritancePolicy().classFromRow(unmarshalRecord, session);
+            Class<?> classValue = xmlDescriptor.getInheritancePolicy().classFromRow(unmarshalRecord, session);
             if (classValue == null) {
                 // no xsi:type attribute - look for type indicator on the default root element
                 QName leafElementType = xmlDescriptor.getDefaultRootElementType();
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/XPathEngine.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/XPathEngine.java
index a9dd500..60b9da0 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/XPathEngine.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/XPathEngine.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
@@ -495,7 +495,7 @@
      * @return          values to be accessed
      * @throws ClassCastException
      */
-    public Object convertObjectToValueByPath(String path, Class cls, DataObject caller) throws ClassCastException {
+    public Object convertObjectToValueByPath(String path, Class<?> cls, DataObject caller) throws ClassCastException {
         if (null == path || XMLConstants.EMPTY_STRING.equals(path)) {
             throw new ClassCastException("Attempting null value conversion.");
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegate.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegate.java
index 59e43a5..3f6fcb1 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegate.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegate.java
@@ -51,6 +51,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     public DataObject create(Class interfaceClass) {
         if (interfaceClass == null) {
             throw new IllegalArgumentException(SDOException.cannotPerformOperationWithNullInputParameter("create", "interfaceClass"));
@@ -105,7 +106,7 @@
             sdoType = (SDOType) sth.getWrappersHashMap().get(sdoType.getQName());
         }
 
-        Class implClass;
+        Class<?> implClass;
         try {
             implClass = sdoType.getImplClass();
             if (implClass != null) {
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegator.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegator.java
index 56a150c..49367e5 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegator.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDODataFactoryDelegator.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
@@ -43,6 +43,7 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     public DataObject create(Class interfaceClass) {
         return getDataFactoryDelegate().create(interfaceClass);
     }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegate.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegate.java
index c70afcb..c3f0da2 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegate.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegate.java
@@ -68,10 +68,10 @@
     private Map<QName, SDOType> wrappersHashMap;
 
     /** Map of interfaces -{@literal >} SDOType */
-    private Map<Class, SDOType> interfacesToSDOTypeHashMap;
+    private Map<Class<?>, SDOType> interfacesToSDOTypeHashMap;
 
     /** Map of impl classes -{@literal >} SDOType */
-    private Map<Class, SDOType> implClassesToSDOType = new HashMap<Class, SDOType>();
+    private Map<Class<?>, SDOType> implClassesToSDOType = new HashMap<Class<?>, SDOType>();
 
     /** Map containing built-in types for primitive and SDO types */
     private final Map commonjHashMap = new HashMap();
@@ -224,7 +224,7 @@
             sdoWrapperTypes = new HashMap<>();
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_BOOLEAN_WRAPPER ,SDO_BOOLEAN_WRAPPER = new SDOWrapperType(SDOConstants.SDO_BOOLEAN, SDOConstants.BOOLEAN, this, XMLConstants.BOOLEAN_QNAME, SDOWrapperType.BooleanWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_BYTE_WRAPPER ,SDO_BYTE_WRAPPER = new SDOWrapperType(SDOConstants.SDO_BYTE, SDOConstants.BYTE, this, XMLConstants.BYTE_QNAME, SDOWrapperType.ByteWrapperImpl.class));
-            sdoWrapperTypes.put(SDOWrapperTypeId.SDO_BYTES_WRAPPER ,SDO_BYTES_WRAPPER = new SDOWrapperType(SDOConstants.SDO_BYTES, SDOConstants.BYTES, this, new QName[] { XMLConstants.BASE_64_BINARY_QNAME, XMLConstants.HEX_BINARY_QNAME }, new Class[] {SDOWrapperType.BytesWrapperImpl.class, SDOWrapperType.Bytes_hexBunaryWrapperImpl.class}));
+            sdoWrapperTypes.put(SDOWrapperTypeId.SDO_BYTES_WRAPPER ,SDO_BYTES_WRAPPER = new SDOWrapperType(SDOConstants.SDO_BYTES, SDOConstants.BYTES, this, new QName[] { XMLConstants.BASE_64_BINARY_QNAME, XMLConstants.HEX_BINARY_QNAME }, (Class<? extends SDODataObject>[]) new Class<?>[] {SDOWrapperType.BytesWrapperImpl.class, SDOWrapperType.Bytes_hexBunaryWrapperImpl.class}));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_CHARACTER_WRAPPER ,SDO_CHARACTER_WRAPPER = new SDOWrapperType(SDOConstants.SDO_CHARACTER, SDOConstants.CHARACTER, this, XMLConstants.STRING_QNAME, SDOWrapperType.CharacterWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_DATE_WRAPPER ,SDO_DATE_WRAPPER = new SDOWrapperType(SDOConstants.SDO_DATE, SDOConstants.DATE, this, XMLConstants.DATE_QNAME, SDOWrapperType.DateWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_DATETIME_WRAPPER ,SDO_DATETIME_WRAPPER = new SDOWrapperType(SDOConstants.SDO_DATETIME, SDOConstants.DATETIME, this, XMLConstants.DATE_TIME_QNAME, SDOWrapperType.DateTimeWrapperImpl.class));
@@ -243,7 +243,7 @@
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_STRING_WRAPPER ,SDO_STRING_WRAPPER = new SDOWrapperType(SDOConstants.SDO_STRING, SDOConstants.STRING, this, XMLConstants.STRING_QNAME, SDOWrapperType.StringWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_STRINGS_WRAPPER ,SDO_STRINGS_WRAPPER = new SDOWrapperType(SDOConstants.SDO_STRINGS, SDOConstants.STRINGS, this, XMLConstants.STRING_QNAME, SDOWrapperType.StringsWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_TIME_WRAPPER ,SDO_TIME_WRAPPER = new SDOWrapperType(SDOConstants.SDO_TIME, SDOConstants.TIME, this, XMLConstants.TIME_QNAME, SDOWrapperType.TimeWrapperImpl.class));
-            sdoWrapperTypes.put(SDOWrapperTypeId.SDO_URI_WRAPPER ,SDO_URI_WRAPPER = new SDOWrapperType(SDOConstants.SDO_URI, SDOConstants.URI, this, new QName[] {XMLConstants.ANY_URI_QNAME, XMLConstants.QNAME_QNAME}, new Class[] {SDOWrapperType.URIWrapperImpl.class, SDOWrapperType.URI_QNameWrapperImpl.class}));
+            sdoWrapperTypes.put(SDOWrapperTypeId.SDO_URI_WRAPPER ,SDO_URI_WRAPPER = new SDOWrapperType(SDOConstants.SDO_URI, SDOConstants.URI, this, new QName[] {XMLConstants.ANY_URI_QNAME, XMLConstants.QNAME_QNAME}, (Class<? extends SDODataObject>[]) new Class<?>[] {SDOWrapperType.URIWrapperImpl.class, SDOWrapperType.URI_QNameWrapperImpl.class}));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_YEAR_WRAPPER ,SDO_YEAR_WRAPPER = new SDOWrapperType(SDOConstants.SDO_YEAR, SDOConstants.YEAR, this, XMLConstants.G_YEAR_QNAME, SDOWrapperType.YearWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_YEARMONTH_WRAPPER ,SDO_YEARMONTH_WRAPPER = new SDOWrapperType(SDOConstants.SDO_YEARMONTH, SDOConstants.YEARMONTH, this, XMLConstants.G_YEAR_MONTH_QNAME, SDOWrapperType.YearMonthWrapperImpl.class));
             sdoWrapperTypes.put(SDOWrapperTypeId.SDO_YEARMONTHDAY_WRAPPER ,SDO_YEARMONTHDAY_WRAPPER = new SDOWrapperType(SDOConstants.SDO_YEARMONTHDAY, SDOConstants.YEARMONTHDAY, this, XMLConstants.DATE_QNAME, SDOWrapperType.YearMonthDayWrapperImpl.class));
@@ -622,12 +622,12 @@
     }
 
     @Override
-    public Class getJavaWrapperTypeForSDOType(Type type) {
+    public Class<?> getJavaWrapperTypeForSDOType(Type type) {
         SDOType sdoType = (SDOType) type;
         if (sdoType.getInstanceClass() != null) {
             return sdoType.getInstanceClass();
         }
-        Class javaClass = null;
+        Class<?> javaClass = null;
         if (sdoType.isSubType()) {
             for (int i = 0; i < sdoType.getBaseTypes().size(); i++) {
                 Type baseType = (Type)sdoType.getBaseTypes().get(i);
@@ -684,7 +684,7 @@
      * @return the Type for this interfaceClass or null if not found.
      */
     @Override
-    @SuppressWarnings("unchecked")
+    @SuppressWarnings({"rawtypes", "unchecked"})
     public SDOType getType(Class interfaceClass) {
         if (LOGGER.isLoggable(Level.INFO)) {
             LOGGER.info("Looking for : " + interfaceClass);
@@ -748,7 +748,7 @@
      * @param interfaceClass which contains SDOType we are looking for
      * @return SDOType with a given interfaceClass or null
      */
-    private SDOType getFromCollection(Collection<SDOType> collection, Class interfaceClass) {
+    private SDOType getFromCollection(Collection<SDOType> collection, Class<?> interfaceClass) {
         for (SDOType sdoType : collection) {
             if (sdoType.getInstanceClass() == interfaceClass) {
                 return sdoType;
@@ -758,7 +758,7 @@
     }
 
     @Override
-    public SDOType getTypeForImplClass(Class implClass) {
+    public SDOType getTypeForImplClass(Class<?> implClass) {
         SDOType type = getTypeForSimpleJavaType(implClass);
         if (type != null) {
             return type;
@@ -789,7 +789,7 @@
      * Used to determine which SDO Type corresponds the given Java simple type
      */
     @Override
-    public SDOType getTypeForSimpleJavaType(Class implClass) {
+    public SDOType getTypeForSimpleJavaType(Class<?> implClass) {
         return (SDOType)getSDOTypeForSimpleJavaTypeMap().get(implClass);
     }
 
@@ -1152,7 +1152,7 @@
 
     @Override
     public void reset() {
-        interfacesToSDOTypeHashMap = new HashMap<Class, SDOType>();
+        interfacesToSDOTypeHashMap = new HashMap<Class<?>, SDOType>();
         namespaceResolver = null;
 
         initWrapperTypes();
@@ -1422,7 +1422,7 @@
     }
 
     @Override
-    public Map<Class, SDOType> getImplClassesToSDOType() {
+    public Map<Class<?>, SDOType> getImplClassesToSDOType() {
         return implClassesToSDOType;
     }
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegator.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegator.java
index 1b5dd5e..4d2afc8 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegator.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/delegates/SDOTypeHelperDelegator.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
@@ -47,7 +47,7 @@
     }
 
     @Override
-    public Class getJavaWrapperTypeForSDOType(Type sdoType) {
+    public Class<?> getJavaWrapperTypeForSDOType(Type sdoType) {
         return getTypeHelperDelegate().getJavaWrapperTypeForSDOType(sdoType);
     }
 
@@ -57,7 +57,7 @@
     }
 
     @Override
-    public Type getTypeForSimpleJavaType(Class implClass) {
+    public Type getTypeForSimpleJavaType(Class<?> implClass) {
         return getTypeHelperDelegate().getTypeForSimpleJavaType(implClass);
     }
 
@@ -67,12 +67,13 @@
     }
 
     @Override
+    @SuppressWarnings({"rawtypes"})
     public Type getType(Class interfaceClass) {
         return getTypeHelperDelegate().getType(interfaceClass);
     }
 
     @Override
-    public SDOType getTypeForImplClass(Class implClass) {
+    public SDOType getTypeForImplClass(Class<?> implClass) {
         return getTypeHelperDelegate().getTypeForImplClass(implClass);
     }
 
@@ -192,7 +193,7 @@
     }
 
     @Override
-    public Map<Class, SDOType> getImplClassesToSDOType() {
+    public Map<Class<?>, SDOType> getImplClassesToSDOType() {
         return getTypeHelperDelegate().getImplClassesToSDOType();
     }
 
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/extension/SDOUtil.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/extension/SDOUtil.java
index 14a88a6..072e28a 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/extension/SDOUtil.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/extension/SDOUtil.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
@@ -682,7 +682,7 @@
         } else {
             SDOType propertyType = property.getType();
             if(propertyType.isDataType()) {
-                Class instanceClass = propertyType.getInstanceClass();
+                Class<?> instanceClass = propertyType.getInstanceClass();
                 if (ClassConstants.ABYTE.equals(instanceClass)) {
                     return "Byte[]";
                 } else if (ClassConstants.APBYTE.equals(instanceClass)) {
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/jaxb/JAXBHelperContext.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/jaxb/JAXBHelperContext.java
index 16b2280..3a1b8b3 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/jaxb/JAXBHelperContext.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/jaxb/JAXBHelperContext.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
@@ -150,7 +150,7 @@
      * DataObject customerDO = jaxbHelperContext.getDataFactory().create(customerType);
      * </pre>
      */
-    public Type getType(Class entityClass) {
+    public Type getType(Class<?> entityClass) {
         if(null == entityClass) {
             return null;
         }
@@ -192,7 +192,7 @@
      * Class customerClass = jaxbHelperContext.getClass(customerType);
      * </pre>
      */
-    public Class getClass(Type type) {
+    public Class<?> getClass(Type type) {
         if(null == type) {
             return null;
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDODataType.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDODataType.java
index 070e80c..cba8cc0 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDODataType.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDODataType.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,12 +28,12 @@
         isDataType = true;
     }
 
-    public SDODataType(String aUri, String aName, Class aClass, SDOTypeHelper sdoTypeHelper) {
+    public SDODataType(String aUri, String aName, Class<?> aClass, SDOTypeHelper sdoTypeHelper) {
         this(aUri, aName, sdoTypeHelper);
         setInstanceClass(aClass);
     }
 
-    public SDODataType(String aUri, String aName, Class aClass, SDOTypeHelper sdoTypeHelper, Object aPseudoDefault) {
+    public SDODataType(String aUri, String aName, Class<?> aClass, SDOTypeHelper sdoTypeHelper, Object aPseudoDefault) {
         this(aUri, aName, aClass, sdoTypeHelper);
         this.pseudoDefault = aPseudoDefault;
     }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDOWrapperType.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDOWrapperType.java
index 702a557..21022df 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDOWrapperType.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/types/SDOWrapperType.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
@@ -69,7 +69,7 @@
     }
 
     public SDOWrapperType(Type aPropertyType, String aTypeName, SDOTypeHelper aSDOTypeHelper, QName aSchemaType, Class<? extends SDODataObject> implClass) {
-        this(aPropertyType, aTypeName, aSDOTypeHelper, new QName[] { aSchemaType }, new Class[] { implClass });
+        this(aPropertyType, aTypeName, aSDOTypeHelper, new QName[] { aSchemaType }, (Class<? extends SDODataObject>[]) new Class<?>[] { implClass });
     }
 
     public SDOWrapperType(Type aPropertyType, String aTypeName, SDOTypeHelper aSDOTypeHelper, QName[] schemaTypes) {