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/10 14:07:06 UTC
[07/50] [abbrv] isis git commit: ISIS-1194: working towards combining
ObjectStore and PersistenceSession...
ISIS-1194: working towards combining ObjectStore and PersistenceSession...
... moved lazilyLoaded() from ObjectStore to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9964907b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9964907b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9964907b
Branch: refs/heads/ISIS-1194
Commit: 9964907b3b41ab284b76bd34301112d0a6a814ee
Parents: 9c17f78
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 08:19:04 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 08:19:04 2015 +0100
----------------------------------------------------------------------
.../adaptermanager/PojoRecreator.java | 14 +++-----
.../runtime/system/persistence/ObjectStore.java | 12 +------
.../system/persistence/PersistenceSession.java | 37 ++++++++++++++++----
3 files changed, 35 insertions(+), 28 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9964907b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreator.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreator.java
index 9821c14..e3f17ce 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreator.java
@@ -23,7 +23,6 @@ import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.runtime.system.persistence.ObjectStore;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
public class PojoRecreator {
@@ -47,7 +46,8 @@ public class PojoRecreator {
}
private Object recreatePojoDefault(final RootOid rootOid) {
- final ObjectSpecification spec = getSpecificationLoader().lookupBySpecId(rootOid.getObjectSpecId());
+ final ObjectSpecification spec =
+ getSpecificationLoader().lookupBySpecId(rootOid.getObjectSpecId());
final Object pojo = spec.createObject();
if(rootOid.isViewModel()) {
// initialize the view model pojo from the oid's identifier
@@ -66,18 +66,17 @@ public class PojoRecreator {
-
/**
* Return an adapter, if possible, for a pojo that was instantiated by the
* object store as a result of lazily loading, but which hasn't yet been seen
* by the Isis framework.
*
* <p>
- * For example, in the case of JDO object store, downcast to <tt>PersistenceCapable</tt>
+ * In the case of JDO object store, downcast to <tt>Persistence</tt>
* and 'look inside' its state.
*/
public ObjectAdapter lazilyLoaded(Object pojo) {
- return getObjectStore().lazilyLoaded(pojo);
+ return persistenceSession.lazilyLoaded(pojo);
}
///////////////////////////////
@@ -91,9 +90,4 @@ public class PojoRecreator {
return persistenceSession;
}
- protected ObjectStore getObjectStore() {
- return getPersistenceSession().getObjectStore();
- }
-
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/9964907b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectStore.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectStore.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectStore.java
index 3067c67..97518ea 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectStore.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/ObjectStore.java
@@ -219,17 +219,7 @@ public class ObjectStore implements TransactionalResource, DebuggableWithTitle,
- //region > loadPojo, lazilyLoaded, resolveImmediately
-
-
- public ObjectAdapter lazilyLoaded(Object pojo) {
- if(!(pojo instanceof Persistable)) {
- return null;
- }
- final Persistable persistenceCapable = (Persistable) pojo;
- return frameworkSynchronizer.lazilyLoaded(persistenceCapable, CalledFrom.OS_LAZILYLOADED);
- }
-
+ //region > resolveImmediately
public void resolveImmediately(final ObjectAdapter adapter) {
http://git-wip-us.apache.org/repos/asf/isis/blob/9964907b/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 a2d9bf2..bf28ceb 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
@@ -28,6 +28,7 @@ import javax.jdo.PersistenceManager;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.datanucleus.enhancement.Persistable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -106,6 +107,7 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
// not final only for testing purposes
private IsisTransactionManager transactionManager;
+ private final FrameworkSynchronizer frameworkSynchronizer;
/**
* Initialize the object store so that calls to this object store access
@@ -128,9 +130,10 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
this.servicesInjector = persistenceSessionFactory.getServicesInjector();
// sub-components
- final DataNucleusApplicationComponents applicationComponents = persistenceSessionFactory .getApplicationComponents();
+ final DataNucleusApplicationComponents applicationComponents = persistenceSessionFactory.getApplicationComponents();
this.objectStore = new ObjectStore(this, specificationLoader, configuration, applicationComponents);
+ frameworkSynchronizer = applicationComponents.getFrameworkSynchronizer();
this.objectFactory = new ObjectFactory(this, servicesInjector);
this.oidGenerator = new OidGenerator(this, specificationLoader);
@@ -524,12 +527,13 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
}
private ObjectAdapter loadMappedObjectFromObjectStore(final RootOid oid) {
- final ObjectAdapter adapter = getTransactionManager().executeWithinTransaction(new TransactionalClosureWithReturnAbstract<ObjectAdapter>() {
- @Override
- public ObjectAdapter execute() {
- return loadInstanceAndAdapt(oid);
- }
- });
+ final ObjectAdapter adapter = getTransactionManager().executeWithinTransaction(
+ new TransactionalClosureWithReturnAbstract<ObjectAdapter>() {
+ @Override
+ public ObjectAdapter execute() {
+ return loadInstanceAndAdapt(oid);
+ }
+ });
return adapter;
}
@@ -587,6 +591,9 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
return getAdapterManager().mapRecreatedPojo(oid, pojo);
}
+
+ //endregion
+
//region > loadPojo
@@ -631,12 +638,28 @@ public class PersistenceSession implements SessionScopedComponent, DebuggableWit
//endregion
+ //region > transactions
+
void ensureInTransaction() {
objectStore.ensureInTransaction();
}
//endregion
+ //region > lazilyLoaded
+
+ public ObjectAdapter lazilyLoaded(Object pojo) {
+ if(!(pojo instanceof Persistable)) {
+ return null;
+ }
+ final Persistable persistenceCapable = (Persistable) pojo;
+ return frameworkSynchronizer.lazilyLoaded(persistenceCapable, FrameworkSynchronizer.CalledFrom.OS_LAZILYLOADED);
+ }
+
+ //endregion
+
+
+
//region > resolveImmediately, resolveField
/**