You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by st...@apache.org on 2023/05/06 07:18:30 UTC

[openjpa] 05/17: OPENJPA-2909 move proxy code to own package

This is an automated email from the ASF dual-hosted git repository.

struberg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openjpa.git

commit 4ec4598ad1549039022a919d9c2db46722c45641
Author: Mark Struberg <st...@apache.org>
AuthorDate: Sun Apr 30 14:21:58 2023 +0200

    OPENJPA-2909 move proxy code to own package
    
    No functional change yet.
---
 .../jdbc/kernel/InstanceResultObjectProvider.java  |  2 +-
 .../meta/strats/StoreCollectionFieldStrategy.java  |  2 +-
 .../apache/openjpa/kernel/ResultShapePacker.java   |  2 +-
 .../org/apache/openjpa/util/ProxyManagerImpl.java  | 29 ++++++++++++++++------
 .../util/{ => proxy}/DelayedArrayListProxy.java    |  7 +++++-
 .../util/{ => proxy}/DelayedHashSetProxy.java      |  7 +++++-
 .../{ => proxy}/DelayedLinkedHashSetProxy.java     |  7 +++++-
 .../util/{ => proxy}/DelayedLinkedListProxy.java   |  7 +++++-
 .../{ => proxy}/DelayedPriorityQueueProxy.java     |  7 +++++-
 .../openjpa/util/{ => proxy}/DelayedProxy.java     |  2 +-
 .../util/{ => proxy}/DelayedTreeSetProxy.java      |  7 +++++-
 .../util/{ => proxy}/DelayedVectorProxy.java       |  7 +++++-
 .../apache/openjpa/util/{ => proxy}/ProxyBean.java |  4 ++-
 .../openjpa/util/{ => proxy}/ProxyCalendar.java    |  4 ++-
 .../openjpa/util/{ => proxy}/ProxyCollection.java  |  4 ++-
 .../openjpa/util/{ => proxy}/ProxyCollections.java |  5 +++-
 .../util/{ => proxy}/ProxyConcurrentMaps.java      | 11 +++++---
 .../apache/openjpa/util/{ => proxy}/ProxyDate.java |  4 ++-
 .../apache/openjpa/util/{ => proxy}/ProxyMap.java  |  4 ++-
 .../apache/openjpa/util/{ => proxy}/ProxyMaps.java |  5 +++-
 .../openjpa/jdbc/meta/TestCalendarField.java       |  2 +-
 .../openjpa/persistence/datacache/CacheTest.java   |  2 +-
 .../persistence/proxy/TestProxyCollection.java     |  2 +-
 .../delayed/DelayedProxyCollectionsTestCase.java   |  4 +--
 .../alist/TestDelayedArrayListProxyDetachLite.java |  2 +-
 .../hset/TestDelayedHashSetProxyDetachLite.java    |  2 +-
 .../TestDelayedLinkedHashSetProxyDetachLite.java   |  2 +-
 .../TestDelayedLinkedListProxyDetachLite.java      |  2 +-
 .../TestDelayedPriorityQueueProxyDetachLite.java   |  2 +-
 .../tset/TestDelayedTreeSetProxyDetachLite.java    |  2 +-
 .../vec/TestDelayedVectorProxyDetachLite.java      |  2 +-
 openjpa-project/src/doc/manual/ref_guide_pc.xml    |  2 +-
 32 files changed, 111 insertions(+), 42 deletions(-)

diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.java
index 073bd36cf..7a304844b 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/InstanceResultObjectProvider.java
@@ -24,7 +24,7 @@ import org.apache.openjpa.jdbc.meta.ClassMapping;
 import org.apache.openjpa.jdbc.sql.Result;
 import org.apache.openjpa.jdbc.sql.Select;
 import org.apache.openjpa.jdbc.sql.SelectExecutor;
