cleanup in sequencing

Signed-off-by: Lukas Jungmann <lukas.jungmann@oracle.com>
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
index f39e44f..e252a34 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/DatasourcePlatform.java
@@ -902,7 +902,7 @@
      * Sets sequences - for XML support only
      */
     @Override
-    public void setSequences(Map sequences) {
+    public void setSequences(Map<String, Sequence> sequences) {
         this.sequences = sequences;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/Platform.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/Platform.java
index 08c7f70..2b31561 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/Platform.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/databaseaccess/Platform.java
@@ -246,13 +246,13 @@
      * INTERNAL:
      * Returns a map of sequence names to Sequences (may be null).
      */
-    Map getSequences();
+    Map<String, Sequence> getSequences();
 
     /**
      * INTERNAL:
      * Used only for writing into XML or Java.
      */
-    Map getSequencesToWrite();
+    Map<String, Sequence> getSequencesToWrite();
 
     /**
      * INTERNAL:
@@ -264,7 +264,7 @@
      * INTERNAL:
      * Used only for reading from XML.
      */
-    void setSequences(Map sequences);
+    void setSequences(Map<String, Sequence> sequences);
 
     /**
      * INTERNAL:
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/ClientSessionSequencing.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/ClientSessionSequencing.java
index e922f63..0c24675 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/ClientSessionSequencing.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/ClientSessionSequencing.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,7 +14,6 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.internal.sequencing;
 
-import org.eclipse.persistence.internal.sequencing.Sequencing;
 import org.eclipse.persistence.sessions.server.ClientSession;
 
 /**
@@ -68,9 +67,10 @@
     * SequencingServer.getNextValue takes two arguments
     * the first argument being a session which owns write connection
     * (either DatabaseSession or ClientSession).
-    */
+     * @param cls
+     */
     @Override
-    public Object getNextValue(Class cls) {
+    public Object getNextValue(Class<?> cls) {
         return sequencingServer.getNextValue(clientSession, cls);
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/PreallocationHandler.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/PreallocationHandler.java
index 39c1e59..e158e8e 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/PreallocationHandler.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/PreallocationHandler.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -23,7 +23,7 @@
  * @see SequencingManager
  */
 class PreallocationHandler implements SequencingLogInOut {
-    protected Map<String, Queue> preallocatedSequences;
+    protected Map<String, Queue<Object>> preallocatedSequences;
 
     public PreallocationHandler() {
         super();
@@ -34,13 +34,13 @@
      * If there is not one, a new empty Queue is registered.
      * This queue is thread-safe, and threads can concurrent poll the queue to remove the first element.
      */
-    public Queue getPreallocated(String sequenceName) {
-        Queue sequences = preallocatedSequences.get(sequenceName);
+    public Queue<Object> getPreallocated(String sequenceName) {
+        Queue<Object> sequences = preallocatedSequences.get(sequenceName);
         if (sequences == null) {
             synchronized (preallocatedSequences) {
                 sequences = preallocatedSequences.get(sequenceName);
                 if (sequences == null) {
-                    sequences = new ConcurrentLinkedQueue();
+                    sequences = new ConcurrentLinkedQueue<>();
                     preallocatedSequences.put(sequenceName, sequences);
                 }
             }
@@ -70,7 +70,7 @@
      * but so handy for testing.
      */
     public void initializePreallocated() {
-        preallocatedSequences = new ConcurrentHashMap(20);
+        preallocatedSequences = new ConcurrentHashMap<>(20);
     }
 
     /**
@@ -87,7 +87,7 @@
      * Although this method is thread-safe, a lock should typically be obtained from the sequence manager before calling this method,
      * to ensure sequential numbers.
      */
-    public void setPreallocated(String seqName, Vector sequences) {
+    public void setPreallocated(String seqName, Vector<?> sequences) {
         getPreallocated(seqName).addAll(sequences);
     }
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/RemoteConnectionSequencing.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/RemoteConnectionSequencing.java
index 2e44ce2..1c561d5 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/RemoteConnectionSequencing.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/RemoteConnectionSequencing.java
@@ -15,7 +15,7 @@
 package org.eclipse.persistence.internal.sequencing;
 
 import java.util.Hashtable;
-import org.eclipse.persistence.internal.sequencing.Sequencing;
+
 import org.eclipse.persistence.internal.sessions.remote.RemoteConnection;
 import org.eclipse.persistence.internal.sessions.remote.RemoteFunctionCall;
 import org.eclipse.persistence.internal.sessions.remote.SequencingFunctionCall;
@@ -29,6 +29,7 @@
  * are implemented as static inner classes in SequenceFunctionCall class:
  * like SequencingFunctionCall.DoesExist.
  */
+@SuppressWarnings({"rawtypes"})
 class RemoteConnectionSequencing implements Sequencing {
     protected RemoteConnection remoteConnection;
     protected Hashtable classToShouldAcquireValueAfterInsert;
@@ -52,7 +53,7 @@
     }
 
     @Override
-    public Object getNextValue(Class cls) {
+    public Object getNextValue(Class<?> cls) {
         return processFunctionCall(new SequencingFunctionCall.GetNextValue(cls));
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/Sequencing.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/Sequencing.java
index 8cb2e11..272261c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/Sequencing.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/Sequencing.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -54,6 +54,6 @@
      * Return the newly-generated sequencing value.
      * @param cls Class for which the sequencing value is generated.
      */
-    Object getNextValue(Class cls);
+    Object getNextValue(Class<?> cls);
 
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingFactory.java
index b9c4cc3..8d54ab2 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -35,6 +35,10 @@
  */
 public class SequencingFactory {
 
+    private SequencingFactory() {
+        // no instance please
+    }
+
     /**
     * INTERNAL:
     * Takes a potential owner - a Session, returns Sequencing object.
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingHome.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingHome.java
index 6739941..9ddf55f 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingHome.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingHome.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2019 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -16,6 +16,7 @@
 
 import java.util.Collection;
 
+import org.eclipse.persistence.descriptors.ClassDescriptor;
 import org.eclipse.persistence.sequencing.SequencingControl;
 
 /**
@@ -44,5 +45,5 @@
 
     boolean isSequencingCallbackRequired();
 
-    void onAddDescriptors(Collection descriptors);
+    void onAddDescriptors(Collection<ClassDescriptor> descriptors);
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingManager.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingManager.java
index fd65441..7935581 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingManager.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingManager.java
@@ -106,7 +106,7 @@
     private SequencingConnectionHandler connectionHandler;
     private Map<String, PreallocationHandler> preallocationHandler;
     private int whenShouldAcquireValueForAll;
-    private Vector connectedSequences;
+    private Vector<Sequence> connectedSequences;
     boolean atLeastOneSequenceShouldUseTransaction;
     boolean atLeastOneSequenceShouldUsePreallocation;
 
@@ -292,7 +292,7 @@
     }
 
     @Override
-    public Object getNextValue(Class cls) {
+    public Object getNextValue(Class<?> cls) {
         return getNextValue(getOwnerSession(), cls);
     }
 
@@ -314,7 +314,7 @@
         }
     }
 
-    protected void setLocks(Map locks) {
+    protected void setLocks(Map<String, ConcurrencyManager> locks) {
         this.locks = locks;
     }
 
@@ -341,13 +341,13 @@
         return manager;
     }
 
-    protected Sequence getSequence(Class cls) {
+    protected Sequence getSequence(Class<?> cls) {
         //** should check here that sequencing is used?
         String seqName = getOwnerSession().getDescriptor(cls).getSequenceNumberName();
         return getSequence(seqName);
     }
 
-    protected void logDebugPreallocation(String seqName, Object firstSequenceValue, Vector sequences) {
+    protected void logDebugPreallocation(String seqName, Object firstSequenceValue, Vector<?> sequences) {
         if (getOwnerSession().shouldLog(SessionLog.FINEST, SessionLog.SEQUENCING)) {
             // the first value has been already removed from sequences vector
             Object[] args = { seqName, sequences.size() + 1, firstSequenceValue, sequences.lastElement() };
@@ -355,7 +355,7 @@
         }
     }
 
-    protected void logDebugLocalPreallocation(AbstractSession writeSession, String seqName, Vector sequences, Accessor accessor) {
+    protected void logDebugLocalPreallocation(AbstractSession writeSession, String seqName, Vector<?> sequences, Accessor accessor) {
         if (writeSession.shouldLog(SessionLog.FINEST, SessionLog.SEQUENCING)) {
             Object[] args = { seqName, sequences.size(), sequences.firstElement(), sequences.lastElement() };
             writeSession.log(SessionLog.FINEST, SessionLog.SEQUENCING, "sequencing_localPreallocation", args, accessor);
@@ -388,7 +388,7 @@
     class Preallocation_Transaction_NoAccessor_State extends State implements SequencingCallbackFactory {
 
         final class SequencingCallbackImpl implements SequencingCallback {
-            Map localSequences = new HashMap();
+            Map<String, Vector<?>> localSequences = new HashMap<>();
             String context;
 
             /**
@@ -401,7 +401,7 @@
                 afterCommitInternal(context, localSequences, accessor);
             }
 
-            public Map getPreallocatedSequenceValues() {
+            public Map<String, Vector<?>> getPreallocatedSequenceValues() {
                 return localSequences;
             }
         }
@@ -423,12 +423,12 @@
         /**
          * Release any locally allocated sequence back to the global sequence pool.
          */
-        void afterCommitInternal(String context, Map localSequences, Accessor accessor) {
-            Iterator it = localSequences.entrySet().iterator();
+        void afterCommitInternal(String context, Map<String, Vector<?>> localSequences, Accessor accessor) {
+            Iterator<Map.Entry<String, Vector<?>>> it = localSequences.entrySet().iterator();
             while(it.hasNext()) {
-                Map.Entry entry = (Map.Entry)it.next();
-                String seqName = (String)entry.getKey();
-                Vector localSequenceForName = (Vector)entry.getValue();
+                Map.Entry<String, Vector<?>> entry = it.next();
+                String seqName = entry.getKey();
+                Vector<?> localSequenceForName = entry.getValue();
                 if (!localSequenceForName.isEmpty()) {
                     getPreallocationHandler(context).setPreallocated(seqName, localSequenceForName);
                     // clear all localSequencesForName
@@ -465,7 +465,7 @@
         public Object getNextValue(Sequence sequence, AbstractSession writeSession) {
             String seqName = sequence.getName();
             if(sequence.getPreallocationSize() > 1) {
-                Queue sequencesForName = getPreallocationHandler(getContext(writeSession)).getPreallocated(seqName);
+                Queue<Object> sequencesForName = getPreallocationHandler(getContext(writeSession)).getPreallocated(seqName);
                 // First grab the first sequence value without locking, a lock is only required if empty.
                 Object sequenceValue = sequencesForName.poll();
                 if (sequenceValue != null) {
@@ -498,15 +498,15 @@
                 }
 
                 Accessor accessor;
-                Vector localSequencesForName;
+                Vector<?> localSequencesForName;
                 if (!keepLocked) {
                     writeSession.beginTransaction();//write accessor is set in begin
                 }
                 try {
                     accessor = writeSession.getAccessor();
                     SequencingCallbackImpl seqCallbackImpl = getCallbackImpl(writeSession, accessor);
-                    Map localSequences = seqCallbackImpl.getPreallocatedSequenceValues();
-                    localSequencesForName = (Vector)localSequences.get(seqName);
+                    Map<String, Vector<?>> localSequences = seqCallbackImpl.getPreallocatedSequenceValues();
+                    localSequencesForName = localSequences.get(seqName);
                     if ((localSequencesForName == null) || localSequencesForName.isEmpty()) {
                         localSequencesForName = sequence.getGeneratedVector(null, writeSession);
                         localSequences.put(seqName, localSequencesForName);
@@ -601,7 +601,7 @@
             String seqName = sequence.getName();
             if(sequence.getPreallocationSize() > 1) {
                 PreallocationHandler handler = getPreallocationHandler(getContext(writeSession));
-                Queue sequencesForName = handler.getPreallocated(seqName);
+                Queue<Object> sequencesForName = handler.getPreallocated(seqName);
                 // First try to get the next sequence value without locking.
                 Object sequenceValue = sequencesForName.poll();
                 if (sequenceValue != null) {
@@ -620,7 +620,7 @@
                     try {
                         accessor.beginTransaction(writeSession);
                         try {
-                            Vector sequences = sequence.getGeneratedVector(accessor, writeSession);
+                            Vector<?> sequences = sequence.getGeneratedVector(accessor, writeSession);
                             accessor.commitTransaction(writeSession);
                             // Remove the first value before adding to the global cache to ensure this thread gets one.
                             sequenceValue = sequences.remove(0);
@@ -683,7 +683,7 @@
             String seqName = sequence.getName();
             if(sequence.getPreallocationSize() > 1) {
                 PreallocationHandler handler = getPreallocationHandler(getContext(writeSession));
-                Queue sequencesForName = handler.getPreallocated(seqName);
+                Queue<Object> sequencesForName = handler.getPreallocated(seqName);
                 // First try to get the next sequence value without locking.
                 Object sequenceValue = sequencesForName.poll();
                 if (sequenceValue != null) {
@@ -696,7 +696,7 @@
                     if (sequenceValue != null) {
                         return sequenceValue;
                     }
-                    Vector sequences = sequence.getGeneratedVector(null, writeSession);
+                    Vector<?> sequences = sequence.getGeneratedVector(null, writeSession);
                     // Remove the first value before adding to the global cache to ensure this thread gets one.
                     sequenceValue = sequences.remove(0);
                     // copy remaining values to global cache.
@@ -752,9 +752,10 @@
 
     /**
      * If sequencing is connected initialize the sequences used by descriptors, otherwise connect.
+     * @param descriptors
      */
     @Override
-    public void onAddDescriptors(Collection descriptors) {
+    public void onAddDescriptors(Collection<ClassDescriptor> descriptors) {
         if (!isConnected()) {
             onConnect();
             return;
@@ -769,8 +770,9 @@
 
     /**
      * Initialize the sequences on login.
+     * @param descriptors class descriptors for which to initialize sequencing
      */
-    protected void onConnectInternal(Collection descriptors) {
+    protected void onConnectInternal(Collection<ClassDescriptor> descriptors) {
         // This method is called in two distinct cases.
         //
         // Connect case.
@@ -864,7 +866,7 @@
         }
         // In AddDescriptors case locks may have been already created
         if (atLeastOneSequenceShouldUsePreallocation && getLocks() == null) {
-            setLocks(new ConcurrentHashMap(20));
+            setLocks(new ConcurrentHashMap<>(20));
         }
         // In AddDescriptors case the factory may have been already created and listeners initialized.
         boolean hasSequencingCallbackFactory = isSequencingCallbackRequired();
@@ -947,11 +949,11 @@
      * If passed collection is null then connect all sequences used by owner session's descriptors.
      * Otherwise connect sequences used by passed descriptors.
      */
-    protected void onConnectSequences(Collection descriptors) {
+    protected void onConnectSequences(Collection<ClassDescriptor> descriptors) {
         boolean isConnected = isConnected();
         int nAlreadyConnectedSequences = 0;
         if (connectedSequences == null) {
-            connectedSequences = new Vector();
+            connectedSequences = new Vector<>();
         } else {
             nAlreadyConnectedSequences = connectedSequences.size();
         }
@@ -961,9 +963,9 @@
         if (descriptors == null) {
             descriptors = getOwnerSession().getDescriptors().values();
         }
-        Iterator itDescriptors = descriptors.iterator();
+        Iterator<ClassDescriptor> itDescriptors = descriptors.iterator();
         while (itDescriptors.hasNext()) {
-            ClassDescriptor descriptor = (ClassDescriptor)itDescriptors.next();
+            ClassDescriptor descriptor = itDescriptors.next();
             // Find root sequence, because inheritance needs to be resolved here.
             // TODO: The way we initialize sequencing needs to be in line with descriptor init.
             ClassDescriptor parentDescriptor = descriptor;
@@ -1006,7 +1008,7 @@
                 // defaultSequence has to disconnect the last
                 for (int i = connectedSequences.size() - 1; i >= nAlreadyConnectedSequences; i--) {
                     try {
-                        Sequence sequenceToDisconnect = (Sequence)connectedSequences.elementAt(i);
+                        Sequence sequenceToDisconnect = connectedSequences.elementAt(i);
                         sequenceToDisconnect.onDisconnect(getOwnerSession().getDatasourcePlatform());
                     } catch (RuntimeException ex2) {
                         //ignore
@@ -1050,7 +1052,7 @@
         // defaultSequence has to disconnect the last
         for (int i = connectedSequences.size() - 1; i >= nAlreadyConnectedSequences; i--) {
             try {
-                Sequence sequenceToDisconnect = (Sequence)connectedSequences.elementAt(i);
+                Sequence sequenceToDisconnect = connectedSequences.elementAt(i);
                 sequenceToDisconnect.onDisconnect(getOwnerSession().getDatasourcePlatform());
             } catch (RuntimeException ex) {
                 if (exception == null) {
@@ -1076,7 +1078,7 @@
 
         int nSize = connectedSequences.size();
         for (int i = nAlreadyConnectedSequences; i < nSize; i++) {
-            Sequence sequence = (Sequence)connectedSequences.get(i);
+            Sequence sequence = connectedSequences.get(i);
             State state = getState(sequence.shouldUsePreallocation(), sequence.shouldUseTransaction());
             if (state == null) {
                 createState(sequence.shouldUsePreallocation(), sequence.shouldUseTransaction());
@@ -1135,31 +1137,32 @@
     }
 
     @Override
-    public Object getNextValue(AbstractSession writeSession, Class cls) {
+    public Object getNextValue(AbstractSession writeSession, Class<?> cls) {
         Sequence sequence = getSequence(cls);
         State state = getState(sequence.shouldUsePreallocation(), sequence.shouldUseTransaction());
         return state.getNextValue(sequence, writeSession);
     }
 
+    @SuppressWarnings({"unchecked", "rawtypes"})
     protected void logDebugSequencingConnected(int nAlreadyConnectedSequences) {
-        Vector[] sequenceVectors = new Vector[NUMBER_OF_STATES];
+        Vector<Sequence>[] sequenceVectors = (Vector<Sequence>[]) new Vector[NUMBER_OF_STATES];
         int size = connectedSequences.size();
         for (int i = nAlreadyConnectedSequences; i < size; i++) {
-            Sequence sequence = (Sequence)connectedSequences.get(i);
+            Sequence sequence = connectedSequences.get(i);
             int stateId = getStateId(sequence.shouldUsePreallocation(), sequence.shouldUseTransaction());
-            Vector v = sequenceVectors[stateId];
+            Vector<Sequence> v = sequenceVectors[stateId];
             if (v == null) {
-                v = new Vector();
+                v = new Vector<>();
                 sequenceVectors[stateId] = v;
             }
             v.addElement(sequence);
         }
         for (int i = 0; i < NUMBER_OF_STATES; i++) {
-            Vector v = sequenceVectors[i];
+            Vector<Sequence> v = sequenceVectors[i];
             if (v != null) {
                 getOwnerSession().log(SessionLog.FINEST, SessionLog.SEQUENCING, "sequencing_connected", states[i]);
                 for (int j = 0; j < v.size(); j++) {
-                    Sequence sequence = (Sequence)v.elementAt(j);
+                    Sequence sequence = v.elementAt(j);
                     Object[] args = { sequence.getName(), Integer.toString(sequence.getPreallocationSize()),
                             Integer.toString(sequence.getInitialValue())};
                     getOwnerSession().log(SessionLog.FINEST, SessionLog.SEQUENCING, "sequence_without_state", args);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingServer.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingServer.java
index 590227f..dc9ea53 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingServer.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SequencingServer.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,7 +14,6 @@
 //     Oracle - initial API and implementation from Oracle TopLink
 package org.eclipse.persistence.internal.sequencing;
 
-import org.eclipse.persistence.internal.sequencing.Sequencing;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.sessions.server.ConnectionPool;
 
@@ -39,6 +38,6 @@
  * @see ClientSessionSequencing
  */
 public interface SequencingServer extends Sequencing {
-    Object getNextValue(AbstractSession writeSession, Class cls);
+    Object getNextValue(AbstractSession writeSession, Class<?> cls);
     ConnectionPool getConnectionPool();
 }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
index f08bca8..0cb512d 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sequencing/SessionBrokerSequencing.java
@@ -59,7 +59,7 @@
     }
 
     // internal
-    protected Sequencing get(Class cls) {
+    protected Sequencing get(Class<?> cls) {
         return broker.getSessionForClass(cls).getSequencing();
     }
 
@@ -69,7 +69,7 @@
     }
 
     @Override
-    public Object getNextValue(Class cls) {
+    public Object getNextValue(Class<?> cls) {
         return get(cls).getNextValue(cls);
     }
 }
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 adde1b3..ebf8e57 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
@@ -327,8 +327,9 @@
      * INTERNAL:
      * If sequencing is connected then initializes sequences referenced by the passed descriptors,
      * otherwise connects sequencing.
+     * @param descriptors class descriptors
      */
-    public void addDescriptorsToSequencing(Collection descriptors) {
+    public void addDescriptorsToSequencing(Collection<ClassDescriptor> descriptors) {
         getSequencingHome().onAddDescriptors(descriptors);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
index c9480c8..fe1fc0c 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/SessionsFactory.java
@@ -628,10 +628,10 @@
             }
 
             if ((loginConfig.getSequencingConfig().getSequenceConfigs() != null) && !loginConfig.getSequencingConfig().getSequenceConfigs().isEmpty()) {
-                Enumeration eSequenceConfigs = loginConfig.getSequencingConfig().getSequenceConfigs().elements();
+                Enumeration<SequenceConfig> eSequenceConfigs = loginConfig.getSequencingConfig().getSequenceConfigs().elements();
 
                 while (eSequenceConfigs.hasMoreElements()) {
-                    Sequence sequence = buildSequence((SequenceConfig)eSequenceConfigs.nextElement());
+                    Sequence sequence = buildSequence(eSequenceConfigs.nextElement());
                     login.addSequence(sequence);
                 }
             }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/model/sequencing/SequencingConfig.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/model/sequencing/SequencingConfig.java
index 857f175..90916ae 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/model/sequencing/SequencingConfig.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/factories/model/sequencing/SequencingConfig.java
@@ -21,7 +21,7 @@
  */
 public class SequencingConfig {
     private SequenceConfig m_defaultSequenceConfig;
-    private Vector m_sequenceConfigs;
+    private Vector<SequenceConfig> m_sequenceConfigs;
 
     public SequencingConfig() {
         super();
@@ -35,11 +35,11 @@
         return m_defaultSequenceConfig;
     }
 
-    public void setSequenceConfigs(Vector sequenceConfigs) {
+    public void setSequenceConfigs(Vector<SequenceConfig> sequenceConfigs) {
         m_sequenceConfigs = sequenceConfigs;
     }
 
-    public Vector getSequenceConfigs() {
+    public Vector<SequenceConfig> getSequenceConfigs() {
         return m_sequenceConfigs;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/SequencingFunctionCall.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/SequencingFunctionCall.java
index b3b78aa..be4b019 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/SequencingFunctionCall.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/internal/sessions/remote/SequencingFunctionCall.java
@@ -39,11 +39,11 @@
     }
 
     public static class GetNextValue extends SimpleFunctionCall {
-        public GetNextValue(Class cls) {
+        public GetNextValue(Class<?> cls) {
             this.cls = cls;
         }
 
-        protected Class cls;
+        protected Class<?> cls;
 
         @Override
         protected Object execute(AbstractSession session) {
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/DefaultSequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/DefaultSequence.java
index 282800b..7670679 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/DefaultSequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/DefaultSequence.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -171,9 +171,10 @@
      * @param writeSession Session is a Session used for writing (either ClientSession or DatabaseSession);
      * @param seqName String is sequencing number field name
      * @param size int number of values to preallocate (output Vector size).
+     * @return
      */
     @Override
-    public Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
+    public Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
         return getDefaultSequence().getGeneratedVector(accessor, writeSession, seqName, size);
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/QuerySequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/QuerySequence.java
index 2f107dd..53c1678 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/QuerySequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/QuerySequence.java
@@ -93,7 +93,12 @@
     public boolean equals(Object obj) {
         if (obj instanceof QuerySequence && super.equals(obj)) {
             QuerySequence other = (QuerySequence)obj;
-            return (getSelectQuery() == other.getSelectQuery()) && (getUpdateQuery() == other.getUpdateQuery()) && (shouldAcquireValueAfterInsert() == other.shouldAcquireValueAfterInsert()) && (shouldUseTransaction() == other.shouldUseTransaction()) && (shouldSkipUpdate() == other.shouldSkipUpdate()) && (shouldSelectBeforeUpdate() == other.shouldSelectBeforeUpdate());
+            return (getSelectQuery() == other.getSelectQuery())
+                    && (getUpdateQuery() == other.getUpdateQuery())
+                    && (shouldAcquireValueAfterInsert() == other.shouldAcquireValueAfterInsert())
+                    && (shouldUseTransaction() == other.shouldUseTransaction())
+                    && (shouldSkipUpdate() == other.shouldSkipUpdate())
+                    && (shouldSelectBeforeUpdate() == other.shouldSelectBeforeUpdate());
 
         } else {
             return false;
@@ -323,7 +328,7 @@
                 query.setAccessor(accessor);
             }
         }
-        Vector args = createArguments(query, seqName, size);
+        Vector<Object> args = createArguments(query, seqName, size);
         query.setIsUserDefinedSQLCall(false);
         if (args != null) {
             return writeSession.executeQuery(query, args);
@@ -356,7 +361,7 @@
                 query.setAccessor(accessor);
             }
         }
-        Vector args = createArguments(query, seqName, sizeOrNewValue);
+        Vector<Object> args = createArguments(query, seqName, sizeOrNewValue);
         query.setIsUserDefinedSQLCall(false);
         if (args != null) {
             writeSession.executeQuery(query, args);
@@ -368,10 +373,10 @@
     /**
     * INTERNAL:
     */
-    protected Vector createArguments(DatabaseQuery query, String seqName, Number sizeOrNewValue) {
+    protected Vector<Object> createArguments(DatabaseQuery query, String seqName, Number sizeOrNewValue) {
         int nArgs = query.getArguments().size();
         if (nArgs > 0) {
-            Vector args = new Vector(nArgs);
+            Vector<Object> args = new Vector<>(nArgs);
             args.addElement(seqName);
             if (nArgs > 1) {
                 args.addElement(sizeOrNewValue);
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/Sequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/Sequence.java
index 3e5cd81..e0f0594 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/Sequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/Sequence.java
@@ -17,7 +17,6 @@
 import java.util.Vector;
 import java.io.Serializable;
 import org.eclipse.persistence.internal.databaseaccess.Platform;
-import org.eclipse.persistence.internal.databaseaccess.DatasourcePlatform;
 import org.eclipse.persistence.internal.databaseaccess.Accessor;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
 import org.eclipse.persistence.exceptions.ValidationException;
@@ -251,7 +250,7 @@
      * @param seqName String is sequencing number field name
      * @param size int number of values to preallocate (output Vector size).
      */
-    public abstract Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size);
+    public abstract Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size);
 
     /**
      * INTERNAL:
@@ -265,7 +264,7 @@
      * @param accessor Accessor is a separate sequencing accessor (may be null);
      * @param writeSession Session is a Session used for writing (either ClientSession or DatabaseSession);
      */
-    public Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession) {
+    public Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession) {
         return getGeneratedVector(accessor, writeSession, getName(), getPreallocationSize());
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/StandardSequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/StandardSequence.java
index 31d94da..300f278 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/StandardSequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/StandardSequence.java
@@ -76,7 +76,7 @@
     }
 
     @Override
-    public Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
+    public Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
         if (shouldUsePreallocation()) {
             Number value = updateAndSelectSequence(accessor, writeSession, seqName, size);
             if (value == null) {
@@ -97,10 +97,10 @@
      * @param seqName String is sequencing number field name
      * @param size int size of Vector to create.
      */
-    protected Vector createVector(Number sequence, String seqName, int size) {
+    protected Vector<Number> createVector(Number sequence, String seqName, int size) {
         long nextSequence = sequence.longValue();
 
-        Vector sequencesForName = new Vector(size);
+        Vector<Number> sequencesForName = new Vector<>(size);
         nextSequence = nextSequence - size;
 
         // Check for incorrect values return to validate that the sequence is setup correctly.
@@ -122,10 +122,10 @@
      * @param seqName String is sequencing number field name
      * @param size int size of Vector to create.
      */
-    protected Vector createVectorAtNextVal(Number sequence, String seqName, int size) {
+    protected Vector<Number> createVectorAtNextVal(Number sequence, String seqName, int size) {
         long nextSequence = sequence.longValue();
 
-        Vector sequencesForName = new Vector(size);
+        Vector<Number> sequencesForName = new Vector<>(size);
 
         // Check for incorrect values return to validate that the sequence is setup correctly.
         // PRS 36451 intvalue would wrap
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UUIDSequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UUIDSequence.java
index 8bb7418..586d4e1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UUIDSequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UUIDSequence.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -19,7 +19,6 @@
 
 import org.eclipse.persistence.internal.databaseaccess.Accessor;
 import org.eclipse.persistence.internal.sessions.AbstractSession;
-import org.eclipse.persistence.sequencing.Sequence;
 
 public class UUIDSequence extends Sequence {
 
@@ -37,7 +36,7 @@
     }
 
     @Override
-    public Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
+    public Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
         return null;
     }
 
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UnaryTableSequence.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UnaryTableSequence.java
index a4821c7..cefc2d1 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UnaryTableSequence.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sequencing/UnaryTableSequence.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1998, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -156,7 +156,7 @@
 
     protected void buildUpdateString1() {
         updateString1 = "UPDATE ";
-        if (qualifier != "") {
+        if (!qualifier.isEmpty()) {
             updateString1 = updateString1 + qualifier + '.';
         }
     }
@@ -173,7 +173,7 @@
 
     protected void buildSelectString1() {
         selectString1 = "SELECT * FROM ";
-        if (qualifier != "") {
+        if (!qualifier.isEmpty()) {
             selectString1 = selectString1 + qualifier + '.';
         }
     }
diff --git a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
index f48987f..c540305 100644
--- a/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
+++ b/foundation/org.eclipse.persistence.core/src/main/java/org/eclipse/persistence/sessions/DatasourceLogin.java
@@ -819,7 +819,7 @@
     /**
      * Returns a map of sequence names to Sequences (may be null).
      */
-    public Map getSequences() {
+    public Map<String, Sequence> getSequences() {
         return getDatasourcePlatform().getSequences();
     }
 
@@ -851,7 +851,7 @@
      * INTERNAL:
      * Used only for writing the login into XML or Java.
      */
-    public Map getSequencesToWrite() {
+    public Map<String, Sequence> getSequencesToWrite() {
         return getDatasourcePlatform().getSequencesToWrite();
     }
 
@@ -859,7 +859,7 @@
      * INTERNAL:
      * Used only for reading the login from XML.
      */
-    public void setSequences(Map sequences) {
+    public void setSequences(Map<String, Sequence> sequences) {
         getDatasourcePlatform().setSequences(sequences);
     }
 }
diff --git a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/nosql/adapters/mongo/OIDSequence.java b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/nosql/adapters/mongo/OIDSequence.java
index 4794bf0..4cbbd0f 100644
--- a/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/nosql/adapters/mongo/OIDSequence.java
+++ b/foundation/org.eclipse.persistence.nosql/src/main/java/org/eclipse/persistence/nosql/adapters/mongo/OIDSequence.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2011, 2020 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2021 Oracle and/or its affiliates. All rights reserved.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -37,7 +37,7 @@
     }
 
     @Override
-    public Vector getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
+    public Vector<?> getGeneratedVector(Accessor accessor, AbstractSession writeSession, String seqName, int size) {
         return null;
     }