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"