You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/11 00:08:55 UTC
[31/50] isis git commit: ISIS-1194: ISIS-1194: law of demeter for
FrameworkSynchronizer and AdapterManager - call PersistenceSession instead.
ISIS-1194: ISIS-1194: law of demeter for FrameworkSynchronizer and AdapterManager - call PersistenceSession instead.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/19330823
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/19330823
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/19330823
Branch: refs/heads/master
Commit: 19330823d5202c20a05aa25794cf2922e9af7504
Parents: b4f35e5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:22:35 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:22:35 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 48 ++++++++------------
.../system/persistence/PersistenceSession.java | 24 ++++++++++
2 files changed, 44 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/19330823/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/FrameworkSynchronizer.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/FrameworkSynchronizer.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/FrameworkSynchronizer.java
index d7559ee..06bcc04 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/FrameworkSynchronizer.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/FrameworkSynchronizer.java
@@ -22,7 +22,6 @@ import java.text.MessageFormat;
import java.util.concurrent.Callable;
import javax.jdo.JDOHelper;
-import javax.jdo.PersistenceManager;
import org.datanucleus.enhancement.Persistable;
import org.slf4j.Logger;
@@ -31,7 +30,6 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager.ConcurrencyChecking;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
@@ -45,7 +43,6 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFa
import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
-import org.apache.isis.core.runtime.persistence.adaptermanager.AdapterManagerDefault;
import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
@@ -100,7 +97,7 @@ public class FrameworkSynchronizer {
final Version datastoreVersion = getVersionIfAny(pc);
final RootOid originalOid ;
- ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
+ ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
if(adapter != null) {
ensureRootObject(pojo);
originalOid = (RootOid) adapter.getOid();
@@ -108,7 +105,7 @@ public class FrameworkSynchronizer {
final Version originalVersion = adapter.getVersion();
// sync the pojo held by the adapter with that just loaded
- getPersistenceSession().getAdapterManager() .remapRecreatedPojo(adapter, pojo);
+ persistenceSession.remapRecreatedPojo(adapter, pojo);
// since there was already an adapter, do concurrency check
// (but don't set abort cause if checking is suppressed through thread-local)
@@ -131,15 +128,15 @@ public class FrameworkSynchronizer {
}
}
} else {
- originalOid = getPersistenceSession().createPersistentOrViewModelOid(pojo);
+ originalOid = persistenceSession.createPersistentOrViewModelOid(pojo);
// it appears to be possible that there is already an adapter for this Oid,
// ie from ObjectStore#resolveImmediately()
- adapter = getAdapterManager().getAdapterFor(originalOid);
+ adapter = persistenceSession.getAdapterFor(originalOid);
if(adapter != null) {
- getPersistenceSession().getAdapterManager() .remapRecreatedPojo(adapter, pojo);
+ persistenceSession.remapRecreatedPojo(adapter, pojo);
} else {
- adapter = getPersistenceSession().getAdapterManager().mapRecreatedPojo(originalOid, pojo);
+ adapter = persistenceSession.mapRecreatedPojo(originalOid, pojo);
CallbackFacet.Util.callCallback(adapter, LoadedCallbackFacet.class);
}
}
@@ -162,7 +159,7 @@ public class FrameworkSynchronizer {
withLogging(pojo, new Runnable() {
@Override
public void run() {
- final ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
+ final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
if(adapter == null) {
// not expected.
return;
@@ -203,15 +200,15 @@ public class FrameworkSynchronizer {
throw new IllegalStateException("Pojo JDO state is not persistent! pojo dnOid: " + JDOHelper.getObjectId(pojo));
}
- final ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
+ final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
final RootOid isisOid = (RootOid) adapter.getOid();
if (isisOid.isTransient()) {
// persisting
- final RootOid persistentOid = getPersistenceSession().createPersistentOrViewModelOid(pojo);
+ final RootOid persistentOid = persistenceSession.createPersistentOrViewModelOid(pojo);
- getPersistenceSession().getAdapterManager().remapAsPersistent(adapter, persistentOid);
+ persistenceSession.remapAsPersistent(adapter, persistentOid);
CallbackFacet.Util.callCallback(adapter, PersistedCallbackFacet.class);
@@ -234,7 +231,7 @@ public class FrameworkSynchronizer {
withLogging(pojo, new Runnable() {
@Override
public void run() {
- ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
+ ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
if (adapter == null) {
// seen this happen in the case when a parent entity (LeaseItem) has a collection of children
// objects (LeaseTerm) for which we haven't had a loaded callback fired and so are not yet
@@ -273,11 +270,11 @@ public class FrameworkSynchronizer {
return withLogging(pojo, new Callable<ObjectAdapter>() {
@Override
public ObjectAdapter call() {
- if(getPersistenceSession().getJdoObjectId(pojo) == null) {
+ if(persistenceSession.getJdoObjectId(pojo) == null) {
return null;
}
- final RootOid oid = getPersistenceSession().getOidGenerator().createPersistentOrViewModelOid(pojo);
- final ObjectAdapter adapter = getPersistenceSession().getAdapterManager().mapRecreatedPojo(oid, pojo);
+ final RootOid oid = persistenceSession.createPersistentOrViewModelOid(pojo);
+ final ObjectAdapter adapter = persistenceSession.mapRecreatedPojo(oid, pojo);
return adapter;
}
}, calledFrom);
@@ -288,7 +285,7 @@ public class FrameworkSynchronizer {
withLogging(pojo, new Runnable() {
@Override
public void run() {
- ObjectAdapter adapter = getAdapterManager().adapterFor(pojo);
+ ObjectAdapter adapter = persistenceSession.adapterFor(pojo);
final IsisTransaction transaction = getCurrentTransaction();
transaction.enlistDeleting(adapter);
@@ -303,8 +300,8 @@ public class FrameworkSynchronizer {
withLogging(pojo, new Runnable() {
@Override
public void run() {
- ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
- if(adapter == null) {
+ ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
+ if (adapter == null) {
return;
}
@@ -352,8 +349,7 @@ public class FrameworkSynchronizer {
}
private String logString(CalledFrom calledFrom, LoggingLocation location, Persistable pojo) {
- final AdapterManager adapterManager = getAdapterManager();
- final ObjectAdapter adapter = adapterManager.getAdapterFor(pojo);
+ final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
// initial spaces just to look better in log when wrapped by IsisLifecycleListener...
return calledFrom.name() + " " + location.prefix + " oid=" + (adapter !=null? adapter.getOid(): "(null)") + " ,pojo " + pojo;
}
@@ -366,7 +362,7 @@ public class FrameworkSynchronizer {
// make sure the entity is known to Isis and is a root
void ensureRootObject(final Persistable pojo) {
- final Oid oid = getAdapterManager().adapterFor(pojo).getOid();
+ final Oid oid = persistenceSession.adapterFor(pojo).getOid();
if (!(oid instanceof RootOid)) {
throw new IsisException(MessageFormat.format("Not a RootOid: oid={0}, for {1}", oid, pojo));
}
@@ -378,7 +374,7 @@ public class FrameworkSynchronizer {
@SuppressWarnings("unused")
private void ensureObjectNotLoaded(final Persistable pojo) {
- final ObjectAdapter adapter = getAdapterManager().getAdapterFor(pojo);
+ final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
if(adapter != null) {
final Oid oid = adapter.getOid();
throw new IsisException(MessageFormat.format("Object is already mapped in Isis: oid={0}, for {1}", oid, pojo));
@@ -399,10 +395,6 @@ public class FrameworkSynchronizer {
return persistenceSession;
}
- protected AdapterManagerDefault getAdapterManager() {
- return getPersistenceSession().getAdapterManager();
- }
-
protected IsisTransaction getCurrentTransaction() {
return persistenceSession.getTransactionManager().getTransaction();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/19330823/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index e91f201..dbd9696 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -1153,6 +1153,30 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
// endregion
+ //region > AdapterManager delegate methods
+
+ public ObjectAdapter getAdapterFor(final Object pojo) {
+ return adapterManager.getAdapterFor(pojo);
+ }
+
+ public ObjectAdapter adapterFor(final Object pojo) {
+ return adapterManager.adapterFor(pojo);
+ }
+
+ public void remapAsPersistent(final ObjectAdapter adapter, RootOid hintRootOid) {
+ adapterManager.remapAsPersistent(adapter, hintRootOid);
+ }
+
+ public ObjectAdapter mapRecreatedPojo(final Oid oid, final Object recreatedPojo) {
+ return adapterManager.mapRecreatedPojo(oid, recreatedPojo);
+ }
+
+ public void remapRecreatedPojo(ObjectAdapter adapter, final Object pojo) {
+ adapterManager.remapRecreatedPojo(adapter, pojo);
+ }
+
+ // endregion
+
}