You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/12/05 18:56:10 UTC

[isis] branch master updated: ISIS-2903: JDOEntityFacet: when requesting id for a detached pojo, persist it

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 07b8ba5  ISIS-2903: JDOEntityFacet: when requesting id for a detached pojo, persist it
07b8ba5 is described below

commit 07b8ba573478e7c822e1bbeadbc350a9c381a175
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sun Dec 5 19:56:00 2021 +0100

    ISIS-2903: JDOEntityFacet: when requesting id for a detached pojo,
    persist it
---
 .../jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java  | 9 +++++++--
 .../apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java    | 3 ++-
 .../isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java   | 3 +--
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
index 63c6315..e13ed72 100644
--- a/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
+++ b/persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/metamodel/facets/entity/JdoEntityFacet.java
@@ -104,8 +104,13 @@ implements EntityFacet {
                     pojo.getClass().getName());
         }
 
-        val persistenceManager = getPersistenceManager();
-        val primaryKey = persistenceManager.getObjectId(pojo);
+        val pm = getPersistenceManager();
+        var primaryKey = pm.getObjectId(pojo);
+
+        if(primaryKey==null) {
+            pm.makePersistent(pojo);
+            primaryKey = pm.getObjectId(pojo);
+        }
 
         if(primaryKey==null) {
             throw _Exceptions.illegalArgument(
diff --git a/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java b/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
index 7de82b4..ed7c407 100644
--- a/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
+++ b/regressiontests/stable-viewers-jdo/src/main/java/org/apache/isis/testdomain/viewers/jdo/wkt/TestAppJdoWkt.java
@@ -32,6 +32,7 @@ import org.apache.isis.applib.annotation.HomePage;
 import org.apache.isis.applib.annotation.Nature;
 import org.apache.isis.applib.annotation.ObjectSupport;
 import org.apache.isis.applib.services.user.UserService;
+import org.apache.isis.commons.internal.debug.xray.XrayEnable;
 import org.apache.isis.core.config.presets.IsisPresets;
 import org.apache.isis.testdomain.conf.Configuration_usingJdo;
 import org.apache.isis.testdomain.conf.Configuration_usingWicket;
@@ -50,7 +51,7 @@ import org.apache.isis.viewer.wicket.viewer.IsisModuleViewerWicketViewer;
     // UI (Wicket Viewer)
     IsisModuleViewerWicketViewer.class,
 
-    //XrayEnable.class // for debugging only
+    XrayEnable.class // for debugging only
 })
 public class TestAppJdoWkt extends SpringBootServletInitializer {
 
diff --git a/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java b/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
index c5e3d9d..9780aff 100644
--- a/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
+++ b/regressiontests/stable-viewers-jdo/src/test/java/org/apache/isis/testdomain/viewers/jdo/wkt/InteractionTestJdoWkt.java
@@ -48,8 +48,7 @@ import lombok.val;
 @SpringBootTest(
         classes = {
                 Configuration_usingJdo.class,
-                Configuration_usingWicket.class
-        },
+                Configuration_usingWicket.class        },
         properties = {
         })
 @TestPropertySource({