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 18:12:01 UTC
[01/34] isis git commit: ISIS-1194: moving
ObjectSpecification#createObject to PersistenceSession.
Repository: isis
Updated Branches:
refs/heads/ISIS-1194 7da8aa53e -> 4616a3739
ISIS-1194: moving ObjectSpecification#createObject to PersistenceSession.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/96abb170
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/96abb170
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/96abb170
Branch: refs/heads/ISIS-1194
Commit: 96abb17027ad485612bcd6811e3b63f17e2c2418
Parents: 7da8aa5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 14:33:13 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 14:33:13 2015 +0100
----------------------------------------------------------------------
.../metamodel/spec/ObjectSpecification.java | 1 -
.../dflt/ObjectSpecificationDefault.java | 29 -------------
.../ObjectSpecificationOnStandaloneList.java | 6 ---
.../testspec/ObjectSpecificationStub.java | 11 +----
.../isis/core/runtime/memento/Memento.java | 4 +-
.../adaptermanager/AdapterManagerDefault.java | 5 ++-
...shingServiceWithDefaultPayloadFactories.java | 3 +-
.../system/persistence/PersistenceSession.java | 43 +++++++++++++++++++-
8 files changed, 49 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index 5a0f605..e59ae4f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -335,7 +335,6 @@ public interface ObjectSpecification extends Specification, ObjectActionContaine
// Creation
// //////////////////////////////////////////////////////////////
- Object createObject();
/**
* REVIEW: should this behaviour move, eg onto ObjectAdapter?
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 5ff3e3b..effa99a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -411,35 +411,6 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
// //////////////////////////////////////////////////////////////////////
- @Override
- public Object createObject() {
- if (getCorrespondingClass().isArray()) {
- return Array.newInstance(getCorrespondingClass().getComponentType(), 0);
- }
-
- try {
- final Class<?> cls = getCorrespondingClass();
-
- if (Modifier.isAbstract(cls.getModifiers())) {
- throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
- }
- final Object newInstance;
- if (Modifier.isAbstract(cls.getModifiers())) {
- throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
- }
- try {
- newInstance = cls.newInstance();
- } catch (final IllegalAccessException | InstantiationException e) {
- throw new ObjectInstantiationException(e);
- }
-
- getDependencyInjector().injectServicesInto(newInstance);
- return newInstance;
- } catch (final ObjectInstantiationException e) {
- throw new IsisException("Failed to create instance of type " + getFullIdentifier(), e);
- }
- }
-
/**
* REVIEW: does this behaviour live best here? Not that sure that it does...
*/
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
index 18ce582..a7f88c3 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/standalonelist/ObjectSpecificationOnStandaloneList.java
@@ -182,11 +182,5 @@ public class ObjectSpecificationOnStandaloneList extends ObjectSpecificationAbst
}
- @Override
- public Object createObject() {
- throw new UnsupportedOperationException(getFullIdentifier());
- }
-
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 9fa6c1b..4f0eb63 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -324,20 +324,11 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
}
@Override
- public Object createObject() {
- try {
- final Class<?> cls = Class.forName(name);
- return cls.newInstance();
- } catch (final ClassNotFoundException | InstantiationException | IllegalAccessException e) {
- throw new IsisException(e);
- }
- }
-
- @Override
public ObjectAdapter initialize(final ObjectAdapter objectAdapter) {
return objectAdapter;
}
+ // TODO: not used
public void setupPersistable(final Persistability persistable) {
this.persistable = persistable;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index 9484d7f..91cb87a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -203,8 +203,8 @@ public class Memento implements Serializable {
final Oid oid = getOid();
if (spec.isParentedOrFreeCollection()) {
-
- final Object recreatedPojo = spec.createObject();
+
+ final Object recreatedPojo = getPersistenceSession().createObject(spec);
adapter = getPersistenceSession().getAdapterManager() .mapRecreatedPojo(oid, recreatedPojo);
populateCollection(adapter, (CollectionData) data);
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
index 756db86..d04366c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
@@ -371,7 +371,7 @@ public class AdapterManagerDefault implements AdapterManager,
private Object recreatePojoDefault(final RootOid rootOid) {
final ObjectSpecification spec =
specificationLoader.lookupBySpecId(rootOid.getObjectSpecId());
- final Object pojo = spec.createObject();
+ final Object pojo = persistenceSession.createObject(spec);
if(rootOid.isViewModel()) {
// initialize the view model pojo from the oid's identifier
@@ -748,7 +748,8 @@ public class AdapterManagerDefault implements AdapterManager,
// take care not to touch the pojo, since it might have been deleted.
ensureThatArg(
adapter, is(adapterAccordingToOidAdapterMap),
- "mismatch in OidAdapter map: " + "adapter's Oid: " + adapterOid + ", " + "provided adapter's OID: " + adapter.getOid() + "; " + "map's adapter's Oid: " + adapterAccordingToOidAdapterMap.getOid());
+ "mismatch in OidAdapter map: " + "adapter's Oid: " + adapterOid + ", " + "provided adapter's OID: "
+ + adapter.getOid() + "; " + "map's adapter's Oid: " + adapterAccordingToOidAdapterMap.getOid());
}
//endregion
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
index 9ebfd88..9f00b33 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
@@ -57,7 +57,8 @@ public class PublishingServiceWithDefaultPayloadFactories {
}
// objectstores such as JDO prevent the underlying pojo from being touched once it has been deleted.
// we therefore replace that pojo with an 'empty' one.
- Object replacementObject = adapter.getSpecification().createObject();
+
+ Object replacementObject = getPersistenceSession().createObject(adapter.getSpecification());
getPersistenceSession().getAdapterManager().remapRecreatedPojo(adapter, replacementObject);
return adapter;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/96abb170/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 5cae6b5..aa18041 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
@@ -18,6 +18,8 @@
*/
package org.apache.isis.core.runtime.system.persistence;
+import java.lang.reflect.Array;
+import java.lang.reflect.Modifier;
import java.text.MessageFormat;
import java.util.List;
import java.util.Map;
@@ -43,6 +45,7 @@ import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.ensure.Assert;
+import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.util.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -55,6 +58,7 @@ import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
import org.apache.isis.core.metamodel.spec.FreeStandingList;
+import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -382,21 +386,56 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
if (LOG.isDebugEnabled()) {
LOG.debug("creating transient instance of " + objectSpec);
}
- final Object pojo = objectSpec.createObject();
+ final Object pojo = createObject(objectSpec);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
return objectSpec.initialize(adapter);
}
+
+
public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating view model instance of " + objectSpec);
}
- final Object pojo = objectSpec.createObject();
+ final Object pojo = createObject(objectSpec);
final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
facet.initialize(pojo, memento);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
return objectSpec.initialize(adapter);
}
+
+
+ public Object createObject(final ObjectSpecification objectSpec) {
+
+ final Class<?> correspondingClass = objectSpec.getCorrespondingClass();
+ if (correspondingClass.isArray()) {
+ return Array.newInstance(correspondingClass.getComponentType(), 0);
+ }
+
+ try {
+ final Class<?> cls = correspondingClass;
+
+ if (Modifier.isAbstract(cls.getModifiers())) {
+ throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
+ }
+ final Object newInstance;
+ if (Modifier.isAbstract(cls.getModifiers())) {
+ throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
+ }
+ try {
+ newInstance = cls.newInstance();
+ } catch (final IllegalAccessException | InstantiationException e) {
+ throw new ObjectInstantiationException(e);
+ }
+
+ servicesInjector.injectServicesInto(newInstance);
+ return newInstance;
+ } catch (final ObjectInstantiationException e) {
+ throw new IsisException("Failed to create instance of type " + objectSpec.getFullIdentifier(), e);
+ }
+ }
+
+
//endregion
//region > findInstancesInTransaction
[07/34] isis git commit: ISIS-1194: PersistenceSession,
added an enum (unused as of yet), and moved method lexically.
Posted by da...@apache.org.
ISIS-1194: PersistenceSession, added an enum (unused as of yet), and moved method lexically.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c7424d50
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c7424d50
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c7424d50
Branch: refs/heads/ISIS-1194
Commit: c7424d50677141223e7d7b68e3c2724c02e6baf4
Parents: d85822f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:03:40 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:03:40 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/PersistenceSession.java | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c7424d50/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 2a9f0ce..ca3de0d 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
@@ -390,6 +390,15 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return createInstance(objectSpec);
}
+ public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
+ return createInstance(objectSpec, memento);
+ }
+
+ private enum Variant {
+ TRANSIENT,
+ VIEW_MODEL
+ }
+
private ObjectAdapter createInstance(final ObjectSpecification objectSpec) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating transient instance of " + objectSpec);
@@ -399,9 +408,6 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return initializePropertiesAndDoCallback(adapter);
}
- public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
- return createInstance(objectSpec, memento);
- }
private ObjectAdapter createInstance(final ObjectSpecification objectSpec, final String memento) {
if (LOG.isDebugEnabled()) {
[30/34] isis git commit: ISIS-1194: inlining preDeleteProcessingFor
from FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining preDeleteProcessingFor from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/819dc942
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/819dc942
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/819dc942
Branch: refs/heads/ISIS-1194
Commit: 819dc9429e98961c124265fe5a17c8a91819b279
Parents: 5d69af1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:50:30 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:50:30 2015 +0100
----------------------------------------------------------------------
.../system/persistence/FrameworkSynchronizer.java | 14 --------------
.../system/persistence/PersistenceSession.java | 15 ++++++++++++++-
2 files changed, 14 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/819dc942/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 b49a556..99d0888 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
@@ -177,20 +177,6 @@ public class FrameworkSynchronizer {
- public void preDeleteProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- ObjectAdapter adapter = persistenceSession.adapterFor(pojo);
-
- final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
- transaction.enlistDeleting(adapter);
-
- CallbackFacet.Util.callCallback(adapter, RemovingCallbackFacet.class);
- }
- }, calledFrom);
-
- }
// /////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/819dc942/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 d408fb9..599dce0 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
@@ -59,6 +59,7 @@ import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
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.facets.object.viewmodel.ViewModelFacet;
@@ -1236,9 +1237,21 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
public void preDeleteProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.preDeleteProcessingFor(pojo, calledFrom);
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ ObjectAdapter adapter = adapterFor(pojo);
+
+ final IsisTransaction transaction = getCurrentTransaction();
+ transaction.enlistDeleting(adapter);
+
+ CallbackFacet.Util.callCallback(adapter, RemovingCallbackFacet.class);
+ }
+ }, calledFrom);
+
}
+
public void postLoadProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
frameworkSynchronizer.postLoadProcessingFor(pojo, calledFrom);
}
[31/34] isis git commit: ISIS-1194: inlining preStoreProcessingFor
from FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining preStoreProcessingFor from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9a72f3aa
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9a72f3aa
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9a72f3aa
Branch: refs/heads/ISIS-1194
Commit: 9a72f3aabe1724abe15a143cb3e8ca3de6911b7e
Parents: 819dc94
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:51:41 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:51:41 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 37 --------------------
.../system/persistence/PersistenceSession.java | 34 +++++++++++++++++-
2 files changed, 33 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9a72f3aa/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 99d0888..ec2ce96 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
@@ -35,9 +35,6 @@ import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
-import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
@@ -138,40 +135,6 @@ public class FrameworkSynchronizer {
}
- /**
- * Called either when an entity is initially persisted, or when an entity is updated; fires the appropriate
- * lifecycle callback.
- *
- * <p>
- * The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
- * to determine which callback to fire.
- */
- public void preStoreProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
- if(adapter == null) {
- // not expected.
- return;
- }
-
- final RootOid isisOid = (RootOid) adapter.getOid();
- if (isisOid.isTransient()) {
- // persisting
- // previously this was performed in the DataNucleusSimplePersistAlgorithm.
- CallbackFacet.Util.callCallback(adapter, PersistingCallbackFacet.class);
- } else {
- // updating
-
- // don't call here, already called in preDirty.
-
- // CallbackFacet.Util.callCallback(adapter, UpdatingCallbackFacet.class);
- }
-
- }
- }, calledFrom);
- }
http://git-wip-us.apache.org/repos/asf/isis/blob/9a72f3aa/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 599dce0..d458e7b 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
@@ -59,6 +59,7 @@ import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
@@ -1256,8 +1257,39 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
frameworkSynchronizer.postLoadProcessingFor(pojo, calledFrom);
}
+ /**
+ * Called either when an entity is initially persisted, or when an entity is updated; fires the appropriate
+ * lifecycle callback.
+ *
+ * <p>
+ * The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
+ * to determine which callback to fire.
+ */
public void preStoreProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.preStoreProcessingFor(pojo, calledFrom);
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ final ObjectAdapter adapter = getAdapterFor(pojo);
+ if (adapter == null) {
+ // not expected.
+ return;
+ }
+
+ final RootOid isisOid = (RootOid) adapter.getOid();
+ if (isisOid.isTransient()) {
+ // persisting
+ // previously this was performed in the DataNucleusSimplePersistAlgorithm.
+ CallbackFacet.Util.callCallback(adapter, PersistingCallbackFacet.class);
+ } else {
+ // updating
+
+ // don't call here, already called in preDirty.
+
+ // CallbackFacet.Util.callCallback(adapter, UpdatingCallbackFacet.class);
+ }
+
+ }
+ }, calledFrom);
}
/**
[02/34] isis git commit: ISIS-1194: deleting ObjectInstantiator
interface, no longer used.
Posted by da...@apache.org.
ISIS-1194: deleting ObjectInstantiator interface, no longer used.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/2887446d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/2887446d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/2887446d
Branch: refs/heads/ISIS-1194
Commit: 2887446d260beb7875c08167bb1ba073f02fc40e
Parents: 96abb17
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 14:37:40 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 14:37:40 2015 +0100
----------------------------------------------------------------------
.../runtimecontext/RuntimeContext.java | 3 --
.../runtimecontext/RuntimeContextAbstract.java | 1 -
.../noruntime/RuntimeContextNoRuntime.java | 16 ----------
.../core/metamodel/spec/ObjectInstantiator.java | 32 --------------------
.../spec/ObjectInstantiatorAbstract.java | 29 ------------------
.../metamodel/spec/ObjectInstantiatorAware.java | 26 ----------------
.../spec/ObjectSpecificationDependencies.java | 7 -----
.../specloader/ObjectReflectorDefault.java | 4 +--
.../specimpl/ObjectSpecificationAbstract.java | 7 -----
.../metamodel/app/IsisMetaModelTest_init.java | 9 ++----
.../internal/RuntimeContextFromSession.java | 16 ----------
11 files changed, 4 insertions(+), 146 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
index 77593a7..223b42e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContext.java
@@ -29,7 +29,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectPersistor;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.metamodel.transactions.TransactionStateProvider;
@@ -57,8 +56,6 @@ public interface RuntimeContext extends Injectable, ApplicationScopedComponent {
public AdapterManager getAdapterManager();
- public ObjectInstantiator getObjectInstantiator();
-
public SpecificationLoader getSpecificationLoader();
public ServicesInjector getServicesInjector();
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
index 23256ad..a14195b 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/RuntimeContextAbstract.java
@@ -68,7 +68,6 @@ public abstract class RuntimeContextAbstract implements RuntimeContext, Specific
getServicesInjector().injectInto(candidate);
getDomainObjectServices().injectInto(candidate);
getLocalizationProvider().injectInto(candidate);
- getObjectInstantiator().injectInto(candidate);
getObjectPersistor().injectInto(candidate);
getQuerySubmitter().injectInto(candidate);
getSpecificationLoader().injectInto(candidate);
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
index 08c4f60..d750448 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/runtimecontext/noruntime/RuntimeContextNoRuntime.java
@@ -46,9 +46,6 @@ import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProviderAbstract;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiatorAbstract;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.transactions.TransactionState;
@@ -61,7 +58,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
private final ServicesInjector servicesInjector;
private final AuthenticationSessionProviderAbstract authenticationSessionProvider;
private final AdapterManager adapterManager;
- private final ObjectInstantiatorAbstract objectInstantiator;
private final ObjectPersistorAbstract objectPersistor;
private final DomainObjectServicesAbstract domainObjectServices;
private final LocalizationProviderAbstract localizationProvider;
@@ -165,13 +161,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
};
- objectInstantiator = new ObjectInstantiatorAbstract() {
-
- @Override
- public Object instantiate(final Class<?> cls) throws ObjectInstantiationException {
- throw new UnsupportedOperationException("Not supported by this implementation of RuntimeContext");
- }
- };
objectPersistor = new ObjectPersistorAbstract() {
@Override
@@ -333,11 +322,6 @@ public class RuntimeContextNoRuntime extends RuntimeContextAbstract {
}
@Override
- public ObjectInstantiator getObjectInstantiator() {
- return objectInstantiator;
- }
-
- @Override
public ObjectPersistor getObjectPersistor() {
return objectPersistor;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiator.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiator.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiator.java
deleted file mode 100644
index 693e478..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiator.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.spec;
-
-import org.apache.isis.core.commons.components.Injectable;
-import org.apache.isis.core.metamodel.specloader.specimpl.dflt.ObjectSpecificationDefault;
-
-public interface ObjectInstantiator extends Injectable {
-
- /**
- * Provided by the <tt>ObjectFactory</tt> when used by framework.
- *
- * <p>
- * Called by {@link ObjectSpecificationDefault}.
- */
- Object instantiate(Class<?> cls) throws ObjectInstantiationException;
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAbstract.java
deleted file mode 100644
index 979c8d7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAbstract.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.spec;
-
-public abstract class ObjectInstantiatorAbstract implements ObjectInstantiator {
-
- @Override
- public void injectInto(final Object candidate) {
- if (ObjectInstantiatorAware.class.isAssignableFrom(candidate.getClass())) {
- final ObjectInstantiatorAware cast = ObjectInstantiatorAware.class.cast(candidate);
- cast.setObjectInstantiator(this);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAware.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAware.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAware.java
deleted file mode 100644
index 798cce7..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectInstantiatorAware.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package org.apache.isis.core.metamodel.spec;
-
-public interface ObjectInstantiatorAware {
-
- public void setObjectInstantiator(final ObjectInstantiator objectInstantiator);
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
index d9503fd..40a140f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecificationDependencies.java
@@ -25,7 +25,6 @@ public class ObjectSpecificationDependencies {
private final DeploymentCategory deploymentCategory;
private final ServicesInjector servicesInjector;
- private final ObjectInstantiator objectInstantiator;
private final SpecificationLoader specificationLoader;
private final FacetProcessor facetProcessor;
private final AdapterManager adapterManager;
@@ -33,13 +32,11 @@ public class ObjectSpecificationDependencies {
public ObjectSpecificationDependencies(
final DeploymentCategory deploymentCategory,
final ServicesInjector servicesInjector,
- final ObjectInstantiator objectInstantiator,
final SpecificationLoader specificationLoader,
final FacetProcessor facetProcessor,
final AdapterManager adapterManager) {
this.deploymentCategory = deploymentCategory;
this.servicesInjector = servicesInjector;
- this.objectInstantiator = objectInstantiator;
this.specificationLoader = specificationLoader;
this.facetProcessor = facetProcessor;
this.adapterManager = adapterManager;
@@ -53,10 +50,6 @@ public class ObjectSpecificationDependencies {
return servicesInjector;
}
- public ObjectInstantiator getObjectInstantiator() {
- return objectInstantiator;
- }
-
public SpecificationLoader getSpecificationLoader() {
return specificationLoader;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index 760837c..bc56df1 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -58,7 +58,6 @@ import org.apache.isis.core.metamodel.runtimecontext.noruntime.RuntimeContextNoR
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.spec.FreeStandingList;
import org.apache.isis.core.metamodel.spec.InjectorMethodEvaluator;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
@@ -449,12 +448,11 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
final SpecificationLoader specificationLookup = getRuntimeContext().getSpecificationLoader();
final ServicesInjector servicesInjector = getRuntimeContext().getServicesInjector();
- final ObjectInstantiator objectInstantiator = getRuntimeContext().getObjectInstantiator();
final AdapterManager adapterManager = getRuntimeContext().getAdapterManager();
final ObjectSpecificationDependencies specContext =
new ObjectSpecificationDependencies(
- getDeploymentCategory(), servicesInjector, objectInstantiator, specificationLookup,
+ getDeploymentCategory(), servicesInjector, specificationLookup,
facetProcessor, adapterManager);
final ObjectMemberDependencies objectMemberDependencies = new ObjectMemberDependencies(
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 24f4c68..c980252 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -82,7 +82,6 @@ import org.apache.isis.core.metamodel.layout.DeweyOrderSet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.Instance;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
@@ -123,7 +122,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
private final DeploymentCategory deploymentCategory;
private final ServicesInjector servicesInjector;
- private final ObjectInstantiator objectInstantiator;
private final SpecificationLoader specificationLoader;
private final FacetProcessor facetProcessor;
private final AdapterManager adapterManager;
@@ -193,7 +191,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
this.deploymentCategory = objectSpecificationDependencies.getDeploymentCategory();
this.servicesInjector = objectSpecificationDependencies.getServicesInjector();
- this.objectInstantiator = objectSpecificationDependencies.getObjectInstantiator();
this.specificationLoader = objectSpecificationDependencies.getSpecificationLoader();
this.facetProcessor = objectSpecificationDependencies.getFacetProcessor();
this.adapterManager = objectSpecificationDependencies.getAdapterManager();
@@ -1174,10 +1171,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
return servicesInjector;
}
- protected ObjectInstantiator getObjectInstantiator() {
- return objectInstantiator;
- }
-
protected SpecificationLoader getSpecificationLoader() {
return specificationLoader;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
index 7abd870..87baaa5 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/app/IsisMetaModelTest_init.java
@@ -20,7 +20,9 @@
package org.apache.isis.core.metamodel.app;
import java.util.TreeSet;
+
import com.google.common.collect.Lists;
+
import org.jmock.Expectations;
import org.jmock.Sequence;
import org.jmock.auto.Mock;
@@ -28,6 +30,7 @@ import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
+
import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.metamodel.adapter.QuerySubmitter;
@@ -38,7 +41,6 @@ import org.apache.isis.core.metamodel.facetdecorator.FacetDecorator;
import org.apache.isis.core.metamodel.progmodel.ProgrammingModel;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.unittestsupport.jmocking.IsisActions;
import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -58,8 +60,6 @@ public class IsisMetaModelTest_init {
@Mock
private SpecificationLoader mockSpecificationLoader;
@Mock
- private ObjectInstantiator mockObjectInstantiator;
- @Mock
private AdapterManager mockAdapterManager;
@Mock
private QuerySubmitter mockQuerySubmitter;
@@ -100,9 +100,6 @@ public class IsisMetaModelTest_init {
allowing(mockRuntimeContext).getServicesInjector();
will(returnValue(mockDependencyInjector));
- allowing(mockRuntimeContext).getObjectInstantiator();
- will(returnValue(mockObjectInstantiator));
-
allowing(mockRuntimeContext).getDeploymentCategoryProvider();
will(returnValue(new DeploymentCategoryProviderAbstract() {
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/2887446d/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
index bde63e7..c9e852b 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/internal/RuntimeContextFromSession.java
@@ -50,9 +50,6 @@ import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetU
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContextAbstract;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiator;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiatorAbstract;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.transactions.TransactionState;
@@ -73,7 +70,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
private final AuthenticationSessionProvider authenticationSessionProvider;
private final AdapterManager adapterManager;
- private final ObjectInstantiator objectInstantiator;
private final ObjectPersistor objectPersistor;
private final QuerySubmitter querySubmitter;
private final DomainObjectServices domainObjectServices;
@@ -153,13 +149,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
};
- this.objectInstantiator = new ObjectInstantiatorAbstract() {
-
- @Override
- public Object instantiate(final Class<?> cls) throws ObjectInstantiationException {
- return getPersistenceSession().getObjectFactory().instantiate(cls);
- }
- };
this.objectPersistor = new ObjectPersistorAbstract() {
@Override
@@ -315,11 +304,6 @@ public class RuntimeContextFromSession extends RuntimeContextAbstract {
}
@Override
- public ObjectInstantiator getObjectInstantiator() {
- return objectInstantiator;
- }
-
- @Override
public DomainObjectServices getDomainObjectServices() {
return domainObjectServices;
}
[09/34] isis git commit: ISIS-1194: PersistenceSession put guard in
createInstance overload per the variant param;
Posted by da...@apache.org.
ISIS-1194: PersistenceSession put guard in createInstance overload per the variant param;
update the log files to use variant
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/16734b78
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/16734b78
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/16734b78
Branch: refs/heads/ISIS-1194
Commit: 16734b78cd6c5154d1f1d23fe27df8b97ae33806
Parents: 71dd91d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:06:58 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:06:58 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/PersistenceSession.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/16734b78/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 419e6ae..38e45c2 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
@@ -403,9 +403,11 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
final ObjectSpecification objectSpec,
final Variant variant) {
if (LOG.isDebugEnabled()) {
- LOG.debug("creating transient instance of " + objectSpec);
+ LOG.debug("creating " + variant + " instance of " + objectSpec);
}
final Object pojo = instantiateAndInjectServices(objectSpec);
+
+
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
return initializePropertiesAndDoCallback(adapter);
}
@@ -416,12 +418,14 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
final Variant variant,
final String memento) {
if (LOG.isDebugEnabled()) {
- LOG.debug("creating view model instance of " + objectSpec);
+ LOG.debug("creating " + variant + " instance of " + objectSpec);
}
final Object pojo = instantiateAndInjectServices(objectSpec);
- final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
- facet.initialize(pojo, memento);
+ if(variant == Variant.VIEW_MODEL) {
+ final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
+ facet.initialize(pojo, memento);
+ }
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
return initializePropertiesAndDoCallback(adapter);
[18/34] isis git commit: ISIS-1194: law of demeter for
FrameworkSynchronizer and OidGenerator - call PersistenceSession instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for FrameworkSynchronizer and OidGenerator - 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/fa8d2de1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fa8d2de1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fa8d2de1
Branch: refs/heads/ISIS-1194
Commit: fa8d2de1d661b06818bcf3b0f907a355047ce0eb
Parents: 06d685c
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:08:06 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:08:06 2015 +0100
----------------------------------------------------------------------
.../system/persistence/FrameworkSynchronizer.java | 9 ++-------
.../runtime/system/persistence/PersistenceSession.java | 11 +++++++++++
2 files changed, 13 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/fa8d2de1/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 65cfb68..1c28b71 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
@@ -131,8 +131,7 @@ public class FrameworkSynchronizer {
}
}
} else {
- final OidGenerator oidGenerator = getOidGenerator();
- originalOid = oidGenerator.createPersistentOrViewModelOid(pojo);
+ originalOid = getPersistenceSession().createPersistentOrViewModelOid(pojo);
// it appears to be possible that there is already an adapter for this Oid,
// ie from ObjectStore#resolveImmediately()
@@ -210,7 +209,7 @@ public class FrameworkSynchronizer {
if (isisOid.isTransient()) {
// persisting
- final RootOid persistentOid = getOidGenerator().createPersistentOrViewModelOid(pojo);
+ final RootOid persistentOid = getPersistenceSession().createPersistentOrViewModelOid(pojo);
getPersistenceSession().getAdapterManager().remapAsPersistent(adapter, persistentOid);
@@ -404,10 +403,6 @@ public class FrameworkSynchronizer {
return getPersistenceSession().getAdapterManager();
}
- protected OidGenerator getOidGenerator() {
- return getPersistenceSession().getOidGenerator();
- }
-
protected PersistenceManager getJdoPersistenceManager() {
return getPersistenceSession().getPersistenceManager();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/fa8d2de1/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 e9ec445..22a54a3 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
@@ -1139,4 +1139,15 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
//endregion
+ //region > oidGenerator delegate methods
+
+ public final RootOid createPersistentOrViewModelOid(Object pojo) {
+ return oidGenerator.createPersistentOrViewModelOid(pojo);
+ }
+ //endregion
+
+
}
+
+
+
[14/34] isis git commit: ISIS-1194: DataNucleusApplicationComponents
creates new IsisLifecycleListener for each PersistenceManager
Posted by da...@apache.org.
ISIS-1194: DataNucleusApplicationComponents creates new IsisLifecycleListener for each PersistenceManager
... safe to do because IsisLifecycleListener has no state other than the FrameworkSynchronizer.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/cad8ca5c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/cad8ca5c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/cad8ca5c
Branch: refs/heads/ISIS-1194
Commit: cad8ca5cbf8c6b06e0f686dc72b1079b2fda9aeb
Parents: 51fc96f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:54:09 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:54:09 2015 +0100
----------------------------------------------------------------------
.../system/persistence/DataNucleusApplicationComponents.java | 7 +++----
.../runtime/system/persistence/IsisLifecycleListener2.java | 5 ++++-
2 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/cad8ca5c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index 8ade4f4..e2616b8 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -85,7 +85,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
private final IsisConfiguration jdoObjectstoreConfig;
private final Map<String, String> datanucleusProps;
- private final IsisLifecycleListener lifecycleListener;
private final FrameworkSynchronizer synchronizer;
private Map<String, JdoNamedQuery> namedQueryByName;
@@ -101,7 +100,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
this.jdoObjectstoreConfig = jdoObjectstoreConfig;
this.synchronizer = new FrameworkSynchronizer();
- this.lifecycleListener = new IsisLifecycleListener(synchronizer);
initialize();
@@ -276,8 +274,9 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
public PersistenceManager createPersistenceManager() {
PersistenceManager persistenceManager = persistenceManagerFactory.getPersistenceManager();
-
- persistenceManager.addInstanceLifecycleListener(lifecycleListener, (Class[])null);
+
+ final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(synchronizer);
+ persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
return persistenceManager;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/cad8ca5c/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
index 47e8383..5477e90 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
@@ -40,7 +40,10 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
-public class IsisLifecycleListener2 implements AttachLifecycleListener, ClearLifecycleListener, CreateLifecycleListener, DeleteLifecycleListener, DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLifecycleListener, SuspendableListener {
+public class IsisLifecycleListener2
+ implements AttachLifecycleListener, ClearLifecycleListener, CreateLifecycleListener, DeleteLifecycleListener,
+ DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLifecycleListener,
+ SuspendableListener {
private final FrameworkSynchronizer synchronizer;
[24/34] isis git commit: ISIS-1194: law of demeter for
IsisLifecycleListener2 and AdapterManager ... use PersistenceSession instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for IsisLifecycleListener2 and AdapterManager ... use PersistenceSession instead.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ada327f9
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ada327f9
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ada327f9
Branch: refs/heads/ISIS-1194
Commit: ada327f96ec4154f8cf0f831ff005dc020d8fb9f
Parents: 1864641
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:31:28 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:31:28 2015 +0100
----------------------------------------------------------------------
.../system/persistence/IsisLifecycleListener2.java | 11 +----------
1 file changed, 1 insertion(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ada327f9/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
index ffb4bcb..ae96f87 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
@@ -35,7 +35,6 @@ import com.google.common.collect.Maps;
import org.datanucleus.enhancement.Persistable;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
@@ -271,17 +270,9 @@ public class IsisLifecycleListener2
private String logString(Phase phase, LoggingLocation location, InstanceLifecycleEvent event) {
final Persistable pojo = Utils.persistenceCapableFor(event);
- final AdapterManager adapterManager = getAdapterManager();
- final ObjectAdapter adapter = adapterManager.getAdapterFor(pojo);
+ final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
return phase + " " + location.prefix + " " + LifecycleEventType.lookup(event.getEventType()) + ": oid=" + (adapter !=null? adapter.getOid(): "(null)") + " ,pojo " + pojo;
}
- // /////////////////////////////////////////////////////////
- // Dependencies (from context)
- // /////////////////////////////////////////////////////////
-
- protected AdapterManager getAdapterManager() {
- return persistenceSession.getAdapterManager();
- }
}
[11/34] isis git commit: ISIS-1194: PersistenceSession: tiny refactor
of instantiateAndInjectServices(...)
Posted by da...@apache.org.
ISIS-1194: PersistenceSession: tiny refactor of instantiateAndInjectServices(...)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3a5eb39e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3a5eb39e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3a5eb39e
Branch: refs/heads/ISIS-1194
Commit: 3a5eb39e844b421429354c702e9e4cdce45ad26e
Parents: 4776d59
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:39:47 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:39:47 2015 +0100
----------------------------------------------------------------------
.../system/persistence/PersistenceSession.java | 34 +++++++++-----------
1 file changed, 15 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/3a5eb39e/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 08b45f0..9258a4c 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
@@ -60,7 +60,6 @@ import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
import org.apache.isis.core.metamodel.spec.FreeStandingList;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -424,27 +423,24 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return Array.newInstance(correspondingClass.getComponentType(), 0);
}
- try {
- final Class<?> cls = correspondingClass;
-
- if (Modifier.isAbstract(cls.getModifiers())) {
- throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
- }
- final Object newInstance;
- if (Modifier.isAbstract(cls.getModifiers())) {
- throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
- }
- try {
- newInstance = cls.newInstance();
- } catch (final IllegalAccessException | InstantiationException e) {
- throw new ObjectInstantiationException(e);
- }
+ final Class<?> cls = correspondingClass;
+ if (Modifier.isAbstract(cls.getModifiers())) {
+ throw new IsisException("Cannot create an instance of an abstract class: " + cls);
+ }
+ final Object newInstance;
+ if (Modifier.isAbstract(cls.getModifiers())) {
+ throw new IsisException("Cannot create an instance of an abstract class: " + cls);
+ }
- servicesInjector.injectServicesInto(newInstance);
- return newInstance;
- } catch (final ObjectInstantiationException e) {
+ try {
+ newInstance = cls.newInstance();
+ } catch (final IllegalAccessException | InstantiationException e) {
throw new IsisException("Failed to create instance of type " + objectSpec.getFullIdentifier(), e);
}
+
+ servicesInjector.injectServicesInto(newInstance);
+ return newInstance;
+
}
private ObjectAdapter initializePropertiesAndDoCallback(final ObjectAdapter adapter) {
[12/34] isis git commit: ISIS-1194: removing CreateObjectContext
Posted by da...@apache.org.
ISIS-1194: removing CreateObjectContext
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4a5a2eea
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4a5a2eea
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4a5a2eea
Branch: refs/heads/ISIS-1194
Commit: 4a5a2eeadf997361789d9998f338da41008b010c
Parents: 3a5eb39
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:46:56 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:46:56 2015 +0100
----------------------------------------------------------------------
.../specloader/ObjectReflectorDefault.java | 3 +-
.../specimpl/CreateObjectContext.java | 38 --------------------
.../dflt/ObjectSpecificationDefault.java | 16 +--------
3 files changed, 2 insertions(+), 55 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4a5a2eea/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
index bc56df1..e34454f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/ObjectReflectorDefault.java
@@ -463,12 +463,11 @@ public final class ObjectReflectorDefault implements SpecificationLoaderSpi, App
return new ObjectSpecificationOnStandaloneList(specContext, objectMemberDependencies);
} else {
final SpecificationLoaderSpi specificationLoader = this;
- final CreateObjectContext createObjectContext = new CreateObjectContext(adapterManager, servicesInjector);
final FacetedMethodsBuilderContext facetedMethodsBuilderContext =
new FacetedMethodsBuilderContext(
specificationLoader, facetProcessor, layoutMetadataReaders);
return new ObjectSpecificationDefault(cls, facetedMethodsBuilderContext, specContext,
- objectMemberDependencies, createObjectContext);
+ objectMemberDependencies);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/4a5a2eea/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java
deleted file mode 100644
index dca42b1..0000000
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/CreateObjectContext.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.isis.core.metamodel.specloader.specimpl;
-
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
-
-public class CreateObjectContext {
- private final AdapterManager adapterManager;
- private final ServicesInjector dependencyInjector;
-
- public CreateObjectContext(final AdapterManager adapterManager, final ServicesInjector dependencyInjector) {
- this.adapterManager = adapterManager;
- this.dependencyInjector = dependencyInjector;
- }
-
- public AdapterManager getAdapterManager() {
- return adapterManager;
- }
-
- public ServicesInjector getDependencyInjector() {
- return dependencyInjector;
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/4a5a2eea/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index 3e87171..2e0512f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -53,7 +53,6 @@ import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.facets.object.value.ValueFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
-import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
@@ -64,7 +63,6 @@ import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.spec.feature.ObjectMember;
import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
import org.apache.isis.core.metamodel.specloader.classsubstitutor.ClassSubstitutor;
-import org.apache.isis.core.metamodel.specloader.specimpl.CreateObjectContext;
import org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilder;
import org.apache.isis.core.metamodel.specloader.specimpl.FacetedMethodsBuilderContext;
import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionImpl;
@@ -94,8 +92,6 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
*/
private Map<Method, ObjectMember> membersByMethod = null;
- private final CreateObjectContext createObjectContext;
-
private final FacetedMethodsBuilder facetedMethodsBuilder;
@@ -107,12 +103,10 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
final Class<?> correspondingClass,
final FacetedMethodsBuilderContext facetedMethodsBuilderContext,
final ObjectSpecificationDependencies specContext,
- final ObjectMemberDependencies objectMemberDependencies,
- final CreateObjectContext createObjectContext) {
+ final ObjectMemberDependencies objectMemberDependencies) {
super(correspondingClass, determineShortName(correspondingClass), specContext, objectMemberDependencies);
this.facetedMethodsBuilder = new FacetedMethodsBuilder(this, facetedMethodsBuilderContext);
- this.createObjectContext = createObjectContext;
}
@Override
@@ -482,13 +476,5 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
return str.toString();
}
- // //////////////////////////////////////////////////////////////////
- // Dependencies (from constructor)
- // //////////////////////////////////////////////////////////////////
-
- protected ServicesInjector getDependencyInjector() {
- return createObjectContext.getDependencyInjector();
- }
-
}
[05/34] isis git commit: ISIS-1194: deleting stale method from
ObjectSpecificationStub (belongs to the change done commit before last)
Posted by da...@apache.org.
ISIS-1194: deleting stale method from ObjectSpecificationStub (belongs to the change done commit before last)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d108c801
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d108c801
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d108c801
Branch: refs/heads/ISIS-1194
Commit: d108c801ede97c2441a9b2c2a5318d33fffe2aca
Parents: a05561e
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:00:14 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:00:14 2015 +0100
----------------------------------------------------------------------
.../isis/core/metamodel/testspec/ObjectSpecificationStub.java | 5 -----
1 file changed, 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/d108c801/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
index 4f0eb63..8abeac7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/testspec/ObjectSpecificationStub.java
@@ -323,11 +323,6 @@ public class ObjectSpecificationStub extends FacetHolderImpl implements ObjectSp
return Identifier.classIdentifier(name);
}
- @Override
- public ObjectAdapter initialize(final ObjectAdapter objectAdapter) {
- return objectAdapter;
- }
-
// TODO: not used
public void setupPersistable(final Persistability persistable) {
this.persistable = persistable;
[26/34] isis git commit: ISIS-1194: inlining preDirtyProcessing from
FrameworkSynchroizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining preDirtyProcessing from FrameworkSynchroizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fe62380a
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fe62380a
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fe62380a
Branch: refs/heads/ISIS-1194
Commit: fe62380a2e818f42e69473eec8820b792621a747
Parents: 2fad991
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:41:25 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:41:25 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 38 ----------
.../system/persistence/PersistenceSession.java | 75 +++++++++++++++++++-
2 files changed, 74 insertions(+), 39 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/fe62380a/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 5a4e321..51aff7e 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
@@ -41,7 +41,6 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackF
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
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.runtime.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
@@ -223,43 +222,6 @@ public class FrameworkSynchronizer {
}, calledFrom);
}
- public void preDirtyProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- 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
- // mapped.
-
- // it seems reasonable in this case to simply map into Isis here ("just-in-time"); presumably
- // DN would not be calling this callback if the pojo was not persistent.
-
- adapter = lazilyLoaded(pojo, CalledFrom.EVENT_PREDIRTY);
- if(adapter == null) {
- throw new RuntimeException("DN could not find objectId for pojo (unexpected) and so could not map into Isis; pojo=[" + pojo + "]");
- }
- }
- if(adapter.isTransient()) {
- // seen this happen in the case when there's a 1<->m bidirectional collection, and we're
- // attaching the child object, which is being persisted by DN as a result of persistence-by-reachability,
- // and it "helpfully" sets up the parent attribute on the child, causing this callback to fire.
- //
- // however, at the same time, Isis has only queued up a CreateObjectCommand for the transient object, but it
- // hasn't yet executed, so thinks that the adapter is still transient.
- return;
- }
-
- CallbackFacet.Util.callCallback(adapter, UpdatingCallbackFacet.class);
-
- final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
- transaction.enlistUpdating(adapter);
-
- ensureRootObject(pojo);
- }
- }, calledFrom);
- }
public ObjectAdapter lazilyLoaded(final Persistable pojo, CalledFrom calledFrom) {
http://git-wip-us.apache.org/repos/asf/isis/blob/fe62380a/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 bc559fc..a4081a1 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
@@ -23,6 +23,7 @@ import java.lang.reflect.Modifier;
import java.text.MessageFormat;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.Callable;
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
@@ -55,6 +56,7 @@ import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
@@ -1214,8 +1216,79 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
public void preDirtyProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.preDirtyProcessingFor(pojo, calledFrom);
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ ObjectAdapter adapter = 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
+ // mapped.
+
+ // it seems reasonable in this case to simply map into Isis here ("just-in-time"); presumably
+ // DN would not be calling this callback if the pojo was not persistent.
+
+ adapter = frameworkSynchronizer.lazilyLoaded(pojo, FrameworkSynchronizer.CalledFrom.EVENT_PREDIRTY);
+ if (adapter == null) {
+ throw new RuntimeException(
+ "DN could not find objectId for pojo (unexpected) and so could not map into Isis; pojo=["
+ + pojo + "]");
+ }
+ }
+ if (adapter.isTransient()) {
+ // seen this happen in the case when there's a 1<->m bidirectional collection, and we're
+ // attaching the child object, which is being persisted by DN as a result of persistence-by-reachability,
+ // and it "helpfully" sets up the parent attribute on the child, causing this callback to fire.
+ //
+ // however, at the same time, Isis has only queued up a CreateObjectCommand for the transient object, but it
+ // hasn't yet executed, so thinks that the adapter is still transient.
+ return;
+ }
+
+ CallbackFacet.Util.callCallback(adapter, UpdatingCallbackFacet.class);
+
+ final IsisTransaction transaction = getCurrentTransaction();
+ transaction.enlistUpdating(adapter);
+
+ ensureRootObject(pojo);
+ }
+ }, calledFrom);
+ }
+
+ private <T> T withLogging(Persistable pojo, Callable<T> runnable, FrameworkSynchronizer.CalledFrom calledFrom) {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(logString(calledFrom, LoggingLocation.ENTRY, pojo));
+ }
+ try {
+ return runnable.call();
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ } finally {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug(logString(calledFrom, LoggingLocation.EXIT, pojo));
+ }
+ }
}
+
+ private void withLogging(Persistable pojo, final Runnable runnable, FrameworkSynchronizer.CalledFrom calledFrom) {
+ withLogging(pojo, new Callable<Void>() {
+
+ @Override
+ public Void call() throws Exception {
+ runnable.run();
+ return null;
+ }
+
+ }, calledFrom);
+ }
+
+ private String logString(FrameworkSynchronizer.CalledFrom calledFrom, LoggingLocation location, Persistable pojo) {
+ final ObjectAdapter adapter = 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;
+ }
+
+
public void ensureRootObject(final Persistable pojo) {
frameworkSynchronizer.ensureRootObject(pojo);
}
[28/34] isis git commit: ISIS-1194: inlining postStoreProcessingFor
from FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining postStoreProcessingFor from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/6748065c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/6748065c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/6748065c
Branch: refs/heads/ISIS-1194
Commit: 6748065c0ad89c518285881c5c3b84ad36b4b945
Parents: 195de3d
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:47:28 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:47:28 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 48 -----------------
.../system/persistence/PersistenceSession.java | 55 +++++++++++++++++++-
2 files changed, 53 insertions(+), 50 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/6748065c/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 0340ca0..12ce154 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
@@ -21,8 +21,6 @@ package org.apache.isis.core.runtime.system.persistence;
import java.text.MessageFormat;
import java.util.concurrent.Callable;
-import javax.jdo.JDOHelper;
-
import org.datanucleus.enhancement.Persistable;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,10 +35,8 @@ import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.UpdatedCallbackFacet;
import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
@@ -177,50 +173,6 @@ public class FrameworkSynchronizer {
}, calledFrom);
}
- /**
- * Called either when an entity is initially persisted, or when an entity is updated; fires the appropriate lifecycle callback
- *
- * <p>
- * The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
- * to determine which callback to fire.
- */
- public void postStoreProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- ensureRootObject(pojo);
-
- // assert is persistent
- if(!pojo.dnIsPersistent()) {
- throw new IllegalStateException("Pojo JDO state is not persistent! pojo dnOid: " + JDOHelper.getObjectId(pojo));
- }
-
- final ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
- final RootOid isisOid = (RootOid) adapter.getOid();
-
-
- if (isisOid.isTransient()) {
- // persisting
- final RootOid persistentOid = persistenceSession.createPersistentOrViewModelOid(pojo);
-
- persistenceSession.remapAsPersistent(adapter, persistentOid);
-
- CallbackFacet.Util.callCallback(adapter, PersistedCallbackFacet.class);
-
- final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
- transaction.enlistCreated(adapter);
- } else {
- // updating;
- // the callback and transaction.enlist are done in the preDirty callback
- // (can't be done here, as the enlist requires to capture the 'before' values)
- CallbackFacet.Util.callCallback(adapter, UpdatedCallbackFacet.class);
- }
-
- Version versionIfAny = getVersionIfAny(pojo);
- adapter.setVersion(versionIfAny);
- }
- }, calledFrom);
- }
http://git-wip-us.apache.org/repos/asf/isis/blob/6748065c/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 24f2adb..d1f3b31 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
@@ -27,6 +27,7 @@ import java.util.concurrent.Callable;
import javax.jdo.FetchGroup;
import javax.jdo.FetchPlan;
+import javax.jdo.JDOHelper;
import javax.jdo.PersistenceManager;
import com.google.common.collect.Lists;
@@ -54,8 +55,11 @@ import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
+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.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.services.ServiceUtil;
@@ -765,7 +769,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return lazilyLoaded(persistenceCapable, FrameworkSynchronizer.CalledFrom.OS_LAZILYLOADED);
}
- public ObjectAdapter lazilyLoaded(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
+ private ObjectAdapter lazilyLoaded(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
return withLogging(pojo, new Callable<ObjectAdapter>() {
@Override
public ObjectAdapter call() {
@@ -1226,10 +1230,57 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
frameworkSynchronizer.preStoreProcessingFor(pojo, calledFrom);
}
+ /**
+ * Called either when an entity is initially persisted, or when an entity is updated;
+ * fires the appropriate lifecycle callback
+ *
+ * <p>
+ * The implementation therefore uses Isis' {@link org.apache.isis.core.metamodel.adapter.oid.Oid#isTransient() oid}
+ * to determine which callback to fire.
+ */
public void postStoreProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.postStoreProcessingFor(pojo, calledFrom);
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ ensureRootObject(pojo);
+
+ // assert is persistent
+ if (!pojo.dnIsPersistent()) {
+ throw new IllegalStateException(
+ "Pojo JDO state is not persistent! pojo dnOid: " + JDOHelper.getObjectId(pojo));
+ }
+
+ final ObjectAdapter adapter = getAdapterFor(pojo);
+ final RootOid isisOid = (RootOid) adapter.getOid();
+
+ if (isisOid.isTransient()) {
+ // persisting
+ final RootOid persistentOid = createPersistentOrViewModelOid(pojo);
+
+ remapAsPersistent(adapter, persistentOid);
+
+ CallbackFacet.Util.callCallback(adapter, PersistedCallbackFacet.class);
+
+ final IsisTransaction transaction = getCurrentTransaction();
+ transaction.enlistCreated(adapter);
+ } else {
+ // updating;
+ // the callback and transaction.enlist are done in the preDirty callback
+ // (can't be done here, as the enlist requires to capture the 'before' values)
+ CallbackFacet.Util.callCallback(adapter, UpdatedCallbackFacet.class);
+ }
+
+ Version versionIfAny = getVersionIfAny(pojo);
+ adapter.setVersion(versionIfAny);
+ }
+ }, calledFrom);
}
+ private Version getVersionIfAny(final Persistable pojo) {
+ return Utils.getVersionIfAny(pojo, authenticationSession);
+ }
+
+
public void preDirtyProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
[33/34] isis git commit: ISIS-1194: passing PersistenceSession
through to PersistenceQueryProcessor implementations
Posted by da...@apache.org.
ISIS-1194: passing PersistenceSession through to PersistenceQueryProcessor implementations
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/75dc6301
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/75dc6301
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/75dc6301
Branch: refs/heads/ISIS-1194
Commit: 75dc6301aef2e8a11a1f7be8c44548a0feb195bc
Parents: be852c9
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 17:00:45 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 17:00:45 2015 +0100
----------------------------------------------------------------------
.../system/persistence/PersistenceSession.java | 8 ++---
...rsistenceQueryFindAllInstancesProcessor.java | 10 +++---
...tenceQueryFindUsingApplibQueryProcessor.java | 12 +++++---
.../PersistenceQueryProcessorAbstract.java | 32 +++++++-------------
4 files changed, 28 insertions(+), 34 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/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 80795e7..112bc3f 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
@@ -239,12 +239,12 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
persistenceQueryProcessorByClass.put(
PersistenceQueryFindAllInstances.class,
- new PersistenceQueryFindAllInstancesProcessor(
- persistenceManager, frameworkSynchronizer));
+ new PersistenceQueryFindAllInstancesProcessor(this,
+ persistenceManager));
persistenceQueryProcessorByClass.put(
PersistenceQueryFindUsingApplibQueryDefault.class,
- new PersistenceQueryFindUsingApplibQueryProcessor(
- persistenceManager, frameworkSynchronizer));
+ new PersistenceQueryFindUsingApplibQueryProcessor(this,
+ persistenceManager));
initServices();
http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
index 1b59683..bf10feb 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
@@ -29,14 +29,16 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindAllInstances;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryProcessorAbstract<PersistenceQueryFindAllInstances> {
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindAllInstancesProcessor.class);
- public PersistenceQueryFindAllInstancesProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
- super(persistenceManager);
+ public PersistenceQueryFindAllInstancesProcessor(
+ final PersistenceSession persistenceSession,
+ final PersistenceManager persistenceManager) {
+ super(persistenceSession, persistenceManager);
}
public List<ObjectAdapter> process(final PersistenceQueryFindAllInstances persistenceQuery) {
@@ -55,7 +57,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
try {
final List<?> pojos = (List<?>) jdoQuery.execute();
- return loadAdapters(specification, pojos);
+ return loadAdapters(pojos);
} finally {
jdoQuery.closeAll();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index afd04a6..65e7e1a 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -36,15 +36,17 @@ import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindUsingApplibQueryDefault;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
import org.apache.isis.objectstore.jdo.datanucleus.metamodel.JdoPropertyUtils;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQueryProcessorAbstract<PersistenceQueryFindUsingApplibQueryDefault> {
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindUsingApplibQueryProcessor.class);
- public PersistenceQueryFindUsingApplibQueryProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
- super(persistenceManager);
+ public PersistenceQueryFindUsingApplibQueryProcessor(
+ final PersistenceSession persistenceSession,
+ final PersistenceManager persistenceManager) {
+ super(persistenceSession, persistenceManager);
}
public List<ObjectAdapter> process(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
@@ -58,7 +60,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
results = getResults(persistenceQuery);
}
- return loadAdapters(objectSpec, results);
+ return loadAdapters(results);
}
// special case handling
@@ -99,7 +101,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
final QueryCardinality cardinality = persistenceQuery.getCardinality();
final ObjectSpecification objectSpec = persistenceQuery.getSpecification();
- final PersistenceManager persistenceManager = getPersistenceSession().getPersistenceManager();
+ final PersistenceManager persistenceManager = persistenceSession.getPersistenceManager();
final Class<?> cls = objectSpec.getCorrespondingClass();
final Query jdoQuery = persistenceManager.newNamedQuery(cls, queryName);
http://git-wip-us.apache.org/repos/asf/isis/blob/75dc6301/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index 05db979..f169a6b 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -31,9 +31,6 @@ import org.datanucleus.enhancement.Persistable;
import org.apache.isis.core.commons.ensure.Assert;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -42,9 +39,13 @@ import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleList
public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQuery>
implements PersistenceQueryProcessor<T> {
+ final PersistenceSession persistenceSession;
private final PersistenceManager persistenceManager;
- protected PersistenceQueryProcessorAbstract(final PersistenceManager persistenceManager) {
+ protected PersistenceQueryProcessorAbstract(
+ final PersistenceSession persistenceSession,
+ final PersistenceManager persistenceManager) {
+ this.persistenceSession = persistenceSession;
this.persistenceManager = persistenceManager;
}
@@ -60,7 +61,8 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
protected PersistenceManagerFactory getPersistenceManagerFactory() {
return getPersistenceManager().getPersistenceManagerFactory();
}
-
+
+ // TODO: unused?
protected TypeMetadata getTypeMetadata(final String classFullName) {
return getPersistenceManagerFactory().getMetadata(classFullName);
}
@@ -70,8 +72,7 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
* {@link IsisLifecycleListener#postLoad(InstanceLifecycleEvent) {
* to be called.
*/
- protected List<ObjectAdapter> loadAdapters(
- final ObjectSpecification specification, final List<?> pojos) {
+ protected List<ObjectAdapter> loadAdapters(final List<?> pojos) {
final List<ObjectAdapter> adapters = Lists.newArrayList();
for (final Object pojo : pojos) {
// ought not to be necessary, however for some queries it seems that the
@@ -79,11 +80,11 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
ObjectAdapter adapter;
if(pojo instanceof Persistable) {
// an entity
- getPersistenceSession().postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
- adapter = getAdapterManager().getAdapterFor(pojo);
+ persistenceSession.postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
+ adapter = persistenceSession.getAdapterFor(pojo);
} else {
// a value type
- adapter = getAdapterManager().adapterFor(pojo);
+ adapter = persistenceSession.adapterFor(pojo);
}
Assert.assertNotNull(adapter);
adapters.add(adapter);
@@ -91,16 +92,5 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
return adapters;
}
- // /////////////////////////////////////////////////////////////
- // Dependencies (from context)
- // /////////////////////////////////////////////////////////////
-
- protected PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession();
- }
-
- protected AdapterManager getAdapterManager() {
- return IsisContext.getPersistenceSession().getAdapterManager();
- }
}
[22/34] isis git commit: ISIS-1194: law of demeter for
FrameworkSynchronizer and TransactionManager - call PersistenceSession
instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for FrameworkSynchronizer and TransactionManager - 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/17cd7bc2
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/17cd7bc2
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/17cd7bc2
Branch: refs/heads/ISIS-1194
Commit: 17cd7bc2aa6eac117c0d38f771d22db832cc3c19
Parents: b208837
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:27:42 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:27:42 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 29 ++++----------------
.../system/persistence/PersistenceSession.java | 9 +++++-
2 files changed, 14 insertions(+), 24 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/17cd7bc2/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 ed51221..5a4e321 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
@@ -115,9 +115,9 @@ public class FrameworkSynchronizer {
if(ConcurrencyChecking.isCurrentlyEnabled()) {
LOG.info("concurrency conflict detected on " + thisOid + " (" + otherVersion + ")");
- final String currentUser = getAuthenticationSession().getUserName();
+ final String currentUser = authenticationSession.getUserName();
final ConcurrencyException abortCause = new ConcurrencyException(currentUser, thisOid, thisVersion, otherVersion);
- getCurrentTransaction().setAbortCause(abortCause);
+ persistenceSession.getCurrentTransaction().setAbortCause(abortCause);
} else {
LOG.warn("concurrency conflict detected but suppressed, on " + thisOid + " (" + otherVersion + ")");
@@ -208,7 +208,7 @@ public class FrameworkSynchronizer {
CallbackFacet.Util.callCallback(adapter, PersistedCallbackFacet.class);
- final IsisTransaction transaction = getCurrentTransaction();
+ final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
transaction.enlistCreated(adapter);
} else {
// updating;
@@ -253,7 +253,7 @@ public class FrameworkSynchronizer {
CallbackFacet.Util.callCallback(adapter, UpdatingCallbackFacet.class);
- final IsisTransaction transaction = getCurrentTransaction();
+ final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
transaction.enlistUpdating(adapter);
ensureRootObject(pojo);
@@ -283,7 +283,7 @@ public class FrameworkSynchronizer {
public void run() {
ObjectAdapter adapter = persistenceSession.adapterFor(pojo);
- final IsisTransaction transaction = getCurrentTransaction();
+ final IsisTransaction transaction = persistenceSession.getCurrentTransaction();
transaction.enlistDeleting(adapter);
CallbackFacet.Util.callCallback(adapter, RemovingCallbackFacet.class);
@@ -365,7 +365,7 @@ public class FrameworkSynchronizer {
}
private Version getVersionIfAny(final Persistable pojo) {
- return Utils.getVersionIfAny(pojo, getAuthenticationSession());
+ return Utils.getVersionIfAny(pojo, authenticationSession);
}
@SuppressWarnings("unused")
@@ -378,21 +378,4 @@ public class FrameworkSynchronizer {
}
-
- // /////////////////////////////////////////////////////////
- // Dependencies (from context)
- // /////////////////////////////////////////////////////////
-
- protected AuthenticationSession getAuthenticationSession() {
- return authenticationSession;
- }
-
- protected PersistenceSession getPersistenceSession() {
- return persistenceSession;
- }
-
- protected IsisTransaction getCurrentTransaction() {
- return persistenceSession.getTransactionManager().getTransaction();
- }
-
}
http://git-wip-us.apache.org/repos/asf/isis/blob/17cd7bc2/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 0ba7341..9e7baf1 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
@@ -1184,7 +1184,14 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
//endregion
-
+
+ //region > TransactionManager delegate methods
+ protected IsisTransaction getCurrentTransaction() {
+ return transactionManager.getTransaction();
+ }
+ //endregion
+
+
}
[19/34] isis git commit: ISIS-1194: law of demeter for
FrameworkSynchronizer and (JDO) PersistenceManager - call PersistenceSession
instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for FrameworkSynchronizer and (JDO) PersistenceManager - 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/b4f35e50
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b4f35e50
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b4f35e50
Branch: refs/heads/ISIS-1194
Commit: b4f35e50f9ac44862bdf142afc8bfdd9cd50d3f8
Parents: fa8d2de
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:11:13 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:11:13 2015 +0100
----------------------------------------------------------------------
.../core/runtime/system/persistence/FrameworkSynchronizer.java | 6 +-----
.../core/runtime/system/persistence/PersistenceSession.java | 6 ++++++
2 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b4f35e50/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 1c28b71..d7559ee 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
@@ -273,7 +273,7 @@ public class FrameworkSynchronizer {
return withLogging(pojo, new Callable<ObjectAdapter>() {
@Override
public ObjectAdapter call() {
- if(getJdoPersistenceManager().getObjectId(pojo) == null) {
+ if(getPersistenceSession().getJdoObjectId(pojo) == null) {
return null;
}
final RootOid oid = getPersistenceSession().getOidGenerator().createPersistentOrViewModelOid(pojo);
@@ -403,10 +403,6 @@ public class FrameworkSynchronizer {
return getPersistenceSession().getAdapterManager();
}
- protected PersistenceManager getJdoPersistenceManager() {
- return getPersistenceSession().getPersistenceManager();
- }
-
protected IsisTransaction getCurrentTransaction() {
return persistenceSession.getTransactionManager().getTransaction();
}
http://git-wip-us.apache.org/repos/asf/isis/blob/b4f35e50/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 22a54a3..e91f201 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
@@ -1146,6 +1146,12 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
//endregion
+ //region > jdoPersistenceManager delegate methods
+
+ public Object getJdoObjectId(Object pojo) {
+ return persistenceManager.getObjectId(pojo);
+ }
+ // endregion
}
[08/34] isis git commit: ISIS-1194: PersistenceSession: pass in
Variant param to the createInstance overloads (unused as of yet)
Posted by da...@apache.org.
ISIS-1194: PersistenceSession: pass in Variant param to the createInstance overloads (unused as of yet)
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/71dd91da
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/71dd91da
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/71dd91da
Branch: refs/heads/ISIS-1194
Commit: 71dd91da6955f21c0a9e8a1cfd6cfd3bba1680ac
Parents: c7424d5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:05:26 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:05:26 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/PersistenceSession.java | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/71dd91da/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 ca3de0d..419e6ae 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
@@ -387,11 +387,11 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
* {@link org.apache.isis.applib.DomainObjectContainer}.
*/
public ObjectAdapter createTransientInstance(final ObjectSpecification objectSpec) {
- return createInstance(objectSpec);
+ return createInstance(objectSpec, Variant.TRANSIENT);
}
public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
- return createInstance(objectSpec, memento);
+ return createInstance(objectSpec, Variant.VIEW_MODEL, memento);
}
private enum Variant {
@@ -399,7 +399,9 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
VIEW_MODEL
}
- private ObjectAdapter createInstance(final ObjectSpecification objectSpec) {
+ private ObjectAdapter createInstance(
+ final ObjectSpecification objectSpec,
+ final Variant variant) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating transient instance of " + objectSpec);
}
@@ -409,7 +411,10 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
- private ObjectAdapter createInstance(final ObjectSpecification objectSpec, final String memento) {
+ private ObjectAdapter createInstance(
+ final ObjectSpecification objectSpec,
+ final Variant variant,
+ final String memento) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating view model instance of " + objectSpec);
}
[10/34] isis git commit: ISIS-1194: PersistenceSession,
inlining createInstance.
Posted by da...@apache.org.
ISIS-1194: PersistenceSession, inlining createInstance.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4776d59e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4776d59e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4776d59e
Branch: refs/heads/ISIS-1194
Commit: 4776d59ec022d9626e9e5a4bcec4e7d0a50597c4
Parents: 16734b7
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:31:49 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:31:49 2015 +0100
----------------------------------------------------------------------
.../system/persistence/PersistenceSession.java | 16 +---------------
1 file changed, 1 insertion(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4776d59e/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 38e45c2..08b45f0 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
@@ -387,7 +387,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
* {@link org.apache.isis.applib.DomainObjectContainer}.
*/
public ObjectAdapter createTransientInstance(final ObjectSpecification objectSpec) {
- return createInstance(objectSpec, Variant.TRANSIENT);
+ return createInstance(objectSpec, Variant.TRANSIENT, null);
}
public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
@@ -401,20 +401,6 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
private ObjectAdapter createInstance(
final ObjectSpecification objectSpec,
- final Variant variant) {
- if (LOG.isDebugEnabled()) {
- LOG.debug("creating " + variant + " instance of " + objectSpec);
- }
- final Object pojo = instantiateAndInjectServices(objectSpec);
-
-
- final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
- return initializePropertiesAndDoCallback(adapter);
- }
-
-
- private ObjectAdapter createInstance(
- final ObjectSpecification objectSpec,
final Variant variant,
final String memento) {
if (LOG.isDebugEnabled()) {
[32/34] isis git commit: ISIS-1194: inlining postLoadProcessingFor
from FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining postLoadProcessingFor from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/be852c94
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/be852c94
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/be852c94
Branch: refs/heads/ISIS-1194
Commit: be852c94d745e517fc9feedb80fcac9e5be257ee
Parents: 9a72f3a
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:55:36 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:55:36 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 69 --------------------
.../system/persistence/PersistenceSession.java | 68 ++++++++++++++++++-
...rsistenceQueryFindAllInstancesProcessor.java | 2 +-
...tenceQueryFindUsingApplibQueryProcessor.java | 2 +-
.../PersistenceQueryProcessorAbstract.java | 7 +-
5 files changed, 69 insertions(+), 79 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/be852c94/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 ec2ce96..026796f 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
@@ -71,75 +71,6 @@ public class FrameworkSynchronizer {
}
- public void postLoadProcessingFor(final Persistable pojo, CalledFrom calledFrom) {
-
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- final Persistable pc = pojo;
-
- // need to do eagerly, because (if a viewModel then) a
- // viewModel's #viewModelMemento might need to use services
- persistenceSession.injectServicesInto(pojo);
-
- final Version datastoreVersion = getVersionIfAny(pc);
-
- final RootOid originalOid ;
- ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
- if(adapter != null) {
- ensureRootObject(pojo);
- originalOid = (RootOid) adapter.getOid();
-
- final Version originalVersion = adapter.getVersion();
-
- // sync the pojo held by the adapter with that just loaded
- 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)
- final RootOid thisOid = originalOid;
- final Version thisVersion = originalVersion;
- final Version otherVersion = datastoreVersion;
-
- if(thisVersion != null &&
- otherVersion != null &&
- thisVersion.different(otherVersion)) {
-
- if(ConcurrencyChecking.isCurrentlyEnabled()) {
- LOG.info("concurrency conflict detected on " + thisOid + " (" + otherVersion + ")");
- final String currentUser = authenticationSession.getUserName();
- final ConcurrencyException abortCause = new ConcurrencyException(currentUser, thisOid, thisVersion, otherVersion);
- persistenceSession.getCurrentTransaction().setAbortCause(abortCause);
-
- } else {
- LOG.warn("concurrency conflict detected but suppressed, on " + thisOid + " (" + otherVersion + ")");
- }
- }
- } else {
- originalOid = persistenceSession.createPersistentOrViewModelOid(pojo);
-
- // it appears to be possible that there is already an adapter for this Oid,
- // ie from ObjectStore#resolveImmediately()
- adapter = persistenceSession.getAdapterFor(originalOid);
- if(adapter != null) {
- persistenceSession.remapRecreatedPojo(adapter, pojo);
- } else {
- adapter = persistenceSession.mapRecreatedPojo(originalOid, pojo);
- CallbackFacet.Util.callCallback(adapter, LoadedCallbackFacet.class);
- }
- }
-
- adapter.setVersion(datastoreVersion);
- }
- }, calledFrom);
- }
-
-
-
-
-
-
-
// /////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/be852c94/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 d458e7b..80795e7 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
@@ -55,9 +55,11 @@ import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.adapter.version.ConcurrencyException;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.LoadedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
@@ -839,8 +841,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
// possibly redundant because also called in the post-load event
// listener, but (with JPA impl) found it was required if we were ever to
// get an eager left-outer-join as the result of a refresh (sounds possible).
- frameworkSynchronizer.postLoadProcessingFor((Persistable) domainObject,
- FrameworkSynchronizer.CalledFrom.OS_RESOLVE);
+ postLoadProcessingFor((Persistable) domainObject, FrameworkSynchronizer.CalledFrom.OS_RESOLVE);
}
//endregion
@@ -1254,7 +1255,68 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
public void postLoadProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.postLoadProcessingFor(pojo, calledFrom);
+
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ final Persistable pc = pojo;
+
+ // need to do eagerly, because (if a viewModel then) a
+ // viewModel's #viewModelMemento might need to use services
+ injectServicesInto(pojo);
+
+ final Version datastoreVersion = getVersionIfAny(pc);
+
+ final RootOid originalOid;
+ ObjectAdapter adapter = getAdapterFor(pojo);
+ if (adapter != null) {
+ ensureRootObject(pojo);
+ originalOid = (RootOid) adapter.getOid();
+
+ final Version originalVersion = adapter.getVersion();
+
+ // sync the pojo held by the adapter with that just loaded
+ 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)
+ final RootOid thisOid = originalOid;
+ final Version thisVersion = originalVersion;
+ final Version otherVersion = datastoreVersion;
+
+ if (thisVersion != null &&
+ otherVersion != null &&
+ thisVersion.different(otherVersion)) {
+
+ if (AdapterManager.ConcurrencyChecking.isCurrentlyEnabled()) {
+ LOG.info("concurrency conflict detected on " + thisOid + " (" + otherVersion + ")");
+ final String currentUser = authenticationSession.getUserName();
+ final ConcurrencyException abortCause = new ConcurrencyException(currentUser, thisOid,
+ thisVersion, otherVersion);
+ getCurrentTransaction().setAbortCause(abortCause);
+
+ } else {
+ LOG.warn("concurrency conflict detected but suppressed, on " + thisOid + " (" + otherVersion
+ + ")");
+ }
+ }
+ } else {
+ originalOid = createPersistentOrViewModelOid(pojo);
+
+ // it appears to be possible that there is already an adapter for this Oid,
+ // ie from ObjectStore#resolveImmediately()
+ adapter = getAdapterFor(originalOid);
+ if (adapter != null) {
+ remapRecreatedPojo(adapter, pojo);
+ } else {
+ adapter = mapRecreatedPojo(originalOid, pojo);
+ CallbackFacet.Util.callCallback(adapter, LoadedCallbackFacet.class);
+ }
+ }
+
+ adapter.setVersion(datastoreVersion);
+ }
+ }, calledFrom);
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/be852c94/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
index ec41444..1b59683 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
@@ -36,7 +36,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindAllInstancesProcessor.class);
public PersistenceQueryFindAllInstancesProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
- super(persistenceManager, frameworkSynchronizer);
+ super(persistenceManager);
}
public List<ObjectAdapter> process(final PersistenceQueryFindAllInstances persistenceQuery) {
http://git-wip-us.apache.org/repos/asf/isis/blob/be852c94/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index 1224afb..afd04a6 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -44,7 +44,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindUsingApplibQueryProcessor.class);
public PersistenceQueryFindUsingApplibQueryProcessor(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
- super(persistenceManager, frameworkSynchronizer);
+ super(persistenceManager);
}
public List<ObjectAdapter> process(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
http://git-wip-us.apache.org/repos/asf/isis/blob/be852c94/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index 00f68fb..05db979 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -34,7 +34,6 @@ import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -44,11 +43,9 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
implements PersistenceQueryProcessor<T> {
private final PersistenceManager persistenceManager;
- private final FrameworkSynchronizer frameworkSynchronizer;
- protected PersistenceQueryProcessorAbstract(final PersistenceManager persistenceManager, final FrameworkSynchronizer frameworkSynchronizer) {
+ protected PersistenceQueryProcessorAbstract(final PersistenceManager persistenceManager) {
this.persistenceManager = persistenceManager;
- this.frameworkSynchronizer = frameworkSynchronizer;
}
protected PersistenceManager getPersistenceManager() {
@@ -82,7 +79,7 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
ObjectAdapter adapter;
if(pojo instanceof Persistable) {
// an entity
- frameworkSynchronizer.postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
+ getPersistenceSession().postLoadProcessingFor((Persistable) pojo, CalledFrom.OS_QUERY);
adapter = getAdapterManager().getAdapterFor(pojo);
} else {
// a value type
[25/34] isis git commit: ISIS-1194: law of demeter for
IsisLifecycleListener2 and FrameworkSynchronizer .. call PersistenceSession
instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for IsisLifecycleListener2 and FrameworkSynchronizer .. 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/2fad9919
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/2fad9919
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/2fad9919
Branch: refs/heads/ISIS-1194
Commit: 2fad991903df02954a8e1ddf751f9631705d5aa0
Parents: ada327f
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:37:48 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:37:48 2015 +0100
----------------------------------------------------------------------
.../persistence/IsisLifecycleListener2.java | 19 ++++++-------
.../system/persistence/PersistenceSession.java | 29 ++++++++++++++++++++
.../persistence/IsisLifecycleListener.java | 2 +-
3 files changed, 38 insertions(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/2fad9919/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
index ae96f87..57defda 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
@@ -44,13 +44,10 @@ public class IsisLifecycleListener2
SuspendableListener {
private final PersistenceSession persistenceSession;
- private final FrameworkSynchronizer synchronizer;
public IsisLifecycleListener2(
- final PersistenceSession persistenceSession,
- final FrameworkSynchronizer synchronizer) {
+ final PersistenceSession persistenceSession) {
this.persistenceSession = persistenceSession;
- this.synchronizer = synchronizer;
}
@@ -79,7 +76,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.postLoadProcessingFor(pojo, CalledFrom.EVENT_LOAD);
+ persistenceSession.postLoadProcessingFor(pojo, CalledFrom.EVENT_LOAD);
}});
}
@@ -89,7 +86,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.preStoreProcessingFor(pojo, CalledFrom.EVENT_PRESTORE);
+ persistenceSession.preStoreProcessingFor(pojo, CalledFrom.EVENT_PRESTORE);
}});
}
@@ -100,7 +97,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.postStoreProcessingFor(pojo, CalledFrom.EVENT_POSTSTORE);
+ persistenceSession.postStoreProcessingFor(pojo, CalledFrom.EVENT_POSTSTORE);
}});
}
@@ -110,7 +107,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.preDirtyProcessingFor(pojo, CalledFrom.EVENT_PREDIRTY);
+ persistenceSession.preDirtyProcessingFor(pojo, CalledFrom.EVENT_PREDIRTY);
}});
}
@@ -132,7 +129,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.preDeleteProcessingFor(pojo, CalledFrom.EVENT_PREDELETE);
+ persistenceSession.preDeleteProcessingFor(pojo, CalledFrom.EVENT_PREDELETE);
}
});
}
@@ -143,7 +140,7 @@ public class IsisLifecycleListener2
@Override
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.postDeleteProcessingFor(pojo, CalledFrom.EVENT_POSTDELETE);
+ persistenceSession.postDeleteProcessingFor(pojo, CalledFrom.EVENT_POSTDELETE);
}
});
}
@@ -224,7 +221,7 @@ public class IsisLifecycleListener2
}
protected void doRun() {
final Persistable pojo = Utils.persistenceCapableFor(event);
- synchronizer.ensureRootObject(pojo);
+ persistenceSession.ensureRootObject(pojo);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2fad9919/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 f5aded2..bc559fc 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
@@ -1191,6 +1191,35 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
//endregion
+ //region > FrameworkSynchronizer delegate methods
+
+ public void postDeleteProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.postDeleteProcessingFor(pojo, calledFrom);
+ }
+
+ public void preDeleteProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.preDeleteProcessingFor(pojo, calledFrom);
+ }
+
+ public void postLoadProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.postLoadProcessingFor(pojo, calledFrom);
+ }
+
+ public void preStoreProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.preStoreProcessingFor(pojo, calledFrom);
+ }
+
+ public void postStoreProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.postStoreProcessingFor(pojo, calledFrom);
+ }
+
+ public void preDirtyProcessingFor(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
+ frameworkSynchronizer.preDirtyProcessingFor(pojo, calledFrom);
+ }
+ public void ensureRootObject(final Persistable pojo) {
+ frameworkSynchronizer.ensureRootObject(pojo);
+ }
+ //endregion
}
http://git-wip-us.apache.org/repos/asf/isis/blob/2fad9919/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
index f138725..e25ecf5 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
@@ -36,6 +36,6 @@ public class IsisLifecycleListener extends IsisLifecycleListener2 {
public IsisLifecycleListener(
final PersistenceSession persistenceSession,
final FrameworkSynchronizer synchronizer) {
- super(persistenceSession, synchronizer);
+ super(persistenceSession);
}
}
[21/34] isis git commit: ISIS-1194: law of demeter for
FrameworkSynchronizer and ServicesInjector - call PersistenceSession instead.
Posted by da...@apache.org.
ISIS-1194: law of demeter for FrameworkSynchronizer and ServicesInjector - 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/b2088371
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/b2088371
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/b2088371
Branch: refs/heads/ISIS-1194
Commit: b20883719c4a23bb24b44bf77ba2dcd853c7b0f3
Parents: 1933082
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:24:12 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:24:12 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/FrameworkSynchronizer.java | 6 +-----
.../core/runtime/system/persistence/PersistenceSession.java | 8 ++++++++
2 files changed, 9 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/b2088371/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 06bcc04..ed51221 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
@@ -42,7 +42,6 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallback
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
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.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
@@ -51,7 +50,6 @@ public class FrameworkSynchronizer {
private final PersistenceSession persistenceSession;
private final AuthenticationSession authenticationSession;
- private ServicesInjectorSpi servicesInjector;
public FrameworkSynchronizer(
final PersistenceSession persistenceSession,
@@ -59,8 +57,6 @@ public class FrameworkSynchronizer {
this.persistenceSession = persistenceSession;
this.authenticationSession = authenticationSession;
- this.servicesInjector = getPersistenceSession().getServicesInjector();
-
}
/**
@@ -92,7 +88,7 @@ public class FrameworkSynchronizer {
// need to do eagerly, because (if a viewModel then) a
// viewModel's #viewModelMemento might need to use services
- servicesInjector.injectServicesInto(pojo);
+ persistenceSession.injectServicesInto(pojo);
final Version datastoreVersion = getVersionIfAny(pc);
http://git-wip-us.apache.org/repos/asf/isis/blob/b2088371/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 dbd9696..0ba7341 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
@@ -1177,6 +1177,14 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
// endregion
+ //region > ServicesInjector delegate methods
+
+ public void injectServicesInto(final Object domainObject) {
+ servicesInjector.injectInto(domainObject);
+ }
+
+ //endregion
+
}
[23/34] isis git commit: ISIS-1194: removing IsisLifecycleListener2's
dependency on IsisContext (by passing in PersistenceSession through
constructor).
Posted by da...@apache.org.
ISIS-1194: removing IsisLifecycleListener2's dependency on IsisContext (by passing in PersistenceSession through constructor).
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/1864641b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/1864641b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/1864641b
Branch: refs/heads/ISIS-1194
Commit: 1864641b147a3d9a3f5c277f4bdb5f94255fa41c
Parents: 17cd7bc
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:30:20 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:30:20 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/IsisLifecycleListener2.java | 9 ++++++---
.../core/runtime/system/persistence/PersistenceSession.java | 2 +-
.../jdo/datanucleus/persistence/IsisLifecycleListener.java | 7 +++++--
3 files changed, 12 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/1864641b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
index 5477e90..ffb4bcb 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/IsisLifecycleListener2.java
@@ -36,7 +36,6 @@ import org.datanucleus.enhancement.Persistable;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer.CalledFrom;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
@@ -45,9 +44,13 @@ public class IsisLifecycleListener2
DetachLifecycleListener, DirtyLifecycleListener, LoadLifecycleListener, StoreLifecycleListener,
SuspendableListener {
+ private final PersistenceSession persistenceSession;
private final FrameworkSynchronizer synchronizer;
- public IsisLifecycleListener2(FrameworkSynchronizer synchronizer) {
+ public IsisLifecycleListener2(
+ final PersistenceSession persistenceSession,
+ final FrameworkSynchronizer synchronizer) {
+ this.persistenceSession = persistenceSession;
this.synchronizer = synchronizer;
}
@@ -279,6 +282,6 @@ public class IsisLifecycleListener2
// /////////////////////////////////////////////////////////
protected AdapterManager getAdapterManager() {
- return IsisContext.getPersistenceSession().getAdapterManager();
+ return persistenceSession.getAdapterManager();
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/1864641b/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 9e7baf1..f5aded2 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
@@ -224,7 +224,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
persistenceManager = applicationComponents.getPersistenceManagerFactory().getPersistenceManager();
- final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(frameworkSynchronizer);
+ final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(this, frameworkSynchronizer);
persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
persistenceQueryProcessorByClass.put(
http://git-wip-us.apache.org/repos/asf/isis/blob/1864641b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
index fb442fd..f138725 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
@@ -23,6 +23,7 @@ import org.slf4j.LoggerFactory;
import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
import org.apache.isis.core.runtime.system.persistence.IsisLifecycleListener2;
+import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
/**
* @deprecated - retained only for backward compatibility of logging (in logging.properties file).
@@ -32,7 +33,9 @@ public class IsisLifecycleListener extends IsisLifecycleListener2 {
public static final Logger LOG = LoggerFactory.getLogger(IsisLifecycleListener.class);
- public IsisLifecycleListener(final FrameworkSynchronizer synchronizer) {
- super(synchronizer);
+ public IsisLifecycleListener(
+ final PersistenceSession persistenceSession,
+ final FrameworkSynchronizer synchronizer) {
+ super(persistenceSession, synchronizer);
}
}
[34/34] isis git commit: ISIS-1194: law of demeter for
PersistenceQueryProcessor impls and JDO PersistenceManager ... moved to
PersistenceSession
Posted by da...@apache.org.
ISIS-1194: law of demeter for PersistenceQueryProcessor impls and JDO PersistenceManager ... moved to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/4616a373
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/4616a373
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/4616a373
Branch: refs/heads/ISIS-1194
Commit: 4616a3739db4e30a7cc9f746dae14e2cbfd18877
Parents: 75dc630
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 17:11:49 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 17:11:49 2015 +0100
----------------------------------------------------------------------
.../system/persistence/PersistenceSession.java | 20 ++++++++++++----
.../persistence/IsisLifecycleListener.java | 5 +---
...rsistenceQueryFindAllInstancesProcessor.java | 9 +++-----
...tenceQueryFindUsingApplibQueryProcessor.java | 15 +++++-------
.../PersistenceQueryProcessorAbstract.java | 24 ++------------------
5 files changed, 27 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/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 112bc3f..b093812 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
@@ -234,17 +234,15 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
persistenceManager = applicationComponents.getPersistenceManagerFactory().getPersistenceManager();
- final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(this, frameworkSynchronizer);
+ final IsisLifecycleListener2 isisLifecycleListener = new IsisLifecycleListener2(this);
persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
persistenceQueryProcessorByClass.put(
PersistenceQueryFindAllInstances.class,
- new PersistenceQueryFindAllInstancesProcessor(this,
- persistenceManager));
+ new PersistenceQueryFindAllInstancesProcessor(this));
persistenceQueryProcessorByClass.put(
PersistenceQueryFindUsingApplibQueryDefault.class,
- new PersistenceQueryFindUsingApplibQueryProcessor(this,
- persistenceManager));
+ new PersistenceQueryFindUsingApplibQueryProcessor(this));
initServices();
@@ -1175,6 +1173,18 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
public Object getJdoObjectId(Object pojo) {
return persistenceManager.getObjectId(pojo);
}
+
+ public javax.jdo.Query newJdoQuery(Class<?> cls) {
+ return persistenceManager.newQuery(cls);
+ }
+
+ public javax.jdo.Query newJdoNamedQuery (Class<?> cls, String queryName) {
+ return persistenceManager.newNamedQuery(cls, queryName);
+ }
+
+ public javax.jdo.Query newJdoQuery (Class<?> cls, String filter) {
+ return persistenceManager.newQuery(cls, filter);
+ }
// endregion
//region > AdapterManager delegate methods
http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
index e25ecf5..3d71527 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/IsisLifecycleListener.java
@@ -21,7 +21,6 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.isis.core.runtime.system.persistence.FrameworkSynchronizer;
import org.apache.isis.core.runtime.system.persistence.IsisLifecycleListener2;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
@@ -33,9 +32,7 @@ public class IsisLifecycleListener extends IsisLifecycleListener2 {
public static final Logger LOG = LoggerFactory.getLogger(IsisLifecycleListener.class);
- public IsisLifecycleListener(
- final PersistenceSession persistenceSession,
- final FrameworkSynchronizer synchronizer) {
+ public IsisLifecycleListener(final PersistenceSession persistenceSession) {
super(persistenceSession);
}
}
http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
index bf10feb..c9830e6 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindAllInstancesProcessor.java
@@ -20,7 +20,6 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence.queries;
import java.util.List;
-import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import org.slf4j.Logger;
@@ -35,10 +34,8 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindAllInstancesProcessor.class);
- public PersistenceQueryFindAllInstancesProcessor(
- final PersistenceSession persistenceSession,
- final PersistenceManager persistenceManager) {
- super(persistenceSession, persistenceManager);
+ public PersistenceQueryFindAllInstancesProcessor(final PersistenceSession persistenceSession) {
+ super(persistenceSession);
}
public List<ObjectAdapter> process(final PersistenceQueryFindAllInstances persistenceQuery) {
@@ -46,7 +43,7 @@ public class PersistenceQueryFindAllInstancesProcessor extends PersistenceQueryP
final ObjectSpecification specification = persistenceQuery.getSpecification();
Class<?> cls = specification.getCorrespondingClass();
- final Query jdoQuery = getPersistenceManager().newQuery(cls);
+ final Query jdoQuery = persistenceSession.newJdoQuery(cls);
// http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
index 65e7e1a..d5a65b7 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryFindUsingApplibQueryProcessor.java
@@ -22,7 +22,6 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import com.google.common.collect.Lists;
@@ -43,10 +42,8 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
private static final Logger LOG = LoggerFactory.getLogger(PersistenceQueryFindUsingApplibQueryProcessor.class);
- public PersistenceQueryFindUsingApplibQueryProcessor(
- final PersistenceSession persistenceSession,
- final PersistenceManager persistenceManager) {
- super(persistenceSession, persistenceManager);
+ public PersistenceQueryFindUsingApplibQueryProcessor(final PersistenceSession persistenceSession) {
+ super(persistenceSession);
}
public List<ObjectAdapter> process(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
@@ -77,7 +74,7 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
final OneToOneAssociation pkOtoa = JdoPropertyUtils.getPrimaryKeyPropertyFor(objectSpec);
final String pkOtoaId = pkOtoa.getId();
final String filter = pkOtoaId + "==" + map.get(pkOtoaId);
- final Query jdoQuery = getPersistenceManager().newQuery(cls, filter);
+ final Query jdoQuery = persistenceSession.newJdoQuery(cls, filter);
// http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
@@ -97,13 +94,13 @@ public class PersistenceQueryFindUsingApplibQueryProcessor extends PersistenceQu
private List<?> getResults(final PersistenceQueryFindUsingApplibQueryDefault persistenceQuery) {
final String queryName = persistenceQuery.getQueryName();
- final Map<String, Object> argumentsByParameterName = unwrap(persistenceQuery.getArgumentsAdaptersByParameterName());
+ final Map<String, Object> argumentsByParameterName = unwrap(
+ persistenceQuery.getArgumentsAdaptersByParameterName());
final QueryCardinality cardinality = persistenceQuery.getCardinality();
final ObjectSpecification objectSpec = persistenceQuery.getSpecification();
- final PersistenceManager persistenceManager = persistenceSession.getPersistenceManager();
final Class<?> cls = objectSpec.getCorrespondingClass();
- final Query jdoQuery = persistenceManager.newNamedQuery(cls, queryName);
+ final Query jdoQuery = persistenceSession.newJdoNamedQuery(cls, queryName);
// http://www.datanucleus.org/servlet/jira/browse/NUCCORE-1103
jdoQuery.addExtension("datanucleus.multivaluedFetch", "none");
http://git-wip-us.apache.org/repos/asf/isis/blob/4616a373/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
index f169a6b..c144e11 100644
--- a/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
+++ b/core/runtime/src/main/java/org/apache/isis/objectstore/jdo/datanucleus/persistence/queries/PersistenceQueryProcessorAbstract.java
@@ -20,10 +20,7 @@ package org.apache.isis.objectstore.jdo.datanucleus.persistence.queries;
import java.util.List;
-import javax.jdo.PersistenceManager;
-import javax.jdo.PersistenceManagerFactory;
import javax.jdo.listener.InstanceLifecycleEvent;
-import javax.jdo.metadata.TypeMetadata;
import com.google.common.collect.Lists;
@@ -40,33 +37,16 @@ public abstract class PersistenceQueryProcessorAbstract<T extends PersistenceQue
implements PersistenceQueryProcessor<T> {
final PersistenceSession persistenceSession;
- private final PersistenceManager persistenceManager;
- protected PersistenceQueryProcessorAbstract(
- final PersistenceSession persistenceSession,
- final PersistenceManager persistenceManager) {
+ protected PersistenceQueryProcessorAbstract(final PersistenceSession persistenceSession) {
this.persistenceSession = persistenceSession;
- this.persistenceManager = persistenceManager;
}
- protected PersistenceManager getPersistenceManager() {
- return persistenceManager;
- }
-
-
+
// /////////////////////////////////////////////////////////////
// helpers for subclasses
// /////////////////////////////////////////////////////////////
- protected PersistenceManagerFactory getPersistenceManagerFactory() {
- return getPersistenceManager().getPersistenceManagerFactory();
- }
-
- // TODO: unused?
- protected TypeMetadata getTypeMetadata(final String classFullName) {
- return getPersistenceManagerFactory().getMetadata(classFullName);
- }
-
/**
* Traversing the provided list causes (or should cause) the
* {@link IsisLifecycleListener#postLoad(InstanceLifecycleEvent) {
[16/34] isis git commit: ISIS-1194: DataNucleusApplicationComponents:
removed createPersistenceManager,
instead inlined into PersistenceSession (only caller).
Posted by da...@apache.org.
ISIS-1194: DataNucleusApplicationComponents: removed createPersistenceManager, instead inlined into PersistenceSession (only caller).
... also removed the FrameworkSynchronizer form DNAC, unused.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/ecd2b75d
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/ecd2b75d
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/ecd2b75d
Branch: refs/heads/ISIS-1194
Commit: ecd2b75db49527e1ef4e3ebfeb3004883bc7f764
Parents: c2afada
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:58:41 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:58:41 2015 +0100
----------------------------------------------------------------------
.../persistence/DataNucleusApplicationComponents.java | 12 ------------
.../system/persistence/FrameworkSynchronizer.java | 2 +-
.../runtime/system/persistence/PersistenceSession.java | 2 +-
3 files changed, 2 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/ecd2b75d/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index 3988567..a702ee5 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -23,7 +23,6 @@ import java.util.Properties;
import java.util.Set;
import javax.jdo.JDOHelper;
-import javax.jdo.PersistenceManager;
import javax.jdo.PersistenceManagerFactory;
import com.google.common.base.Joiner;
@@ -44,7 +43,6 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.objectstore.jdo.datanucleus.CreateSchemaObjectFromClassMetadata;
import org.apache.isis.objectstore.jdo.datanucleus.DataNucleusPropertiesAware;
-import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
import org.apache.isis.objectstore.jdo.metamodel.facets.object.query.JdoNamedQuery;
import org.apache.isis.objectstore.jdo.metamodel.facets.object.query.JdoQueryFacet;
@@ -85,8 +83,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
private final IsisConfiguration jdoObjectstoreConfig;
private final Map<String, String> datanucleusProps;
- private final FrameworkSynchronizer synchronizer;
-
private Map<String, JdoNamedQuery> namedQueryByName;
private PersistenceManagerFactory persistenceManagerFactory;
@@ -99,8 +95,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
this.persistableClassNameSet = persistableClassNameSet;
this.jdoObjectstoreConfig = jdoObjectstoreConfig;
- this.synchronizer = new FrameworkSynchronizer();
-
initialize();
// for JRebel plugin
@@ -271,12 +265,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
///////////////////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////////////////
-
- public PersistenceManager createPersistenceManager() {
- PersistenceManager persistenceManager = persistenceManagerFactory.getPersistenceManager();
-
- return persistenceManager;
- }
public JdoNamedQuery getNamedQuery(String queryName) {
return namedQueryByName.get(queryName);
http://git-wip-us.apache.org/repos/asf/isis/blob/ecd2b75d/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 242dc94..8c1695d 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
@@ -53,8 +53,8 @@ public class FrameworkSynchronizer {
private static final Logger LOG = LoggerFactory.getLogger(FrameworkSynchronizer.class);
public FrameworkSynchronizer() {
-
}
+
/**
* Categorises where called from.
*
http://git-wip-us.apache.org/repos/asf/isis/blob/ecd2b75d/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 7afc1dc..2fe4b3b 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
@@ -222,7 +222,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
adapterManager.open();
- persistenceManager = applicationComponents.createPersistenceManager();
+ persistenceManager = applicationComponents.getPersistenceManagerFactory().getPersistenceManager();
final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(frameworkSynchronizer);
persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
[29/34] isis git commit: ISIS-1194: inlining postDeleteProcessingFor
from FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining postDeleteProcessingFor from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/5d69af1b
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/5d69af1b
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/5d69af1b
Branch: refs/heads/ISIS-1194
Commit: 5d69af1b1bd26961c78b03658b3403871f71b926
Parents: 6748065
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:49:03 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:49:03 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 20 --------------------
.../system/persistence/PersistenceSession.java | 19 ++++++++++++++++++-
2 files changed, 18 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/5d69af1b/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 12ce154..b49a556 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
@@ -192,27 +192,7 @@ public class FrameworkSynchronizer {
}
- public void postDeleteProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
- withLogging(pojo, new Runnable() {
- @Override
- public void run() {
- ObjectAdapter adapter = persistenceSession.getAdapterFor(pojo);
- if (adapter == null) {
- return;
- }
-
- // previously we called the removed callback (if any).
- // however, this is almost certainly incorrect, because DN will not allow us
- // to "touch" the pojo once deleted.
- //
- // CallbackFacet.Util.callCallback(adapter, RemovedCallbackFacet.class);
-
- }
- }, calledFrom);
-
- }
-
// /////////////////////////////////////////////////////////
// Helpers
// /////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/5d69af1b/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 d1f3b31..d408fb9 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
@@ -1215,9 +1215,26 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
//region > FrameworkSynchronizer delegate methods
public void postDeleteProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
- frameworkSynchronizer.postDeleteProcessingFor(pojo, calledFrom);
+ withLogging(pojo, new Runnable() {
+ @Override
+ public void run() {
+ ObjectAdapter adapter = getAdapterFor(pojo);
+ if (adapter == null) {
+ return;
+ }
+
+ // previously we called the removed callback (if any).
+ // however, this is almost certainly incorrect, because DN will not allow us
+ // to "touch" the pojo once deleted.
+ //
+ // CallbackFacet.Util.callCallback(adapter, RemovedCallbackFacet.class);
+
+ }
+ }, calledFrom);
+
}
+
public void preDeleteProcessingFor(final Persistable pojo, final FrameworkSynchronizer.CalledFrom calledFrom) {
frameworkSynchronizer.preDeleteProcessingFor(pojo, calledFrom);
}
[27/34] isis git commit: ISIS-1194: inlining lazilyLoaded from
FrameworkSynchronizer to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: inlining lazilyLoaded from FrameworkSynchronizer to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/195de3d1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/195de3d1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/195de3d1
Branch: refs/heads/ISIS-1194
Commit: 195de3d181a833f783d268f8a0b44fa5186ecdc1
Parents: fe62380
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:43:13 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:43:13 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 14 --------------
.../system/persistence/PersistenceSession.java | 19 +++++++++++++++++--
2 files changed, 17 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/195de3d1/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 51aff7e..0340ca0 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
@@ -224,21 +224,7 @@ public class FrameworkSynchronizer {
- public ObjectAdapter lazilyLoaded(final Persistable pojo, CalledFrom calledFrom) {
- return withLogging(pojo, new Callable<ObjectAdapter>() {
- @Override
- public ObjectAdapter call() {
- if(persistenceSession.getJdoObjectId(pojo) == null) {
- return null;
- }
- final RootOid oid = persistenceSession.createPersistentOrViewModelOid(pojo);
- final ObjectAdapter adapter = persistenceSession.mapRecreatedPojo(oid, pojo);
- return adapter;
- }
- }, calledFrom);
- }
-
public void preDeleteProcessingFor(final Persistable pojo, final CalledFrom calledFrom) {
withLogging(pojo, new Runnable() {
@Override
http://git-wip-us.apache.org/repos/asf/isis/blob/195de3d1/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 a4081a1..24f2adb 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
@@ -762,9 +762,24 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return null;
}
final Persistable persistenceCapable = (Persistable) pojo;
- return frameworkSynchronizer.lazilyLoaded(persistenceCapable, FrameworkSynchronizer.CalledFrom.OS_LAZILYLOADED);
+ return lazilyLoaded(persistenceCapable, FrameworkSynchronizer.CalledFrom.OS_LAZILYLOADED);
}
+ public ObjectAdapter lazilyLoaded(final Persistable pojo, FrameworkSynchronizer.CalledFrom calledFrom) {
+ return withLogging(pojo, new Callable<ObjectAdapter>() {
+ @Override
+ public ObjectAdapter call() {
+ if (getJdoObjectId(pojo) == null) {
+ return null;
+ }
+ final RootOid oid = createPersistentOrViewModelOid(pojo);
+ final ObjectAdapter adapter = mapRecreatedPojo(oid, pojo);
+ return adapter;
+ }
+ }, calledFrom);
+ }
+
+
//endregion
//region > refreshRootInTransaction, refreshRoot
@@ -1228,7 +1243,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
// it seems reasonable in this case to simply map into Isis here ("just-in-time"); presumably
// DN would not be calling this callback if the pojo was not persistent.
- adapter = frameworkSynchronizer.lazilyLoaded(pojo, FrameworkSynchronizer.CalledFrom.EVENT_PREDIRTY);
+ adapter = lazilyLoaded(pojo, FrameworkSynchronizer.CalledFrom.EVENT_PREDIRTY);
if (adapter == null) {
throw new RuntimeException(
"DN could not find objectId for pojo (unexpected) and so could not map into Isis; pojo=["
[13/34] isis git commit: ISIS-1194: PersistenceSession instantiates
its own FrameworkSynchronizer rather than obtain from
DataNucleusApplicationComponents
Posted by da...@apache.org.
ISIS-1194: PersistenceSession instantiates its own FrameworkSynchronizer rather than obtain from DataNucleusApplicationComponents
... safe to do because the FrameworkSynchronizer (currently) has no state.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/51fc96f1
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/51fc96f1
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/51fc96f1
Branch: refs/heads/ISIS-1194
Commit: 51fc96f1c484c4d52a3b24bd0f5da850de3c2dfc
Parents: 4a5a2ee
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:51:19 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:51:19 2015 +0100
----------------------------------------------------------------------
.../system/persistence/DataNucleusApplicationComponents.java | 8 --------
.../runtime/system/persistence/FrameworkSynchronizer.java | 3 +++
.../core/runtime/system/persistence/PersistenceSession.java | 4 ++--
3 files changed, 5 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/51fc96f1/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index 95e5c8c..8ade4f4 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -269,14 +269,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
}
- ///////////////////////////////////////////////////////////////////////////
- // FrameworkSynchronizer
- ///////////////////////////////////////////////////////////////////////////
-
- public FrameworkSynchronizer getFrameworkSynchronizer() {
- return synchronizer;
- }
-
///////////////////////////////////////////////////////////////////////////
//
http://git-wip-us.apache.org/repos/asf/isis/blob/51fc96f1/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 196b6b5..242dc94 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
@@ -52,6 +52,9 @@ public class FrameworkSynchronizer {
private static final Logger LOG = LoggerFactory.getLogger(FrameworkSynchronizer.class);
+ public FrameworkSynchronizer() {
+
+ }
/**
* Categorises where called from.
*
http://git-wip-us.apache.org/repos/asf/isis/blob/51fc96f1/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 9258a4c..4da705d 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
@@ -172,11 +172,11 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
this.servicesInjector = persistenceSessionFactory.getServicesInjector();
this.applicationComponents = persistenceSessionFactory.getApplicationComponents();
- this.frameworkSynchronizer = applicationComponents.getFrameworkSynchronizer();
// sub-components
- oidMarshaller = new OidMarshaller();
+ this.oidMarshaller = new OidMarshaller();
+ this.frameworkSynchronizer = new FrameworkSynchronizer();
this.objectFactory = new ObjectFactory(this, servicesInjector);
this.oidGenerator = new OidGenerator(this, specificationLoader);
[17/34] isis git commit: ISIS-1194: passing dependencies through to
FrameworkSynchronizer, so that it no longer needs to use IsisContext.
Posted by da...@apache.org.
ISIS-1194: passing dependencies through to FrameworkSynchronizer, so that it no longer needs to use IsisContext.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/06d685c4
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/06d685c4
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/06d685c4
Branch: refs/heads/ISIS-1194
Commit: 06d685c466d1e9053e304d22432a0af513bccd7b
Parents: ecd2b75
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 16:05:41 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 16:05:41 2015 +0100
----------------------------------------------------------------------
.../persistence/FrameworkSynchronizer.java | 41 +++++++++++++-------
.../system/persistence/OidGenerator.java | 6 +--
.../system/persistence/PersistenceSession.java | 2 +-
3 files changed, 30 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/06d685c4/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 8c1695d..65cfb68 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
@@ -44,17 +44,28 @@ import org.apache.isis.core.metamodel.facets.object.callbacks.PersistingCallback
import org.apache.isis.core.metamodel.facets.object.callbacks.RemovingCallbackFacet;
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.context.IsisContext;
import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
public class FrameworkSynchronizer {
private static final Logger LOG = LoggerFactory.getLogger(FrameworkSynchronizer.class);
- public FrameworkSynchronizer() {
+ private final PersistenceSession persistenceSession;
+ private final AuthenticationSession authenticationSession;
+ private ServicesInjectorSpi servicesInjector;
+
+ public FrameworkSynchronizer(
+ final PersistenceSession persistenceSession,
+ final AuthenticationSession authenticationSession) {
+ this.persistenceSession = persistenceSession;
+ this.authenticationSession = authenticationSession;
+
+ this.servicesInjector = getPersistenceSession().getServicesInjector();
+
}
-
+
/**
* Categorises where called from.
*
@@ -84,7 +95,7 @@ public class FrameworkSynchronizer {
// need to do eagerly, because (if a viewModel then) a
// viewModel's #viewModelMemento might need to use services
- getPersistenceSession().getServicesInjector().injectServicesInto(pojo);
+ servicesInjector.injectServicesInto(pojo);
final Version datastoreVersion = getVersionIfAny(pc);
@@ -381,28 +392,28 @@ public class FrameworkSynchronizer {
// Dependencies (from context)
// /////////////////////////////////////////////////////////
- protected AdapterManagerDefault getAdapterManager() {
- return getPersistenceSession().getAdapterManager();
- }
-
- protected OidGenerator getOidGenerator() {
- return getPersistenceSession().getOidGenerator();
+ protected AuthenticationSession getAuthenticationSession() {
+ return authenticationSession;
}
protected PersistenceSession getPersistenceSession() {
- return IsisContext.getPersistenceSession();
+ return persistenceSession;
}
- protected AuthenticationSession getAuthenticationSession() {
- return IsisContext.getAuthenticationSession();
+ protected AdapterManagerDefault getAdapterManager() {
+ return getPersistenceSession().getAdapterManager();
}
- protected IsisTransaction getCurrentTransaction() {
- return IsisContext.getCurrentTransaction();
+ protected OidGenerator getOidGenerator() {
+ return getPersistenceSession().getOidGenerator();
}
protected PersistenceManager getJdoPersistenceManager() {
return getPersistenceSession().getPersistenceManager();
}
+ protected IsisTransaction getCurrentTransaction() {
+ return persistenceSession.getTransactionManager().getTransaction();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/isis/blob/06d685c4/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
index 936b8f3..fb92048 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/OidGenerator.java
@@ -81,10 +81,11 @@ public class OidGenerator implements DebuggableWithTitle {
//endregion
- //region > helpers
+ //region > helpers: newIdentifier
enum Type {
- TRANSIENT, PERSISTENT
+ TRANSIENT,
+ PERSISTENT
}
private RootOid newIdentifier(final Object pojo, final OidGenerator.Type type) {
@@ -140,7 +141,6 @@ public class OidGenerator implements DebuggableWithTitle {
public void debugData(final DebugBuilder debug) {
}
-
@Override
public String debugTitle() {
return "OidGenerator";
http://git-wip-us.apache.org/repos/asf/isis/blob/06d685c4/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 2fe4b3b..e9ec445 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
@@ -177,7 +177,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
// sub-components
this.oidMarshaller = new OidMarshaller();
- this.frameworkSynchronizer = new FrameworkSynchronizer();
+ this.frameworkSynchronizer = new FrameworkSynchronizer(this, authenticationSession);
this.objectFactory = new ObjectFactory(this, servicesInjector);
this.oidGenerator = new OidGenerator(this, specificationLoader);
[15/34] isis git commit: ISIS-1194: PersistenceSession now attaches
the IsisLifecycleListener to the created PersistenceManager
Posted by da...@apache.org.
ISIS-1194: PersistenceSession now attaches the IsisLifecycleListener to the created PersistenceManager
... rather than have DataNucleusApplicationComponents do this. Safe to do because IsisLifecycleListener/FrameworkSynchronizer (as of yet) have no state.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/c2afada4
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/c2afada4
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/c2afada4
Branch: refs/heads/ISIS-1194
Commit: c2afada4940275915e813c4250d9f08dbe551665
Parents: cad8ca5
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:56:16 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:56:16 2015 +0100
----------------------------------------------------------------------
.../system/persistence/DataNucleusApplicationComponents.java | 2 --
.../isis/core/runtime/system/persistence/PersistenceSession.java | 4 ++++
2 files changed, 4 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/c2afada4/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
index e2616b8..3988567 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/DataNucleusApplicationComponents.java
@@ -275,8 +275,6 @@ public class DataNucleusApplicationComponents implements ApplicationScopedCompon
public PersistenceManager createPersistenceManager() {
PersistenceManager persistenceManager = persistenceManagerFactory.getPersistenceManager();
- final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(synchronizer);
- persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
return persistenceManager;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/c2afada4/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 4da705d..7afc1dc 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
@@ -84,6 +84,7 @@ import org.apache.isis.core.runtime.system.transaction.IsisTransaction;
import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
import org.apache.isis.core.runtime.system.transaction.TransactionalClosure;
import org.apache.isis.core.runtime.system.transaction.TransactionalClosureWithReturn;
+import org.apache.isis.objectstore.jdo.datanucleus.persistence.IsisLifecycleListener;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusCreateObjectCommand;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.commands.DataNucleusDeleteObjectCommand;
import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryFindAllInstancesProcessor;
@@ -223,6 +224,9 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
persistenceManager = applicationComponents.createPersistenceManager();
+ final IsisLifecycleListener isisLifecycleListener = new IsisLifecycleListener(frameworkSynchronizer);
+ persistenceManager.addInstanceLifecycleListener(isisLifecycleListener, (Class[])null);
+
persistenceQueryProcessorByClass.put(
PersistenceQueryFindAllInstances.class,
new PersistenceQueryFindAllInstancesProcessor(
[03/34] isis git commit: ISIS-1194: moving
ObjectSpecificationDefault#initialize to PersistenceSession
Posted by da...@apache.org.
ISIS-1194: moving ObjectSpecificationDefault#initialize to PersistenceSession
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/604acc35
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/604acc35
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/604acc35
Branch: refs/heads/ISIS-1194
Commit: 604acc3577c1d9c22d06882493df1a0ebd57bd9d
Parents: 2887446
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 14:40:22 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 14:42:31 2015 +0100
----------------------------------------------------------------------
.../metamodel/spec/ObjectSpecification.java | 10 ------
.../specimpl/ObjectSpecificationAbstract.java | 8 -----
.../dflt/ObjectSpecificationDefault.java | 33 +++-----------------
.../system/persistence/PersistenceSession.java | 22 +++++++++++--
4 files changed, 24 insertions(+), 49 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/604acc35/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
index e59ae4f..0aa950e 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ObjectSpecification.java
@@ -331,16 +331,6 @@ public interface ObjectSpecification extends Specification, ObjectActionContaine
*/
boolean isHidden();
- // //////////////////////////////////////////////////////////////
- // Creation
- // //////////////////////////////////////////////////////////////
-
-
- /**
- * REVIEW: should this behaviour move, eg onto ObjectAdapter?
- */
- ObjectAdapter initialize(ObjectAdapter object);
-
// //////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/604acc35/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index c980252..9422e67 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -1143,14 +1143,6 @@ public abstract class ObjectSpecificationAbstract extends FacetHolderImpl implem
return isValue() || isParented();
}
- // //////////////////////////////////////////////////////////////////////
- // misc
- // //////////////////////////////////////////////////////////////////////
-
- @Override
- public ObjectAdapter initialize(ObjectAdapter objectAdapter) {
- return objectAdapter;
- }
// //////////////////////////////////////////////////////////////////////
// toString
http://git-wip-us.apache.org/repos/asf/isis/blob/604acc35/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
index effa99a..3e87171 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/dflt/ObjectSpecificationDefault.java
@@ -19,22 +19,22 @@
package org.apache.isis.core.metamodel.specloader.specimpl.dflt;
-import java.lang.reflect.Array;
import java.lang.reflect.Method;
-import java.lang.reflect.Modifier;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
+
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
import org.apache.isis.applib.filter.Filter;
import org.apache.isis.applib.filter.Filters;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
-import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.lang.StringExtensions;
import org.apache.isis.core.commons.util.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -46,8 +46,6 @@ import org.apache.isis.core.metamodel.facets.all.i18n.NamedFacetTranslated;
import org.apache.isis.core.metamodel.facets.all.i18n.PluralFacetTranslated;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.core.metamodel.facets.all.named.NamedFacetInferred;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
-import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.icon.IconFacet;
import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
import org.apache.isis.core.metamodel.facets.object.plural.inferred.PluralFacetInferred;
@@ -57,10 +55,9 @@ import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.facets.object.wizard.WizardFacet;
import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
import org.apache.isis.core.metamodel.spec.ActionType;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
import org.apache.isis.core.metamodel.spec.ObjectSpecificationDependencies;
+import org.apache.isis.core.metamodel.spec.ObjectSpecificationException;
import org.apache.isis.core.metamodel.spec.feature.Contributed;
import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -406,28 +403,6 @@ public class ObjectSpecificationDefault extends ObjectSpecificationAbstract impl
return null;
}
- // //////////////////////////////////////////////////////////////////////
- // createObject
- // //////////////////////////////////////////////////////////////////////
-
-
- /**
- * REVIEW: does this behaviour live best here? Not that sure that it does...
- */
- @Override
- public ObjectAdapter initialize(final ObjectAdapter adapter) {
-
- // initialize new object
- final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED);
- for (ObjectAssociation field : fields) {
- field.toDefault(adapter);
- }
- getDependencyInjector().injectServicesInto(adapter.getObject());
-
- CallbackFacet.Util.callCallback(adapter, CreatedCallbackFacet.class);
-
- return adapter;
- }
// //////////////////////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/isis/blob/604acc35/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 aa18041..a942e54 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
@@ -53,6 +53,8 @@ import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
import org.apache.isis.core.metamodel.adapter.oid.ParentedCollectionOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CallbackFacet;
+import org.apache.isis.core.metamodel.facets.object.callbacks.CreatedCallbackFacet;
import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.services.ServiceUtil;
import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
@@ -62,6 +64,8 @@ import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
+import org.apache.isis.core.metamodel.spec.feature.Contributed;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.runtime.persistence.FixturesInstalledFlag;
import org.apache.isis.core.runtime.persistence.NotPersistableException;
import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
@@ -388,7 +392,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
final Object pojo = createObject(objectSpec);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
- return objectSpec.initialize(adapter);
+ return initialize(adapter);
}
@@ -401,7 +405,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
facet.initialize(pojo, memento);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
- return objectSpec.initialize(adapter);
+ return initialize(adapter);
}
@@ -435,6 +439,20 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
}
+ public ObjectAdapter initialize(final ObjectAdapter adapter) {
+
+ // initialize new object
+ final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED);
+ for (ObjectAssociation field : fields) {
+ field.toDefault(adapter);
+ }
+ servicesInjector.injectServicesInto(adapter.getObject());
+
+ CallbackFacet.Util.callCallback(adapter, CreatedCallbackFacet.class);
+
+ return adapter;
+ }
+
//endregion
[06/34] isis git commit: ISIS-1194: factor out createInstance
(overloads) from createTransientInstance and createViewModelInstance in
PersistenceSession.
Posted by da...@apache.org.
ISIS-1194: factor out createInstance (overloads) from createTransientInstance and createViewModelInstance in PersistenceSession.
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/d85822fe
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/d85822fe
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/d85822fe
Branch: refs/heads/ISIS-1194
Commit: d85822fe9cabed3b682251323d9c6e411ab0582a
Parents: d108c80
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:02:56 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:02:56 2015 +0100
----------------------------------------------------------------------
.../runtime/system/persistence/PersistenceSession.java | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/d85822fe/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 4250d00..2a9f0ce 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
@@ -387,6 +387,10 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
* {@link org.apache.isis.applib.DomainObjectContainer}.
*/
public ObjectAdapter createTransientInstance(final ObjectSpecification objectSpec) {
+ return createInstance(objectSpec);
+ }
+
+ private ObjectAdapter createInstance(final ObjectSpecification objectSpec) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating transient instance of " + objectSpec);
}
@@ -395,20 +399,23 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
return initializePropertiesAndDoCallback(adapter);
}
-
-
public ObjectAdapter createViewModelInstance(final ObjectSpecification objectSpec, final String memento) {
+ return createInstance(objectSpec, memento);
+ }
+
+ private ObjectAdapter createInstance(final ObjectSpecification objectSpec, final String memento) {
if (LOG.isDebugEnabled()) {
LOG.debug("creating view model instance of " + objectSpec);
}
final Object pojo = instantiateAndInjectServices(objectSpec);
+
final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
facet.initialize(pojo, memento);
+
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
return initializePropertiesAndDoCallback(adapter);
}
-
public Object instantiateAndInjectServices(final ObjectSpecification objectSpec) {
final Class<?> correspondingClass = objectSpec.getCorrespondingClass();
[04/34] isis git commit: ISIS-1194: renamed
PersistenceSession#initialize to initializePropertiesAndDoCallback(),
renamed #createObject to #instantiateAndInjectServices
Posted by da...@apache.org.
ISIS-1194: renamed PersistenceSession#initialize to initializePropertiesAndDoCallback(), renamed #createObject to #instantiateAndInjectServices
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a05561ed
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a05561ed
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a05561ed
Branch: refs/heads/ISIS-1194
Commit: a05561ed961386eebf24b6ebae09a3c39a4f09f1
Parents: 604acc3
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 14:45:30 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 14:45:30 2015 +0100
----------------------------------------------------------------------
.../org/apache/isis/core/runtime/memento/Memento.java | 2 +-
.../adaptermanager/AdapterManagerDefault.java | 2 +-
.../PublishingServiceWithDefaultPayloadFactories.java | 2 +-
.../runtime/system/persistence/PersistenceSession.java | 12 ++++++------
4 files changed, 9 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/a05561ed/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
index 91cb87a..69d391f 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/memento/Memento.java
@@ -204,7 +204,7 @@ public class Memento implements Serializable {
final Oid oid = getOid();
if (spec.isParentedOrFreeCollection()) {
- final Object recreatedPojo = getPersistenceSession().createObject(spec);
+ final Object recreatedPojo = getPersistenceSession().instantiateAndInjectServices(spec);
adapter = getPersistenceSession().getAdapterManager() .mapRecreatedPojo(oid, recreatedPojo);
populateCollection(adapter, (CollectionData) data);
http://git-wip-us.apache.org/repos/asf/isis/blob/a05561ed/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
index d04366c..954bdc9 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/AdapterManagerDefault.java
@@ -371,7 +371,7 @@ public class AdapterManagerDefault implements AdapterManager,
private Object recreatePojoDefault(final RootOid rootOid) {
final ObjectSpecification spec =
specificationLoader.lookupBySpecId(rootOid.getObjectSpecId());
- final Object pojo = persistenceSession.createObject(spec);
+ final Object pojo = persistenceSession.instantiateAndInjectServices(spec);
if(rootOid.isViewModel()) {
// initialize the view model pojo from the oid's identifier
http://git-wip-us.apache.org/repos/asf/isis/blob/a05561ed/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
index 9f00b33..d08c6fe 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
@@ -58,7 +58,7 @@ public class PublishingServiceWithDefaultPayloadFactories {
// objectstores such as JDO prevent the underlying pojo from being touched once it has been deleted.
// we therefore replace that pojo with an 'empty' one.
- Object replacementObject = getPersistenceSession().createObject(adapter.getSpecification());
+ Object replacementObject = getPersistenceSession().instantiateAndInjectServices(adapter.getSpecification());
getPersistenceSession().getAdapterManager().remapRecreatedPojo(adapter, replacementObject);
return adapter;
}
http://git-wip-us.apache.org/repos/asf/isis/blob/a05561ed/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 a942e54..4250d00 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
@@ -390,9 +390,9 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
if (LOG.isDebugEnabled()) {
LOG.debug("creating transient instance of " + objectSpec);
}
- final Object pojo = createObject(objectSpec);
+ final Object pojo = instantiateAndInjectServices(objectSpec);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
- return initialize(adapter);
+ return initializePropertiesAndDoCallback(adapter);
}
@@ -401,15 +401,15 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
if (LOG.isDebugEnabled()) {
LOG.debug("creating view model instance of " + objectSpec);
}
- final Object pojo = createObject(objectSpec);
+ final Object pojo = instantiateAndInjectServices(objectSpec);
final ViewModelFacet facet = objectSpec.getFacet(ViewModelFacet.class);
facet.initialize(pojo, memento);
final ObjectAdapter adapter = adapterManager.adapterFor(pojo);
- return initialize(adapter);
+ return initializePropertiesAndDoCallback(adapter);
}
- public Object createObject(final ObjectSpecification objectSpec) {
+ public Object instantiateAndInjectServices(final ObjectSpecification objectSpec) {
final Class<?> correspondingClass = objectSpec.getCorrespondingClass();
if (correspondingClass.isArray()) {
@@ -439,7 +439,7 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
}
}
- public ObjectAdapter initialize(final ObjectAdapter adapter) {
+ private ObjectAdapter initializePropertiesAndDoCallback(final ObjectAdapter adapter) {
// initialize new object
final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations(Contributed.EXCLUDED);
[20/34] isis git commit: ISIS-1194: ISIS-1194: law of demeter for
FrameworkSynchronizer and AdapterManager - call PersistenceSession instead.
Posted by da...@apache.org.
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/ISIS-1194
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
+
}