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 2020/06/05 10:47:25 UTC

[isis] branch master updated (2afd581 -> 5ed089d)

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

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


    from 2afd581  ISIS-2340: remove utility that has only one reference of use
     new 838e267  ISIS-2340: ManagedObjects: move and gather entity utility methods (4)
     new 5ed089d  ISIS-2340: remove utility that has only one reference of use (2)

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../isis/core/metamodel/spec/ManagedObject.java    | 39 ----------------------
 .../isis/core/metamodel/spec/ManagedObjects.java   | 26 +++++++++++++++
 .../repository/RepositoryServiceDefault.java       |  5 ++-
 .../handlers/DomainObjectInvocationHandler.java    |  3 +-
 .../persistence/PersistenceSession5.java           | 12 ++++---
 .../resources/DomainObjectResourceServerside.java  |  5 +--
 6 files changed, 41 insertions(+), 49 deletions(-)


[isis] 02/02: ISIS-2340: remove utility that has only one reference of use (2)

Posted by ah...@apache.org.
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

commit 5ed089dca50c9fe1ec6daf5813a05a6f3bf2415c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 5 12:47:12 2020 +0200

    ISIS-2340: remove utility that has only one reference of use (2)
---
 .../org/apache/isis/core/metamodel/spec/ManagedObject.java   | 11 -----------
 .../jdo/datanucleus5/persistence/PersistenceSession5.java    | 12 ++++++++----
 2 files changed, 8 insertions(+), 15 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index b65cb7e..70f4abd 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -229,15 +229,4 @@ public interface ManagedObject {
 
     }
 
-    // -- DEPRECATIONS (REFACTORING)
-
-    static boolean _isParentedCollection(ManagedObject adapter) {
-        
-        //legacy of (FIXME not a perfect match)
-        //getOid() instanceof ParentedOid;
-        
-        return adapter.getSpecification().getBeanSort().isCollection();
-    }
-
-
 }
diff --git a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
index fd2b3a8..7f7d790 100644
--- a/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
+++ b/persistence/jdo/datanucleus-5/src/main/java/org/apache/isis/persistence/jdo/datanucleus5/persistence/PersistenceSession5.java
@@ -571,14 +571,18 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
         if (getEntityState(pojo).isAttached()) {
             throw new NotPersistableException("Object already persistent: " + adapter);
         }
-        if (ManagedObject._isParentedCollection(adapter)) {
-            //or should we just ignore this?
-            throw new NotPersistableException("Cannot persist parented collection: " + adapter);
-        }
         val spec = adapter.getSpecification();
         if (spec.isManagedBean()) {
             throw new NotPersistableException("Can only persist entity beans: "+ adapter);
         }
