From a5cdf1d5810c04e44905113c72a3156a40714c01 Mon Sep 17 00:00:00 2001
From: Lukas Jungmann <lukas.jungmann@oracle.com>
Date: Tue, 30 Jan 2024 11:25:45 +0100
Subject: [PATCH] Replace Enumeration with Iterator

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
---
 .../persistence/bundles/tests/Tests.java      |  2 +-
 .../remote/corba/sun/CORBAConnection.java     |  4 +-
 .../remote/rmi/iiop/RMIConnection.java        |  6 +-
 .../testing/framework/LoadBuildSummary.java   | 44 +++++++-------
 .../testing/framework/TestCollection.java     | 17 +++---
 .../testing/framework/TestExecutor.java       | 23 ++++----
 .../testing/framework/TestModel.java          | 13 +++--
 .../testing/framework/TestSuite.java          |  6 +-
 .../testing/framework/TestSystem.java         | 20 +++----
 .../testing/framework/TestVariation.java      |  8 +--
 .../framework/ui/LoadBuildDisplayPanel.java   | 46 +++++++--------
 .../sessionconsole/ProfileBrowserPanel.java   | 16 +++---
 .../sessionconsole/SessionConsolePanel.java   | 16 +++---
 .../descriptors/DescriptorQueryManager.java   |  5 +-
 .../descriptors/ReturningPolicy.java          | 13 ++---
 .../descriptors/VersionLockingPolicy.java     |  8 +--
 .../eis/mappings/EISOneToOneMapping.java      |  5 +-
 .../exceptions/IntegrityChecker.java          |  7 +--
 .../exceptions/IntegrityException.java        | 28 ++++-----
 .../databaseaccess/DatabaseAccessor.java      | 14 ++---
 .../internal/descriptors/ObjectBuilder.java   |  9 ++-
 .../expressions/ClassTypeExpression.java      | 13 ++---
 .../expressions/FunctionExpression.java       | 11 ++--
 .../expressions/QueryKeyExpression.java       | 13 ++---
 .../expressions/RelationExpression.java       |  6 +-
 .../expressions/SQLSelectStatement.java       |  7 +--
 .../expressions/SQLUpdateStatement.java       |  5 +-
 .../internal/helper/ConcurrencyManager.java   | 10 ++--
 .../internal/helper/DeferredLockManager.java  | 10 ++--
 .../internal/helper/ExplainDeadLockUtil.java  |  8 +--
 .../persistence/internal/helper/Helper.java   | 44 +++++++-------
 .../internal/helper/LOBValueWriter.java       | 11 ++--
 .../internal/jpa/parsing/Node.java            |  6 +-
 .../internal/queries/CallQueryMechanism.java  | 28 ++++-----
 .../queries/DatasourceCallQueryMechanism.java | 50 ++++++++--------
 .../queries/ExpressionQueryMechanism.java     |  5 +-
 .../queries/StatementQueryMechanism.java      | 28 ++++-----
 .../sessions/CommitOrderCalculator.java       | 40 ++++++-------
 .../sessions/CommitOrderDependencyNode.java   |  5 +-
 .../sessions/DatabaseSessionImpl.java         |  5 +-
 .../DirectCollectionChangeRecord.java         |  9 ++-
 .../internal/sessions/UnitOfWorkImpl.java     |  5 +-
 .../remote/RemoteSessionController.java       |  8 +--
 .../mappings/AggregateCollectionMapping.java  | 27 +++++----
 .../mappings/AggregateObjectMapping.java      |  6 +-
 .../persistence/mappings/DatabaseMapping.java |  5 +-
 .../mappings/DirectCollectionMapping.java     | 37 ++++++------
 .../mappings/ManyToManyMapping.java           | 10 ++--
 .../mappings/OneToManyMapping.java            | 31 +++++-----
 .../persistence/mappings/OneToOneMapping.java | 35 ++++++------
 .../mappings/RelationTableMechanism.java      | 53 +++++++++--------
 .../mappings/VariableOneToOneMapping.java     | 53 +++++++++--------
 .../converters/ObjectTypeConverter.java       |  9 ++-
 .../AbstractCompositeCollectionMapping.java   |  8 +--
 ...tractCompositeDirectCollectionMapping.java |  8 +--
 .../ArrayCollectionMappingHelper.java         |  8 +--
 .../ObjectRelationalDataTypeDescriptor.java   |  5 +-
 .../XMLBinaryDataCollectionMapping.java       |  8 +--
 .../XMLCompositeCollectionMapping.java        |  6 +-
 .../XMLCompositeDirectCollectionMapping.java  |  6 +-
 .../XMLFragmentCollectionMapping.java         |  8 +--
 .../coordination/TransportManager.java        | 10 ++--
 .../factories/ProjectClassGenerator.java      | 57 +++++++++----------
 .../sessions/remote/rmi/RMIConnection.java    |  6 +-
 .../persistence/tools/PackageRenamer.java     | 14 ++---
 .../tools/profiler/PerformanceProfiler.java   | 12 ++--
 .../StoredProcedureGenerator.java             | 27 +++++----
 .../schemaframework/UniqueKeyConstraint.java  | 12 ++--
 .../eis/cobol/CompositeFieldMetaData.java     | 39 +++++++------
 .../internal/eis/cobol/CopyBookParser.java    | 18 +++---
 .../internal/eis/cobol/RecordMetaData.java    |  8 +--
 .../models/jpa/inherited/BeerConsumer.java    | 14 ++---
 .../models/jpa/lob/ImageSimulator.java        |  6 +-
 .../jpa/xml/merge/inherited/BeerConsumer.java | 16 +++---
 .../jpa/xml/inherited/BeerConsumer.java       | 16 +++---
 .../deployment/PersistenceUnitProcessor.java  |  4 +-
 .../sdo/helper/SDOClassGenerator.java         |  8 +--
 77 files changed, 595 insertions(+), 632 deletions(-)

