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

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


The following commit(s) were added to refs/heads/master by this push:
     new 6178f533e CAY-2870 Modeler: Upgrade CayenneDataObject to 
GenericPersistentObject
6178f533e is described below

commit 6178f533e45265deac87760f6e01862f0d3a733b
Author: Nikita Timofeev <stari...@gmail.com>
AuthorDate: Tue Aug 27 13:57:47 2024 +0400

    CAY-2870 Modeler: Upgrade CayenneDataObject to GenericPersistentObject
---
 .../project/upgrade/handlers/UpgradeHandler_V11.java  | 19 +++++++++++++++++++
 .../upgrade/handlers/UpgradeHandler_V11Test.java      |  1 +
 .../project/upgrade/handlers/test-map-v10.map.xml     |  2 +-
 3 files changed, 21 insertions(+), 1 deletion(-)

diff --git 
a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
 
b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
index 15ad9133e..6e95a685a 100644
--- 
a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
+++ 
b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
@@ -84,6 +84,7 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
 
         dropROPProperties(upgradeUnit);
         dropObjEntityClientInfo(upgradeUnit);
+        upgradeGenericObjEntity(upgradeUnit);
         updateCgenConfig(upgradeUnit);
         updateDbImportConfig(upgradeUnit);
     }
@@ -147,6 +148,24 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
         }
     }
 
+    private void upgradeGenericObjEntity(UpgradeUnit upgradeUnit) {
+        NodeList objEntityNodes;
+        try {
+            XPath xpath = XPathFactory.newInstance().newXPath();
+            objEntityNodes = (NodeList) xpath.evaluate("/data-map/obj-entity", 
upgradeUnit.getDocument(), XPathConstants.NODESET);
+        } catch (Exception ex) {
+            return;
+        }
+
+        for (int j = 0; j < objEntityNodes.getLength(); j++) {
+            Element objEntityElement = (Element) objEntityNodes.item(j);
+            String className = objEntityElement.getAttribute("className");
+            if("org.apache.cayenne.CayenneDataObject".equals(className)) {
+                objEntityElement.setAttribute("className", 
"org.apache.cayenne.GenericPersistentObject");
+            }
+        }
+    }
+
     private void updateDbImportConfig(UpgradeUnit upgradeUnit) {
         XPath xpath = XPathFactory.newInstance().newXPath();
         NodeList nodes;
diff --git 
a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
 
b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
index fcd643d5e..4c4858a98 100644
--- 
a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
+++ 
b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
@@ -77,6 +77,7 @@ public class UpgradeHandler_V11Test extends 
BaseUpgradeHandlerTest {
         assertEquals(2, attributes.getLength());
         assertEquals("Artist", attributes.getNamedItem("name").getNodeValue());
         assertEquals("Artist", 
attributes.getNamedItem("dbEntityName").getNodeValue());
+        assertEquals("org.apache.cayenne.GenericPersistentObject", 
attributes.getNamedItem("className").getNodeValue());
         assertEquals(3, objEntity.getChildNodes().getLength());
         assertEquals("http://cayenne.apache.org/schema/11/info";,
                      
objEntity.getFirstChild().getNextSibling().getAttributes().getNamedItem("xmlns:info")
diff --git 
a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
 
b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
index 621dd7ece..4a0941164 100644
--- 
a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
+++ 
b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
@@ -11,7 +11,7 @@
         <db-attribute name="untitledAttr" type="CHAR" isPrimaryKey="true" 
isMandatory="true" length="10"/>
         <db-attribute name="untitledAttr1" type="DATE"/>
     </db-entity>
-    <obj-entity name="Artist" dbEntityName="Artist" 
clientClassName="tmp.Artist" clientSuperClassName="tmp.ClientSuperClass" 
serverOnly="false">
+    <obj-entity name="Artist" dbEntityName="Artist" 
className="org.apache.cayenne.CayenneDataObject" clientClassName="tmp.Artist" 
clientSuperClassName="tmp.ClientSuperClass" serverOnly="false">
         <info:property xmlns:info="http://cayenne.apache.org/schema/10/info"; 
name="comment" value="test"/>
     </obj-entity>
     <cgen xmlns="http://cayenne.apache.org/schema/10/cgen";>

Reply via email to