+        if (spec.getBeanSort().isCollection()) {
+            //(FIXME not a perfect match) 
+            //legacy of ... 
+            //getOid() instanceof ParentedOid;
+            //or should we just ignore this?
+            throw new NotPersistableException("Cannot persist parented collection: " + adapter);
+        }
+        
         transactionService.executeWithinTransaction(()->{
             log.debug("persist {}", adapter);               
             val createObjectCommand = newCreateObjectCommand(adapter);


[isis] 01/02: ISIS-2340: ManagedObjects: move and gather entity utility methods (4)

Posted by ah...@apache.org.
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

commit 838e2670e0230797849dade7c840e0b23c0f4fce
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jun 5 12:43:13 2020 +0200

    ISIS-2340: ManagedObjects: move and gather entity utility methods (4)
---
 .../isis/core/metamodel/spec/ManagedObject.java    | 28 ----------------------
 .../isis/core/metamodel/spec/ManagedObjects.java   | 26 ++++++++++++++++++++
 .../repository/RepositoryServiceDefault.java       |  5 ++--
 .../handlers/DomainObjectInvocationHandler.java    |  3 ++-
 .../resources/DomainObjectResourceServerside.java  |  5 ++--
 5 files changed, 33 insertions(+), 34 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 7e6ef18..b65cb7e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -27,7 +27,6 @@ import javax.annotation.Nullable;
 import org.apache.isis.core.commons.internal.base._Lazy;
 import org.apache.isis.core.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 
 import lombok.EqualsAndHashCode;
@@ -232,33 +231,6 @@ public interface ManagedObject {
 
     // -- DEPRECATIONS (REFACTORING)
 
-    static void _makePersistentInTransaction(ManagedObject adapter) {
-
-        val spec = adapter.getSpecification();
-        if(spec.isEntity()) {
-            val entityFacet = spec.getFacet(EntityFacet.class);
-            entityFacet.persist(spec, adapter.getPojo());
-            return;
-        }
-
-        throw _Exceptions.illegalArgument("not an entity type %s (sort=%s)", spec.getCorrespondingClass(), spec.getBeanSort());
-    }
-    
-    static void _destroyObjectInTransaction(ManagedObject adapter) {
-        // legacy of
-        //getPersistenceSession().destroyObjectInTransaction(adapter);
-        
-        val spec = adapter.getSpecification();
-        if(spec.isEntity()) {
-            val entityFacet = spec.getFacet(EntityFacet.class);
-            entityFacet.delete(spec, adapter.getPojo());
-            return;
-        }
-
-        throw _Exceptions.unexpectedCodeReach();
-    }
-
-
     static boolean _isParentedCollection(ManagedObject adapter) {
         
         //legacy of (FIXME not a perfect match)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index 738a2c3..d576897 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -280,6 +280,32 @@ public final class ManagedObjects {
             return entityFacet.getEntityState(pojo);
         }
         
+        public static void persistInTransaction(ManagedObject managedObject) {
+            requiresEntity(managedObject);
+            val spec = managedObject.getSpecification();
+            val entityFacet = spec.getFacet(EntityFacet.class);
+            entityFacet.persist(spec, managedObject.getPojo());
+        }
+        
+        public static void destroyInTransaction(ManagedObject managedObject) {
+            requiresEntity(managedObject);
+            val spec = managedObject.getSpecification();
+            val entityFacet = spec.getFacet(EntityFacet.class);
+            entityFacet.delete(spec, managedObject.getPojo());
+        }
+        
+        public static void requiresEntity(ManagedObject managedObject) {
+            if(isNullOrUnspecifiedOrEmpty(managedObject)) {
+                throw _Exceptions.illegalArgument("requires an entity object but got null, unspecified or empty");
+            }
+            val spec = managedObject.getSpecification();
+            if(!spec.isEntity()) {
+                throw _Exceptions.illegalArgument("not an entity type %s (sort=%s)",
+                        spec.getCorrespondingClass(), 
+                        spec.getBeanSort());                
+            }
+        }
+        
         /**
          * @param managedObject
          * @return managedObject
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
index cca5c28..c3a078a 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/repository/RepositoryServiceDefault.java
@@ -50,7 +50,6 @@ import org.apache.isis.core.commons.internal.base._NullSafe;
 import org.apache.isis.core.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.objectmanager.query.ObjectBulkLoader;
-import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
 import org.apache.isis.core.metamodel.spec.ManagedObjects.UnwrapUtil;
 
@@ -100,7 +99,7 @@ public class RepositoryServiceDefault implements RepositoryService {
         if(!EntityUtil.isDetached(adapter)) {
             return domainObject;
         }
-        ManagedObject._makePersistentInTransaction(adapter);
+        EntityUtil.persistInTransaction(adapter);
         return domainObject;
     }
 
@@ -119,7 +118,7 @@ public class RepositoryServiceDefault implements RepositoryService {
         }
         val adapter = objectManager.adapt(unwrapped(domainObject));
         if(EntityUtil.isAttached(adapter)) {
-            ManagedObject._destroyObjectInTransaction(adapter);   
+            EntityUtil.destroyInTransaction(adapter);   
         }
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
index b373263..62072f7 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/wrapper/handlers/DomainObjectInvocationHandler.java
@@ -53,6 +53,7 @@ import org.apache.isis.core.metamodel.facets.object.entity.EntityFacet;
 import org.apache.isis.core.metamodel.facets.object.mixin.MixinFacet;
 import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
+import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
 import org.apache.isis.core.metamodel.spec.ManagedObjects.UnwrapUtil;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.Contributed;
@@ -384,7 +385,7 @@ public class DomainObjectInvocationHandler<T> extends DelegatingInvocationHandle
         val spec = targetAdapter.getSpecification();
         if(spec.isEntity()) {
             return runExecutionTask(()->{
-                ManagedObject._makePersistentInTransaction(targetAdapter);
+                EntityUtil.persistInTransaction(targetAdapter);
                 return null;
             }); 
         }
diff --git a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
index 54cbe2f..a1d4d83 100644
--- a/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
+++ b/viewers/restfulobjects/viewer/src/main/java/org/apache/isis/viewer/restfulobjects/viewer/resources/DomainObjectResourceServerside.java
@@ -61,6 +61,7 @@ import org.apache.isis.core.metamodel.interactions.managed.PropertyInteraction;
 import org.apache.isis.core.metamodel.spec.ManagedObject;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.ManagedObjects.EntityUtil;
 import org.apache.isis.core.runtime.iactn.IsisInteractionTracker;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
@@ -137,8 +138,8 @@ public class DomainObjectResourceServerside extends ResourceAbstract implements
             throw RestfulObjectsApplicationException.createWithBody(HttpStatusCode.BAD_REQUEST, objectRepr, validity.getReason());
         }
 
-        ManagedObject._makePersistentInTransaction(adapter);
-
+        EntityUtil.persistInTransaction(adapter);
+        
         val domainResourceHelper = DomainResourceHelper.ofObjectResource(resourceContext, adapter);
 
         return domainResourceHelper.objectRepresentation();