-import org.apache.openjpa.util.ProxyCalendar;
+import org.apache.openjpa.util.proxy.ProxyCalendar;
 
 /**
  * Object provider implementation wrapped around a {@link Select}.
diff --git a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.java b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.java
index a60a8a2a1..9e785fd90 100644
--- a/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.java
+++ b/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/StoreCollectionFieldStrategy.java
@@ -47,7 +47,7 @@ import org.apache.openjpa.meta.ClassMetaData;
 import org.apache.openjpa.meta.FieldMetaData;
 import org.apache.openjpa.meta.JavaTypes;
 import org.apache.openjpa.util.ChangeTracker;
-import org.apache.openjpa.util.DelayedProxy;
+import org.apache.openjpa.util.proxy.DelayedProxy;
 import org.apache.openjpa.util.Id;
 import org.apache.openjpa.util.OpenJPAId;
 import org.apache.openjpa.util.Proxy;
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ResultShapePacker.java b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ResultShapePacker.java
index 8890ffe56..805138375 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ResultShapePacker.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/ResultShapePacker.java
@@ -20,7 +20,7 @@ package org.apache.openjpa.kernel;
 
 import java.util.Calendar;
 
-import org.apache.openjpa.util.ProxyCalendar;
+import org.apache.openjpa.util.proxy.ProxyCalendar;
 
 
 /**
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java
index caaf82651..0737d1ef2 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyManagerImpl.java
@@ -58,6 +58,21 @@ import org.apache.openjpa.lib.util.J2DoPrivHelper;
 import org.apache.openjpa.lib.util.Localizer;
 import org.apache.openjpa.lib.util.Options;
 import org.apache.openjpa.lib.util.StringUtil;
+import org.apache.openjpa.util.proxy.DelayedArrayListProxy;
+import org.apache.openjpa.util.proxy.DelayedHashSetProxy;
+import org.apache.openjpa.util.proxy.DelayedLinkedHashSetProxy;
+import org.apache.openjpa.util.proxy.DelayedLinkedListProxy;
+import org.apache.openjpa.util.proxy.DelayedPriorityQueueProxy;
+import org.apache.openjpa.util.proxy.DelayedTreeSetProxy;
+import org.apache.openjpa.util.proxy.DelayedVectorProxy;
+import org.apache.openjpa.util.proxy.ProxyBean;
+import org.apache.openjpa.util.proxy.ProxyCalendar;
+import org.apache.openjpa.util.proxy.ProxyCollection;
+import org.apache.openjpa.util.proxy.ProxyCollections;
+import org.apache.openjpa.util.proxy.ProxyConcurrentMaps;
+import org.apache.openjpa.util.proxy.ProxyDate;
+import org.apache.openjpa.util.proxy.ProxyMap;
+import org.apache.openjpa.util.proxy.ProxyMaps;
 
 import serp.bytecode.BCClass;
 import serp.bytecode.BCField;
@@ -526,25 +541,25 @@ public class ProxyManagerImpl
 
     protected Class<?> loadDelayedProxy(Class<?> type) {
         if (type.equals(java.util.ArrayList.class)) {
-            return org.apache.openjpa.util.DelayedArrayListProxy.class;
+            return DelayedArrayListProxy.class;
         }
         if (type.equals(java.util.HashSet.class)) {
-            return org.apache.openjpa.util.DelayedHashSetProxy.class;
+            return DelayedHashSetProxy.class;
         }
         if (type.equals(java.util.LinkedList.class)) {
-            return org.apache.openjpa.util.DelayedLinkedListProxy.class;
+            return DelayedLinkedListProxy.class;
         }
         if (type.equals(java.util.Vector.class)) {
-            return org.apache.openjpa.util.DelayedVectorProxy.class;
+            return DelayedVectorProxy.class;
         }
         if (type.equals(java.util.LinkedHashSet.class)) {
-            return org.apache.openjpa.util.DelayedLinkedHashSetProxy.class;
+            return DelayedLinkedHashSetProxy.class;
         }
         if (type.equals(java.util.SortedSet.class) || type.equals(java.util.TreeSet.class)) {
-            return org.apache.openjpa.util.DelayedTreeSetProxy.class;
+            return DelayedTreeSetProxy.class;
         }
         if (type.equals(java.util.PriorityQueue.class)) {
-            return org.apache.openjpa.util.DelayedPriorityQueueProxy.class;
+            return DelayedPriorityQueueProxy.class;
         }
         return null;
     }
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedArrayListProxy.java
similarity index 97%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedArrayListProxy.java
index 9a8bcc48e..84180c356 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedArrayListProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedArrayListProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.ArrayList;
@@ -32,6 +32,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * ArrayList proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedHashSetProxy.java
similarity index 97%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedHashSetProxy.java
index cb142f56d..8d5a94f1f 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedHashSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedHashSetProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -30,6 +30,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * HashSet proxy with delay loading capability. Allows non-indexed add and
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedHashSetProxy.java
similarity index 97%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedHashSetProxy.java
index a15618771..0eaf887d8 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedHashSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedHashSetProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -30,6 +30,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * LinkedHashSet proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedListProxy.java
similarity index 98%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedListProxy.java
index 77562c628..edf3e413b 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedLinkedListProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedLinkedListProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -32,6 +32,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * LinkedList proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedPriorityQueueProxy.java
similarity index 97%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedPriorityQueueProxy.java
index 54283b9ec..9256a5ec1 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedPriorityQueueProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedPriorityQueueProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -31,6 +31,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * PriorityQueue proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedProxy.java
similarity index 98%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedProxy.java
index ebbb24eaa..53c38640f 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedTreeSetProxy.java
similarity index 97%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedTreeSetProxy.java
index 0bdbb4b24..8890f6449 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedTreeSetProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedTreeSetProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -32,6 +32,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * TreeSet proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedVectorProxy.java
similarity index 98%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedVectorProxy.java
index d71495030..d222d3018 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/DelayedVectorProxy.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/DelayedVectorProxy.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.ObjectStreamException;
 import java.util.Collection;
@@ -33,6 +33,11 @@ import org.apache.openjpa.kernel.Broker;
 import org.apache.openjpa.kernel.BrokerFactory;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.DelayedCollectionChangeTrackerImpl;
+import org.apache.openjpa.util.Proxies;
+import org.apache.openjpa.util.Proxy;
 
 /**
  * Vector proxy with delay loading capability.  Allows non-indexed
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyBean.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyBean.java
similarity index 93%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyBean.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyBean.java
index cad7c64ba..477fe1627 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyBean.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyBean.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
+
+import org.apache.openjpa.util.Proxy;
 
 /**
  * Interface implemented by all generated custom types, which use JavaBean
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCalendar.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCalendar.java
similarity index 93%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCalendar.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCalendar.java
index 068992484..6dbe6a700 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCalendar.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCalendar.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
+
+import org.apache.openjpa.util.Proxy;
 
 /**
  * Interface implemented by all generated proxies on {@link java.util.Calendar}
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollection.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollection.java
similarity index 94%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollection.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollection.java
index b77c902a9..2fd8eaf9c 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollection.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollection.java
@@ -16,11 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.util.Collection;
 import java.util.Comparator;
 
+import org.apache.openjpa.util.Proxy;
+
 /**
  * Interface implemented by all proxy collection types.
  *
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollections.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollections.java
similarity index 99%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollections.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollections.java
index 9f94c530d..31de8f5b8 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyCollections.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyCollections.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -31,6 +31,9 @@ import org.apache.openjpa.kernel.BrokerImpl;
 import org.apache.openjpa.kernel.DetachedValueStateManager;
 import org.apache.openjpa.kernel.OpenJPAStateManager;
 import org.apache.openjpa.kernel.StateManagerImpl;
+import org.apache.openjpa.util.ChangeTracker;
+import org.apache.openjpa.util.CollectionChangeTracker;
+import org.apache.openjpa.util.Proxies;
 
 /**
  * Utility methods used by collection proxies.
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyConcurrentMaps.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyConcurrentMaps.java
similarity index 87%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyConcurrentMaps.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyConcurrentMaps.java
index ad3f5194f..f2d32ec7e 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyConcurrentMaps.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyConcurrentMaps.java
@@ -16,10 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.util.Map;
 
+import org.apache.openjpa.util.MapChangeTracker;
+import org.apache.openjpa.util.Proxies;
+
 /**
  * Utility methods used by concurrent map proxies.
  *
@@ -29,7 +32,7 @@ public class ProxyConcurrentMaps extends ProxyMaps {
      * Call before invoking {@link Map#remove(key, value) } on super.
      */
     public static boolean beforeRemove(ProxyMap map, Object key, Object value) {
-        dirty(map, false);
+        Proxies.dirty(map, false);
         return map.containsKey(key);
     }
 
