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 2012/05/15 00:45:03 UTC
svn commit: r1338472 [7/8] - in
/incubator/isis/trunk/framework/runtimes/dflt:
objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/
objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/
ob...
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/transaction/IsisTransactionManager.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/transaction/IsisTransactionManager.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/transaction/IsisTransactionManager.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/system/transaction/IsisTransactionManager.java Mon May 14 22:44:57 2012
@@ -19,50 +19,116 @@
package org.apache.isis.runtimes.dflt.runtime.system.transaction;
+import static org.apache.isis.core.commons.ensure.Ensure.ensureThatArg;
+import static org.apache.isis.core.commons.ensure.Ensure.ensureThatState;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.not;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.CoreMatchers.nullValue;
+
+import org.apache.log4j.Logger;
+
import org.apache.isis.core.commons.components.Injectable;
import org.apache.isis.core.commons.components.SessionScopedComponent;
import org.apache.isis.core.commons.debug.DebugBuilder;
+import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStoreTransactionManagement;
+import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommand;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSessionTransactionManagement;
import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSession;
+import org.apache.isis.runtimes.dflt.runtime.transaction.IsisTransactionManagerException;
+import org.apache.isis.runtimes.dflt.runtime.transaction.messagebroker.MessageBrokerDefault;
+import org.apache.isis.runtimes.dflt.runtime.transaction.updatenotifier.UpdateNotifierDefault;
-public interface IsisTransactionManager extends SessionScopedComponent, Injectable {
+public class IsisTransactionManager implements SessionScopedComponent, Injectable {
- // ////////////////////////////////////////////////////////////////////
- // Session
- // ////////////////////////////////////////////////////////////////////
+
+ private static final Logger LOG = Logger.getLogger(IsisTransactionManager.class);
+
+ private final PersistenceSessionTransactionManagement objectPersistor;
+ private final ObjectStoreTransactionManagement objectStore;
+
+ private int transactionLevel;
+
+ private IsisSession session;
/**
- * The owning {@link IsisSession}.
- *
- * <p>
- * Will be non-<tt>null</tt> when {@link #open() open}ed, but <tt>null</tt>
- * if {@link #close() close}d .
+ * Holds the current or most recently completed transaction.
*/
- IsisSession getSession();
+ private IsisTransaction transaction;
- // ////////////////////////////////////////////////////////////////////
- // Transaction Management
- // ////////////////////////////////////////////////////////////////////
+
- void startTransaction();
- boolean flushTransaction();
- void abortTransaction();
+ // ////////////////////////////////////////////////////////////////
+ // constructor
+ // ////////////////////////////////////////////////////////////////
+
+ public IsisTransactionManager(final PersistenceSessionTransactionManagement objectPersistor, final ObjectStoreTransactionManagement objectStore) {
+ this.objectPersistor = objectPersistor;
+ this.objectStore = objectStore;
+ }
+
+
+ // ////////////////////////////////////////////////////////////////
+ // open, close
+ // ////////////////////////////////////////////////////////////////
+
+ @Override
+ public void open() {
+ ensureThatState(session, is(notNullValue()), "session is required");
+ }
+
+ @Override
+ public void close() {
+ if (getTransaction() != null) {
+ try {
+ abortTransaction();
+ } catch (final Exception e2) {
+ LOG.error("failure during abort", e2);
+ }
+ }
+ session = null;
+ }
+
+ // //////////////////////////////////////////////////////
+ // current transaction (if any)
+ // //////////////////////////////////////////////////////
/**
- * Ends the transaction if nesting level is 0.
+ * The current transaction, if any.
*/
- void endTransaction();
+ public IsisTransaction getTransaction() {
+ return transaction;
+ }
+
+ public int getTransactionLevel() {
+ return transactionLevel;
+ }
+
+
/**
- * The current transaction, if any.
+ * Convenience method returning the {@link UpdateNotifier} of the
+ * {@link #getTransaction() current transaction}.
*/
- IsisTransaction getTransaction();
+ protected UpdateNotifier getUpdateNotifier() {
+ return getTransaction().getUpdateNotifier();
+ }
- // ////////////////////////////////////////////////////////////////////
+ /**
+ * Convenience method returning the {@link MessageBroker} of the
+ * {@link #getTransaction() current transaction}.
+ */
+ protected MessageBroker getMessageBroker() {
+ return getTransaction().getMessageBroker();
+ }
+
+
+ // ////////////////////////////////////////////////////////////////
// Transactional Execution
- // ////////////////////////////////////////////////////////////////////
+ // ////////////////////////////////////////////////////////////////
/**
* Run the supplied {@link Runnable block of code (closure)} in a
@@ -75,7 +141,36 @@ public interface IsisTransactionManager
* end. If the closure throws an exception, then will
* {@link #abortTransaction() abort} the transaction.
*/
- public void executeWithinTransaction(TransactionalClosure closure);
+ public void executeWithinTransaction(final TransactionalClosure closure) {
+ final boolean initiallyInTransaction = inTransaction();
+ if (!initiallyInTransaction) {
+ startTransaction();
+ }
+ try {
+ closure.preExecute();
+ closure.execute();
+ closure.onSuccess();
+ if (!initiallyInTransaction) {
+ endTransaction();
+ }
+ } catch (final RuntimeException ex) {
+ closure.onFailure();
+ if (!initiallyInTransaction) {
+ // temp TODO fix swallowing of exception
+ // System.out.println(ex.getMessage());
+ // ex.printStackTrace();
+ try {
+ abortTransaction();
+ } catch (final Exception e) {
+ LOG.error("Abort failure after exception", e);
+ // System.out.println(e.getMessage());
+ // e.printStackTrace();
+ throw new IsisTransactionManagerException("Abort failure: " + e.getMessage(), ex);
+ }
+ }
+ throw ex;
+ }
+ }
/**
* Run the supplied {@link Runnable block of code (closure)} in a
@@ -88,12 +183,211 @@ public interface IsisTransactionManager
* end. If the closure throws an exception, then will
* {@link #abortTransaction() abort} the transaction.
*/
- public <T> T executeWithinTransaction(TransactionalClosureWithReturn<T> closure);
+ public <Q> Q executeWithinTransaction(final TransactionalClosureWithReturn<Q> closure) {
+ final boolean initiallyInTransaction = inTransaction();
+ if (!initiallyInTransaction) {
+ startTransaction();
+ }
+ try {
+ closure.preExecute();
+ final Q retVal = closure.execute();
+ closure.onSuccess();
+ if (!initiallyInTransaction) {
+ endTransaction();
+ }
+ return retVal;
+ } catch (final RuntimeException ex) {
+ closure.onFailure();
+ if (!initiallyInTransaction) {
+ abortTransaction();
+ }
+ throw ex;
+ }
+ }
+
+ public boolean inTransaction() {
+ return getTransaction() != null && !getTransaction().getState().isComplete();
+ }
+
+ // ////////////////////////////////////////////////////////////////
+ // create transaction, + hooks
+ // ////////////////////////////////////////////////////////////////
+
+ /**
+ * Creates a new transaction and saves, to be accessible in
+ * {@link #getTransaction()}.
+ */
+ protected final IsisTransaction createTransaction() {
+ return this.transaction = createTransaction(createMessageBroker(), createUpdateNotifier());
+ }
+
+
+ /**
+ * The provided {@link MessageBroker} and {@link UpdateNotifier} are
+ * obtained from the hook methods ( {@link #createMessageBroker()} and
+ * {@link #createUpdateNotifier()}).
+ *
+ * @see #createMessageBroker()
+ * @see #createUpdateNotifier()
+ */
+ protected IsisTransaction createTransaction(final MessageBroker messageBroker, final UpdateNotifier updateNotifier) {
+ ensureThatArg(messageBroker, is(not(nullValue())));
+ ensureThatArg(updateNotifier, is(not(nullValue())));
+
+ return new IsisTransaction(this, messageBroker, updateNotifier, objectStore);
+ }
+
+
+ // //////////////////////////////////////////////////////
+ // start, flush, abort, end
+ // //////////////////////////////////////////////////////
+
+ public void startTransaction() {
+
+ boolean noneInProgress = false;
+ if (getTransaction() == null || getTransaction().getState().isComplete()) {
+ noneInProgress = true;
+
+ createTransaction();
+ transactionLevel = 0;
+ objectStore.startTransaction();
+ }
+
+ transactionLevel++;
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("startTransaction: level " + (transactionLevel - 1) + "->" + (transactionLevel) + (noneInProgress ? " (no transaction in progress or was previously completed; transaction created)" : ""));
+ }
+ }
+
+ public boolean flushTransaction() {
+
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("flushTransaction");
+ }
+
+ if (getTransaction() != null) {
+ objectPersistor.objectChangedAllDirty();
+ getTransaction().flush();
+ }
+ return false;
+ }
+
+ /**
+ * Ends the transaction if nesting level is 0.
+ */
+ public void endTransaction() {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("endTransaction: level " + (transactionLevel) + "->" + (transactionLevel - 1));
+ }
+
+ transactionLevel--;
+ if (transactionLevel == 0) {
+ LOG.debug("endTransaction: committing");
+ objectPersistor.objectChangedAllDirty();
+ getTransaction().commit();
+ objectStore.endTransaction();
+ } else if (transactionLevel < 0) {
+ LOG.error("endTransaction: transactionLevel=" + transactionLevel);
+ transactionLevel = 0;
+ throw new IllegalStateException(" no transaction running to end (transactionLevel < 0)");
+ }
+ }
+
+ public void abortTransaction() {
+ if (getTransaction() != null) {
+ getTransaction().abort();
+ transactionLevel = 0;
+ objectStore.abortTransaction();
+ }
+ }
+
+ public void addCommand(final PersistenceCommand command) {
+ getTransaction().addCommand(command);
+ }
+
+ // //////////////////////////////////////////////////////////////
+ // Hooks
+ // //////////////////////////////////////////////////////////////
+
+
+
+
+ /**
+ * Overridable hook, used in
+ * {@link #createTransaction(MessageBroker, UpdateNotifier)
+ *
+ * <p> Called when a new {@link IsisTransaction} is created.
+ */
+ protected MessageBroker createMessageBroker() {
+ return new MessageBrokerDefault();
+ }
+
+ /**
+ * Overridable hook, used in
+ * {@link #createTransaction(MessageBroker, UpdateNotifier)
+ *
+ * <p> Called when a new {@link IsisTransaction} is created.
+ */
+ protected UpdateNotifier createUpdateNotifier() {
+ return new UpdateNotifierDefault();
+ }
+
+ // ////////////////////////////////////////////////////////////////
+ // helpers
+ // ////////////////////////////////////////////////////////////////
+
+ protected void ensureTransactionInProgress() {
+ ensureThatState(getTransaction() != null && !getTransaction().getState().isComplete(), is(true), "No transaction in progress");
+ }
+
+ protected void ensureTransactionNotInProgress() {
+ ensureThatState(getTransaction() != null && !getTransaction().getState().isComplete(), is(false), "Transaction in progress");
+ }
// ////////////////////////////////////////////////////////////////////
- // Debugging
+ // injectInto
// ////////////////////////////////////////////////////////////////////
- void debugData(DebugBuilder debug);
+ @Override
+ public void injectInto(final Object candidate) {
+ if (IsisTransactionManagerAware.class.isAssignableFrom(candidate.getClass())) {
+ final IsisTransactionManagerAware cast = IsisTransactionManagerAware.class.cast(candidate);
+ cast.setTransactionManager(this);
+ }
+ }
+
+ // //////////////////////////////////////////////////////
+ // debugging
+ // //////////////////////////////////////////////////////
+
+ public void debugData(final DebugBuilder debug) {
+ debug.appendln("Transaction", getTransaction());
+ }
+
+ // ////////////////////////////////////////////////////////////////
+ // Dependencies (injected)
+ // ////////////////////////////////////////////////////////////////
+
+ /**
+ * The owning {@link IsisSession}.
+ *
+ * <p>
+ * Will be non-<tt>null</tt> when {@link #open() open}ed, but <tt>null</tt>
+ * if {@link #close() close}d .
+ */
+ public IsisSession getSession() {
+ return session;
+ }
+
+ /**
+ * Should be injected prior to {@link #open() opening}
+ */
+ public void setSession(final IsisSession session) {
+ this.session = session;
+ }
+
+
+
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/systemusinginstallers/IsisSystemUsingInstallers.java Mon May 14 22:44:57 2012
@@ -119,7 +119,7 @@ public class IsisSystemUsingInstallers e
public void lookupAndSetAuthenticatorAndAuthorization(final DeploymentType deploymentType) {
- final IsisConfiguration configuration = installerLookup.getConfiguration();
+ //final IsisConfiguration configuration = installerLookup.getConfiguration();
// use the one specified in configuration
final String authenticationManagerKey = getConfiguration().getString(SystemConstants.AUTHENTICATION_INSTALLER_KEY);
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/messagebroker/MessageBrokerDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/messagebroker/MessageBrokerDefault.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/messagebroker/MessageBrokerDefault.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/main/java/org/apache/isis/runtimes/dflt/runtime/transaction/messagebroker/MessageBrokerDefault.java Mon May 14 22:44:57 2012
@@ -23,6 +23,8 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import com.google.common.collect.Lists;
+
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.debug.DebuggableWithTitle;
import org.apache.isis.core.commons.exceptions.IsisException;
@@ -31,8 +33,8 @@ import org.apache.isis.runtimes.dflt.run
public class MessageBrokerDefault implements MessageBroker, DebuggableWithTitle {
- private final List<String> messages = new ArrayList<String>();
- private final List<String> warnings = new ArrayList<String>();
+ private final List<String> messages = Lists.newArrayList();
+ private final List<String> warnings = Lists.newArrayList();
public MessageBrokerDefault() {
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/context/IsisContextTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/context/IsisContextTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/context/IsisContextTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/context/IsisContextTest.java Mon May 14 22:44:57 2012
@@ -33,16 +33,16 @@ import org.junit.Test;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.config.IsisConfiguration;
import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.specloader.ObjectReflector;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.core.metamodel.spec.SpecificationLoaderAware;
import org.apache.isis.core.runtime.authentication.AuthenticationManager;
import org.apache.isis.core.runtime.authentication.standard.SimpleSession;
import org.apache.isis.core.runtime.authorization.AuthorizationManager;
import org.apache.isis.core.runtime.imageloader.TemplateImageLoader;
-import org.apache.isis.core.runtime.userprofile.UserProfile;
import org.apache.isis.core.runtime.userprofile.UserProfileLoader;
+import org.apache.isis.core.testsupport.jmock.IsisActions;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
-import org.apache.isis.runtimes.dflt.runtime.persistence.internal.RuntimeContextFromSession;
import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContextStatic;
@@ -63,7 +63,7 @@ public class IsisContextTest {
private PersistenceSession mockPersistenceSession;
@Mock
- private ObjectReflector mockReflector;
+ private SpecificationLoader mockSpecificationLoader;
@Mock
protected TemplateImageLoader mockTemplateImageLoader;
@@ -98,8 +98,7 @@ public class IsisContextTest {
will(returnValue(mockPersistenceSession));
ignoring(mockPersistenceSession);
-
- ignoring(mockReflector);
+ ignoring(mockSpecificationLoader);
ignoring(mockPersistenceSessionFactory);
ignoring(mockUserProfileLoader);
ignoring(mockAuthenticationManager);
@@ -108,7 +107,7 @@ public class IsisContextTest {
}
});
- sessionFactory = new IsisSessionFactoryDefault(DeploymentType.EXPLORATION, configuration, mockTemplateImageLoader, mockReflector, mockAuthenticationManager, mockAuthorizationManager, mockUserProfileLoader, mockPersistenceSessionFactory, servicesList);
+ sessionFactory = new IsisSessionFactoryDefault(DeploymentType.EXPLORATION, configuration, mockTemplateImageLoader, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockUserProfileLoader, mockPersistenceSessionFactory, servicesList);
authSession = new SimpleSession("tester", Collections.<String>emptyList());
IsisContext.setConfiguration(configuration);
@@ -116,7 +115,9 @@ public class IsisContextTest {
@After
public void tearDown() throws Exception {
- IsisContext.closeSession();
+ if(IsisContext.inSession()) {
+ IsisContext.closeSession();
+ }
}
@Test
@@ -130,7 +131,7 @@ public class IsisContextTest {
IsisContextStatic.createRelaxedInstance(sessionFactory);
IsisContext.openSession(authSession);
- Assert.assertEquals(mockReflector, IsisContext.getSpecificationLoader());
+ Assert.assertEquals(mockSpecificationLoader, IsisContext.getSpecificationLoader());
}
@Test
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AdapterManagerDefault_aggregateAdapters.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AdapterManagerDefault_aggregateAdapters.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AdapterManagerDefault_aggregateAdapters.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/AdapterManagerDefault_aggregateAdapters.java Mon May 14 22:44:57 2012
@@ -19,6 +19,7 @@
package org.apache.isis.runtimes.dflt.runtime.persistence;
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
@@ -39,9 +40,11 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.ResolveState;
import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
+import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
import org.apache.isis.core.metamodel.runtimecontext.RuntimeContext;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.progmodel.app.IsisMetaModel;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
@@ -80,7 +83,7 @@ public class AdapterManagerDefault_aggre
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
@Mock
- private ObjectAssociation mockAssociation;
+ private OneToManyAssociation mockCollection;
@Mock
private RuntimeContext mockRuntimeContext;
@@ -141,14 +144,14 @@ public class AdapterManagerDefault_aggre
aggregatedObject = new Name();
persistentParentAdapter = adapterManager.recreateAdapter(
- RootOidDefault.create("CUS", "1"), rootObject);
+ RootOidDefault.create(ObjectSpecId.of("CUS"), "1"), rootObject);
}
- private void allowing_oidGenerator_createAggregatedLocalId(final Object value, final String result) {
+ private void allowing_oidGenerator_createAggregatedOid(final Object value, final AggregatedOid resultOid) {
context.checking(new Expectations() {
{
- allowing(mockOidGenerator).createAggregateLocalId(value);
- will(returnValue(result));
+ allowing(mockOidGenerator).createAggregateOid(with(equalTo(value)), with(any(ObjectAdapter.class)));
+ will(returnValue(resultOid));
ignoring(mockOidGenerator);
}
});
@@ -158,7 +161,9 @@ public class AdapterManagerDefault_aggre
@Test
public void adapterFor_whenAggregated() throws Exception {
// given
- allowing_oidGenerator_createAggregatedLocalId(aggregatedObject, "123");
+ allowing_oidGenerator_createAggregatedOid(
+ aggregatedObject,
+ new AggregatedOid(ObjectSpecId.of("NME"), (TypedOid) persistentParentAdapter.getOid(), "123"));
// when
aggregatedAdapter = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter);
@@ -170,7 +175,7 @@ public class AdapterManagerDefault_aggre
@Test
public void testOidHasSubId() throws Exception {
- allowing_oidGenerator_createAggregatedLocalId(aggregatedObject, "123");
+ allowing_oidGenerator_createAggregatedOid(aggregatedObject, new AggregatedOid(ObjectSpecId.of("NME"), (TypedOid) persistentParentAdapter.getOid(), "123"));
aggregatedAdapter = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter);
final AggregatedOid aggregatedOid = (AggregatedOid) aggregatedAdapter.getOid();
@@ -179,7 +184,7 @@ public class AdapterManagerDefault_aggre
@Test
public void getResolveState_isInitiallyGhost() throws Exception {
- allowing_oidGenerator_createAggregatedLocalId(aggregatedObject, "123");
+ allowing_oidGenerator_createAggregatedOid(aggregatedObject, new AggregatedOid(ObjectSpecId.of("NME"), (TypedOid) persistentParentAdapter.getOid(), "123"));
aggregatedAdapter = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter);
assertEquals(ResolveState.GHOST, aggregatedAdapter.getResolveState());
@@ -187,10 +192,10 @@ public class AdapterManagerDefault_aggre
@Test
public void testSameParametersRetrievesSameAdapter() throws Exception {
- allowing_oidGenerator_createAggregatedLocalId(aggregatedObject, "123");
+ allowing_oidGenerator_createAggregatedOid(aggregatedObject, new AggregatedOid(ObjectSpecId.of("NME"), (TypedOid) persistentParentAdapter.getOid(), "123"));
aggregatedAdapter = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter);
- final ObjectAdapter valueAdapter2 = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter, mockAssociation);
+ final ObjectAdapter valueAdapter2 = adapterManager.adapterFor(aggregatedObject, persistentParentAdapter, mockCollection);
assertSame(aggregatedAdapter, valueAdapter2);
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/adapterfactory/pojo/PojoAdapterTest.java Mon May 14 22:44:57 2012
@@ -36,6 +36,7 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.ResolveState;
import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
@@ -65,7 +66,7 @@ public class PojoAdapterTest {
public void setUp() throws Exception {
domainObject = new RuntimeTestPojo();
- adapter = new PojoAdapter(domainObject, RootOidDefault.create("CUS", "1"), mockSpecificationLoader, mockObjectAdapterLookup, mockLocalization);
+ adapter = new PojoAdapter(domainObject, RootOidDefault.create(ObjectSpecId.of("CUS"), "1"), mockSpecificationLoader, mockObjectAdapterLookup, mockLocalization);
adapter.setVersion(mockVersion);
allowUnimportantMethodCallsOn(mockVersion);
@@ -85,7 +86,7 @@ public class PojoAdapterTest {
@Test
public void getOid_initially() {
- assertEquals(RootOidDefault.create("CUS", "1"), adapter.getOid());
+ assertEquals(RootOidDefault.create(ObjectSpecId.of("CUS"), "1"), adapter.getOid());
}
@Test
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStoreTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStoreTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStoreTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/PersistenceSessionObjectStoreTest.java Mon May 14 22:44:57 2012
@@ -49,14 +49,16 @@ import org.apache.isis.runtimes.dflt.run
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.algorithm.PersistAlgorithm;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.CreateObjectCommand;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.ObjectStoreTransactionManager;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommand;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PojoAdapterBuilder;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PojoAdapterBuilder.Persistence;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.SaveObjectCommand;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.IdentifierGeneratorDefault;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.ObjectFactory;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.OidGenerator;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSessionFactory;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
public class PersistenceSessionObjectStoreTest {
@@ -68,8 +70,8 @@ public class PersistenceSessionObjectSto
private ObjectAdapterFactory adapterFactory;
- private PersistenceSessionObjectStore persistenceSession;
- private ObjectStoreTransactionManager transactionManager;
+ private PersistenceSession persistenceSession;
+ private IsisTransactionManager transactionManager;
private ObjectAdapter persistentAdapter;
private PojoAdapter transientAdapter;
@@ -143,9 +145,9 @@ public class PersistenceSessionObjectSto
adapterManager = new AdapterManagerDefault();
adapterFactory = new PojoAdapterFactory();
- persistenceSession = new PersistenceSessionObjectStore(mockPersistenceSessionFactory, adapterFactory, objectFactory, servicesInjector, new RootOidGenerator(), adapterManager, mockPersistAlgorithm, mockObjectStore);
+ persistenceSession = new PersistenceSession(mockPersistenceSessionFactory, adapterFactory, objectFactory, servicesInjector, new OidGenerator(new IdentifierGeneratorDefault()), adapterManager, mockPersistAlgorithm, mockObjectStore);
- transactionManager = new ObjectStoreTransactionManager(persistenceSession, mockObjectStore);
+ transactionManager = new IsisTransactionManager(persistenceSession, mockObjectStore);
transactionManager.injectInto(persistenceSession);
servicesInjector.setServices(Collections.emptyList());
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManagerAbstractTestCase.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManagerAbstractTestCase.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManagerAbstractTestCase.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManagerAbstractTestCase.java Mon May 14 22:44:57 2012
@@ -20,39 +20,36 @@
package org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction;
import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.Before;
-import org.junit.runner.RunWith;
+import org.jmock.auto.Mock;
+import org.junit.Rule;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStoreTransactionManagement;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSession;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
-@RunWith(JMock.class)
public abstract class ObjectStoreTransactionManagerAbstractTestCase {
- protected Mockery mockery = new JUnit4Mockery();
+ @Rule
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
- protected ObjectStoreTransactionManager transactionManager;
+ protected IsisTransactionManager transactionManager;
+ @Mock
protected IsisSession mockSession;
+ @Mock
protected PersistenceSession mockPersistenceSession;
+ @Mock
protected ObjectStoreTransactionManagement mockObjectStore;
- @Before
- public void setUp() throws Exception {
- mockSession = mockery.mock(IsisSession.class);
- mockPersistenceSession = mockery.mock(PersistenceSession.class);
- mockObjectStore = mockery.mock(ObjectStoreTransactionManagement.class);
- }
// //////////////////////////////////////////////////
// Helpers
// //////////////////////////////////////////////////
protected void ignoreCallsToPersistenceSession() {
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
ignoring(mockPersistenceSession);
}
@@ -60,7 +57,7 @@ public abstract class ObjectStoreTransac
}
protected void ignoreCallsToObjectStore() {
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
ignoring(mockObjectStore);
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java Mon May 14 22:44:57 2012
@@ -27,11 +27,13 @@ import org.jmock.Sequence;
import org.junit.Before;
import org.junit.Test;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
+
public class ObjectStoreTransactionManager_EndTransactionTest extends ObjectStoreTransactionManagerAbstractTestCase {
@Before
public void setUpTransactionManager() throws Exception {
- transactionManager = new ObjectStoreTransactionManager(mockPersistenceSession, mockObjectStore);
+ transactionManager = new IsisTransactionManager(mockPersistenceSession, mockObjectStore);
}
@Test
@@ -41,9 +43,9 @@ public class ObjectStoreTransactionManag
transactionManager.startTransaction();
transactionManager.startTransaction();
- assertThat(transactionManager.transactionLevel, is(2));
+ assertThat(transactionManager.getTransactionLevel(), is(2));
transactionManager.endTransaction();
- assertThat(transactionManager.transactionLevel, is(1));
+ assertThat(transactionManager.getTransactionLevel(), is(1));
}
@Test
@@ -52,14 +54,14 @@ public class ObjectStoreTransactionManag
ignoreCallsToObjectStore();
transactionManager.startTransaction();
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
one(mockPersistenceSession).objectChangedAllDirty();
}
});
- assertThat(transactionManager.transactionLevel, is(1));
+ assertThat(transactionManager.getTransactionLevel(), is(1));
transactionManager.endTransaction();
- assertThat(transactionManager.transactionLevel, is(0));
+ assertThat(transactionManager.getTransactionLevel(), is(0));
}
@Test
@@ -67,7 +69,7 @@ public class ObjectStoreTransactionManag
// setup
ignoreCallsToPersistenceSession();
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
one(mockObjectStore).startTransaction();
}
@@ -81,9 +83,9 @@ public class ObjectStoreTransactionManag
// setup
ignoreCallsToPersistenceSession();
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
- final Sequence transactionOrdering = mockery.sequence("transactionOrdering");
+ final Sequence transactionOrdering = context.sequence("transactionOrdering");
one(mockObjectStore).startTransaction();
inSequence(transactionOrdering);
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_InstantiationTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_InstantiationTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_InstantiationTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_InstantiationTest.java Mon May 14 22:44:57 2012
@@ -21,11 +21,13 @@ package org.apache.isis.runtimes.dflt.ru
import org.junit.Test;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
+
public class ObjectStoreTransactionManager_InstantiationTest extends ObjectStoreTransactionManagerAbstractTestCase {
@Test
public void canInstantiate() throws Exception {
- transactionManager = new ObjectStoreTransactionManager(mockPersistenceSession, mockObjectStore);
+ transactionManager = new IsisTransactionManager(mockPersistenceSession, mockObjectStore);
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java Mon May 14 22:44:57 2012
@@ -29,11 +29,14 @@ import org.jmock.Expectations;
import org.junit.Before;
import org.junit.Test;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransaction;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
+
public class ObjectStoreTransactionManager_StartTransactionTest extends ObjectStoreTransactionManagerAbstractTestCase {
@Before
public void setUpTransactionManager() throws Exception {
- transactionManager = new ObjectStoreTransactionManager(mockPersistenceSession, mockObjectStore);
+ transactionManager = new IsisTransactionManager(mockPersistenceSession, mockObjectStore);
}
@Before
@@ -56,7 +59,7 @@ public class ObjectStoreTransactionManag
// cause a transaction to be created
transactionManager.startTransaction();
- final ObjectStoreTransaction transactionAfterFirstStart = transactionManager.getTransaction();
+ final IsisTransaction transactionAfterFirstStart = transactionManager.getTransaction();
transactionManager.startTransaction();
@@ -67,14 +70,14 @@ public class ObjectStoreTransactionManag
public void startTransactionIncrementsTransactionLevel() throws Exception {
ignoreCallsToObjectStore();
- assertThat(transactionManager.transactionLevel, is(0));
+ assertThat(transactionManager.getTransactionLevel(), is(0));
transactionManager.startTransaction();
- assertThat(transactionManager.transactionLevel, is(1));
+ assertThat(transactionManager.getTransactionLevel(), is(1));
}
@Test
public void startTransactionCallsStartTransactionOnObjectStore() throws Exception {
- mockery.checking(new Expectations() {
+ context.checking(new Expectations() {
{
one(mockObjectStore).startTransaction();
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java Mon May 14 22:44:57 2012
@@ -32,6 +32,7 @@ import org.apache.isis.core.metamodel.ad
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
import org.apache.isis.core.metamodel.adapter.version.Version;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
import org.apache.isis.runtimes.dflt.runtime.persistence.adapterfactory.pojo.PojoAdapter;
@@ -51,7 +52,7 @@ public class PojoAdapterBuilder {
private ObjectAdapterLookup objectAdapterLookup;
- private String objectType = "CUS";
+ private ObjectSpecId objectSpecId = ObjectSpecId.of("CUS");
private String identifier = "1";
// only used if type is AGGREGATED
private String aggregatedId = "firstName";
@@ -69,8 +70,8 @@ public class PojoAdapterBuilder {
public static enum Persistence {
TRANSIENT {
@Override
- Oid createOid(String objectType, String identifier) {
- return RootOidDefault.createTransient(objectType, identifier);
+ RootOid createOid(ObjectSpecId objectSpecId, String identifier) {
+ return RootOidDefault.createTransient(objectSpecId, identifier);
}
@Override
@@ -80,8 +81,8 @@ public class PojoAdapterBuilder {
},
PERSISTENT {
@Override
- Oid createOid(String objectType, String identifier) {
- return RootOidDefault.create(objectType, identifier);
+ RootOid createOid(ObjectSpecId objectSpecId, String identifier) {
+ return RootOidDefault.create(objectSpecId, identifier);
}
@Override
@@ -92,7 +93,7 @@ public class PojoAdapterBuilder {
},
VALUE {
@Override
- Oid createOid(String objectType, String identifier) {
+ RootOid createOid(ObjectSpecId objectSpecId, String identifier) {
return null;
}
@@ -101,7 +102,7 @@ public class PojoAdapterBuilder {
pojoAdapter.changeState(ResolveState.VALUE);
}
};
- abstract Oid createOid(String objectType, String identifier);
+ abstract RootOid createOid(ObjectSpecId objectSpecId, String identifier);
abstract void changeStateOn(PojoAdapter pojoAdapter);
}
@@ -109,27 +110,27 @@ public class PojoAdapterBuilder {
public static enum Type {
ROOT {
@Override
- Oid oidFor(Oid oid, String aggregatedId) {
- return oid;
+ Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String unused) {
+ return rootOid;
}
}, AGGREGATED {
@Override
- Oid oidFor(Oid oid, String localId) {
- return new AggregatedOid(oid, localId);
+ Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String aggregateLocalId) {
+ return new AggregatedOid(objectSpecId, rootOid, aggregateLocalId);
}
}, COLLECTION {
@Override
- Oid oidFor(Oid oid, String collectionName) {
- return new CollectionOid(oid, collectionName);
+ Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String collectionId) {
+ return new CollectionOid(rootOid, collectionId);
}
}, VALUE {
@Override
- Oid oidFor(Oid oid, String aggregatedId) {
+ Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String unused) {
return null;
}
};
- abstract Oid oidFor(Oid oid, String aggregatedId);
+ abstract Oid oidFor(RootOid rootOid, ObjectSpecId objectSpecId, String supplementalId);
}
public static PojoAdapterBuilder create() {
@@ -147,7 +148,7 @@ public class PojoAdapterBuilder {
}
public PojoAdapterBuilder withObjectType(String objectType) {
- this.objectType = objectType;
+ this.objectSpecId = ObjectSpecId.of(objectType);
return this;
}
@@ -220,9 +221,9 @@ public class PojoAdapterBuilder {
}
public PojoAdapter build() {
- Oid oid = persistence.createOid(objectType, identifier);
- oid = type.oidFor(oid, aggregatedId);
- PojoAdapter pojoAdapter = new PojoAdapter(pojo, oid, specificationLoader, objectAdapterLookup, localization) {
+ final RootOid rootOid = persistence.createOid(objectSpecId, identifier);
+ final Oid oid = type.oidFor(rootOid, objectSpecId, aggregatedId);
+ final PojoAdapter pojoAdapter = new PojoAdapter(pojo, oid, specificationLoader, objectAdapterLookup, localization) {
@Override
public ObjectSpecification getSpecification() { return objectSpec != null? objectSpec: super.getSpecification(); }
@Override
Modified: incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/TransactionTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/TransactionTest.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/TransactionTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/runtime/src/test/java/org/apache/isis/runtimes/dflt/runtime/persistence/objectstore/transaction/TransactionTest.java Mon May 14 22:44:57 2012
@@ -33,6 +33,7 @@ import org.apache.isis.core.testsupport.
import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PojoAdapterBuilder.Persistence;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransaction;
import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
import org.apache.isis.runtimes.dflt.runtime.system.transaction.MessageBroker;
import org.apache.isis.runtimes.dflt.runtime.system.transaction.UpdateNotifier;
@@ -41,10 +42,9 @@ import org.apache.isis.runtimes.dflt.run
public class TransactionTest {
@Rule
- public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_ONLY);
+ public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
- private ObjectStoreTransaction transaction;
+ private IsisTransaction transaction;
private ObjectAdapter transientAdapter1;
private ObjectAdapter transientAdapter2;
@@ -145,7 +145,7 @@ public class TransactionTest {
public void setUp() throws Exception {
Logger.getRootLogger().setLevel(Level.OFF);
- transaction = new ObjectStoreTransaction(mockTransactionManager, mockMessageBroker, mockUpdateNotifier, mockObjectStore);
+ transaction = new IsisTransaction(mockTransactionManager, mockMessageBroker, mockUpdateNotifier, mockObjectStore);
transientAdapter1 = PojoAdapterBuilder.create().with(Persistence.TRANSIENT).withIdentifier("1").build();
transientAdapter2 = PojoAdapterBuilder.create().with(Persistence.TRANSIENT).withIdentifier("2").build();
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/IsisSystemWithFixtures.java Mon May 14 22:44:57 2012
@@ -22,9 +22,12 @@ package org.apache.isis.runtimes.dflt.te
import java.util.Arrays;
import java.util.List;
+import com.google.common.collect.Lists;
+
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.After;
+import org.junit.Assert;
import org.junit.Before;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
@@ -41,9 +44,12 @@ import org.apache.isis.runtimes.dflt.obj
import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.PersistenceMechanismInstaller;
import org.apache.isis.runtimes.dflt.runtime.persistence.adaptermanager.AdapterManagerPersist;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransaction;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransaction.State;
+import org.apache.isis.runtimes.dflt.runtime.system.transaction.IsisTransactionManager;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures.Fixtures.Initialization;
import org.apache.isis.security.dflt.authentication.AuthenticationRequestDefault;
import org.apache.isis.tck.dom.eg.ExamplePojoAggregated;
@@ -59,6 +65,38 @@ import org.apache.isis.tck.dom.eg.TestPo
*/
public class IsisSystemWithFixtures implements org.junit.rules.TestRule {
+ public interface Listener {
+
+ void preSetupSystem(boolean firstTime);
+ void postSetupSystem();
+
+ void preTeardownSystem();
+ void postTeardownSystem();
+
+ }
+
+ public static abstract class ListenerAdapter implements Listener {
+
+ @Override
+ public void preSetupSystem(boolean firstTime) {
+ }
+
+ @Override
+ public void postSetupSystem() {
+ }
+
+ @Override
+ public void preTeardownSystem() {
+ }
+
+ @Override
+ public void postTeardownSystem() {
+ }
+
+ }
+
+
+
/**
* A precanned set of fixtures for use by tests if desired.
*/
@@ -121,6 +159,7 @@ public class IsisSystemWithFixtures impl
private final PersistenceMechanismInstaller persistenceMechanismInstaller;
private final AuthenticationRequest authenticationRequest;
private final List<Object> services;
+ private List <Listener> listeners;
////////////////////////////////////////////////////////////
@@ -135,6 +174,7 @@ public class IsisSystemWithFixtures impl
private IsisConfiguration configuration;
private PersistenceMechanismInstaller persistenceMechanismInstaller = new InMemoryPersistenceMechanismInstaller();
+ private final List <Listener> listeners = Lists.newArrayList();
private Object[] services;
public Builder with(IsisConfiguration configuration) {
@@ -164,7 +204,14 @@ public class IsisSystemWithFixtures impl
public IsisSystemWithFixtures build() {
final List<Object> servicesIfAny = services != null? Arrays.asList(services): null;
- return new IsisSystemWithFixtures(fixturesInitialization, configuration, persistenceMechanismInstaller, authenticationRequest, servicesIfAny);
+ return new IsisSystemWithFixtures(fixturesInitialization, configuration, persistenceMechanismInstaller, authenticationRequest, servicesIfAny, listeners);
+ }
+
+ public Builder with(Listener listener) {
+ if(listener != null) {
+ listeners.add(listener);
+ }
+ return this;
}
}
@@ -172,7 +219,7 @@ public class IsisSystemWithFixtures impl
return new Builder();
}
- private IsisSystemWithFixtures(Initialization fixturesInitialization, IsisConfiguration configuration, PersistenceMechanismInstaller persistenceMechanismInstaller, AuthenticationRequest authenticationRequest, List<Object> services) {
+ private IsisSystemWithFixtures(Initialization fixturesInitialization, IsisConfiguration configuration, PersistenceMechanismInstaller persistenceMechanismInstaller, AuthenticationRequest authenticationRequest, List<Object> services, List<Listener> listeners) {
this.fixturesInitialization = fixturesInitialization;
this.configuration = configuration;
this.persistenceMechanismInstaller = persistenceMechanismInstaller;
@@ -182,6 +229,7 @@ public class IsisSystemWithFixtures impl
services = Arrays.asList(fixtures.testPojoRepository, fixtures.examplePojoRepository);
}
this.services = services;
+ this.listeners = listeners;
}
@@ -197,6 +245,8 @@ public class IsisSystemWithFixtures impl
Logger.getRootLogger().setLevel(Level.OFF);
boolean firstTime = isisSystem == null;
+ firePreSetupSystem(firstTime);
+
if(firstTime) {
isisSystem = createIsisSystem(services);
isisSystem.init();
@@ -211,8 +261,10 @@ public class IsisSystemWithFixtures impl
if(firstTime && fixturesInitialization == Fixtures.Initialization.INIT) {
fixtures.init(container);
}
+ firePostSetupSystem(firstTime);
}
+
private DomainObjectContainer getContainer() {
return IsisContext.getPersistenceSession().getServicesInjector().getContainer();
}
@@ -221,7 +273,9 @@ public class IsisSystemWithFixtures impl
* Intended to be called from a test's {@link After} method.
*/
public void tearDownSystem() throws Exception {
+ firePreTeardownSystem();
IsisContext.closeSession();
+ firePostTeardownSystem();
}
public void bounceSystem() throws Exception {
@@ -252,6 +306,34 @@ public class IsisSystemWithFixtures impl
+ ////////////////////////////////////////////////////////////
+ // listeners
+ ////////////////////////////////////////////////////////////
+
+ private void firePreSetupSystem(boolean firstTime) {
+ for(Listener listener: listeners) {
+ listener.preSetupSystem(firstTime);
+ }
+ }
+
+ private void firePostSetupSystem(boolean firstTime) {
+ for(Listener listener: listeners) {
+ listener.preSetupSystem(firstTime);
+ }
+ }
+
+ private void firePreTeardownSystem() {
+ for(Listener listener: listeners) {
+ listener.preTeardownSystem();
+ }
+ }
+
+ private void firePostTeardownSystem() {
+ for(Listener listener: listeners) {
+ listener.postTeardownSystem();
+ }
+ }
+
////////////////////////////////////////////////////////////
// properties
@@ -306,22 +388,28 @@ public class IsisSystemWithFixtures impl
return IsisContext.getPersistenceSession().getAdapterManager().adapterFor(domainObject);
}
+ public ObjectAdapter reload(RootOid oid) {
+ ensureSessionInProgress();
+ final PersistenceSession persistenceSession = IsisContext.getPersistenceSession();
+ return persistenceSession.loadObject(oid);
+ }
+
public ObjectAdapter recreateAdapter(RootOid oid) {
ensureSessionInProgress();
return IsisContext.getPersistenceSession().recreateAdapter(oid);
}
- public ObjectAdapter remapAsPersistent(RootOid oid, Object pojo) {
+ public ObjectAdapter remapAsPersistent(Object pojo, RootOid persistentOid) {
ensureSessionInProgress();
ensureObjectIsNotPersistent(pojo);
final ObjectAdapter adapter = adapterFor(pojo);
- ((AdapterManagerPersist)IsisContext.getPersistenceSession().getAdapterManager()).remapAsPersistent(adapter);
+ getAdapterManagerPersist().remapAsPersistent(adapter, persistentOid);
return adapter;
}
@SuppressWarnings("unchecked")
public <T extends ObjectStore> T getObjectStore(Class<T> cls) {
- final PersistenceSessionObjectStore persistenceSession = (PersistenceSessionObjectStore) IsisContext.getPersistenceSession();
+ final PersistenceSession persistenceSession = IsisContext.getPersistenceSession();
return (T) persistenceSession.getObjectStore();
}
@@ -363,6 +451,82 @@ public class IsisSystemWithFixtures impl
}
+
+ private AdapterManagerPersist getAdapterManagerPersist() {
+ return (AdapterManagerPersist)IsisContext.getPersistenceSession().getAdapterManager();
+ }
+
+ public void beginTran() {
+ final IsisTransactionManager transactionManager = IsisContext.getPersistenceSession().getTransactionManager();
+ final IsisTransaction transaction = transactionManager.getTransaction();
+
+ if(transaction == null) {
+ transactionManager.startTransaction();
+ return;
+ }
+
+ final State state = transaction.getState();
+ switch(state) {
+ case COMMITTED:
+ case ABORTED:
+ transactionManager.startTransaction();
+ break;
+ case IN_PROGRESS:
+ // nothing to do
+ break;
+ case MUST_ABORT:
+ Assert.fail("Transaction is in state of '" + state + "'");
+ break;
+ default:
+ Assert.fail("Unknown transaction state '" + state + "'");
+ }
+
+ }
+
+ public void commitTran() {
+ final IsisTransactionManager transactionManager = IsisContext.getPersistenceSession().getTransactionManager();
+ final IsisTransaction transaction = transactionManager.getTransaction();
+ if(transaction == null) {
+ Assert.fail("No transaction exists");
+ return;
+ }
+ final State state = transaction.getState();
+ switch(state) {
+ case COMMITTED:
+ case ABORTED:
+ case MUST_ABORT:
+ Assert.fail("Transaction is in state of '" + state + "'");
+ break;
+ case IN_PROGRESS:
+ transactionManager.endTransaction();
+ break;
+ default:
+ Assert.fail("Unknown transaction state '" + state + "'");
+ }
+ }
+
+ public void abortTran() {
+ final IsisTransactionManager transactionManager = IsisContext.getPersistenceSession().getTransactionManager();
+ final IsisTransaction transaction = transactionManager.getTransaction();
+ if(transaction == null) {
+ Assert.fail("No transaction exists");
+ return;
+ }
+ final State state = transaction.getState();
+ switch(state) {
+ case ABORTED:
+ break;
+ case COMMITTED:
+ Assert.fail("Transaction is in state of '" + state + "'");
+ break;
+ case MUST_ABORT:
+ case IN_PROGRESS:
+ transactionManager.abortTransaction();
+ break;
+ default:
+ Assert.fail("Unknown transaction state '" + state + "'");
+ }
+ }
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/tck/ObjectStoreContractTest_persist.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/tck/ObjectStoreContractTest_persist.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/tck/ObjectStoreContractTest_persist.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/main/java/org/apache/isis/runtimes/dflt/testsupport/tck/ObjectStoreContractTest_persist.java Mon May 14 22:44:57 2012
@@ -20,19 +20,23 @@
package org.apache.isis.runtimes.dflt.testsupport.tck;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotSame;
+import java.util.Date;
+
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.PersistenceMechanismInstaller;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.persistence.query.PersistenceQueryFindByTitle;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
import org.apache.isis.tck.dom.eg.ExamplePojoWithValues;
@@ -40,18 +44,30 @@ public abstract class ObjectStoreContrac
@Rule
public IsisSystemWithFixtures iswf = IsisSystemWithFixtures.builder()
- .with(createPersistenceMechanismInstaller()).build();
+ .with(createPersistenceMechanismInstaller())
+ .with(iswfListener()).build();
+
/**
* Mandatory hook.
*/
protected abstract PersistenceMechanismInstaller createPersistenceMechanismInstaller();
+ protected IsisSystemWithFixtures.Listener iswfListener() {
+ return null;
+ }
+
+ /**
+ * hook method
+ */
+ protected void resetPersistenceStore() {
+ }
+
protected ObjectAdapter epv2Adapter;
protected ObjectSpecification epvSpecification;
protected ObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
+ PersistenceSession psos = IsisContext.getPersistenceSession();
return (ObjectStore) psos.getObjectStore();
}
@@ -66,21 +82,28 @@ public abstract class ObjectStoreContrac
@Test
public void getInstances_usingFindByTitle() throws Exception {
- final String titleString = epv2Adapter.titleString();
+ // given nothing in DB
+ resetPersistenceStore();
- // when locate
- ObjectAdapter[] retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, titleString));
+ // when search for any object
+ boolean hasInstances = getStore().hasInstances(epvSpecification);
- // then none
- assertEquals(0, retrievedInstance.length);
+ // then find none
+ assertFalse(hasInstances);
// given now persisted
- iswf.persist(iswf.fixtures.epv2);
+ final ExamplePojoWithValues epv2 = iswf.fixtures.epv2;
+ epv2.setName("foo");
+ epv2.setDate(new Date());
+ epv2.setNullable(1234567890L);
+ epv2.setSize(123);
+
+ iswf.persist(epv2);
iswf.bounceSystem();
- // when locate
- retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, titleString));
+ // when search for object
+ ObjectAdapter[] retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, epv2Adapter.titleString()));
// then find
assertEquals(1, retrievedInstance.length);
@@ -90,47 +113,55 @@ public abstract class ObjectStoreContrac
assertEquals(((ExamplePojoWithValues)epv2Adapter.getObject()).getName(), ((ExamplePojoWithValues)retrievedAdapter.getObject()).getName());
assertEquals(epv2Adapter.getOid(), retrievedAdapter.getOid());
-
- // and then don't find by other title
+ // and when search for some other title
retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, "some other title"));
+
+ // then don't find
assertEquals(0, retrievedInstance.length);
}
@Test
- public void saveInstance() throws Exception {
+ public void updateInstance() throws Exception {
// given persisted
- iswf.persist(iswf.fixtures.epv2);
-
+ resetPersistenceStore();
+ ObjectAdapter adapter = iswf.persist(iswf.fixtures.epv2);
+ final RootOid oid = (RootOid) adapter.getOid();
iswf.bounceSystem();
- // when change (xactn is implicitly committed here)
- iswf.fixtures.epv2.setName("changed");
+ // when change
+ adapter = iswf.reload(oid);
+
+ ExamplePojoWithValues epv = (ExamplePojoWithValues) adapter.getObject();
+ epv.setName("changed");
iswf.bounceSystem();
// then found
- ObjectAdapter[] retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, "changed"));
+ ObjectAdapter[] retrievedInstance = getStore().getInstances(new PersistenceQueryFindByTitle(epvSpecification, adapter.titleString()));
assertEquals(1, retrievedInstance.length);
final ObjectAdapter retrievedAdapter = retrievedInstance[0];
- assertNotSame(epv2Adapter, retrievedAdapter);
- assertEquals(((ExamplePojoWithValues)epv2Adapter.getObject()).getName(), ((ExamplePojoWithValues)retrievedAdapter.getObject()).getName());
- assertEquals(epv2Adapter.getOid(), retrievedAdapter.getOid());
+ assertNotSame(adapter, retrievedAdapter);
+ assertEquals(((ExamplePojoWithValues)adapter.getObject()).getName(), ((ExamplePojoWithValues)retrievedAdapter.getObject()).getName());
+ assertEquals(adapter.getOid(), retrievedAdapter.getOid());
}
@Test
public void removeInstance() throws Exception {
// given persisted
- iswf.persist(iswf.fixtures.epv2);
-
+ resetPersistenceStore();
+ ObjectAdapter adapter = iswf.persist(iswf.fixtures.epv2);
+ final RootOid oid = (RootOid) adapter.getOid();
iswf.bounceSystem();
// when destroy
- iswf.destroy(iswf.fixtures.epv2);
+ adapter = iswf.reload(oid);
+ ExamplePojoWithValues epv = (ExamplePojoWithValues) adapter.getObject();
+ iswf.destroy(epv);
iswf.bounceSystem();
// then not found
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_debug.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_debug.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_debug.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_debug.java Mon May 14 22:44:57 2012
@@ -27,8 +27,8 @@ import org.junit.Test;
import org.apache.isis.core.commons.debug.DebugString;
import org.apache.isis.core.commons.matchers.IsisMatchers;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
+import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
public class InMemoryObjectStoreTest_debug {
@@ -37,8 +37,7 @@ public class InMemoryObjectStoreTest_deb
public IsisSystemWithFixtures iswf = IsisSystemWithFixtures.builder().build();
private static InMemoryObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
- return (InMemoryObjectStore) psos.getObjectStore();
+ return (InMemoryObjectStore) IsisContext.getPersistenceSession().getObjectStore();
}
@Test
@@ -64,7 +63,7 @@ public class InMemoryObjectStoreTest_deb
// then
- assertThat(debug.toString(), IsisMatchers.containsStripNewLines("OID:EPV#3"));
+ assertThat(debug.toString(), IsisMatchers.containsStripNewLines("EPV:3"));
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_init.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_init.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_init.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_init.java Mon May 14 22:44:57 2012
@@ -24,7 +24,6 @@ import static org.junit.Assert.assertFal
import org.junit.Rule;
import org.junit.Test;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
@@ -34,8 +33,7 @@ public class InMemoryObjectStoreTest_ini
public IsisSystemWithFixtures iswf = IsisSystemWithFixtures.builder().build();
private static InMemoryObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
- return (InMemoryObjectStore) psos.getObjectStore();
+ return (InMemoryObjectStore) IsisContext.getPersistenceSession().getObjectStore();
}
@Test
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_persist.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_persist.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_persist.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_persist.java Mon May 14 22:44:57 2012
@@ -20,6 +20,7 @@
package org.apache.isis.runtimes.dflt.objectstores.dflt;
import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.PersistenceMechanismInstaller;
+import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures.Listener;
import org.apache.isis.runtimes.dflt.testsupport.tck.ObjectStoreContractTest_persist;
public class InMemoryObjectStoreTest_persist extends ObjectStoreContractTest_persist {
@@ -28,4 +29,9 @@ public class InMemoryObjectStoreTest_per
protected PersistenceMechanismInstaller createPersistenceMechanismInstaller() {
return new InMemoryPersistenceMechanismInstaller();
}
+
+ @Override
+ protected Listener iswfListener() {
+ return null;
+ }
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_reset.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_reset.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_reset.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_reset.java Mon May 14 22:44:57 2012
@@ -28,7 +28,6 @@ import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
@@ -47,8 +46,7 @@ public class InMemoryObjectStoreTest_res
protected ObjectSpecification epvSpecification;
protected InMemoryObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
- return (InMemoryObjectStore) psos.getObjectStore();
+ return (InMemoryObjectStore) IsisContext.getPersistenceSession().getObjectStore();
}
@Before
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_retrieve.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_retrieve.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_retrieve.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_retrieve.java Mon May 14 22:44:57 2012
@@ -30,15 +30,14 @@ import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
+import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.runtimes.dflt.runtime.persistence.ObjectNotFoundException;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.persistence.query.PersistenceQueryFindAllInstances;
import org.apache.isis.runtimes.dflt.runtime.persistence.query.PersistenceQueryFindByTitle;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
import org.apache.isis.tck.dom.eg.ExamplePojoWithValues;
-import org.apache.isis.tck.dom.eg.TestPojo;
public class InMemoryObjectStoreTest_retrieve {
@@ -49,8 +48,7 @@ public class InMemoryObjectStoreTest_ret
protected ObjectSpecification epvSpecification;
protected InMemoryObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
- return (InMemoryObjectStore) psos.getObjectStore();
+ return (InMemoryObjectStore) IsisContext.getPersistenceSession().getObjectStore();
}
@Before
@@ -61,9 +59,9 @@ public class InMemoryObjectStoreTest_ret
@Test
public void getObject_whenDoesNotExist() {
- final Oid oid = RootOidDefault.create("EPV|10");
+ final TypedOid oid = RootOidDefault.deString("EPV:10");
try {
- getStore().getObject(oid, epvSpecification);
+ getStore().getObject(oid);
fail();
} catch (final ObjectNotFoundException expected) {
}
@@ -76,7 +74,7 @@ public class InMemoryObjectStoreTest_ret
iswf.persist(iswf.fixtures.epv2);
iswf.bounceSystem();
- final ObjectAdapter retrievedAdapter = getStore().getObject(epv2Adapter.getOid(), epvSpecification);
+ final ObjectAdapter retrievedAdapter = getStore().getObject((TypedOid) epv2Adapter.getOid());
assertNotSame(epv2Adapter, retrievedAdapter);
assertEquals(((ExamplePojoWithValues)epv2Adapter.getObject()).getName(), ((ExamplePojoWithValues)retrievedAdapter.getObject()).getName());
Modified: incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_serviceRegistry.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_serviceRegistry.java?rev=1338472&r1=1338471&r2=1338472&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_serviceRegistry.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/testsupport/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStoreTest_serviceRegistry.java Mon May 14 22:44:57 2012
@@ -28,8 +28,8 @@ import org.junit.Test;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.adapter.oid.RootOidDefault;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.PersistenceSessionObjectStore;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
import org.apache.isis.runtimes.dflt.testsupport.IsisSystemWithFixtures;
import org.apache.isis.tck.dom.eg.ExamplePojoWithValues;
@@ -44,8 +44,7 @@ public class InMemoryObjectStoreTest_ser
protected ObjectSpecification epvSpecification;
protected InMemoryObjectStore getStore() {
- PersistenceSessionObjectStore psos = (PersistenceSessionObjectStore)IsisContext.getPersistenceSession();
- return (InMemoryObjectStore) psos.getObjectStore();
+ return (InMemoryObjectStore) IsisContext.getPersistenceSession().getObjectStore();
}
@Before
@@ -57,7 +56,7 @@ public class InMemoryObjectStoreTest_ser
@Test
public void getOidForServices() throws Exception {
final Oid oidForService = getStore().getOidForService(iswf.loadSpecification(TestPojoRepository.class));
- assertEquals(RootOidDefault.create(TestPojoRepository.class.getName(), "1"), oidForService);
+ assertEquals(RootOidDefault.create(ObjectSpecId.of("TestPojoRepository"), "1"), oidForService);
}