diff --git a/bundles/tests/src/main/java/org/eclipse/persistence/bundles/tests/Tests.java b/bundles/tests/src/main/java/org/eclipse/persistence/bundles/tests/Tests.java
index 0844dbc0c76..85617c6291e 100644
--- a/bundles/tests/src/main/java/org/eclipse/persistence/bundles/tests/Tests.java
+++ b/bundles/tests/src/main/java/org/eclipse/persistence/bundles/tests/Tests.java
@@ -17,7 +17,7 @@
  */
 public class Tests {
 
-    public static void main(String s) {
+    public static void main(String[] s) {
         System.out.println("An artifact with tests only.");
     }
 }
diff --git a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/corba/sun/CORBAConnection.java b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/corba/sun/CORBAConnection.java
index 3f6267b5280..a8a4ef19a6e 100644
--- a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/corba/sun/CORBAConnection.java
+++ b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/corba/sun/CORBAConnection.java
@@ -151,9 +151,9 @@ public Vector cursoredStreamNextPage(RemoteCursoredStream remoteCursoredStream,
         Vector<Object> clientNextPageObjects = serverNextPageObjects;
         if (query.isReadAllQuery() && (!query.isReportQuery())) {// could be DataReadQuery
             clientNextPageObjects = new Vector<>(serverNextPageObjects.size());
-            for (Enumeration<Object> objEnum = serverNextPageObjects.elements(); objEnum.hasMoreElements();) {
+            for (Iterator<Object> iterator = serverNextPageObjects.iterator(); iterator.hasNext();) {
                 // 2612538 - the default size of Map (32) is appropriate
-                Object clientObject = session.getObjectCorrespondingTo(objEnum.nextElement(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
+                Object clientObject = session.getObjectCorrespondingTo(iterator.next(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
                 clientNextPageObjects.addElement(clientObject);
             }
         }
diff --git a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/rmi/iiop/RMIConnection.java b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/rmi/iiop/RMIConnection.java
index 1866cb52497..94bd5264237 100644
--- a/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/rmi/iiop/RMIConnection.java
+++ b/foundation/org.eclipse.persistence.corba/src/main/java/org/eclipse/persistence/sessions/remote/rmi/iiop/RMIConnection.java
@@ -16,8 +16,8 @@
 
 import java.rmi.RemoteException;
 import java.rmi.server.ObjID;
-import java.util.Enumeration;
 import java.util.IdentityHashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -201,9 +201,9 @@ public Vector cursoredStreamNextPage(RemoteCursoredStream remoteCursoredStream,
         Vector<Object> clientNextPageObjects = serverNextPageObjects;
         if (query.isReadAllQuery() && (!query.isReportQuery())) {// could be DataReadQuery
             clientNextPageObjects = new Vector<>(serverNextPageObjects.size());
-            for (Enumeration<Object> objEnum = serverNextPageObjects.elements(); objEnum.hasMoreElements();) {
+            for (Iterator<Object> iterator = serverNextPageObjects.iterator(); iterator.hasNext();) {
                 // 2612538 - the default size of Map (32) is appropriate
-                Object clientObject = session.getObjectCorrespondingTo(objEnum.nextElement(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
+                Object clientObject = session.getObjectCorrespondingTo(iterator.next(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
                 clientNextPageObjects.addElement(clientObject);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSummary.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSummary.java
index 004b97c25d7..42ec283275e 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSummary.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/LoadBuildSummary.java
@@ -21,7 +21,7 @@
 
 import java.net.InetAddress;
 import java.sql.Timestamp;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -108,10 +108,10 @@ public void addSummary(TestResultsSummary summary) {
         } else if (summaries.getValue() == null) {
             summaries.setValue(new Vector<>());
         }
-        for (Enumeration<TestResultsSummary> enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary element = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = getSummaries().iterator(); iterator.hasNext();) {
+            TestResultsSummary element = iterator.next();
             if (element.getName().equals(summary.getName())) {
-                getSummaries().removeElement(element);
+                iterator.remove();
             }
         }
         getSummaries().addElement(summary);
@@ -122,21 +122,21 @@ public void computeNumberOfTestsAndErrors() {
         numberOfTests = 0;
         errors = 0;
         fatalErrors = 0;
-        for (Enumeration<TestResultsSummary> enumtr = getSummaries().elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = getSummaries().iterator(); iterator.hasNext();) {
+            TestResultsSummary summary = iterator.next();
             if (summary.getParent() == null) {
                 rootSummaries.addElement(summary);
             }
         }
-        for (Enumeration<TestResultsSummary> enumtr = rootSummaries.elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = rootSummaries.iterator(); iterator.hasNext();) {
+            TestResultsSummary summary = iterator.next();
             numberOfTests += summary.getTotalTests();
             errors += summary.getErrors();
             fatalErrors += summary.getFatalErrors();
         }
 
-        for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
-            TestResult result = enumtr.nextElement();
+        for (Iterator<TestResult> iterator = getResults().iterator(); iterator.hasNext();) {
+            TestResult result = iterator.next();
             if (result.hasError()) {
                 errors++;
             } else if (result.hasFatalError()) {
@@ -178,17 +178,17 @@ public ValueHolderInterface<? extends Vector<TestResultsSummary>> getSummariesHo
 
     public void initializeLoadBuild() {
         if (getResults() != null) {
-            for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
-                TestResult result = enumtr.nextElement();
+            for (Iterator<TestResult> iterator = getResults().iterator(); iterator.hasNext();) {
+                TestResult result = iterator.next();
                 result.setLoadBuildSummary(this);
             }
         }
         if (getSummaries() != null) {
-            for (Enumeration<TestResultsSummary> enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
-                TestResultsSummary summary = enum1.nextElement();
+            for (Iterator<TestResultsSummary> iterator1 = getSummaries().iterator(); iterator1.hasNext();) {
+                TestResultsSummary summary = iterator1.next();
                 summary.setLoadBuildSummary(this);
-                for (Enumeration<TestResult> enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
-                    TestResult result = enum2.nextElement();
+                for (Iterator<TestResult> iterator = summary.getResults().iterator(); iterator.hasNext();) {
+                    TestResult result = iterator.next();
                     result.setLoadBuildSummary(this);
                 }
             }
@@ -213,17 +213,17 @@ public boolean isEmpty() {
 
     public void setLoadBuildSummaryForTests() {
         if (getResults() != null) {
-            for (Enumeration<TestResult> enumtr = getResults().elements(); enumtr.hasMoreElements();) {
-                TestResult result = enumtr.nextElement();
+            for (Iterator<TestResult> iterator = getResults().iterator(); iterator.hasNext();) {
+                TestResult result = iterator.next();
                 result.setLoadBuildSummary(this);
             }
         }
         if (getSummaries() != null) {
-            for (Enumeration<TestResultsSummary> enum1 = getSummaries().elements(); enum1.hasMoreElements();) {
-                TestResultsSummary summary = enum1.nextElement();
+            for (Iterator<TestResultsSummary> iterator1 = getSummaries().iterator(); iterator1.hasNext();) {
+                TestResultsSummary summary = iterator1.next();
                 summary.setLoadBuildSummary(this);
-                for (Enumeration<TestResult> enum2 = summary.getResults().elements(); enum2.hasMoreElements();) {
-                    TestResult result = enum2.nextElement();
+                for (Iterator<TestResult> iterator = summary.getResults().iterator(); iterator.hasNext();) {
+                    TestResult result = iterator.next();
                     result.setLoadBuildSummary(this);
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestCollection.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestCollection.java
index e8decf56d20..a181db9f745 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestCollection.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestCollection.java
@@ -20,6 +20,7 @@
 
 import java.io.Writer;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -133,8 +134,8 @@ public void addSRGTests() {
      * Adds a test collection to itself
      */
     public final void addTests(Vector<? extends Test> theTests) {
-        for (Enumeration<? extends Test> allTests = theTests.elements(); allTests.hasMoreElements();) {
-            junit.framework.Test test = allTests.nextElement();
+        for (Iterator<? extends Test> iterator = theTests.iterator(); iterator.hasNext();) {
+            junit.framework.Test test = iterator.next();
             addTest(test);
         }
     }
@@ -395,8 +396,8 @@ public void logResult(Writer log, boolean logOnlyErrors, boolean regression) {
             logHeadNote(log);
         }
 
-        for (Enumeration<Test> tests = getFinishedTests().elements(); tests.hasMoreElements();) {
-            junit.framework.Test test = tests.nextElement();
+        for (Iterator<Test> iterator = getFinishedTests().iterator(); iterator.hasNext();) {
+            junit.framework.Test test = iterator.next();
             if (test instanceof TestEntity testEntity) {
                 if (regression) {
                     if (!(testEntity instanceof TestCase) || !(testEntity.getReport().hasPassed() || ((TestResult)testEntity.getReport()).hasWarning())) {
@@ -427,8 +428,8 @@ public void logResult(Writer log, boolean logOnlyErrors, boolean regression) {
      */
     public void computeResultSummary() {
         getSummary().resetTotals();
-        for (Enumeration<Test> tests = getFinishedTests().elements(); tests.hasMoreElements();) {
-            junit.framework.Test test = tests.nextElement();
+        for (Iterator<Test> iterator = getFinishedTests().iterator(); iterator.hasNext();) {
+            junit.framework.Test test = iterator.next();
             if (test instanceof TestCase testEntity) {
                 testEntity.appendTestResult(getSummary());
             } else if (test instanceof TestCollection testEntity) {
@@ -462,8 +463,8 @@ public boolean requiresDatabase() {
     @Override
     public void resetNestedCounter() {
         setNestedCounter(INITIAL_VALUE);
-        for (Enumeration<Test> tests = getTests().elements(); tests.hasMoreElements();) {
-            Object test = tests.nextElement();
+        for (Iterator<Test> iterator = getTests().iterator(); iterator.hasNext();) {
+            Object test = iterator.next();
             if (test instanceof TestEntity) {
                 ((TestEntity)test).resetNestedCounter();
             }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
index b9ae9be6c4d..1e7f012b1c4 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestExecutor.java
@@ -30,6 +30,7 @@
 import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -183,8 +184,8 @@ public void addConfigureSystem(TestSystem system) {
      * The access other model to reuse their to setup.
      */
     public void addLoadedModels(Vector<TestModel> models) {
-        for (Enumeration<TestModel>theModels = models.elements(); theModels.hasMoreElements();) {
-            TestModel model = theModels.nextElement();
+        for (Iterator<TestModel> iterator = models.iterator(); iterator.hasNext();) {
+            TestModel model = iterator.next();
             getLoadedModels().put(model.getName(), model);
         }
     }
@@ -204,9 +205,9 @@ public void configureSystem(TestSystem system) throws Exception {
      * Return true if the configuredSystems contains an instance of the class of the TestSystem parameter.
      */
     public boolean configuredSystemsContainsInstanceOf(TestSystem system) {
-        for (Enumeration<TestSystem> configuredSystemsEnum = getConfiguredSystems().elements();
-                 configuredSystemsEnum.hasMoreElements();) {
-            if (configuredSystemsEnum.nextElement().getClass().equals(system.getClass())) {
+        for (Iterator<TestSystem> iterator = getConfiguredSystems().iterator();
+             iterator.hasNext();) {
+            if (iterator.next().getClass().equals(system.getClass())) {
                 return true;
             }
         }
@@ -643,18 +644,18 @@ public void removeConfigureSystem(TestSystem system) {
     public void removeFromConfiguredSystemsInstanceOf(TestSystem system) {
         // find and record the systems to remove
         Vector<TestSystem> systemsToRemove = new Vector<>();
-        for (Enumeration<TestSystem> systemEnum = getConfiguredSystems().elements();
-                 systemEnum.hasMoreElements();) {
-            TestSystem aSystem = systemEnum.nextElement();
+        for (Iterator<TestSystem> iterator = getConfiguredSystems().iterator();
+             iterator.hasNext();) {
+            TestSystem aSystem = iterator.next();
             if (aSystem.getClass().equals(system.getClass())) {
                 systemsToRemove.addElement(aSystem);
             }
         }
 
         // Do the removing
-        for (Enumeration<TestSystem> systemsToRemoveEnum = systemsToRemove.elements();
-                 systemsToRemoveEnum.hasMoreElements();) {
-            getConfiguredSystems().removeElement(systemsToRemoveEnum.nextElement());
+        for (Iterator<TestSystem> iterator = systemsToRemove.iterator();
+             iterator.hasNext();) {
+            getConfiguredSystems().removeElement(iterator.next());
         }
     }
 
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestModel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestModel.java
index d4f85dc7917..315d64f9323 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestModel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestModel.java
@@ -26,6 +26,7 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -180,8 +181,8 @@ public Vector<TestSystem> buildRequiredSystems() {
     private void configure() throws Exception {
         Vector<TestSystem> systems = buildRequiredSystems();
 
-        for (Enumeration<TestSystem> enumtr = systems.elements(); enumtr.hasMoreElements();) {
-            TestSystem system = enumtr.nextElement();
+        for (Iterator<TestSystem> iterator = systems.iterator(); iterator.hasNext();) {
+            TestSystem system = iterator.next();
 
             // To improve test consistency always force systems to be reset.
             if (shouldResetSystemAfterEachTestModel()) {
@@ -193,8 +194,8 @@ private void configure() throws Exception {
 
         systems = buildForcedRequiredSystems();
 
-        for (Enumeration<TestSystem> enumtr = systems.elements(); enumtr.hasMoreElements();) {
-            TestSystem system = enumtr.nextElement();
+        for (Iterator<TestSystem> iterator = systems.iterator(); iterator.hasNext();) {
+            TestSystem system = iterator.next();
             getExecutor().forceConfigureSystem(system);
         }
     }
@@ -211,8 +212,8 @@ public void execute(TestExecutor executor) throws Throwable {
             setupEntity();
             setFinishedTests(new Vector<>());
             try {
-                for (Enumeration<Test> tests = getTests().elements(); tests.hasMoreElements();) {
-                    junit.framework.Test test = tests.nextElement();
+                for (Iterator<Test> iterator = getTests().iterator(); iterator.hasNext();) {
+                    junit.framework.Test test = iterator.next();
                     if ((TestExecutor.getDefaultJUnitTestResult() != null) && TestExecutor.getDefaultJUnitTestResult().shouldStop()) {
                             break;
                     }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSuite.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSuite.java
index fbaabb8d360..b9cc545f3e5 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSuite.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSuite.java
@@ -18,7 +18,7 @@
 
 import java.io.IOException;
 import java.io.Writer;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -81,8 +81,8 @@ public void execute(TestExecutor executor) throws Throwable {
             System.out.println("Running " + getSummary().getName());
         }
         long startTime = System.nanoTime();
-        for (Enumeration<Test> tests = getTests().elements(); tests.hasMoreElements();) {
-            junit.framework.Test test = tests.nextElement();
+        for (Iterator<Test> iterator = getTests().iterator(); iterator.hasNext();) {
+            junit.framework.Test test = iterator.next();
             if ((TestExecutor.getDefaultJUnitTestResult() != null) && TestExecutor.getDefaultJUnitTestResult().shouldStop()) {
                 break;
             }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSystem.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSystem.java
index 1a22be88713..8bd0dd78938 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSystem.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestSystem.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.eclipse.persistence.tools.schemaframework.SchemaManager;
 import org.eclipse.persistence.tools.schemaframework.TableDefinition;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -88,22 +88,22 @@ public void createTables() throws Exception {
     public void createTables(DatabaseSession session) throws Exception {
         Vector<TableDefinition> tables = buildTables();
         SchemaManager schemaManager = new SchemaManager(session);
-        for (Enumeration<TableDefinition> dropForeignKeyEnum = tables.elements();
-                 dropForeignKeyEnum.hasMoreElements();) {
-            TableDefinition table = dropForeignKeyEnum.nextElement();
+        for (Iterator<TableDefinition> iterator = tables.iterator();
+             iterator.hasNext();) {
+            TableDefinition table = iterator.next();
             try {
                 schemaManager.dropConstraints(table);
             } catch (DatabaseException exception) {
                 // Ignore
             }
         }
-        for (Enumeration<TableDefinition> replaceEnum = tables.elements(); replaceEnum.hasMoreElements();) {
-            TableDefinition table = replaceEnum.nextElement();
+        for (Iterator<TableDefinition> iterator = tables.iterator(); iterator.hasNext();) {
+            TableDefinition table = iterator.next();
             schemaManager.replaceObject(table);
         }
-        for (Enumeration<TableDefinition> createForeignKeyEnum = tables.elements();
-                 createForeignKeyEnum.hasMoreElements();) {
-            TableDefinition table = createForeignKeyEnum.nextElement();
+        for (Iterator<TableDefinition> iterator = tables.iterator();
+             iterator.hasNext();) {
+            TableDefinition table = iterator.next();
             schemaManager.createConstraints(table);
         }
     }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestVariation.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestVariation.java
index fe7169c9895..196d78e099c 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestVariation.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/TestVariation.java
@@ -16,7 +16,7 @@
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -65,9 +65,9 @@ public static Vector<TestCase> get(Object object, String str, Vector<TestCase> t
         getMembers(object.getClass(), names, getters, setters, fields, true);
         int numberOfTests = (int)java.lang.Math.pow(2, names.size());
         for (int i = 0; i < numberOfTests; i++) {
-            Enumeration<TestCase> enumtr = testsIn.elements();
-            while (enumtr.hasMoreElements()) {
-                TestWrapper testWrapper = createTest(i, object, names, getters, setters, fields, enumtr.nextElement());
+            Iterator<TestCase> iterator = testsIn.iterator();
+            while (iterator.hasNext()) {
+                TestWrapper testWrapper = createTest(i, object, names, getters, setters, fields, iterator.next());
                 testsOut.addElement(testWrapper);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
index cbf4477b3a4..1b36a1f1a9b 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/testing/framework/ui/LoadBuildDisplayPanel.java
@@ -24,7 +24,7 @@
 import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.util.Collections;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -129,30 +129,30 @@ public void buildErrorTestResultForSummary() {
         Vector<TestResult> testResults = new Vector<>();
 
         if ((selectedSummary.getResults() != null) && (!selectedSummary.getResults().isEmpty())) {
-            for (Enumeration<TestResult> enumtr = selectedSummary.getResults().elements();
-                     enumtr.hasMoreElements();) {
-                TestResult result = enumtr.nextElement();
+            for (Iterator<TestResult> iterator = selectedSummary.getResults().iterator();
+                 iterator.hasNext();) {
+                TestResult result = iterator.next();
                 if (result.hasError() || result.hasFatalError() || result.hasProblem()) {
                     testResults.addElement(result);
                 }
             }
         } else {
             Vector<TestResultsSummary> summariesHasResult = new Vector<>();
-            for (Enumeration<TestResultsSummary> enumtr = selectedSummary.getLoadBuildSummary().getSummaries().elements();
-                 enumtr.hasMoreElements();) {
-                TestResultsSummary summary = enumtr.nextElement();
+            for (Iterator<TestResultsSummary> iterator = selectedSummary.getLoadBuildSummary().getSummaries().iterator();
+                 iterator.hasNext();) {
+                TestResultsSummary summary = iterator.next();
                 if ((summary.getResults() != null) && (!summary.getResults().isEmpty())) {
                     summariesHasResult.addElement(summary);
                 }
             }
-            for (Enumeration<TestResultsSummary> enum1 = summariesHasResult.elements(); enum1.hasMoreElements();) {
-                TestResultsSummary summary = enum1.nextElement();
+            for (Iterator<TestResultsSummary> iterator1 = summariesHasResult.iterator(); iterator1.hasNext();) {
+                TestResultsSummary summary = iterator1.next();
                 TestResultsSummary temp = summary;
                 while (temp.getParent() != null) {
                     if (temp.getParent() == selectedSummary) {
-                        for (Enumeration<TestResult> enum2 = summary.getResults().elements();
-                                 enum2.hasMoreElements();) {
-                            TestResult result = enum2.nextElement();
+                        for (Iterator<TestResult> iterator = summary.getResults().iterator();
+                             iterator.hasNext();) {
+                            TestResult result = iterator.next();
                             if (result.hasError() || result.hasFatalError() || result.hasProblem()) {
                                 testResults.addElement(result);
                             }
@@ -767,8 +767,8 @@ private void initialize() {
     public void initilaizeTestSummaryCache(LoadBuildSummary loadBuild) {
         Vector<TestResultsSummary> rootSummaries = new Vector<>();
 
-        for (Enumeration<TestResultsSummary> enumtr = loadBuild.getSummaries().elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = loadBuild.getSummaries().iterator(); iterator.hasNext();) {
+            TestResultsSummary summary = iterator.next();
             if (summary.getParent() == null) {
                 rootSummaries.addElement(summary);
             }
@@ -785,9 +785,9 @@ public void initilaizeTestSummaryCache(TestResultsSummary theSummary) {
 
         Vector<TestResultsSummary> children = new Vector<>();
 
-        for (Enumeration<TestResultsSummary> enumtr = theSummary.getLoadBuildSummary().getSummaries().elements();
-             enumtr.hasMoreElements();) {
-            TestResultsSummary summary = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = theSummary.getLoadBuildSummary().getSummaries().iterator();
+             iterator.hasNext();) {
+            TestResultsSummary summary = iterator.next();
             if ((summary.getParent() != null) && summary.getParent().getName().equals(theSummary.getName())) {
                 children.addElement(summary);
             }
@@ -875,8 +875,8 @@ public void poppulateLoadBuildTable(Vector summaries) {
         loadBuildsCache = summaries;
         tableSelection = LOADBUILD;
         NonEditableDefaultTableModel tableModel = new NonEditableDefaultTableModel(new String[] { "Name", "Time", "Database", "OS", "JVM", "Machine", "TopLink Version", "Tests", "Setup Failures", "Errors", "Fatal Errors", "Problems", "Total Time" }, 0);
-        for (Enumeration enumtr = summaries.elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = (TestResultsSummary)enumtr.nextElement();
+        for (Iterator iterator = summaries.iterator(); iterator.hasNext();) {
+            TestResultsSummary summary = (TestResultsSummary) iterator.next();
 
             Vector<Object> row = new Vector<>();
             row.addElement(summary.getName());
@@ -908,8 +908,8 @@ public void poppulateTestResultTable(Vector<TestResult> results) {
         resetButtons();
 
         NonEditableDefaultTableModel tableModel = new NonEditableDefaultTableModel(new String[] { "Name", "Outcome", "Test Time", "Total Time", "Has Exception", "Time", "Database", "OS", "JVM", "Machine", "TopLink Version" }, 0);
-        for (Enumeration<TestResult> enumtr = results.elements(); enumtr.hasMoreElements();) {
-            TestResult result = enumtr.nextElement();
+        for (Iterator<TestResult> iterator = results.iterator(); iterator.hasNext();) {
+            TestResult result = iterator.next();
             Vector<Object> row = new Vector<>();
             row.addElement(result.getName());
             row.addElement(result.getOutcome());
@@ -938,8 +938,8 @@ public void poppulateTestSummaryTable(Vector<TestResultsSummary> summaries) {
         resetButtons();
 
         NonEditableDefaultTableModel tableModel = new NonEditableDefaultTableModel(new String[] { "Name", "Total Tests", "Setup Failures", "Passed", "Errors", "Fatal Errors", "Problems", "Warnings", "Total Time" }, 0);
-        for (Enumeration<TestResultsSummary> enumtr = summaries.elements(); enumtr.hasMoreElements();) {
-            TestResultsSummary summary = enumtr.nextElement();
+        for (Iterator<TestResultsSummary> iterator = summaries.iterator(); iterator.hasNext();) {
+            TestResultsSummary summary = iterator.next();
             Vector<Object> row = new Vector<>();
             row.addElement(summary.getName());
             row.addElement(summary.getTotalTests());
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
index 3131b7e4fb0..3ceb63fd738 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/ProfileBrowserPanel.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -21,8 +21,8 @@
 import javax.swing.*;
 import javax.swing.table.DefaultTableModel;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -129,9 +129,9 @@ public List<Profile> buildProfileSummaryByClass() {
         }
 
         List<Profile> summary = new Vector<>();
-        for (Enumeration<Profile> profilesEnum = summaries.elements();
-             profilesEnum.hasMoreElements(); ) {
-            summary.add(profilesEnum.nextElement());
+        for (Iterator<Profile> iterator = summaries.values().iterator();
+             iterator.hasNext(); ) {
+            summary.add(iterator.next());
         }
         return summary;
     }
@@ -177,9 +177,9 @@ public List<Profile> buildProfileSummaryByQuery() {
         }
 
         Vector<Profile> summary = new Vector<>();
-        for (Enumeration<Profile> profilesEnum = summaries.elements();
-             profilesEnum.hasMoreElements(); ) {
-            summary.add(profilesEnum.nextElement());
+        for (Iterator<Profile> iterator = summaries.values().iterator();
+             iterator.hasNext(); ) {
+            summary.add(iterator.next());
         }
         return summary;
     }
diff --git a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
index 575939544ea..cb6b3cc8ec2 100644
--- a/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
+++ b/foundation/org.eclipse.persistence.core.test.framework/src/main/java/org/eclipse/persistence/tools/sessionconsole/SessionConsolePanel.java
@@ -57,6 +57,7 @@
 import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -3447,9 +3448,8 @@ public void resetCache() {
         columns[3] = "Object";
 
         model.setColumnIdentifiers(columns);
-        for (Enumeration<CacheKey> cacheEnumeration = cacheResults.elements(); cacheEnumeration
-                .hasMoreElements();) {
-            CacheKey key = cacheEnumeration.nextElement();
+        for (Iterator<CacheKey> iterator = cacheResults.iterator(); iterator.hasNext();) {
+            CacheKey key = iterator.next();
             String[] values = new String[4];
             values[0] = key.getKey().toString();
             values[1] = Integer.valueOf(key.getObject().hashCode()).toString();
@@ -3538,9 +3538,8 @@ public void setResultObjects(Vector<Object> resultObjects,
         }
 
         model.setColumnIdentifiers(columns);
-        for (Enumeration<Object> objectsEnumeration = resultObjects.elements(); objectsEnumeration
-                .hasMoreElements();) {
-            Object object = objectsEnumeration.nextElement();
+        for (Iterator<Object> iterator = resultObjects.iterator(); iterator.hasNext();) {
+            Object object = iterator.next();
             String[] values = new String[descriptor.getMappings().size()];
             for (int index = 0; index < descriptor.getMappings().size(); index++) {
                 DatabaseMapping mapping = descriptor.getMappings().get(
@@ -3570,9 +3569,8 @@ public void setResultRows(Vector<DatabaseRecord> resultRows) {
                     index).getName();
         }
         model.setColumnIdentifiers(columns);
-        for (Enumeration<DatabaseRecord> rowsEnumeration = resultRows.elements(); rowsEnumeration
-                .hasMoreElements();) {
-            DatabaseRecord row = rowsEnumeration.nextElement();
+        for (Iterator<DatabaseRecord> iterator = resultRows.iterator(); iterator.hasNext();) {
+            DatabaseRecord row = iterator.next();
             String[] values = new String[row.getValues().size()];
             for (int index = 0; index < row.getValues().size(); index++) {
                 values[index] = String
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
index 6b7a4776b6d..76c94473852 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/DescriptorQueryManager.java
@@ -66,7 +66,6 @@
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -509,8 +508,8 @@ public Vector getAllQueries() {
      * Set pre-defined queries for the descriptor.  Converts the Vector to a hashtable
      */
     public void setAllQueries(Vector vector) {
-        for (Enumeration enumtr = vector.elements(); enumtr.hasMoreElements();) {
-            addQuery((DatabaseQuery)enumtr.nextElement());
+        for (Iterator iterator = vector.iterator(); iterator.hasNext();) {
+            addQuery((DatabaseQuery) iterator.next());
         }
     }
 
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 6d9f2ea7e8e..f4c3f575d25 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
@@ -30,7 +30,6 @@
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
@@ -699,9 +698,9 @@ public void initialize(AbstractSession session) {
             }
 
             if (!infoHashtableUnmapped.isEmpty()) {
-                Enumeration<DatabaseField> fields = infoHashtableUnmapped.keys();
-                while (fields.hasMoreElements()) {
-                    DatabaseField field = fields.nextElement();
+                Iterator<DatabaseField> iterator = infoHashtableUnmapped.keySet().iterator();
+                while (iterator.hasNext()) {
+                    DatabaseField field = iterator.next();
                     Info info = infoHashtableUnmapped.get(field);
                     if (verifyField(session, field, getDescriptor())) {
                         if (field.getType() != null) {
@@ -928,11 +927,11 @@ public void validationAfterDescriptorInitialization(AbstractSession session) {
                     // SQLCall with custom SQL calculates its outputRowFields later (in prepare() method) -
                     // that's why SQLCall can't be verified here.
                     DatabaseCall customCall = (DatabaseCall)query[operation].getDatasourceCall();
-                    Enumeration outputRowFields = customCall.getOutputRowFields().elements();
+                    Iterator iterator = customCall.getOutputRowFields().iterator();
                     Collection<DatabaseField> notFoundInOutputRow = createCollection();
                     notFoundInOutputRow.addAll(main[operation][ALL]);
-                    while (outputRowFields.hasMoreElements()) {
-                        notFoundInOutputRow.remove(outputRowFields.nextElement());
+                    while (iterator.hasNext()) {
+                        notFoundInOutputRow.remove(iterator.next());
                     }
                     if (!notFoundInOutputRow.isEmpty()) {
                         Iterator<DatabaseField> it = notFoundInOutputRow.iterator();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/VersionLockingPolicy.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/VersionLockingPolicy.java
index 0b70c334000..c26d49492b9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/VersionLockingPolicy.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/descriptors/VersionLockingPolicy.java
@@ -38,7 +38,7 @@
 import org.eclipse.persistence.queries.WriteObjectQuery;
 
 import java.io.Serializable;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 
@@ -445,10 +445,10 @@ public void initializeProperties() {
             // Set the default type, only if un-mapped.
             dbField.setType(getDefaultLockingFieldType());
         }
-        Enumeration<DatabaseField> enumtr = this.getUnmappedFields().elements();
-        while (enumtr.hasMoreElements()) {
+        Iterator<DatabaseField> iterator = this.getUnmappedFields().iterator();
+        while (iterator.hasNext()) {
             DatabaseField lockField;
-            lockField = enumtr.nextElement();
+            lockField = iterator.next();
             descriptor.getFields().add(lockField);
         }
     }
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 bafb1a0235c..0fe8bfb1efe 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
@@ -34,7 +34,6 @@
 import org.eclipse.persistence.queries.ReadObjectQuery;
 import org.eclipse.persistence.queries.ReadQuery;
 
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -153,8 +152,8 @@ public Object clone() {
         clone.setTargetToSourceKeyFields(new HashMap<>(getTargetToSourceKeyFields().size()));
         Map<DatabaseField, DatabaseField> setOfFields = new HashMap<>(getTargetToSourceKeyFields().size());
 
-        for (Enumeration<DatabaseField> enumtr = getForeignKeyFields().elements(); enumtr.hasMoreElements();) {
-            DatabaseField field = enumtr.nextElement();
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField field = iterator.next();
 
             DatabaseField fieldClone = field.clone();
             setOfFields.put(field, fieldClone);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityChecker.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityChecker.java
index 7974eda6659..1ca7a6cafb0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityChecker.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityChecker.java
@@ -19,7 +19,6 @@
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 
 import java.io.Serializable;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
@@ -175,9 +174,9 @@ public boolean hasErrors() {
      */
     public boolean hasRuntimeExceptions() {
         if (hasErrors()) {
-            for (Enumeration<Exception> exceptionsEnum = getCaughtExceptions().elements();
-                     exceptionsEnum.hasMoreElements();) {
-                if (exceptionsEnum.nextElement() instanceof RuntimeException) {
+            for (Iterator<Exception> iterator = getCaughtExceptions().iterator();
+                 iterator.hasNext();) {
+                if (iterator.next() instanceof RuntimeException) {
                     return true;
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityException.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityException.java
index 69e4f72270f..164859be808 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityException.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/exceptions/IntegrityException.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -18,7 +18,7 @@
 
 import java.io.PrintStream;
 import java.io.PrintWriter;
-import java.util.Enumeration;
+import java.util.Iterator;
 
 /**
  *    <p><b>Purpose</b>: IntegrityExceptions is used to throw all the Descriptors exceptions.
@@ -63,9 +63,9 @@ public String getMessage() {
         java.io.PrintWriter writer = new java.io.PrintWriter(swriter);
         writer.println(cr + ExceptionMessageGenerator.getHeader("DescriptorExceptionsHeader"));
         writer.println("---------------------------------------------------------");
-        for (Enumeration<Exception> enumtr = getIntegrityChecker().getCaughtExceptions().elements();
-                 enumtr.hasMoreElements();) {
-            Exception e = enumtr.nextElement();
+        for (Iterator<Exception> iterator = getIntegrityChecker().getCaughtExceptions().iterator();
+             iterator.hasNext();) {
+            Exception e = iterator.next();
             if (e instanceof DescriptorException) {
                 writer.println(cr + e);
             }
@@ -74,9 +74,9 @@ public String getMessage() {
         if (getIntegrityChecker().hasRuntimeExceptions()) {
             writer.println(cr + ExceptionMessageGenerator.getHeader("RuntimeExceptionsHeader"));
             writer.println("---------------------------------------------------------");
-            for (Enumeration<Exception> enumtr = getIntegrityChecker().getCaughtExceptions().elements();
-                     enumtr.hasMoreElements();) {
-                Exception e = enumtr.nextElement();
+            for (Iterator<Exception> iterator = getIntegrityChecker().getCaughtExceptions().iterator();
+                 iterator.hasNext();) {
+                Exception e = iterator.next();
                 if (!(e instanceof DescriptorException)) {
                     writer.println(cr + e);
                 }
@@ -116,9 +116,9 @@ public void printStackTrace(PrintWriter writer) {
         String cr = System.lineSeparator();
         writer.println(cr + ExceptionMessageGenerator.getHeader("DescriptorExceptionsHeader"));
         writer.println("---------------------------------------------------------");
-        for (Enumeration<Exception> enumtr = getIntegrityChecker().getCaughtExceptions().elements();
-                 enumtr.hasMoreElements();) {
-            Exception e = enumtr.nextElement();
+        for (Iterator<Exception> iterator = getIntegrityChecker().getCaughtExceptions().iterator();
+             iterator.hasNext();) {
+            Exception e = iterator.next();
             if (e instanceof DescriptorException) {
                 writer.println(cr);
                 e.printStackTrace(writer);
@@ -128,9 +128,9 @@ public void printStackTrace(PrintWriter writer) {
         if (getIntegrityChecker().hasRuntimeExceptions()) {
             writer.println(cr + ExceptionMessageGenerator.getHeader("RuntimeExceptionsHeader"));
             writer.println("---------------------------------------------------------");
-            for (Enumeration<Exception> enumtr = getIntegrityChecker().getCaughtExceptions().elements();
-                     enumtr.hasMoreElements();) {
-                Exception e = enumtr.nextElement();
+            for (Iterator<Exception> iterator = getIntegrityChecker().getCaughtExceptions().iterator();
+                 iterator.hasNext();) {
+                Exception e = iterator.next();
                 if (!(e instanceof DescriptorException)) {
                     writer.println(cr);
                     e.printStackTrace(writer);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
index d019ccd7141..cf6b43ef8df 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatabaseAccessor.java
@@ -69,9 +69,9 @@
 import java.sql.SQLWarning;
 import java.sql.Statement;
 import java.sql.Types;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -1955,17 +1955,17 @@ protected Vector<DatabaseField> sortFields(Vector<DatabaseField> fields, Vector<
         Vector<DatabaseField> sortedFields = new Vector<>(columnNames.size());
         @SuppressWarnings({"unchecked"})
         Vector<DatabaseField> eligableFields = (Vector<DatabaseField>)fields.clone();// Must clone to allow removing to support the same field twice.
-        Enumeration<DatabaseField> columnNamesEnum = columnNames.elements();
+        Iterator<DatabaseField> iterator1 = columnNames.iterator();
         boolean valueFound;
         DatabaseField field;
         DatabaseField column;//DatabaseField from the columnNames vector
-        while (columnNamesEnum.hasMoreElements()) {
+        while (iterator1.hasNext()) {
             field = null;
             valueFound = false;
-            column = columnNamesEnum.nextElement();
-            Enumeration<DatabaseField> fieldEnum = eligableFields.elements();
-            while (fieldEnum.hasMoreElements()) {
-                field = fieldEnum.nextElement();
+            column = iterator1.next();
+            Iterator<DatabaseField> iterator = eligableFields.iterator();
+            while (iterator.hasNext()) {
+                field = iterator.next();
                 if(field != null && field.equals(column)){
                     valueFound = true;
                     sortedFields.addElement(field);
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 fe74271a916..40020851cc4 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
@@ -121,7 +121,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -1569,8 +1568,8 @@ public Object buildObjectsFromCursorInto(ReadAllQuery query, List databaseRows,
             if (policy.shouldAddAll()) {
                 List domainObjectsIn = new ArrayList();
                 List<AbstractRecord> databaseRowsIn = new ArrayList();
-                for (Enumeration iterator = ((Vector)databaseRows).elements(); iterator.hasMoreElements(); ) {
-                    AbstractRecord databaseRow = (AbstractRecord)iterator.nextElement();
+                for (Iterator iterator1 = ((Vector) databaseRows).iterator(); iterator1.hasNext(); ) {
+                    AbstractRecord databaseRow = (AbstractRecord) iterator1.next();
                     // PERF: 1-m joining nulls out duplicate rows.
                     if (databaseRow != null) {
                         domainObjectsIn.add(buildObject(query, databaseRow, joinManager, session, this.descriptor, inheritancePolicy,
@@ -1581,8 +1580,8 @@ public Object buildObjectsFromCursorInto(ReadAllQuery query, List databaseRows,
                 policy.addAll(domainObjectsIn, domainObjects, session, databaseRowsIn, query, null, true);
             } else {
                 boolean quickAdd = (domainObjects instanceof Collection) && !this.hasWrapperPolicy;
-                for (Enumeration iterator = ((Vector)databaseRows).elements(); iterator.hasMoreElements(); ) {
-                    AbstractRecord databaseRow = (AbstractRecord)iterator.nextElement();
+                for (Iterator iterator1 = ((Vector) databaseRows).iterator(); iterator1.hasNext(); ) {
+                    AbstractRecord databaseRow = (AbstractRecord) iterator1.next();
                     // PERF: 1-m joining nulls out duplicate rows.
                     if (databaseRow != null) {
                         Object domainObject = buildObject(query, databaseRow, joinManager, session, this.descriptor, inheritancePolicy,
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 9c6986a9f07..5b1bed8b755 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
@@ -28,7 +28,6 @@
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.Vector;
 
@@ -128,9 +127,9 @@ public Object valueFromObject(Object object, AbstractSession session, AbstractRe
             // A new vector must union the object values and the values extracted from it.
             if (object instanceof Vector) {
                 Vector comparisonVector = new Vector(((Vector)object).size() + 2);
-                for (Enumeration valuesToIterate = ((Vector)object).elements();
-                         valuesToIterate.hasMoreElements();) {
-                    Object vectorObject = valuesToIterate.nextElement();
+                for (Iterator iterator1 = ((Vector) object).iterator();
+                     iterator1.hasNext();) {
+                    Object vectorObject = iterator1.next();
                     if (vectorObject == null) {
                         comparisonVector.addElement(null);
                     } else {
@@ -138,9 +137,9 @@ public Object valueFromObject(Object object, AbstractSession session, AbstractRe
 
                         // If a collection of values were extracted union them.
                         if (valueOrValues instanceof Vector) {
-                            for (Enumeration nestedValuesToIterate = ((Vector)valueOrValues).elements();
-                                     nestedValuesToIterate.hasMoreElements();) {
-                                comparisonVector.addElement(nestedValuesToIterate.nextElement());
+                            for (Iterator iterator = ((Vector) valueOrValues).iterator();
+                                 iterator.hasNext();) {
+                                comparisonVector.addElement(iterator.next());
                             }
                         } else {
                             comparisonVector.addElement(valueOrValues);
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 6b046a1d9f9..8aaade14f4c 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
@@ -41,7 +41,6 @@
 import java.io.BufferedWriter;
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -390,8 +389,8 @@ protected boolean isObjectComparison() {
     @Override
     public void iterateOn(ExpressionIterator iterator) {
         super.iterateOn(iterator);
-        for (Enumeration<Expression> childrenEnum = this.children.elements(); childrenEnum.hasMoreElements();) {
-            Expression child = childrenEnum.nextElement();
+        for (Iterator<Expression> iterator1 = this.children.iterator(); iterator1.hasNext();) {
+            Expression child = iterator1.next();
             child.iterateOn(iterator);
         }
     }
@@ -679,9 +678,9 @@ public Object valueFromObject(Object object, AbstractSession session, AbstractRe
         }
         if (baseValue instanceof Vector) {// baseValue might be a vector, so the individual values must be extracted before applying the function call to them
             Vector baseVector = new Vector();
-            for (Enumeration valuesToCompare = ((Vector)baseValue).elements();
-                     valuesToCompare.hasMoreElements();) {
-                Object baseObject = valuesToCompare.nextElement();
+            for (Iterator iterator = ((Vector) baseValue).iterator();
+                 iterator.hasNext();) {
+                Object baseObject = iterator.next();
                 if (baseObject == null) {
                     baseVector.addElement(null);
                 } else {
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 2ffd43e5b47..faae177c949 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
@@ -48,7 +48,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -1095,9 +1094,9 @@ public Object valueFromObject(Object object, AbstractSession session, AbstractRe
             // A new vector must union the object values and the values extracted from it.
             if (object instanceof Vector) {
                 Vector comparisonVector = new Vector(((Vector)object).size() + 2);
-                for (Enumeration valuesToIterate = ((Vector)object).elements();
-                         valuesToIterate.hasMoreElements();) {
-                    Object vectorObject = valuesToIterate.nextElement();
+                for (Iterator iterator1 = ((Vector) object).iterator();
+                     iterator1.hasNext();) {
+                    Object vectorObject = iterator1.next();
                     if (vectorObject == null) {
                         comparisonVector.addElement(null);
                     } else {
@@ -1105,9 +1104,9 @@ public Object valueFromObject(Object object, AbstractSession session, AbstractRe
 
                         // If a collection of values were extracted union them.
                         if (valueOrValues instanceof Vector) {
-                            for (Enumeration nestedValuesToIterate = ((Vector)valueOrValues).elements();
-                                     nestedValuesToIterate.hasMoreElements();) {
-                                comparisonVector.addElement(nestedValuesToIterate.nextElement());
+                            for (Iterator iterator = ((Vector) valueOrValues).iterator();
+                                 iterator.hasNext();) {
+                                comparisonVector.addElement(iterator.next());
                             }
                         } else {
                             comparisonVector.addElement(valueOrValues);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/RelationExpression.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/RelationExpression.java
index 6fbc92bb49e..c325060123d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/RelationExpression.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/RelationExpression.java
@@ -31,7 +31,7 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -122,8 +122,8 @@ public boolean doesConform(Object object, AbstractSession session, AbstractRecor
             }
 
             // Otherwise right vector means an anyof on right, so must check each value.
-            for (Enumeration rightEnum = ((Vector)rightValue).elements(); rightEnum.hasMoreElements(); ) {
-                Object tempRight = rightEnum.nextElement();
+            for (Iterator iterator = ((Vector) rightValue).iterator(); iterator.hasNext(); ) {
+                Object tempRight = iterator.next();
 
                 // Left may also be an anyof some must check each left with each right.
                 if (leftValue instanceof Vector) {
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 8f328ea9d58..ccb8dacfbeb 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
@@ -57,7 +57,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
@@ -839,9 +838,9 @@ public void iterate(Expression each) {
                 getBuilder().assignTableAliasesStartingAt(currentAliasNumber);
             }
         } else {
-            for (Enumeration expressionEnum = allExpressions.elements();
-                     expressionEnum.hasMoreElements();) {
-                Expression expression = (Expression)expressionEnum.nextElement();
+            for (Iterator iterator1 = allExpressions.iterator();
+                 iterator1.hasNext();) {
+                Expression expression = (Expression) iterator1.next();
                 iterator.iterateOn(expression);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLUpdateStatement.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLUpdateStatement.java
index 23819fc51e2..d28531d0dd7 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLUpdateStatement.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/expressions/SQLUpdateStatement.java
@@ -24,6 +24,7 @@
 import java.io.IOException;
 import java.io.Writer;
 import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -57,11 +58,11 @@ protected SQLCall buildCallWithoutReturning(AbstractSession session) {
             ExpressionSQLPrinter printer = null;
 
             Vector fieldsForTable = new Vector();
-            Enumeration valuesEnum = getModifyRow().getValues().elements();
+            Iterator iterator = getModifyRow().getValues().iterator();
             Vector values = new Vector();
             for (Enumeration fieldsEnum = getModifyRow().keys(); fieldsEnum.hasMoreElements();) {
                 DatabaseField field = (DatabaseField)fieldsEnum.nextElement();
-                Object value = valuesEnum.nextElement();
+                Object value = iterator.next();
                 if (field.getTable().equals(getTable()) || (!field.hasTableName())) {
                     fieldsForTable.addElement(field);
                     values.addElement(value);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ConcurrencyManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ConcurrencyManager.java
index ead7df2a5c2..bbcfacb44c3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ConcurrencyManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ConcurrencyManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,10 +28,10 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -470,9 +470,9 @@ public static boolean isBuildObjectOnThreadComplete(Thread thread, Map<Thread, T
         }
 
         Vector<ConcurrencyManager> deferredLocks = lockManager.getDeferredLocks();
-        for (Enumeration<ConcurrencyManager> deferredLocksEnum = deferredLocks.elements();
-             deferredLocksEnum.hasMoreElements();) {
-            ConcurrencyManager deferedLock = deferredLocksEnum.nextElement();
+        for (Iterator<ConcurrencyManager> iterator = deferredLocks.iterator();
+             iterator.hasNext();) {
+            ConcurrencyManager deferedLock = iterator.next();
             Thread activeThread = null;
             if (deferedLock.isAcquired()) {
                 activeThread = deferedLock.getActiveThread();
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DeferredLockManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DeferredLockManager.java
index 149596b0701..6e93a7ab5b3 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DeferredLockManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/DeferredLockManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,7 +14,7 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.internal.helper;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -118,9 +118,9 @@ public boolean isThreadComplete() {
     public void releaseActiveLocksOnThread() {
         Vector<ConcurrencyManager> activeLocks = getActiveLocks();
         if (!activeLocks.isEmpty()) {
-            for (Enumeration<ConcurrencyManager> activeLocksEnum = activeLocks.elements();
-                     activeLocksEnum.hasMoreElements();) {
-                ConcurrencyManager manager = activeLocksEnum.nextElement();
+            for (Iterator<ConcurrencyManager> iterator = activeLocks.iterator();
+                 iterator.hasNext();) {
+                ConcurrencyManager manager = iterator.next();
                 manager.release();
             }
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ExplainDeadLockUtil.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ExplainDeadLockUtil.java
index c259ed45b3b..99a04a04107 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ExplainDeadLockUtil.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/ExplainDeadLockUtil.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2020, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,10 +23,10 @@
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -912,8 +912,8 @@ public static IsBuildObjectCompleteOutcome isBuildObjectOnThreadComplete(
         }
 
         Vector<ConcurrencyManager> deferredLocks = lockManager.getDeferredLocks();
-        for (Enumeration<ConcurrencyManager> deferredLocksEnum = deferredLocks.elements(); deferredLocksEnum.hasMoreElements();) {
-            ConcurrencyManager deferedLock = deferredLocksEnum.nextElement();
+        for (Iterator<ConcurrencyManager> iterator = deferredLocks.iterator(); iterator.hasNext();) {
+            ConcurrencyManager deferedLock = iterator.next();
             Thread activeThread = null;
             if (deferedLock.isAcquired()) {
                 activeThread = deferedLock.getActiveThread();
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 a44fc2fd778..9c8c9873e44 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
@@ -53,7 +53,6 @@
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.Date;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -225,8 +224,8 @@ public static void releaseCalendar(Calendar calendar) {
     }
 
     public static <E> void addAllToVector(Vector<E> theVector, Vector<? extends E> elementsToAdd) {
-        for (Enumeration<? extends E> stream = elementsToAdd.elements(); stream.hasMoreElements();) {
-            theVector.addElement(stream.nextElement());
+        for (Iterator<? extends E> iterator = elementsToAdd.iterator(); iterator.hasNext();) {
+            theVector.addElement(iterator.next());
         }
     }
 
@@ -636,7 +635,6 @@ public static boolean areTypesAssignable(List<Class<?>> types1, List<Class<?>> t
       * Added Nov 9, 2000 JED Patch 2.5.1.8
       */
     public static boolean compareHashtables(Hashtable<?, ?> hashtable1, Hashtable<?, ?> hashtable2) {
-        Enumeration<?> enumtr;
         Object element;
 
         if (hashtable1.size() != hashtable2.size()) {
@@ -645,9 +643,9 @@ public static boolean compareHashtables(Hashtable<?, ?> hashtable1, Hashtable<?,
 
         Hashtable<?, ?> clonedHashtable = (Hashtable<?, ?>)hashtable2.clone();
 
-        enumtr = hashtable1.elements();
-        while (enumtr.hasMoreElements()) {
-            element = enumtr.nextElement();
+        Iterator<?> iterator = hashtable1.values().iterator();
+        while (iterator.hasNext()) {
+            element = iterator.next();
             if (clonedHashtable.remove(element) == null) {
                 return false;
             }
@@ -701,12 +699,12 @@ public static <E> Vector<E> concatenateUniqueVectors(Vector<? extends E> first,
 
         concatenation = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
 
-        for (Enumeration<? extends E> stream = first.elements(); stream.hasMoreElements();) {
-            concatenation.addElement(stream.nextElement());
+        for (Iterator<? extends E> iterator = first.iterator(); iterator.hasNext();) {
+            concatenation.addElement(iterator.next());
         }
 
-        for (Enumeration<? extends E> stream = second.elements(); stream.hasMoreElements();) {
-            element = stream.nextElement();
+        for (Iterator<? extends E> iterator = second.iterator(); iterator.hasNext();) {
+            element = iterator.next();
             if (!concatenation.contains(element)) {
                 concatenation.addElement(element);
             }
@@ -738,12 +736,12 @@ public static <E> Vector<E> concatenateVectors(Vector<? extends E> first, Vector
 
         concatenation = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
 
-        for (Enumeration<? extends E> stream = first.elements(); stream.hasMoreElements();) {
-            concatenation.addElement(stream.nextElement());
+        for (Iterator<? extends E> iterator = first.iterator(); iterator.hasNext();) {
+            concatenation.addElement(iterator.next());
         }
 
-        for (Enumeration<? extends E> stream = second.elements(); stream.hasMoreElements();) {
-            concatenation.addElement(stream.nextElement());
+        for (Iterator<? extends E> iterator = second.iterator(); iterator.hasNext();) {
+            concatenation.addElement(iterator.next());
         }
 
         return concatenation;
@@ -1224,11 +1222,11 @@ public static String printTimeFromMilliseconds(long milliseconds) {
     public static String printVector(Vector<?> vector) {
         StringWriter stringWriter = new StringWriter();
         stringWriter.write("[");
-        Enumeration<?> enumtr = vector.elements();
-        stringWriter.write(String.valueOf(enumtr.nextElement()));
-        while (enumtr.hasMoreElements()) {
+        Iterator<?> iterator = vector.iterator();
+        stringWriter.write(String.valueOf(iterator.next()));
+        while (iterator.hasNext()) {
             stringWriter.write(" ");
-            stringWriter.write(String.valueOf(enumtr.nextElement()));
+            stringWriter.write(String.valueOf(iterator.next()));
         }
         stringWriter.write("]");
         return stringWriter.toString();
@@ -1238,10 +1236,10 @@ public static String printVector(Vector<?> vector) {
     public static <K, V> Hashtable<K, V> rehashHashtable(Hashtable<K, V> table) {
         Hashtable<K, V> rehashedTable = new Hashtable<>(table.size() + 2);
 
-        Enumeration<V> values = table.elements();
-        for (Enumeration<K> keys = table.keys(); keys.hasMoreElements();) {
-            K key = keys.nextElement();
-            V value = values.nextElement();
+        Iterator<V> iterator1 = table.values().iterator();
+        for (Iterator<K> iterator = table.keySet().iterator(); iterator.hasNext();) {
+            K key = iterator.next();
+            V value = iterator1.next();
             rehashedTable.put(key, value);
         }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
index 26dc6d178d5..d122495f505 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/helper/LOBValueWriter.java
@@ -32,7 +32,6 @@
 import java.sql.SQLException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 
@@ -92,12 +91,12 @@ protected void buildAndExecuteCall(DatabaseCall dbCall, AbstractSession session)
     * Fetch the locator(s) from the result set and write LOB value to the table
     */
     public void fetchLocatorAndWriteValue(DatabaseCall dbCall, Object resultSet) throws SQLException {
-        Enumeration<DatabaseField> enumFields = dbCall.getContexts().getFields().elements();
-        Enumeration<?> enumValues = dbCall.getContexts().getValues().elements();
+        Iterator<DatabaseField> iterator1 = dbCall.getContexts().getFields().iterator();
+        Iterator<?> iterator = dbCall.getContexts().getValues().iterator();
         AbstractSession executionSession = dbCall.getQuery().getSession().getExecutionSession(dbCall.getQuery());
-        while (enumFields.hasMoreElements()) {
-            DatabaseField field = enumFields.nextElement();
-            Object value = enumValues.nextElement();
+        while (iterator1.hasNext()) {
+            DatabaseField field = iterator1.next();
+            Object value = iterator.next();
 
             //write the value through the locator
             executionSession.getPlatform().writeLOB(field, value, (ResultSet)resultSet, executionSession);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/Node.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/Node.java
index 16dad113599..cb7342a3996 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/Node.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/jpa/parsing/Node.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -414,9 +414,7 @@ public String toStringDisplayName() {
     }
 
     public void toStringIndent(int indent, StringBuilder buffer) {
-        for (int i = 0; i < indent; i++) {
-            buffer.append("  ");
-        }
+        buffer.append("  ".repeat(Math.max(0, indent)));
     }
 
     public String getAlias(){
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CallQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CallQueryMechanism.java
index 34d2473d7e0..1a221d6cdf2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CallQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/CallQueryMechanism.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2022 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -41,7 +41,7 @@
 import org.eclipse.persistence.queries.StoredProcedureCall;
 import org.eclipse.persistence.queries.WriteObjectQuery;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -231,8 +231,8 @@ public void prepareCursorSelectAllRows() throws QueryException {
     @Override
     public void prepareDeleteAll() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall call = (DatabaseCall) iterator.next();
                 call.returnNothing();
             }
         } else {
@@ -249,8 +249,8 @@ public void prepareDeleteAll() {
     public void prepareDeleteObject() {
         boolean usesOptimisticLocking = ((DeleteObjectQuery)getQuery()).usesOptimisticLocking();
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall call = (DatabaseCall) iterator.next();
                 call.returnNothing();
                 if (usesOptimisticLocking) {
                     call.setHasOptimisticLock(true);
@@ -294,8 +294,8 @@ public void prepareExecute() {
     @Override
     public void prepareExecuteSelect() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall databseCall = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall databseCall = (DatabaseCall) iterator.next();
                 databseCall.returnManyRows();
                 databseCall.setIsFieldMatchingRequired(isCallQueryMechanism());
             }
@@ -313,8 +313,8 @@ public void prepareExecuteSelect() {
     @Override
     public void prepareSelectAllRows() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall call = (DatabaseCall) iterator.next();
                 call.returnManyRows();
                 if (isCallQueryMechanism()) {
                     call.setIsFieldMatchingRequired(true);
@@ -353,8 +353,8 @@ protected void prepareJoining(ObjectLevelReadQuery query) {
     @Override
     public void prepareSelectOneRow() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall call = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall call = (DatabaseCall) iterator.next();
                 call.returnOneRow();
                 if (isCallQueryMechanism()) {
                     call.setIsFieldMatchingRequired(true);
@@ -411,8 +411,8 @@ public void prepareUpdateObject() {
      */
     public void setCallHasCustomSQLArguments() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatabaseCall databaseCall = (DatabaseCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatabaseCall databaseCall = (DatabaseCall) iterator.next();
                 if (databaseCall.isSQLCall()) {
                     ((SQLCall)databaseCall).setHasCustomSQLArguments(true);
                 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatasourceCallQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatasourceCallQueryMechanism.java
index 89ec3761d03..350249e6755 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatasourceCallQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/DatasourceCallQueryMechanism.java
@@ -1,6 +1,6 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
- * Copyright (c) 1998, 2023 IBM Corporation. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 IBM Corporation. All rights reserved.
  *
  * 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 @@
 import org.eclipse.persistence.queries.WriteObjectQuery;
 
 import java.util.Collection;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -342,8 +342,8 @@ public Vector executeSelect() throws DatabaseException {
     public Vector executeSelectCall() throws DatabaseException {
         if (hasMultipleCalls()) {
             Vector results = new Vector();
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databseCall = (DatasourceCall) iterator.next();
                 Helper.addAllToVector(results, (Vector)executeCall(databseCall));
             }
 
@@ -542,8 +542,8 @@ public void prepareCursorSelectAllRows() throws QueryException {
     @Override
     public void prepareDeleteAll() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall call = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall call = (DatasourceCall) iterator.next();
                 call.returnNothing();
             }
         } else {
@@ -558,8 +558,8 @@ public void prepareDeleteAll() {
     @Override
     public void prepareDeleteObject() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall call = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall call = (DatasourceCall) iterator.next();
                 call.returnNothing();
             }
         } else {
@@ -574,8 +574,8 @@ public void prepareDeleteObject() {
     @Override
     public void prepareDoesExist(DatabaseField field) {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                ((DatasourceCall)callsEnum.nextElement()).returnOneRow();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                ((DatasourceCall) iterator.next()).returnOneRow();
             }
         } else {
             getCall().returnOneRow();
@@ -589,8 +589,8 @@ public void prepareDoesExist(DatabaseField field) {
     @Override
     public void prepareExecuteNoSelect() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                ((DatasourceCall)callsEnum.nextElement()).returnNothing();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                ((DatasourceCall) iterator.next()).returnNothing();
             }
         } else {
             getCall().returnNothing();
@@ -616,8 +616,8 @@ public void prepareExecute() {
     @Override
     public void prepareExecuteSelect() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databseCall = (DatasourceCall) iterator.next();
                 databseCall.returnManyRows();
             }
         } else {
@@ -713,8 +713,8 @@ public void prepareReportQuerySubSelect() {
     @Override
     public void prepareSelectAllRows() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databseCall = (DatasourceCall) iterator.next();
                 databseCall.returnManyRows();
             }
         } else {
@@ -729,8 +729,8 @@ public void prepareSelectAllRows() {
     @Override
     public void prepareSelectOneRow() {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databseCall = (DatasourceCall) iterator.next();
                 databseCall.returnOneRow();
             }
         } else {
@@ -800,8 +800,8 @@ public Vector selectAllRows() throws DatabaseException {
     @Override
     public AbstractRecord selectOneRow() throws DatabaseException {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databaseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databaseCall = (DatasourceCall) iterator.next();
                 AbstractRecord result = (AbstractRecord)executeCall(databaseCall);
                 if (result != null) {
                     return result;
@@ -823,8 +823,8 @@ public AbstractRecord selectOneRow() throws DatabaseException {
     @Override
     public AbstractRecord selectRowForDoesExist(DatabaseField field) throws DatabaseException {
         if (hasMultipleCalls()) {
-            for (Enumeration callsEnum = getCalls().elements(); callsEnum.hasMoreElements();) {
-                DatasourceCall databaseCall = (DatasourceCall)callsEnum.nextElement();
+            for (Iterator iterator = getCalls().iterator(); iterator.hasNext();) {
+                DatasourceCall databaseCall = (DatasourceCall) iterator.next();
                 AbstractRecord result = (AbstractRecord)executeCall(databaseCall);
                 if (result != null) {
                     return result;
@@ -1023,8 +1023,8 @@ protected void updateForeignKeyFieldAfterInsert(WriteObjectQuery writeQuery) {
 
         // yes - this is a bit ugly...
         Vector calls = ((DatasourceCallQueryMechanism)this.getDescriptor().getQueryManager().getUpdateQuery().getQueryMechanism()).getCalls();
-        for (Enumeration stream = calls.elements(); stream.hasMoreElements();) {
-            DatasourceCall call = (DatasourceCall)((DatasourceCall)stream.nextElement()).clone();
+        for (Iterator iterator = calls.iterator(); iterator.hasNext();) {
+            DatasourceCall call = (DatasourceCall)((DatasourceCall) iterator.next()).clone();
             call.setQuery(writeQuery);
             sessionToUse.executeCall(call, this.getTranslationRow(), writeQuery);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
index 8be568458c8..01f7de02830 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/ExpressionQueryMechanism.java
@@ -84,7 +84,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
@@ -135,8 +134,8 @@ public ExpressionQueryMechanism(DatabaseQuery query, Expression expression) {
     protected Vector aliasFields(ObjectExpression node, Vector fields) {
         Vector result = new Vector(fields.size());
 
-        for (Enumeration e = fields.elements(); e.hasMoreElements();) {
-            DatabaseField eachField = ((DatabaseField)e.nextElement()).clone();
+        for (Iterator iterator = fields.iterator(); iterator.hasNext();) {
+            DatabaseField eachField = ((DatabaseField) iterator.next()).clone();
             eachField.setTable(node.aliasForTable(eachField.getTable()));
             result.addElement(eachField);
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/StatementQueryMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/StatementQueryMechanism.java
index 9abdbccbb42..26056d03683 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/StatementQueryMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/queries/StatementQueryMechanism.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  * Copyright (c) 2022 IBM Corporation. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -27,7 +27,7 @@
 import org.eclipse.persistence.queries.DatabaseQuery;
 import org.eclipse.persistence.sessions.SessionProfiler;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 /**
  * <p><b>Purpose</b>:
@@ -85,9 +85,9 @@ public DatabaseQueryMechanism clone(DatabaseQuery queryClone) {
             Vector currentStatements = getSQLStatements();
             if (currentStatements != null) {
                 Vector statementClone = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(currentStatements.size());
-                Enumeration enumtr = currentStatements.elements();
-                while (enumtr.hasMoreElements()) {
-                    statementClone.addElement(((SQLStatement)enumtr.nextElement()).clone());
+                Iterator iterator = currentStatements.iterator();
+                while (iterator.hasNext()) {
+                    statementClone.addElement(((SQLStatement) iterator.next()).clone());
                 }
                 clone.setSQLStatements(statementClone);
             }
@@ -332,9 +332,9 @@ public void prepareInsertObject() {
         }
 
         if (hasMultipleStatements()) {
-            for (Enumeration statementEnum = getSQLStatements().elements();
-                     statementEnum.hasMoreElements();) {
-                ((SQLModifyStatement)statementEnum.nextElement()).setModifyRow(getModifyRow());
+            for (Iterator iterator = getSQLStatements().iterator();
+                 iterator.hasNext();) {
+                ((SQLModifyStatement) iterator.next()).setModifyRow(getModifyRow());
             }
         } else if (getSQLStatement() != null) {
             ((SQLModifyStatement)getSQLStatement()).setModifyRow(getModifyRow());
@@ -381,9 +381,9 @@ public void prepareUpdateObject() {
         }
 
         if (hasMultipleStatements()) {
-            for (Enumeration statementEnum = getSQLStatements().elements();
-                     statementEnum.hasMoreElements();) {
-                ((SQLModifyStatement)statementEnum.nextElement()).setModifyRow(getModifyRow());
+            for (Iterator iterator = getSQLStatements().iterator();
+                 iterator.hasNext();) {
+                ((SQLModifyStatement) iterator.next()).setModifyRow(getModifyRow());
             }
         } else if (getSQLStatement() != null) {
             ((SQLModifyStatement)getSQLStatement()).setModifyRow(getModifyRow());
@@ -413,12 +413,12 @@ protected void setCallFromStatement() {
         getSession().startOperationProfile(SessionProfiler.SqlGeneration, getQuery(), SessionProfiler.ALL);
         try {
             if (hasMultipleStatements()) {
-                for (Enumeration statementEnum = getSQLStatements().elements(); statementEnum.hasMoreElements();) {
+                for (Iterator iterator = getSQLStatements().iterator(); iterator.hasNext();) {
                     DatasourceCall call = null;
                     if (getDescriptor() != null) {
-                        call = getDescriptor().buildCallFromStatement((SQLStatement)statementEnum.nextElement(), getQuery(), getExecutionSession());
+                        call = getDescriptor().buildCallFromStatement((SQLStatement) iterator.next(), getQuery(), getExecutionSession());
                     } else {
-                        call = ((SQLStatement)statementEnum.nextElement()).buildCall(getExecutionSession());
+                        call = ((SQLStatement) iterator.next()).buildCall(getExecutionSession());
                     }
 
                     // In case of update call may be null if no update required.
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 f83257acadd..02a824b1d98 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -17,7 +17,7 @@
 import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.internal.helper.DescriptorCompare;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -51,9 +51,9 @@ protected void addNode(ClassDescriptor d) {
     }
 
     public void addNodes(Vector descriptors) {
-        Enumeration descriptorsEnum = descriptors.elements();
-        while (descriptorsEnum.hasMoreElements()) {
-            ClassDescriptor descriptor = (ClassDescriptor)descriptorsEnum.nextElement();
+        Iterator iterator = descriptors.iterator();
+        while (iterator.hasNext()) {
+            ClassDescriptor descriptor = (ClassDescriptor) iterator.next();
             addNode(descriptor);
         }
     }
@@ -62,8 +62,8 @@ public void addNodes(Vector descriptors) {
      * Add to each node the dependent nodes
      */
     public void calculateMappingDependencies() {
-        for (Enumeration<CommitOrderDependencyNode> e = nodes.elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode node = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = nodes.iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode node = iterator.next();
             node.recordMappingDependencies();
         }
     }
@@ -72,8 +72,8 @@ public void calculateMappingDependencies() {
      * Add to each node the dependent nodes
      */
     public void calculateSpecifiedDependencies() {
-        for (Enumeration<CommitOrderDependencyNode> e = nodes.elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode node = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = nodes.iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode node = iterator.next();
             node.recordSpecifiedDependencies();
         }
     }
@@ -89,16 +89,16 @@ public void depthFirstSearch() {
          */
 
         //Setup
-        for (Enumeration<CommitOrderDependencyNode> e = getNodes().elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode node = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = getNodes().iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode node = iterator.next();
             node.markNotVisited();
             node.setPredecessor(null);
         }
         currentTime = 0;
 
         //Execution
-        for (Enumeration<CommitOrderDependencyNode> e = getNodes().elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode node = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = getNodes().iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode node = iterator.next();
             if (node.hasNotBeenVisited()) {
                 node.visit();
             }
@@ -145,9 +145,9 @@ public Vector<CommitOrderDependencyNode> getNodes() {
      */
     public Vector getOrderedClasses() {
         Vector orderedClasses = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(getOrderedDescriptors().size());
-        for (Enumeration orderedDescriptorsEnum = getOrderedDescriptors().elements();
-                 orderedDescriptorsEnum.hasMoreElements();) {
-            orderedClasses.addElement(((ClassDescriptor)orderedDescriptorsEnum.nextElement()).getJavaClass());
+        for (Iterator iterator = getOrderedDescriptors().iterator();
+             iterator.hasNext();) {
+            orderedClasses.addElement(((ClassDescriptor) iterator.next()).getJavaClass());
         }
 
         return orderedClasses;
@@ -161,8 +161,8 @@ public Vector getOrderedDescriptors() {
     }
 
     public CommitOrderDependencyNode nodeFor(Class<?> c) {
-        for (Enumeration<CommitOrderDependencyNode> e = nodes.elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode n = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = nodes.iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode n = iterator.next();
             if (n.getDescriptor().getJavaClass() == c) {
                 return n;
             }
@@ -171,8 +171,8 @@ public CommitOrderDependencyNode nodeFor(Class<?> c) {
     }
 
     public CommitOrderDependencyNode nodeFor(ClassDescriptor d) {
-        for (Enumeration<CommitOrderDependencyNode> e = nodes.elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode n = e.nextElement();
+        for (Iterator<CommitOrderDependencyNode> iterator = nodes.iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode n = iterator.next();
             if (n.getDescriptor() == d) {
                 return n;
             }
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 01fb93421d9..c0f544a7f75 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
@@ -23,7 +23,6 @@
 import org.eclipse.persistence.mappings.ForeignReferenceMapping;
 
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
@@ -192,8 +191,8 @@ public void visit() {
         startTime = getOwner().getNextTime();
         setDiscoveryTime(startTime);
 
-        for (Enumeration e = getRelatedNodes().elements(); e.hasMoreElements();) {
-            CommitOrderDependencyNode node = (CommitOrderDependencyNode)e.nextElement();
+        for (Iterator iterator = getRelatedNodes().iterator(); iterator.hasNext();) {
+            CommitOrderDependencyNode node = (CommitOrderDependencyNode) iterator.next();
             if (node.hasNotBeenVisited()) {
                 node.setPredecessor(this);
                 node.visit();
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 0739a11956f..5eaccf9eae5 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
@@ -72,7 +72,6 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -1063,8 +1062,8 @@ public void writeAllObjects(Collection domainObjects) throws DatabaseException,
      * the object has been updated or deleted by another user since it was last read.
      */
     public void writeAllObjects(Vector domainObjects) throws DatabaseException, OptimisticLockException {
-        for (Enumeration objectsEnum = domainObjects.elements(); objectsEnum.hasMoreElements();) {
-            writeObject(objectsEnum.nextElement());
+        for (Iterator iterator = domainObjects.iterator(); iterator.hasNext();) {
+            writeObject(iterator.next());
         }
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DirectCollectionChangeRecord.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DirectCollectionChangeRecord.java
index 6df3b6fb447..800cdbf31e4 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DirectCollectionChangeRecord.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/DirectCollectionChangeRecord.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -16,7 +16,6 @@
 
 import org.eclipse.persistence.internal.queries.ContainerPolicy;
 
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -193,9 +192,9 @@ public void addRemoveChange(Object key, Integer count){
      * once for each object type.
      */
     public void setCommitAddition(Hashtable additions){
-        Enumeration enumtr = additions.keys();
-        while (enumtr.hasMoreElements()) {
-            Object object = enumtr.nextElement();
+        Iterator iterator = additions.keySet().iterator();
+        while (iterator.hasNext()) {
+            Object object = iterator.next();
             getCommitAddMap().put(object, additions.get(object));
         }
     }
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 39bcb87c847..ec90c5f16fe 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
@@ -98,7 +98,6 @@
 import java.io.StringWriter;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
@@ -4003,8 +4002,8 @@ public Vector registerAllObjects(Collection domainObjects) {
      */
     public Vector registerAllObjects(Vector domainObjects) throws DatabaseException, OptimisticLockException {
         Vector clones = new Vector(domainObjects.size());
-        for (Enumeration objectsEnum = domainObjects.elements(); objectsEnum.hasMoreElements();) {
-            clones.addElement(registerObject(objectsEnum.nextElement()));
+        for (Iterator iterator = domainObjects.iterator(); iterator.hasNext();) {
+            clones.addElement(registerObject(iterator.next()));
         }
         return clones;
     }
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 770b6c1619f..80dea43b92a 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,9 +32,9 @@
 import org.eclipse.persistence.sessions.coordination.CommandManager;
 
 import java.rmi.server.ObjID;
-import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.IdentityHashMap;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -262,8 +262,8 @@ public Transporter cursoredStreamNextpage(Transporter remoteCursoredId, int page
             if (stream != null) {
                 //retrieve page size of objects from the cursored stream
                 nextPagesObjects = stream.nextElements(pageSize);
-                for (Enumeration enumtr = nextPagesObjects.elements(); enumtr.hasMoreElements();) {
-                    Object objectNext = enumtr.nextElement();
+                for (Iterator iterator = nextPagesObjects.iterator(); iterator.hasNext();) {
+                    Object objectNext = iterator.next();
                     if (objectNext == null) {
                         break;
                     } else {
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 cee5c6f67e4..f405219e576 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
@@ -86,7 +86,6 @@
 import org.eclipse.persistence.sessions.remote.DistributedSession;
 
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -1453,9 +1452,9 @@ public Vector getReferenceObjectKeys(ObjectLevelModifyQuery query) throws Databa
         //For CR#2587-S.M.  For nested aggregate collections the source keys can easily be read from the original query.
         AbstractRecord translationRow = query.getTranslationRow();
 
-        for (Enumeration<DatabaseField> sourcekeys = getSourceKeyFields().elements();
-             sourcekeys.hasMoreElements();) {
-            DatabaseField sourceKey = sourcekeys.nextElement();
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            DatabaseField sourceKey = iterator.next();
 
             // CR#2587.  Try first to get the source key from the original query.  If that fails try to get it from the object.
             Object referenceKey = null;
@@ -1477,9 +1476,9 @@ public Vector getReferenceObjectKeys(ObjectLevelModifyQuery query) throws Databa
      */
     public Vector getSourceKeyFieldNames() {
         Vector fieldNames = new Vector(getSourceKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -1500,9 +1499,9 @@ public Vector<DatabaseField> getSourceKeyFields() {
      */
     public Vector getTargetForeignKeyFieldNames() {
         Vector fieldNames = new Vector(getTargetForeignKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getTargetForeignKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getTargetForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -2647,8 +2646,8 @@ protected void setReferenceDescriptor(ClassDescriptor aDescriptor) {
      */
     public void setSourceKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setSourceKeyFields(fields);
@@ -2669,8 +2668,8 @@ public void setSourceKeyFields(Vector<DatabaseField> sourceKeyFields) {
      */
     public void setTargetForeignKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setTargetForeignKeyFields(fields);
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 2b48f10fbbd..1cc186890de 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
@@ -1911,9 +1911,9 @@ public boolean requiresDataModificationEventsForMapKey(){
      */
     public void setAggregateToSourceFieldAssociations(Vector<Association> fieldAssociations) {
         Hashtable fieldNames = new Hashtable(fieldAssociations.size() + 1);
-        for (Enumeration<Association> associationsEnum = fieldAssociations.elements();
-             associationsEnum.hasMoreElements();) {
-            Association association = associationsEnum.nextElement();
+        for (Iterator<Association> iterator = fieldAssociations.iterator();
+             iterator.hasNext();) {
+            Association association = iterator.next();
             fieldNames.put(association.getKey(), association.getValue());
         }
 
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 46e16fd50c6..2c869b81e85 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
@@ -79,7 +79,6 @@
 import java.sql.ResultSetMetaData;
 import java.sql.SQLException;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -480,8 +479,8 @@ public Object clone() {
      */
     protected Vector cloneFields(Vector fields) {
         Vector clonedFields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        for (Enumeration fieldsEnum = fields.elements(); fieldsEnum.hasMoreElements();) {
-            clonedFields.addElement(((DatabaseField)fieldsEnum.nextElement()).clone());
+        for (Iterator iterator = fields.iterator(); iterator.hasNext();) {
+            clonedFields.addElement(((DatabaseField) iterator.next()).clone());
         }
 
         return clonedFields;
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 170656dd746..b420b1bb6fb 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
@@ -104,7 +104,6 @@
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
@@ -1351,9 +1350,9 @@ public ClassDescriptor getReferenceDescriptor() {
      */
     public Vector getReferenceKeyFieldNames() {
         Vector fieldNames = new Vector(getReferenceKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getReferenceKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getReferenceKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -1418,9 +1417,9 @@ public DatabaseMapping getRelationshipPartner() {
      */
     public Vector getSourceKeyFieldNames() {
         Vector fieldNames = new Vector(getSourceKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -1752,9 +1751,9 @@ protected void initializeInsertQuery(AbstractSession session) {
         SQLInsertStatement statement = new SQLInsertStatement();
         statement.setTable(getReferenceTable());
         AbstractRecord directRow = new DatabaseRecord();
-        for (Enumeration<DatabaseField> referenceEnum = getReferenceKeyFields().elements();
-             referenceEnum.hasMoreElements();) {
-            directRow.put(referenceEnum.nextElement(), null);
+        for (Iterator<DatabaseField> iterator = getReferenceKeyFields().iterator();
+             iterator.hasNext();) {
+            directRow.put(iterator.next(), null);
         }
         directRow.put(getDirectField(), null);
         if(listOrderField != null) {
@@ -1781,8 +1780,8 @@ protected void initializeReferenceKeys(AbstractSession session) throws Descripto
             throw DescriptorException.noReferenceKeyIsSpecified(this);
         }
 
-        for (Enumeration<DatabaseField> referenceEnum = getReferenceKeyFields().elements(); referenceEnum.hasMoreElements();) {
-            DatabaseField field = referenceEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getReferenceKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField field = iterator.next();
 
             // Update the field first if the mapping is on a table per tenant entity.
             if (getDescriptor().hasTablePerMultitenantPolicy()) {
@@ -2654,9 +2653,9 @@ public void preDelete(DeleteObjectQuery query) throws DatabaseException {
     @Override
     protected void prepareTranslationRow(AbstractRecord translationRow, Object object, ClassDescriptor descriptor, AbstractSession session) {
         // Make sure that each source key field is in the translation row.
-        for (Enumeration<DatabaseField> sourceFieldsEnum = getSourceKeyFields().elements();
-             sourceFieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = sourceFieldsEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            DatabaseField sourceKey = iterator.next();
             if (!translationRow.containsKey(sourceKey)) {
                 Object value = descriptor.getObjectBuilder().extractValueFromObjectForField(object, sourceKey, session);
                 translationRow.put(sourceKey, value);
@@ -2902,8 +2901,8 @@ public void setReferenceKeyFieldName(String fieldName) {
      */
     public void setReferenceKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setReferenceKeyFields(fields);
@@ -2991,8 +2990,8 @@ public void setSessionName(String name) {
      */
     public void setSourceKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setSourceKeyFields(fields);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
index fc639b5a9e0..6fbcf7a4054 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/ManyToManyMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.eclipse.persistence.sessions.DatabaseRecord;
 
 import java.util.Collection;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -980,9 +980,9 @@ public void preDelete(DeleteObjectQuery query) throws DatabaseException {
     @Override
     protected void prepareTranslationRow(AbstractRecord translationRow, Object object, ClassDescriptor descriptor, AbstractSession session) {
         // Make sure that each source key field is in the translation row.
-        for (Enumeration<DatabaseField> sourceFieldsEnum = getSourceKeyFields().elements();
-             sourceFieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = sourceFieldsEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            DatabaseField sourceKey = iterator.next();
             if (!translationRow.containsKey(sourceKey)) {
                 Object value = descriptor.getObjectBuilder().extractValueFromObjectForField(object, sourceKey, session);
                 translationRow.put(sourceKey, value);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
index 043890c3de5..386d75288b0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/OneToManyMapping.java
@@ -52,7 +52,6 @@
 
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -273,11 +272,11 @@ public Expression buildSelectionCriteria() {
         Expression selectionCriteria = null;
         Expression builder = new ExpressionBuilder();
 
-        Enumeration<DatabaseField> sourceKeys = getSourceKeyFields().elements();
-        for (Enumeration<DatabaseField> targetForeignKeys = getTargetForeignKeyFields().elements();
-             targetForeignKeys.hasMoreElements();) {
-            DatabaseField targetForeignKey = targetForeignKeys.nextElement();
-            DatabaseField sourceKey = sourceKeys.nextElement();
+        Iterator<DatabaseField> iterator1 = getSourceKeyFields().iterator();
+        for (Iterator<DatabaseField> iterator = getTargetForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            DatabaseField targetForeignKey = iterator.next();
+            DatabaseField sourceKey = iterator1.next();
             Expression targetExpression = builder.getField(targetForeignKey);
             Expression sourceExpression = builder.getParameter(sourceKey);
             // store the expressions in order to initialize their fields later
@@ -472,9 +471,9 @@ public Collection getFieldsForTranslationInAggregate() {
      */
     public Vector getSourceKeyFieldNames() {
         Vector fieldNames = new Vector(getSourceKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -515,9 +514,9 @@ public List<DatabaseField> getTargetPrimaryKeyFields() {
      */
     public Vector getTargetForeignKeyFieldNames() {
         Vector fieldNames = new Vector(getTargetForeignKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getTargetForeignKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getTargetForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -1370,8 +1369,8 @@ public void setSessionName(String name) {
      */
     public void setSourceKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setSourceKeyFields(fields);
@@ -1437,8 +1436,8 @@ public void setTargetForeignKeyFieldNames(String[] targetForeignKeyFieldNames, S
      */
     public void setTargetForeignKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setTargetForeignKeyFields(fields);
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 49a8388da1d..15cbbe3cf7f 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
@@ -74,7 +74,6 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.IdentityHashMap;
@@ -491,8 +490,8 @@ public Object clone() {
             AbstractMap<DatabaseField, DatabaseField> fieldToCloneMap = new IdentityHashMap<>(getTargetToSourceKeyFields().size());
 
             //clone foreign keys and save the clones in a lookup table
-            for (Enumeration<DatabaseField> enumtr = getForeignKeyFields().elements(); enumtr.hasMoreElements();) {
-                DatabaseField field = enumtr.nextElement();
+            for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator(); iterator.hasNext();) {
+                DatabaseField field = iterator.next();
                 DatabaseField fieldClone = field.clone();
                 fieldToCloneMap.put(field, fieldClone);
                 clone.getForeignKeyFields().addElement(fieldClone);
@@ -956,9 +955,9 @@ public Class<?> getFieldClassification(DatabaseField fieldToClassify) throws Des
      */
     public Vector getForeignKeyFieldNames() {
         Vector fieldNames = new Vector(getForeignKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -1624,8 +1623,8 @@ public void setForeignKeyFieldName(String sourceForeignKeyFieldName) {
      */
     public void setForeignKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setForeignKeyFields(fields);
@@ -1659,9 +1658,9 @@ public void setShouldVerifyDelete(boolean shouldVerifyDelete) {
     public void setSourceToTargetKeyFieldAssociations(Vector sourceToTargetKeyFieldAssociations) {
         setSourceToTargetKeyFields(new HashMap(sourceToTargetKeyFieldAssociations.size() + 1));
         setTargetToSourceKeyFields(new HashMap(sourceToTargetKeyFieldAssociations.size() + 1));
-        for (Enumeration associationsEnum = sourceToTargetKeyFieldAssociations.elements();
-                 associationsEnum.hasMoreElements();) {
-            Association association = (Association)associationsEnum.nextElement();
+        for (Iterator iterator = sourceToTargetKeyFieldAssociations.iterator();
+             iterator.hasNext();) {
+            Association association = (Association) iterator.next();
             DatabaseField sourceField = new DatabaseField((String)association.getKey());
             DatabaseField targetField = new DatabaseField((String)association.getValue());
             getSourceToTargetKeyFields().put(sourceField, targetField);
@@ -1801,8 +1800,8 @@ public Object wrapKey(Object key, AbstractSession session){
     @Override
     public void writeFromAttributeIntoRow(Object attribute, AbstractRecord row, AbstractSession session)
     {
-          for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements(); fieldsEnum.hasMoreElements();) {
-                  DatabaseField sourceKey = fieldsEnum.nextElement();
+          for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator(); iterator.hasNext();) {
+                  DatabaseField sourceKey = iterator.next();
                   DatabaseField targetKey = getSourceToTargetKeyFields().get(sourceKey);
                   Object referenceValue = null;
                           // If privately owned part is null then method cannot be invoked.
@@ -2115,9 +2114,9 @@ public void writeFromObjectIntoRowForShallowInsertWithChangeRecord(ChangeRecord
             return;
         }
 
-        for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = fieldsEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            DatabaseField sourceKey = iterator.next();
             databaseRow.add(sourceKey, null);
         }
     }
@@ -2132,8 +2131,8 @@ public void writeInsertFieldsIntoRow(AbstractRecord databaseRow, AbstractSession
             return;
         }
 
-        for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements(); fieldsEnum.hasMoreElements();) {
-            DatabaseField sourceKey = fieldsEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField sourceKey = iterator.next();
 
             if (shouldWriteField(sourceKey, WriteType.INSERT)) {
                 databaseRow.add(sourceKey, null);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
index 826e95a5907..a9e4d655d99 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/RelationTableMechanism.java
@@ -47,7 +47,6 @@
 import org.eclipse.persistence.sessions.DatabaseRecord;
 
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -233,8 +232,8 @@ public Object clone() {
      */
     protected Vector cloneFields(Vector fields) {
         Vector clonedFields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance();
-        for (Enumeration fieldsEnum = fields.elements(); fieldsEnum.hasMoreElements();) {
-            clonedFields.addElement(((DatabaseField)fieldsEnum.nextElement()).clone());
+        for (Iterator iterator = fields.iterator(); iterator.hasNext();) {
+            clonedFields.addElement(((DatabaseField) iterator.next()).clone());
         }
 
         return clonedFields;
@@ -316,9 +315,9 @@ public String getRelationTableQualifiedName() {
      */
     public Vector getSourceKeyFieldNames() {
         Vector fieldNames = new Vector(getSourceKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getSourceKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getSourceKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -417,9 +416,9 @@ public Vector<DatabaseField> getSourceKeyFields() {
      */
     public Vector getSourceRelationKeyFieldNames() {
         Vector fieldNames = new Vector(getSourceRelationKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getSourceRelationKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getSourceRelationKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -440,9 +439,9 @@ public Vector<DatabaseField> getSourceRelationKeyFields() {
      */
     public Vector getTargetKeyFieldNames() {
         Vector fieldNames = new Vector(getTargetKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getTargetKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getTargetKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -475,9 +474,9 @@ public Vector<DatabaseField> getTargetKeyFields() {
      */
     public Vector getTargetRelationKeyFieldNames() {
         Vector fieldNames = new Vector(getTargetRelationKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getTargetRelationKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getTargetRelationKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -733,8 +732,8 @@ protected void initializeSourceRelationKeys(ForeignReferenceMapping mapping) thr
             throw DescriptorException.noSourceRelationKeysSpecified(mapping);
         }
 
-        for (Enumeration<DatabaseField> entry = getSourceRelationKeyFields().elements(); entry.hasMoreElements();) {
-            DatabaseField field = entry.nextElement();
+        for (Iterator<DatabaseField> iterator = getSourceRelationKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField field = iterator.next();
 
             // Update the fields table first if the mapping is from a table per tenant entity.
             ClassDescriptor sourceDescriptor = mapping.getDescriptor();
@@ -780,8 +779,8 @@ protected void initializeTargetRelationKeys(ForeignReferenceMapping mapping) {
             throw DescriptorException.noTargetRelationKeysSpecified(mapping);
         }
 
-        for (Enumeration<DatabaseField> targetEnum = getTargetRelationKeyFields().elements(); targetEnum.hasMoreElements();) {
-            DatabaseField field = targetEnum.nextElement();
+        for (Iterator<DatabaseField> iterator = getTargetRelationKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField field = iterator.next();
 
             // Update the fields table first if the mapping is from a table per tenant entity.
             ClassDescriptor referenceDescriptor = mapping.getReferenceDescriptor();
@@ -951,8 +950,8 @@ public void setSessionName(String name) {
      */
     public void setSourceKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setSourceKeyFields(fields);
@@ -983,8 +982,8 @@ public void setSourceRelationKeyFieldName(String sourceRelationKeyFieldName) {
      */
     public void setSourceRelationKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setSourceRelationKeyFields(fields);
@@ -1005,8 +1004,8 @@ public void setSourceRelationKeyFields(Vector<DatabaseField> sourceRelationKeyFi
      */
     public void setTargetKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setTargetKeyFields(fields);
@@ -1037,8 +1036,8 @@ public void setTargetRelationKeyFieldName(String targetRelationKeyFieldName) {
      */
     public void setTargetRelationKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setTargetRelationKeyFields(fields);
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 6828e9b8697..7bead92ac3c 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,6 @@
 
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -194,8 +193,8 @@ public Object clone() {
             sourceToTarget.put(clonedField, getSourceToTargetQueryKeyNames().get(field));
         }
 
-        for (Enumeration<DatabaseField> enumtr = getForeignKeyFields().elements(); enumtr.hasMoreElements();) {
-            DatabaseField field = enumtr.nextElement();
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator(); iterator.hasNext();) {
+            DatabaseField field = iterator.next();
             foreignKeys.addElement(setOfKeys.get(field));
         }
         clone.setSourceToTargetQueryKeyFields(sourceToTarget);
@@ -345,9 +344,9 @@ public Class<?> getFieldClassification(DatabaseField fieldToClassify) {
      */
     public Vector getForeignKeyFieldNames() {
         Vector fieldNames = new Vector(getForeignKeyFields().size());
-        for (Enumeration<DatabaseField> fieldsEnum = getForeignKeyFields().elements();
-             fieldsEnum.hasMoreElements();) {
-            fieldNames.addElement(fieldsEnum.nextElement().getQualifiedName());
+        for (Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
+             iterator.hasNext();) {
+            fieldNames.addElement(iterator.next().getQualifiedName());
         }
 
         return fieldNames;
@@ -609,9 +608,9 @@ public void rehashFieldDependancies(AbstractSession session) {
     public void setClassIndicatorAssociations(Vector classIndicatorAssociations) {
         setTypeIndicatorNameTranslation(new HashMap(classIndicatorAssociations.size() + 1));
         setTypeIndicatorTranslation(new HashMap((classIndicatorAssociations.size() * 2) + 1));
-        for (Enumeration associationsEnum = classIndicatorAssociations.elements();
-                 associationsEnum.hasMoreElements();) {
-            Association association = (Association)associationsEnum.nextElement();
+        for (Iterator iterator = classIndicatorAssociations.iterator();
+             iterator.hasNext();) {
+            Association association = (Association) iterator.next();
             Object classValue = association.getKey();
             if (classValue instanceof Class) {
                 // 904 projects will be a class type.
@@ -629,8 +628,8 @@ public void setClassIndicatorAssociations(Vector classIndicatorAssociations) {
      */
     public void setForeignKeyFieldNames(Vector fieldNames) {
         Vector fields = org.eclipse.persistence.internal.helper.NonSynchronizedVector.newInstance(fieldNames.size());
-        for (Enumeration fieldNamesEnum = fieldNames.elements(); fieldNamesEnum.hasMoreElements();) {
-            fields.addElement(new DatabaseField((String)fieldNamesEnum.nextElement()));
+        for (Iterator iterator = fieldNames.iterator(); iterator.hasNext();) {
+            fields.addElement(new DatabaseField((String) iterator.next()));
         }
 
         setForeignKeyFields(fields);
@@ -654,9 +653,9 @@ public void setForeignQueryKeyName(String sourceForeignKeyFieldName, String targ
      */
     public void setSourceToTargetQueryKeyFieldAssociations(Vector sourceToTargetQueryKeyFieldAssociations) {
         setSourceToTargetQueryKeyFields(new HashMap(sourceToTargetQueryKeyFieldAssociations.size() + 1));
-        for (Enumeration associationsEnum = sourceToTargetQueryKeyFieldAssociations.elements();
-                 associationsEnum.hasMoreElements();) {
-            Association association = (Association)associationsEnum.nextElement();
+        for (Iterator iterator = sourceToTargetQueryKeyFieldAssociations.iterator();
+             iterator.hasNext();) {
+            Association association = (Association) iterator.next();
             Object sourceField = new DatabaseField((String)association.getKey());
             String targetQueryKey = (String)association.getValue();
             getSourceToTargetQueryKeyNames().put(sourceField, targetQueryKey);
@@ -822,9 +821,9 @@ protected void writeFromNullObjectIntoRow(AbstractRecord record) {
             return;
         }
         if (isForeignKeyRelationship()) {
-            Enumeration<DatabaseField> foreignKeys = getForeignKeyFields().elements();
-            while (foreignKeys.hasMoreElements()) {
-                record.put(foreignKeys.nextElement(), null);
+            Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
+            while (iterator.hasNext()) {
+                record.put(iterator.next(), null);
                 // EL Bug 319759 - if a field is null, then the update call cache should not be used
                 record.setNullValueInFields(true);
             }
@@ -853,10 +852,10 @@ public void writeFromObjectIntoRow(Object object, AbstractRecord record, Abstrac
             writeFromNullObjectIntoRow(record);
         } else {
             if (isForeignKeyRelationship()) {
-                Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
+                Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
                 ClassDescriptor descriptor = session.getDescriptor(referenceObject.getClass());
-                while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = sourceFields.nextElement();
+                while (iterator.hasNext()) {
+                    DatabaseField sourceKey = iterator.next();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
@@ -894,10 +893,10 @@ public void writeFromObjectIntoRowWithChangeRecord(ChangeRecord changeRecord, Ab
         } else {
             Object referenceObject = changeSet.getUnitOfWorkClone();
             if (isForeignKeyRelationship()) {
-                Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
+                Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
                 ClassDescriptor descriptor = session.getDescriptor(referenceObject.getClass());
-                while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = sourceFields.nextElement();
+                while (iterator.hasNext()) {
+                    DatabaseField sourceKey = iterator.next();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
@@ -972,10 +971,10 @@ public void writeFromObjectIntoRowForWhereClause(ObjectLevelModifyQuery query, A
             writeFromNullObjectIntoRow(record);
         } else {
             if (isForeignKeyRelationship()) {
-                Enumeration<DatabaseField> sourceFields = getForeignKeyFields().elements();
+                Iterator<DatabaseField> iterator = getForeignKeyFields().iterator();
                 ClassDescriptor descriptor = query.getSession().getDescriptor(referenceObject.getClass());
-                while (sourceFields.hasMoreElements()) {
-                    DatabaseField sourceKey = sourceFields.nextElement();
+                while (iterator.hasNext()) {
+                    DatabaseField sourceKey = iterator.next();
                     String targetQueryKey = (String)getSourceToTargetQueryKeyNames().get(sourceKey);
                     DatabaseField targetKeyField = descriptor.getObjectBuilder().getFieldForQueryKeyName(targetQueryKey);
                     if (targetKeyField == null) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/converters/ObjectTypeConverter.java
index 3e6efe6a2bd..9416867453f 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,7 +35,6 @@
 import java.lang.reflect.Constructor;
 import java.security.AccessController;
 import java.security.PrivilegedActionException;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
@@ -508,9 +507,9 @@ public void setFieldClassificationName(String fieldClassificationName) {
     public void setFieldToAttributeValueAssociations(Vector fieldToAttributeValueAssociations) {
         setFieldToAttributeValues(new HashMap(fieldToAttributeValueAssociations.size() + 1));
         setAttributeToFieldValues(new HashMap(fieldToAttributeValueAssociations.size() + 1));
-        for (Enumeration associationsEnum = fieldToAttributeValueAssociations.elements();
-                 associationsEnum.hasMoreElements();) {
-            Association association = (Association)associationsEnum.nextElement();
+        for (Iterator iterator = fieldToAttributeValueAssociations.iterator();
+             iterator.hasNext();) {
+            Association association = (Association) iterator.next();
             addConversionValue(association.getKey(), association.getValue());
         }
     }
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 9c906627602..5b66efbaa4b 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.eclipse.persistence.sessions.CopyGroup;
 import org.eclipse.persistence.sessions.remote.DistributedSession;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Set;
 import java.util.Vector;
@@ -699,8 +699,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
         }
 
         Object result = cp.containerInstance(nestedRows.size());
-        for (Enumeration stream = nestedRows.elements(); stream.hasMoreElements();) {
-            AbstractRecord nestedRow = (AbstractRecord)stream.nextElement();
+        for (Iterator iterator = nestedRows.iterator(); iterator.hasNext();) {
+            AbstractRecord nestedRow = (AbstractRecord) iterator.next();
 
             ClassDescriptor descriptor = this.getReferenceDescriptor();
             if (descriptor.hasInheritance()) {
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 b4d2357266e..62e912f8beb 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.eclipse.persistence.sessions.CopyGroup;
 import org.eclipse.persistence.sessions.remote.DistributedSession;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -623,8 +623,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
         }
 
         Object result = cp.containerInstance(fieldValues.size());
-        for (Enumeration stream = fieldValues.elements(); stream.hasMoreElements();) {
-            Object element = stream.nextElement();
+        for (Iterator iterator = fieldValues.iterator(); iterator.hasNext();) {
+            Object element = iterator.next();
             if (this.getValueConverter() != null) {
                 element = getValueConverter().convertDataValueToObjectValue(element, executionSession);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ArrayCollectionMappingHelper.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ArrayCollectionMappingHelper.java
index 83f7be608b0..1dee74bb8df 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ArrayCollectionMappingHelper.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/mappings/structures/ArrayCollectionMappingHelper.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -24,7 +24,7 @@
 import org.eclipse.persistence.internal.sessions.UnitOfWorkImpl;
 import org.eclipse.persistence.mappings.DatabaseMapping;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -323,8 +323,8 @@ private boolean compareAttributeValuesWithoutOrder(Object collection1, Object co
         }
 
         // look for elements that were not in collection1
-        for (Enumeration stream = vector2.elements(); stream.hasMoreElements();) {
-            if (stream.nextElement() != XXX) {
+        for (Iterator iterator = vector2.iterator(); iterator.hasNext();) {
+            if (iterator.next() != XXX) {
                 return false;
             }
         }
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 b9f0f1ca606..4639d4acc62 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
@@ -37,7 +37,6 @@
 import java.sql.Struct;
 import java.sql.Types;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
@@ -150,8 +149,8 @@ public Object buildFieldValueFromNestedRows(Vector nestedRows, String structureN
             }
 
             int i = 0;
-            for (Enumeration stream = nestedRows.elements(); stream.hasMoreElements();) {
-                AbstractRecord nestedRow = (AbstractRecord)stream.nextElement();
+            for (Iterator iterator = nestedRows.iterator(); iterator.hasNext();) {
+                AbstractRecord nestedRow = (AbstractRecord) iterator.next();
                 fields[i++] = this.buildStructureFromRow(nestedRow, session, connection);
             }
 
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 dfd5c5989a8..e98161c17de 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
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -415,8 +415,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
             result = cp.containerInstance(fieldValues.size());
         }
 
-        for (Enumeration stream = fieldValues.elements(); stream.hasMoreElements();) {
-            Object element = stream.nextElement();
+        for (Iterator iterator = fieldValues.iterator(); iterator.hasNext();) {
+            Object element = iterator.next();
 
             // PERF: Direct variable access.
             //Object value = row.get(field);
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 f25de4d9c50..c5929189568 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
@@ -57,7 +57,7 @@
 
 import javax.xml.namespace.QName;
 import java.lang.reflect.Modifier;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -508,8 +508,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
             result = cp.containerInstance(nestedRows.size());
         }
 
-        for (Enumeration stream = nestedRows.elements(); stream.hasMoreElements();) {
-            XMLRecord nestedRow = (XMLRecord) stream.nextElement();
+        for (Iterator iterator = nestedRows.iterator(); iterator.hasNext();) {
+            XMLRecord nestedRow = (XMLRecord) iterator.next();
             Object objectToAdd;
             if (getNullPolicy().valueIsNull((Element) nestedRow.getDOM())) {
                 objectToAdd = null;
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeDirectCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeDirectCollectionMapping.java
index dd44302861d..9692d36bc4f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeDirectCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLCompositeDirectCollectionMapping.java
@@ -45,7 +45,7 @@
 import org.eclipse.persistence.queries.ObjectBuildingQuery;
 import org.eclipse.persistence.sessions.Session;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -355,8 +355,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
             result = cp.containerInstance(fieldValues.size());
         }
 
-        for (Enumeration stream = fieldValues.elements(); stream.hasMoreElements();) {
-            Object element = stream.nextElement();
+        for (Iterator iterator = fieldValues.iterator(); iterator.hasNext();) {
+            Object element = iterator.next();
             element = convertDataValueToObjectValue(element, executionSession, ((XMLRecord) row).getUnmarshaller());
             if (element != null && element.getClass() == ClassConstants.STRING) {
                 if (isCollapsingStringValues) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLFragmentCollectionMapping.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLFragmentCollectionMapping.java
index bd97a3a1cab..1425812080e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLFragmentCollectionMapping.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/oxm/mappings/XMLFragmentCollectionMapping.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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 @@
 import org.w3c.dom.Element;
 import org.w3c.dom.Text;
 
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -150,8 +150,8 @@ public Object valueFromRow(AbstractRecord row, JoinedAttributeManager joinManage
             result = cp.containerInstance();
         }
 
-        for (Enumeration stream = nestedRows.elements(); stream.hasMoreElements();) {
-            Object next = stream.nextElement();
+        for (Iterator iterator = nestedRows.iterator(); iterator.hasNext();) {
+            Object next = iterator.next();
             if (next instanceof Element) {
                 XMLPlatformFactory.getInstance().getXMLPlatform().namespaceQualifyFragment((Element)next);
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
index 6c6c1411275..01c50bf03ed 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/coordination/TransportManager.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,8 +27,8 @@
 
 import javax.naming.Context;
 import javax.naming.NamingException;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.Map;
 
 /**
@@ -341,11 +341,11 @@ public void removeConnectionToExternalService(RemoteConnection connection) {
      */
     public void removeAllConnectionsToExternalServices() {
         synchronized (this) {
-            Enumeration<RemoteConnection> connections = connectionsToExternalServices.elements();
+            Iterator<RemoteConnection> iterator = connectionsToExternalServices.values().iterator();
             connectionsToExternalServices = new Hashtable(3);
 
-            while (connections.hasMoreElements()) {
-                connections.nextElement().close();
+            while (iterator.hasNext()) {
+                iterator.next().close();
             }
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
index 644325efca1..746f26df0a9 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/factories/ProjectClassGenerator.java
@@ -111,7 +111,6 @@
 import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Calendar;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -176,11 +175,11 @@ public ProjectClassGenerator(Project project, String projectClassName, String fi
     }
 
     protected void addAggregateCollectionMappingLines(NonreflectiveMethodDefinition method, String mappingName, AggregateCollectionMapping mapping) {
-        Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetForeignKeyFields().elements();
-        Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
-        while (sourceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = sourceKeysEnum.nextElement();
-            DatabaseField targetField = targetKeysEnum.nextElement();
+        Iterator<DatabaseField> iterator1 = mapping.getTargetForeignKeyFields().iterator();
+        Iterator<DatabaseField> iterator = mapping.getSourceKeyFields().iterator();
+        while (iterator.hasNext()) {
+            DatabaseField sourceField = iterator.next();
+            DatabaseField targetField = iterator1.next();
             method.addLine(mappingName + ".addTargetForeignKeyFieldName(\"" + targetField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
     }
@@ -407,11 +406,11 @@ protected void addDirectCollectionMappingLines(NonreflectiveMethodDefinition met
             method.addLine(mappingName + ".setAttributeClassification(" + mapping.getDirectField().getType().getName() + ".class);");
         }
 
-        Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
-        Enumeration<DatabaseField> referenceKeysEnum = mapping.getReferenceKeyFields().elements();
-        while (referenceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = sourceKeysEnum.nextElement();
-            DatabaseField referenceField = referenceKeysEnum.nextElement();
+        Iterator<DatabaseField> iterator1 = mapping.getSourceKeyFields().iterator();
+        Iterator<DatabaseField> iterator = mapping.getReferenceKeyFields().iterator();
+        while (iterator.hasNext()) {
+            DatabaseField sourceField = iterator1.next();
+            DatabaseField referenceField = iterator.next();
             method.addLine(mappingName + ".addReferenceKeyFieldName(\"" + referenceField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
 
@@ -764,19 +763,19 @@ protected void addManyToManyMappingLines(NonreflectiveMethodDefinition method, S
             method.addLine(mappingName + ".setRelationTableName(\"" + mapping.getRelationTable().getQualifiedName() + "\");");
         }
 
-        Enumeration<DatabaseField> sourceRelationKeysEnum = mapping.getSourceRelationKeyFields().elements();
-        Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
-        while (sourceRelationKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = sourceKeysEnum.nextElement();
-            DatabaseField relationField = sourceRelationKeysEnum.nextElement();
+        Iterator<DatabaseField> iterator3 = mapping.getSourceRelationKeyFields().iterator();
+        Iterator<DatabaseField> iterator2 = mapping.getSourceKeyFields().iterator();
+        while (iterator3.hasNext()) {
+            DatabaseField sourceField = iterator2.next();
+            DatabaseField relationField = iterator3.next();
             method.addLine(mappingName + ".addSourceRelationKeyFieldName(\"" + relationField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
 
-        Enumeration<DatabaseField> targetRelationKeysEnum = mapping.getTargetRelationKeyFields().elements();
-        Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetKeyFields().elements();
-        while (targetRelationKeysEnum.hasMoreElements()) {
-            DatabaseField targetField = targetKeysEnum.nextElement();
-            DatabaseField relationField = targetRelationKeysEnum.nextElement();
+        Iterator<DatabaseField> iterator1 = mapping.getTargetRelationKeyFields().iterator();
+        Iterator<DatabaseField> iterator = mapping.getTargetKeyFields().iterator();
+        while (iterator1.hasNext()) {
+            DatabaseField targetField = iterator.next();
+            DatabaseField relationField = iterator1.next();
             method.addLine(mappingName + ".addTargetRelationKeyFieldName(\"" + relationField.getQualifiedName() + "\", \"" + targetField.getQualifiedName() + "\");");
         }
 
@@ -873,11 +872,11 @@ protected void addObjectTypeConverterLines(NonreflectiveMethodDefinition method,
     }
 
     protected void addOneToManyMappingLines(NonreflectiveMethodDefinition method, String mappingName, OneToManyMapping mapping) {
-        Enumeration<DatabaseField> targetKeysEnum = mapping.getTargetForeignKeyFields().elements();
-        Enumeration<DatabaseField> sourceKeysEnum = mapping.getSourceKeyFields().elements();
-        while (sourceKeysEnum.hasMoreElements()) {
-            DatabaseField sourceField = sourceKeysEnum.nextElement();
-            DatabaseField targetField = targetKeysEnum.nextElement();
+        Iterator<DatabaseField> iterator1 = mapping.getTargetForeignKeyFields().iterator();
+        Iterator<DatabaseField> iterator = mapping.getSourceKeyFields().iterator();
+        while (iterator.hasNext()) {
+            DatabaseField sourceField = iterator.next();
+            DatabaseField targetField = iterator1.next();
             method.addLine(mappingName + ".addTargetForeignKeyFieldName(\"" + targetField.getQualifiedName() + "\", \"" + sourceField.getQualifiedName() + "\");");
         }
     }
@@ -1042,10 +1041,10 @@ protected void addQueryManagerPropertyLines(NonreflectiveMethodDefinition method
         // Named queries.
         if (!descriptor.getQueryManager().getAllQueries().isEmpty()) {
             method.addLine("// Named Queries.");
-            Enumeration<DatabaseQuery> namedQueries = descriptor.getQueryManager().getAllQueries().elements();
+            Iterator<DatabaseQuery> iterator = descriptor.getQueryManager().getAllQueries().iterator();
             int iteration = 0;
-            while (namedQueries.hasMoreElements()) {
-                addNamedQueryLines(method, namedQueries.nextElement(), descriptor.getQueryManager(), iteration);
+            while (iterator.hasNext()) {
+                addNamedQueryLines(method, iterator.next(), descriptor.getQueryManager(), iteration);
                 ++iteration;
             }
         }
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 f1530f746e5..58157ad7f96 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
@@ -34,8 +34,8 @@
 
 import java.rmi.RemoteException;
 import java.rmi.server.ObjID;
-import java.util.Enumeration;
 import java.util.IdentityHashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
 
@@ -199,9 +199,9 @@ public Vector cursoredStreamNextPage(RemoteCursoredStream remoteCursoredStream,
         Vector clientNextPageObjects = serverNextPageObjects;
         if (query.isReadAllQuery() && (!query.isReportQuery())) {// could be DataReadQuery
             clientNextPageObjects = new Vector(serverNextPageObjects.size());
-            for (Enumeration objEnum = serverNextPageObjects.elements(); objEnum.hasMoreElements();) {
+            for (Iterator iterator = serverNextPageObjects.iterator(); iterator.hasNext();) {
                 // 2612538 - the default size of Map (32) is appropriate
-                Object clientObject = session.getObjectCorrespondingTo(objEnum.nextElement(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
+                Object clientObject = session.getObjectCorrespondingTo(iterator.next(), transporter.getObjectDescriptors(), new IdentityHashMap(), (ObjectLevelReadQuery)query);
                 clientNextPageObjects.addElement(clientObject);
             }
         }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/PackageRenamer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/PackageRenamer.java
index 79c571edf62..5915466a86e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/PackageRenamer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/PackageRenamer.java
@@ -33,7 +33,7 @@
 import java.security.PrivilegedAction;
 import java.util.Arrays;
 import java.util.Date;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Objects;
 import java.util.Properties;
 import java.util.Vector;
@@ -559,8 +559,8 @@ public void runSearchAndReplacePackageName(java.io.File sourceFile) {
 
         // Sorting key package name.
         Vector<Object> aVector = new Vector<>();
-        for (Enumeration<Object> e = properties.keys(); e.hasMoreElements();) {
-            aVector.addElement(e.nextElement());
+        for (Iterator<Object> iterator = properties.keySet().iterator(); iterator.hasNext();) {
+            aVector.addElement(iterator.next());
         }
         String[] aStringArrayOfSortedKeyPackageName = new String[aVector.size()];
         aVector.copyInto(aStringArrayOfSortedKeyPackageName);
@@ -569,8 +569,8 @@ public void runSearchAndReplacePackageName(java.io.File sourceFile) {
         // Starting to rename.
         boolean alreadyPrint = false;
         int index = aStringArrayOfSortedKeyPackageName.length;
-        for (Enumeration<Object> enumtr = properties.keys(); enumtr.hasMoreElements();) {
-            enumtr.nextElement();
+        for (Iterator<Object> iterator = properties.keySet().iterator(); iterator.hasNext();) {
+            iterator.next();
             String key = aStringArrayOfSortedKeyPackageName[index - 1];
             String value = (String)properties.get(key);
             index -= 1;
@@ -643,8 +643,8 @@ public static String replace(String str, String oldChars, String newChars) {
      * @return The new filename, regardless of whether is has been changed
      */
     public String returnNewFileNameIfRequired(String aSourceFileNameWithoutRoot) {
-        for (Enumeration<Object> enumtr = properties.keys(); enumtr.hasMoreElements();) {
-            String key = (String)enumtr.nextElement();
+        for (Iterator<Object> iterator = properties.keySet().iterator(); iterator.hasNext();) {
+            String key = (String) iterator.next();
 
             if (aSourceFileNameWithoutRoot.contains(key)) {
                 // replacing the old package name.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
index 7a9dea9424e..edce53eaddb 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/profiler/PerformanceProfiler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -25,8 +25,8 @@
 import java.io.Serializable;
 import java.io.Writer;
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -344,8 +344,8 @@ public void logProfileSummary() {
     public void logProfileSummaryByClass() {
         Hashtable<Class<?>, Profile> summaries = buildProfileSummaryByClass();
 
-        for (Enumeration<Class<?>> classes = summaries.keys(); classes.hasMoreElements();) {
-            Class<?> domainClass = classes.nextElement();
+        for (Iterator<Class<?>> iterator = summaries.keySet().iterator(); iterator.hasNext();) {
+            Class<?> domainClass = iterator.next();
             Writer writer = getSession().getLog();
             try {
                 writer.write(summaries.get(domainClass).toString());
@@ -362,8 +362,8 @@ public void logProfileSummaryByClass() {
     public void logProfileSummaryByQuery() {
         Hashtable<Class<?>, Profile> summaries = buildProfileSummaryByQuery();
 
-        for (Enumeration<Class<?>> classes = summaries.keys(); classes.hasMoreElements();) {
-            Class<?> queryType = classes.nextElement();
+        for (Iterator<Class<?>> iterator = summaries.keySet().iterator(); iterator.hasNext();) {
+            Class<?> queryType = iterator.next();
             Writer writer = getSession().getLog();
             try {
                 writer.write(summaries.get(queryType).toString());
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 3330eaa39d5..69f9d927ffc 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
@@ -42,7 +42,6 @@
 import java.io.Writer;
 import java.sql.Time;
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
@@ -168,9 +167,9 @@ public void generateAmendmentClass(Writer outputWriter, String packageName, Stri
             outputWriter.write("This is a EclipseLink generated class to add stored procedure admendments to a project.  \n * Any changes to this code will be lost when the class is regenerated \n */\npublic class ");
             outputWriter.write(className);
             outputWriter.write("{\n");
-            Enumeration<ClassDescriptor> descriptorEnum = this.storedProcedures.keys();
-            while (descriptorEnum.hasMoreElements()) {
-                descriptor = descriptorEnum.nextElement();
+            Iterator<ClassDescriptor> iterator1 = this.storedProcedures.keySet().iterator();
+            while (iterator1.hasNext()) {
+                descriptor = iterator1.next();
                 if (descriptor.isDescriptorForInterface() || descriptor.isAggregateDescriptor()) {
                     continue;
                 }
@@ -281,8 +280,8 @@ public void generateAmendmentClass(Writer outputWriter, String packageName, Stri
                     //read all
                     outputWriter.write("\tReadAllQuery mappingQuery; \n");
                     outputWriter.write("\tDeleteAllQuery deleteMappingQuery; \n");
-                    for (Enumeration<String> e = mappingHashtable.keys(); e.hasMoreElements();) {
-                        String mappingName = e.nextElement();
+                    for (Iterator<String> iterator = mappingHashtable.keySet().iterator(); iterator.hasNext();) {
+                        String mappingName = iterator.next();
                         definition = mappingHashtable.get(mappingName).get("1MREAD");
                         if (definition != null) {
                             outputWriter.write("\n\t//MAPPING READALL QUERY FOR " + mappingName + "\n");
@@ -538,9 +537,9 @@ protected StoredProcedureDefinition generateStoredProcedure(DatabaseQuery query,
                 callVector.addElement(((CallQueryMechanism)query.getQueryMechanism()).getCall());
             }
         }
-        Enumeration<DatasourceCall> enumtr = callVector.elements();
-        while (enumtr.hasMoreElements()) {
-            SQLCall call = (SQLCall)enumtr.nextElement();
+        Iterator<DatasourceCall> iterator1 = callVector.iterator();
+        while (iterator1.hasNext()) {
+            SQLCall call = (SQLCall) iterator1.next();
             statementVector.addElement(this.buildProcedureString(call));
         }
         definition.setStatements(statementVector);
@@ -554,16 +553,16 @@ protected StoredProcedureDefinition generateStoredProcedure(DatabaseQuery query,
         }
 
         definition.setName(Helper.truncate(name, MAX_NAME_SIZE));
-        Enumeration<String> fieldsEnum = fieldNames.keys();
+        Iterator<String> iterator = fieldNames.keySet().iterator();
         String prefixArgToken;
         if (getSession().getPlatform().isOracle()) {
             prefixArgToken = getSession().getPlatform().getStoredProcedureParameterPrefix();
         } else {
             prefixArgToken = "";
         }
-        while (fieldsEnum.hasMoreElements()) {
+        while (iterator.hasNext()) {
             Number dataType;
-            dataRow = fieldNames.get(fieldsEnum.nextElement());
+            dataRow = fieldNames.get(iterator.next());
             dataType = (Number)dataRow.get("DATA_TYPE");
             Class<?> type = this.getFieldType(dataType);
             String typeName = (String)dataRow.get("TYPE_NAME");
@@ -618,8 +617,8 @@ public void generateStoredProcedures() {
                 this.writeDefinition(definition);
             }
             Hashtable<String, Hashtable<String, StoredProcedureDefinition>> mappingDefinitions = this.generateMappingStoredProcedures(desc);
-            for (Enumeration<Hashtable<String, StoredProcedureDefinition>> enum2 = mappingDefinitions.elements(); enum2.hasMoreElements();) {
-                Hashtable<String, StoredProcedureDefinition> table = enum2.nextElement();
+            for (Iterator<Hashtable<String, StoredProcedureDefinition>> iterator1 = mappingDefinitions.values().iterator(); iterator1.hasNext();) {
+                Hashtable<String, StoredProcedureDefinition> table = iterator1.next();
                 definition = table.get("1MREAD");
                 if (definition != null) {
                     this.writeDefinition(definition);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
index 118147a0100..7da31f5c8e0 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/tools/schemaframework/UniqueKeyConstraint.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2023 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -20,7 +20,7 @@
 import java.io.IOException;
 import java.io.Serializable;
 import java.io.Writer;
-import java.util.Enumeration;
+import java.util.Iterator;
 import java.util.Vector;
 
 /**
@@ -64,10 +64,10 @@ public void addSourceField(String sourceField) {
     public void appendDBString(Writer writer, AbstractSession session) {
         try {
             writer.write("UNIQUE (");
-            for (Enumeration<String> sourceEnum = getSourceFields().elements();
-                 sourceEnum.hasMoreElements();) {
-                writer.write(sourceEnum.nextElement());
-                if (sourceEnum.hasMoreElements()) {
+            for (Iterator<String> iterator = getSourceFields().iterator();
+                 iterator.hasNext();) {
+                writer.write(iterator.next());
+                if (iterator.hasNext()) {
                     writer.write(", ");
                 }
             }
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CompositeFieldMetaData.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CompositeFieldMetaData.java
index 8ff4f3c1ffe..02a866419c9 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CompositeFieldMetaData.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CompositeFieldMetaData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -15,7 +15,6 @@
 package org.eclipse.persistence.internal.eis.cobol;
 
 import java.util.ArrayList;
-import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Vector;
@@ -77,9 +76,9 @@ public FieldMetaData deepCopy() {
             fieldCopy.setFieldRedefined(myFieldRedefined.deepCopy());
         }
         fieldCopy.setDependentFieldName(myDependentFieldName);
-        Enumeration<FieldMetaData> fieldsEnum = myCompositeFields.elements();
-        while (fieldsEnum.hasMoreElements()) {
-            FieldMetaData field = fieldsEnum.nextElement();
+        Iterator<FieldMetaData> iterator = myCompositeFields.iterator();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
             fieldCopy.addField(field.deepCopy());
         }
         return fieldCopy;
@@ -91,10 +90,10 @@ public FieldMetaData deepCopy() {
     */
     @Override
     public int getSize() {
-        Enumeration<FieldMetaData> fieldsEnum = myCompositeFields.elements();
+        Iterator<FieldMetaData> iterator = myCompositeFields.iterator();
         int size = 0;
-        while (fieldsEnum.hasMoreElements()) {
-            FieldMetaData field = fieldsEnum.nextElement();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
             if (!field.isFieldRedefine()) {
                 size += field.getSize();
             }
@@ -191,9 +190,9 @@ public void addField(FieldMetaData newField) {
     */
     @Override
     public FieldMetaData getFieldNamed(String fieldName) {
-        Enumeration<FieldMetaData> fieldsEnum = getFields().elements();
-        while (fieldsEnum.hasMoreElements()) {
-            FieldMetaData field = fieldsEnum.nextElement();
+        Iterator<FieldMetaData> iterator = getFields().iterator();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
             if (field.getName().equals(fieldName)) {
                 return field;
             }
@@ -231,9 +230,9 @@ public Object extractValueFromArray(byte[] recordData) {
     * writes individual fields on given row
     */
     public void writeCompositeOnRow(CobolRow row, byte[] recordData) {
-        Enumeration<FieldMetaData> fields = getFields().elements();
-        while (fields.hasMoreElements()) {
-            FieldMetaData currentField = fields.nextElement();
+        Iterator<FieldMetaData> iterator = getFields().iterator();
+        while (iterator.hasNext()) {
+            FieldMetaData currentField = iterator.next();
             currentField.writeOnRow(row, recordData);
         }
     }
@@ -292,9 +291,9 @@ public void writeOnArray(CobolRow row, byte[] recordData) {
     * This method is used by fields that are array values to write themselves to arrays
     */
     protected void writeCompositeOnArray(CobolRow row, byte[] recordData) {
-        Enumeration<FieldMetaData> fields = getFields().elements();
-        while (fields.hasMoreElements()) {
-            FieldMetaData currentField = fields.nextElement();
+        Iterator<FieldMetaData> iterator = getFields().iterator();
+        while (iterator.hasNext()) {
+            FieldMetaData currentField = iterator.next();
             currentField.writeOnArray(row, recordData);
         }
     }
@@ -304,10 +303,10 @@ protected void writeCompositeOnArray(CobolRow row, byte[] recordData) {
     * is changed.
     */
     protected void resetChildOffsets() {
-        Enumeration<FieldMetaData> childFieldsEnum = myCompositeFields.elements();
+        Iterator<FieldMetaData> iterator = myCompositeFields.iterator();
         int offset = this.getOffset();
-        while (childFieldsEnum.hasMoreElements()) {
-            FieldMetaData field = childFieldsEnum.nextElement();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
             field.setOffset(offset);
             if (field.isComposite()) {
                 ((CompositeFieldMetaData)field).resetChildOffsets();
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CopyBookParser.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CopyBookParser.java
index 3e090f0f7b5..7c4259e06b6 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CopyBookParser.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/CopyBookParser.java
@@ -16,8 +16,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.Stack;
 import java.util.StringTokenizer;
 import java.util.Vector;
@@ -119,11 +119,11 @@ private Vector<RecordMetaData> buildStructure(String fileString) throws Exceptio
         int nestingLevel = maximumNestingLevels;
         Stack<CompositeObject> parents = new Stack<>();
         Hashtable<Object, Integer> parentsToLevels = new Hashtable<>();
-        Enumeration<String> recordsEnum = recordLines.elements();
-        Enumeration<Integer> recordLineNums = lineNums.elements();
-        while (recordsEnum.hasMoreElements()) {
-            currentLine = recordsEnum.nextElement();
-            currentLineNumber = recordLineNums.nextElement();
+        Iterator<String> iterator1 = recordLines.iterator();
+        Iterator<Integer> iterator = lineNums.iterator();
+        while (iterator1.hasNext()) {
+            currentLine = iterator1.next();
+            currentLineNumber = iterator.next();
             StringTokenizer lineTokens = new StringTokenizer(currentLine);
             if (lineTokens.hasMoreTokens()) {
                 String firstToken = lineTokens.nextToken();
@@ -174,12 +174,12 @@ private void setOffsetsForComposite(CompositeObject object, int offset) {
         int currentOffset = offset;
         int previousFieldSize = 0;
         Vector<FieldMetaData> fields = object.getFields();
-        Enumeration<FieldMetaData> fieldEnum = fields.elements();
+        Iterator<FieldMetaData> iterator = fields.iterator();
         FieldMetaData previousField = null;
 
         //loop through fields setting their offsets and redefines if it applies
-        while (fieldEnum.hasMoreElements()) {
-            FieldMetaData field = fieldEnum.nextElement();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
 
             //if its a redefine, must first see if it larger and reset offset accordingly
             if (field.isFieldRedefine()) {
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/RecordMetaData.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/RecordMetaData.java
index 70abbd3175c..81411960c13 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/RecordMetaData.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/internal/eis/cobol/RecordMetaData.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,9 +91,9 @@ public boolean isComposite() {
     /** retrieves the <code>FieldMetaData</code> with the corresponding name if it exists */
     @Override
     public FieldMetaData getFieldNamed(String fieldName) {
-        Enumeration<FieldMetaData> fieldsEnum = getFields().elements();
-        while (fieldsEnum.hasMoreElements()) {
-            FieldMetaData field = fieldsEnum.nextElement();
+        Iterator<FieldMetaData> iterator = getFields().iterator();
+        while (iterator.hasNext()) {
+            FieldMetaData field = iterator.next();
             if (field.getName().equals(fieldName)) {
                 return field;
             }
diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/inherited/BeerConsumer.java b/jpa/eclipselink.jpa.testapps/jpa.test.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/inherited/BeerConsumer.java
index 75a6506dabd..929cc98e25c 100644
--- a/jpa/eclipselink.jpa.testapps/jpa.test.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/inherited/BeerConsumer.java
+++ b/jpa/eclipselink.jpa.testapps/jpa.test.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/inherited/BeerConsumer.java
@@ -54,9 +54,9 @@
 import java.math.BigInteger;
 import java.util.Collection;
 import java.util.Date;
-import java.util.Enumeration;
 import java.util.HashMap;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Vector;
@@ -315,9 +315,9 @@ public Integer getVersion() {
     }
 
     public boolean hasTelephoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            Object key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            Object key = iterator.next();
 
             if (telephoneNumbers.get(key).equals(telephoneNumber)) {
                 return true;
@@ -381,9 +381,9 @@ public String removeCommentLookup(SerialNumber number){
     }
 
     public void removePhoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            Object key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            Object key = iterator.next();
             TelephoneNumber potentialTelephoneNumber = telephoneNumbers.get(key);
 
             if (potentialTelephoneNumber.equals(telephoneNumber)) {
diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.lob/src/main/java/org/eclipse/persistence/testing/models/jpa/lob/ImageSimulator.java b/jpa/eclipselink.jpa.testapps/jpa.test.lob/src/main/java/org/eclipse/persistence/testing/models/jpa/lob/ImageSimulator.java
index 3ae9ae07b4e..95f41cb4154 100644
--- a/jpa/eclipselink.jpa.testapps/jpa.test.lob/src/main/java/org/eclipse/persistence/testing/models/jpa/lob/ImageSimulator.java
+++ b/jpa/eclipselink.jpa.testapps/jpa.test.lob/src/main/java/org/eclipse/persistence/testing/models/jpa/lob/ImageSimulator.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,9 +52,7 @@ public static Image generateImage(int blobSize, int clobSize) {
 
     public static String initStringBase(int cycle) {
         StringBuilder base = new StringBuilder();
-        for (int count = 0; count < cycle; count++) {
-            base.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
-        }
+        base.append("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa".repeat(Math.max(0, cycle)));
         return base.toString();
     }
 
diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.xml.merge/jpa.test.xml.merge.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/merge/inherited/BeerConsumer.java b/jpa/eclipselink.jpa.testapps/jpa.test.xml.merge/jpa.test.xml.merge.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/merge/inherited/BeerConsumer.java
index ccbdec35fea..94bca5d04df 100644
--- a/jpa/eclipselink.jpa.testapps/jpa.test.xml.merge/jpa.test.xml.merge.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/merge/inherited/BeerConsumer.java
+++ b/jpa/eclipselink.jpa.testapps/jpa.test.xml.merge/jpa.test.xml.merge.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/merge/inherited/BeerConsumer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * 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,8 +30,8 @@
 import jakarta.persistence.PreUpdate;
 
 import java.util.Collection;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -121,9 +121,9 @@ public Map<TelephoneNumberPK, TelephoneNumber> getTelephoneNumbers() {
     }
 
     public boolean hasTelephoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            TelephoneNumberPK key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            TelephoneNumberPK key = iterator.next();
 
             if (telephoneNumbers.get(key).equals(telephoneNumber)) {
                 return true;
@@ -183,9 +183,9 @@ public Alpine removeAlpineBeerToConsume(int index) {
     }
 
     public void removePhoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            TelephoneNumberPK key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            TelephoneNumberPK key = iterator.next();
             TelephoneNumber potentialTelephoneNumber = telephoneNumbers.get(key);
 
             if (potentialTelephoneNumber.equals(telephoneNumber)) {
diff --git a/jpa/eclipselink.jpa.testapps/jpa.test.xml.only/jpa.test.xml.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/inherited/BeerConsumer.java b/jpa/eclipselink.jpa.testapps/jpa.test.xml.only/jpa.test.xml.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/inherited/BeerConsumer.java
index f008d01daf0..985417843ee 100644
--- a/jpa/eclipselink.jpa.testapps/jpa.test.xml.only/jpa.test.xml.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/inherited/BeerConsumer.java
+++ b/jpa/eclipselink.jpa.testapps/jpa.test.xml.only/jpa.test.xml.inherited/src/main/java/org/eclipse/persistence/testing/models/jpa/xml/inherited/BeerConsumer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2022 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2024 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -20,8 +20,8 @@
 
 import java.util.Collection;
 import java.util.Date;
-import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Iterator;
 import java.util.Map;
 import java.util.Vector;
 
@@ -136,9 +136,9 @@ public Map<TelephoneNumberPK, TelephoneNumber> getTelephoneNumbers() {
     }
 
     public boolean hasTelephoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            TelephoneNumberPK key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            TelephoneNumberPK key = iterator.next();
 
             if (telephoneNumbers.get(key).equals(telephoneNumber)) {
                 return true;
@@ -156,9 +156,9 @@ public void removeAlpineBeerToConsume(int index) {
     }
 
     public void removePhoneNumber(TelephoneNumber telephoneNumber) {
-        Enumeration<TelephoneNumberPK> keys = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keys();
-        while (keys.hasMoreElements()) {
-            TelephoneNumberPK key = keys.nextElement();
+        Iterator<TelephoneNumberPK> iterator = ((Hashtable<TelephoneNumberPK, TelephoneNumber>) telephoneNumbers).keySet().iterator();
+        while (iterator.hasNext()) {
+            TelephoneNumberPK key = iterator.next();
             TelephoneNumber potentialTelephoneNumber = telephoneNumbers.get(key);
 
             if (potentialTelephoneNumber.equals(telephoneNumber)) {
diff --git a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/PersistenceUnitProcessor.java b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/PersistenceUnitProcessor.java
index 550abfe2c84..dd6e15b65fc 100644
--- a/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/PersistenceUnitProcessor.java
+++ b/jpa/org.eclipse.persistence.jpa/src/main/java/org/eclipse/persistence/internal/jpa/deployment/PersistenceUnitProcessor.java
@@ -239,9 +239,7 @@ public static URL computePURootURL(URL pxmlURL, String descriptorLocation) throw
             result = new URL("bundleresource://" + pxmlURL.getAuthority());
         } else {
             StringBuilder path = new StringBuilder();
-            for (int i=0;i<descriptorDepth;i++){
-                path.append("../"); // 315097 URL use standard separators
-            }
+            path.append("../".repeat(Math.max(0, descriptorDepth))); // 315097 URL use standard separators
             // some other protocol
             result = new URL(pxmlURL, path.toString()); // NOI18N
         }
diff --git a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassGenerator.java b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassGenerator.java
index 8239f502907..f7fdf05c005 100644
--- a/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassGenerator.java
+++ b/sdo/org.eclipse.persistence.sdo/src/main/java/org/eclipse/persistence/sdo/helper/SDOClassGenerator.java
@@ -582,18 +582,14 @@ private void buildSetMethodBuffer(ClassBuffer classBuffer, SDOProperty property,
 
     private void pushIndent() {
         StringBuilder buf = new StringBuilder();
-        for (int i = 0; i < INDENT_TAB; i++) {
-            buf.append(" ");
-        }
+        buf.append(" ".repeat(Math.max(0, INDENT_TAB)));
         indent += buf.toString();
     }
 
     private void popIndent() {
         StringBuilder buf = new StringBuilder();
         int size = indent.length() - INDENT_TAB;
-        for (int i = 0; i < size; i++) {
-            buf.append(" ");
-        }
+        buf.append(" ".repeat(Math.max(0, size)));
         indent = buf.toString();
     }