@@ -46,8 +49,8 @@ public class ProxyConcurrentMaps extends ProxyMaps {
             if (map.getChangeTracker() != null) {
                 ((MapChangeTracker) map.getChangeTracker()).removed(key, ret);
             }
-            removed(map, key, true);
-            removed(map, ret, false);
+            Proxies.removed(map, key, true);
+            Proxies.removed(map, ret, false);
         }
         return ret;
     }
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyDate.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyDate.java
similarity index 93%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyDate.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyDate.java
index ae783fa9d..8fcf043f4 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyDate.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyDate.java
@@ -16,7 +16,9 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
+
+import org.apache.openjpa.util.Proxy;
 
 /**
  * Interface implemented by all generated proxies on {@link java.util.Date}
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMap.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMap.java
similarity index 94%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMap.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMap.java
index c6b2017cc..ea04f365f 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMap.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMap.java
@@ -16,11 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.util.Comparator;
 import java.util.Map;
 
+import org.apache.openjpa.util.Proxy;
+
 /**
  * Interface implemented by proxies on {@link Map} types.
  *
diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMaps.java b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMaps.java
similarity index 98%
rename from openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMaps.java
rename to openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMaps.java
index 3a73d2501..6d89c504b 100644
--- a/openjpa-kernel/src/main/java/org/apache/openjpa/util/ProxyMaps.java
+++ b/openjpa-kernel/src/main/java/org/apache/openjpa/util/proxy/ProxyMaps.java
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openjpa.util;
+package org.apache.openjpa.util.proxy;
 
 import java.io.InputStream;
 import java.io.ObjectStreamException;
@@ -27,6 +27,9 @@ import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
+import org.apache.openjpa.util.MapChangeTracker;
+import org.apache.openjpa.util.Proxies;
+
 /**
  * Utility methods used by map proxies.
  *
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestCalendarField.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestCalendarField.java
index 90bf2d95f..83a462f1c 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestCalendarField.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/TestCalendarField.java
@@ -26,7 +26,7 @@ import java.util.TimeZone;
 
 import org.apache.openjpa.persistence.simple.TemporalFieldTypes;
 import org.apache.openjpa.persistence.test.SingleEMTestCase;
-import org.apache.openjpa.util.ProxyCalendar;
+import org.apache.openjpa.util.proxy.ProxyCalendar;
 
 public class TestCalendarField extends SingleEMTestCase {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/CacheTest.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/CacheTest.java
index 8680f029f..291aefa5c 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/CacheTest.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/datacache/CacheTest.java
@@ -73,7 +73,7 @@ import org.apache.openjpa.util.CacheMap;
 import org.apache.openjpa.util.Id;
 import org.apache.openjpa.util.ImplHelper;
 import org.apache.openjpa.util.OpenJPAException;
-import org.apache.openjpa.util.ProxyDate;
+import org.apache.openjpa.util.proxy.ProxyDate;
 
 import junit.framework.AssertionFailedError;
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestProxyCollection.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestProxyCollection.java
index 95769e9dc..045dbcfa5 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestProxyCollection.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/TestProxyCollection.java
@@ -24,7 +24,7 @@ import jakarta.persistence.EntityManager;
 
 import org.apache.openjpa.persistence.test.SingleEMFTestCase;
 import org.apache.openjpa.util.ChangeTracker;
-import org.apache.openjpa.util.ProxyCollection;
+import org.apache.openjpa.util.proxy.ProxyCollection;
 
 /**
  * Tests proxying and change tracking of collection fields for modification in
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/DelayedProxyCollectionsTestCase.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/DelayedProxyCollectionsTestCase.java
index 849c7bf75..db03cf02a 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/DelayedProxyCollectionsTestCase.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/DelayedProxyCollectionsTestCase.java
@@ -33,9 +33,9 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.kernel.DetachedStateManager;
 import org.apache.openjpa.persistence.test.SQLListenerTestCase;
-import org.apache.openjpa.util.DelayedProxy;
+import org.apache.openjpa.util.proxy.DelayedProxy;
 import org.apache.openjpa.util.Proxy;
-import org.apache.openjpa.util.ProxyCollection;
+import org.apache.openjpa.util.proxy.ProxyCollection;
 
 /**
  * Verifies generic delay-load capabilities for delay-load collection proxies.
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/alist/TestDelayedArrayListProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/alist/TestDelayedArrayListProxyDetachLite.java
index 5d61568e9..bb217efa0 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/alist/TestDelayedArrayListProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/alist/TestDelayedArrayListProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedArrayListProxy;
+import org.apache.openjpa.util.proxy.DelayedArrayListProxy;
 
 public class TestDelayedArrayListProxyDetachLite extends TestDelayedArrayListProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/hset/TestDelayedHashSetProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/hset/TestDelayedHashSetProxyDetachLite.java
index 194215798..b13af1f83 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/hset/TestDelayedHashSetProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/hset/TestDelayedHashSetProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedHashSetProxy;
+import org.apache.openjpa.util.proxy.DelayedHashSetProxy;
 
 public class TestDelayedHashSetProxyDetachLite extends TestDelayedHashSetProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/lhset/TestDelayedLinkedHashSetProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/lhset/TestDelayedLinkedHashSetProxyDetachLite.java
index dbd70f361..c232c3166 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/lhset/TestDelayedLinkedHashSetProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/lhset/TestDelayedLinkedHashSetProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedLinkedHashSetProxy;
+import org.apache.openjpa.util.proxy.DelayedLinkedHashSetProxy;
 
 public class TestDelayedLinkedHashSetProxyDetachLite extends TestDelayedLinkedHashSetProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/llist/TestDelayedLinkedListProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/llist/TestDelayedLinkedListProxyDetachLite.java
index b56faf693..c491653e8 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/llist/TestDelayedLinkedListProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/llist/TestDelayedLinkedListProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedLinkedListProxy;
+import org.apache.openjpa.util.proxy.DelayedLinkedListProxy;
 
 public class TestDelayedLinkedListProxyDetachLite extends TestDelayedLinkedListProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/pqueue/TestDelayedPriorityQueueProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/pqueue/TestDelayedPriorityQueueProxyDetachLite.java
index 9026a0cc8..c4c32d77c 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/pqueue/TestDelayedPriorityQueueProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/pqueue/TestDelayedPriorityQueueProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedPriorityQueueProxy;
+import org.apache.openjpa.util.proxy.DelayedPriorityQueueProxy;
 
 public class TestDelayedPriorityQueueProxyDetachLite extends TestDelayedPriorityQueueProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/tset/TestDelayedTreeSetProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/tset/TestDelayedTreeSetProxyDetachLite.java
index 9ea4d3713..fd8b2e8c7 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/tset/TestDelayedTreeSetProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/tset/TestDelayedTreeSetProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedTreeSetProxy;
+import org.apache.openjpa.util.proxy.DelayedTreeSetProxy;
 
 public class TestDelayedTreeSetProxyDetachLite extends TestDelayedTreeSetProxy {
 
diff --git a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/vec/TestDelayedVectorProxyDetachLite.java b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/vec/TestDelayedVectorProxyDetachLite.java
index 7b17b6116..de5334da0 100644
--- a/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/vec/TestDelayedVectorProxyDetachLite.java
+++ b/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/proxy/delayed/vec/TestDelayedVectorProxyDetachLite.java
@@ -25,7 +25,7 @@ import jakarta.persistence.EntityManager;
 import org.apache.openjpa.enhance.PersistenceCapable;
 import org.apache.openjpa.persistence.proxy.delayed.IDepartment;
 import org.apache.openjpa.persistence.proxy.delayed.IEmployee;
-import org.apache.openjpa.util.DelayedVectorProxy;
+import org.apache.openjpa.util.proxy.DelayedVectorProxy;
 
 public class TestDelayedVectorProxyDetachLite extends TestDelayedVectorProxy {
 
diff --git a/openjpa-project/src/doc/manual/ref_guide_pc.xml b/openjpa-project/src/doc/manual/ref_guide_pc.xml
index 56dcfabbc..bd3049ddf 100644
--- a/openjpa-project/src/doc/manual/ref_guide_pc.xml
+++ b/openjpa-project/src/doc/manual/ref_guide_pc.xml
@@ -1495,7 +1495,7 @@ operations on collections without requiring them to be loaded. Delayed proxies a
 loaded when an operation is performed that requires loading, such
 as iteration, size, serialization, and indexOf.  They can also be loaded by casting the
 proxy to a <ulink url="../../apidocs/org/apache/openjpa/util/DelayedProxy.html"><classname>
-org.apache.openjpa.util.DelayedProxy</classname></ulink> and invoking the
+                            org.apache.openjpa.util.proxy.DelayedProxy</classname></ulink> and invoking the
 <methodname>load</methodname> method. If a broker factory is available after detaching the owning
 entity, a collection may be available for delayed loading after the persistence context has been
 cleared. In post-detachment, entities that are loaded are not associated with a persistence context.