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 <ahu...@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"