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 2018/09/06 07:15:34 UTC

[isis] 02/07: ISIS-1976: make ObjectAdapter's oid immutable

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

ahuber pushed a commit to branch ISIS-1976-rethink-object-adapters
in repository https://gitbox.apache.org/repos/asf/isis.git

commit d8341fe5f96207fc03787534d3ec710119ec4d1a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Sep 6 06:29:22 2018 +0200

    ISIS-1976: make ObjectAdapter's oid immutable
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-1976
---
 .../isis/core/metamodel/adapter/ObjectAdapter.java | 24 +++++++++++-----------
 .../runtime/persistence/adapter/PojoAdapter.java   | 11 ----------
 .../adaptermanager/ObjectAdapterContext.java       | 12 -----------
 .../ObjectAdapterContext_Consistency.java          |  2 +-
 4 files changed, 13 insertions(+), 36 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
index fc67020..86dc643 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/adapter/ObjectAdapter.java
@@ -487,18 +487,18 @@ public interface ObjectAdapter extends Instance {
      */
     ObjectAdapter withPojo(Object newPojo);
 
-    @Deprecated
-    public static interface Friend {
-      /**
-      * Sometimes it is necessary to manage the replacement of the underlying
-      * domain object (by another component such as an object store). This method
-      * allows the adapter to be kept while the domain object is replaced.
-      */
-     void replacePojo(Object pojo);
-    }
-    
-    @Deprecated
-    Friend friend();
+//    @Deprecated
+//    public static interface Friend {
+//      /**
+//      * Sometimes it is necessary to manage the replacement of the underlying
+//      * domain object (by another component such as an object store). This method
+//      * allows the adapter to be kept while the domain object is replaced.
+//      */
+//     void replacePojo(Object pojo);
+//    }
+//    
+//    @Deprecated
+//    Friend friend();
 
 
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index f80048c..c335815 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -407,15 +407,4 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
         return new PojoAdapter(newPojo, oid, authenticationSession, specificationLoader, persistenceSession);
     }
 
-
-    @Override
-    public Friend friend() {
-        return new Friend() {
-            @Override
-            public void replacePojo(Object pojo) {
-                PojoAdapter.this.pojo = pojo;
-            }
-        };
-    }
-
 }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
index 06642b2..18af78f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext.java
@@ -502,23 +502,11 @@ public class ObjectAdapterContext {
         return accessor.getProperty(ownerAdapter, InteractionInitiatedBy.FRAMEWORK);
     }
 
-    /**
-     * @deprecated https://issues.apache.org/jira/browse/ISIS-1976
-     */
     @Deprecated
     public ObjectAdapter remapRecreatedPojo(ObjectAdapter adapter, final Object pojo) {
         final ObjectAdapter newAdapter = adapter.withPojo(pojo);
         cache.removeAdapter(adapter);
         cache.removeAdapter(newAdapter);
-
-        //FIXME[ISIS-1976] can't remove yet, does have strange side-effects 
-        if(true){
-            adapter.friend().replacePojo(pojo);
-            mapAndInjectServices(adapter);
-            return adapter;
-        }
-        //---
-        
         mapAndInjectServices(newAdapter);
         return newAdapter;
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Consistency.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Consistency.java
index d078639..2d15fb0 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Consistency.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/adaptermanager/ObjectAdapterContext_Consistency.java
@@ -113,7 +113,7 @@ class ObjectAdapterContext_Consistency {
         }
 
         ensureThatArg(
-                adapter, equalTo(adapterAccordingToMap),
+                adapterOid, equalTo(adapterAccordingToMap.getOid()),
                 ()->"mismatch in "
                         + mapName
                         + ": provided adapter's OID: " + adapterOid + ", \n"