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 2014/04/23 21:43:55 UTC

[12/14] ISIS-421: fixes to in-memory objectstore to make RO TCK tests more reliable...

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_thenRepresentation_doesNotContainSelfLink_ok.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_thenRepresentation_doesNotContainSelfLink_ok.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_thenRepresentation_doesNotContainSelfLink_ok.java
index 95e0697..86355e7 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_thenRepresentation_doesNotContainSelfLink_ok.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_thenRepresentation_doesNotContainSelfLink_ok.java
@@ -24,10 +24,12 @@ import static org.junit.Assert.assertThat;
 
 import javax.ws.rs.core.Response;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
@@ -55,6 +57,14 @@ public class Put_thenRepresentation_doesNotContainSelfLink_ok {
         serviceResource = client.getDomainServiceResource();
     }
 
+    /**
+     * Tests might change state, so discard such that will be recreated by next test.
+     */
+    @After
+    public void tearDown() throws Exception {
+        webServerRule.discardWebApp();
+    }
+
     @Test
     public void usingClientFollow() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenRequestHeaders_Accept_ok_TODO.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenRequestHeaders_Accept_ok_TODO.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenRequestHeaders_Accept_ok_TODO.java
index 9748a63..be2dfda 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenRequestHeaders_Accept_ok_TODO.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenRequestHeaders_Accept_ok_TODO.java
@@ -18,6 +18,33 @@
  */
 package org.apache.isis.viewer.restfulobjects.tck.domainobjectorservice.id.action.invoke;
 
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+
+import org.apache.isis.core.webserver.WebServer;
+import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
+import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+
 public class Put_whenRequestHeaders_Accept_ok_TODO {
 
+    @Rule
+    public IsisWebServerRule webServerRule = new IsisWebServerRule();
+
+    protected RestfulClient client;
+
+    @Before
+    public void setUp() throws Exception {
+        final WebServer webServer = webServerRule.getWebServer();
+        client = new RestfulClient(webServer.getBase());
+    }
+
+    /**
+     * Tests change state, so discard such that will be recreated by next test.
+     */
+    @After
+    public void tearDown() throws Exception {
+        webServerRule.discardWebApp();
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenStringArgs_then_ok.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenStringArgs_then_ok.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenStringArgs_then_ok.java
index 697f2d2..7d3ceb9 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenStringArgs_then_ok.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainobjectorservice/id/action/invoke/Put_whenStringArgs_then_ok.java
@@ -23,10 +23,12 @@ import static org.junit.Assert.assertThat;
 
 import javax.ws.rs.core.Response;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 
+import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.client.RestfulClient;
@@ -56,6 +58,14 @@ public class Put_whenStringArgs_then_ok {
         serviceResource = client.getDomainServiceResource();
     }
 
+    /**
+     * Tests might change state, so discard such that will be recreated by next test.
+     */
+    @After
+    public void tearDown() throws Exception {
+        webServerRule.discardWebApp();
+    }
+
     @Test
     public void usingClientFollow() throws Exception {
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainservice/serviceId/Put_then_405_bad.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainservice/serviceId/Put_then_405_bad.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainservice/serviceId/Put_then_405_bad.java
index 4ef03f7..3a73c44 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainservice/serviceId/Put_then_405_bad.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/domainservice/serviceId/Put_then_405_bad.java
@@ -19,9 +19,11 @@
 package org.apache.isis.viewer.restfulobjects.tck.domainservice.serviceId;
 
 import javax.ws.rs.core.Response;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+
 import org.apache.isis.core.webserver.WebServer;
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
@@ -32,6 +34,7 @@ import org.apache.isis.viewer.restfulobjects.applib.client.RestfulResponse;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainObjectRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.domainobjects.DomainServiceResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+import org.apache.isis.viewer.restfulobjects.tck.Util;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
@@ -54,6 +57,7 @@ public class Put_then_405_bad {
     @Test
     public void followLink() throws Exception {
 
+
         // given
         final Response serviceResp = domainServiceResource.service("ActionsEntities");
         final RestfulResponse<DomainObjectRepresentation> serviceJsonResp = RestfulResponse.ofT(serviceResp);

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/version/Delete_then_405_bad.java
----------------------------------------------------------------------
diff --git a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/version/Delete_then_405_bad.java b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/version/Delete_then_405_bad.java
index 613e6e0..7114ab7 100644
--- a/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/version/Delete_then_405_bad.java
+++ b/component/viewer/restfulobjects/tck/src/test/java/org/apache/isis/viewer/restfulobjects/tck/version/Delete_then_405_bad.java
@@ -19,9 +19,11 @@
 package org.apache.isis.viewer.restfulobjects.tck.version;
 
 import javax.ws.rs.core.Response;
+
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+
 import org.apache.isis.viewer.restfulobjects.applib.JsonRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.LinkRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.Rel;
@@ -33,6 +35,7 @@ import org.apache.isis.viewer.restfulobjects.applib.user.UserResource;
 import org.apache.isis.viewer.restfulobjects.applib.version.VersionRepresentation;
 import org.apache.isis.viewer.restfulobjects.applib.version.VersionResource;
 import org.apache.isis.viewer.restfulobjects.tck.IsisWebServerRule;
+import org.apache.isis.viewer.restfulobjects.tck.Util;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
@@ -54,6 +57,8 @@ public class Delete_then_405_bad {
     @Test
     public void representation() throws Exception {
 
+        Util.serviceActionListInvokeFirstReference(client, "PrimitiveValuedEntities");
+
         // given
         final Response resp = resource.version();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/InMemoryObjectStore.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/InMemoryObjectStore.java b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/InMemoryObjectStore.java
index 8630902..5ae36cf 100644
--- a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/InMemoryObjectStore.java
+++ b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/InMemoryObjectStore.java
@@ -27,6 +27,7 @@ import java.util.Vector;
 import com.google.common.collect.Lists;
 
 import org.apache.isis.core.runtime.persistence.ObjectNotFoundException;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -41,6 +42,7 @@ import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
+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.core.metamodel.spec.feature.Contributed;
@@ -105,9 +107,9 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
     }
 
     protected void recreateAdapters() {
-        for (final ObjectSpecification noSpec : persistedObjects.specifications()) {
+        for (final ObjectSpecId noSpec : persistedObjects.specifications()) {
             if (LOG.isDebugEnabled()) {
-                LOG.debug("recreating adapters for: " + noSpec.getFullIdentifier());
+                LOG.debug("recreating adapters for: " + noSpec.asString());
             }
             recreateAdapters(persistedObjects.instancesFor(noSpec));
         }
@@ -243,7 +245,7 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
             LOG.debug("getObject " + oid);
         }
         final ObjectSpecification objectSpec = getSpecificationLookup().lookupBySpecId(oid.getObjectSpecId());
-        final ObjectStoreInstances ins = instancesFor(objectSpec);
+        final ObjectStoreInstances ins = instancesFor(objectSpec.getSpecId());
         final ObjectAdapter adapter = ins.getObjectAndMapIfRequired(oid);
         if (adapter == null) {
             throw new ObjectNotFoundException(oid);
@@ -297,7 +299,7 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
 
     @Override
     public boolean hasInstances(final ObjectSpecification spec) {
-        if (instancesFor(spec).hasInstances()) {
+        if (instancesFor(spec.getSpecId()).hasInstances()) {
             return true;
         }
 
@@ -314,7 +316,7 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
 
     private void findInstances(final ObjectSpecification spec, final PersistenceQueryBuiltIn persistenceQuery, final List<ObjectAdapter> foundInstances) {
 
-        instancesFor(spec).findInstancesAndAdd(persistenceQuery, foundInstances);
+        instancesFor(spec.getSpecId()).findInstancesAndAdd(persistenceQuery, foundInstances);
 
         // include subclasses
         final List<ObjectSpecification> subclasses = spec.subclasses();
@@ -344,7 +346,7 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
         persistedObjects.registerService(rootOid.getObjectSpecId(), rootOid);
     }
 
-    private ObjectStoreInstances instancesFor(final ObjectSpecification spec) {
+    private ObjectStoreInstances instancesFor(final ObjectSpecId spec) {
         return persistedObjects.instancesFor(spec);
     }
 
@@ -360,9 +362,9 @@ public class InMemoryObjectStore implements ObjectStoreSpi {
     @Override
     public void debugData(final DebugBuilder debug) {
         debug.appendTitle("Domain Objects");
-        for (final ObjectSpecification spec : persistedObjects.specifications()) {
-            debug.appendln(spec.getFullIdentifier());
-            final ObjectStoreInstances instances = instancesFor(spec);
+        for (final ObjectSpecId specId : persistedObjects.specifications()) {
+            debug.appendln(specId.asString());
+            final ObjectStoreInstances instances = instancesFor(specId);
             instances.debugData(debug);
         }
         debug.unindent();

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/commands/AbstractInMemoryPersistenceCommand.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/commands/AbstractInMemoryPersistenceCommand.java b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/commands/AbstractInMemoryPersistenceCommand.java
index 0a4df11..6937cf6 100644
--- a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/commands/AbstractInMemoryPersistenceCommand.java
+++ b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/commands/AbstractInMemoryPersistenceCommand.java
@@ -23,6 +23,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.objectstore.internal.ObjectStoreInstances;
 import org.apache.isis.core.objectstore.internal.ObjectStorePersistedObjects;
@@ -45,7 +46,7 @@ public abstract class AbstractInMemoryPersistenceCommand extends PersistenceComm
         if (LOG.isDebugEnabled()) {
             LOG.debug("   saving object " + adapter + " as instance of " + specification.getShortIdentifier());
         }
-        final ObjectStoreInstances ins = instancesFor(specification);
+        final ObjectStoreInstances ins = instancesFor(specification.getSpecId());
         ins.save(adapter); // also sets the version
     }
 
@@ -54,11 +55,11 @@ public abstract class AbstractInMemoryPersistenceCommand extends PersistenceComm
         if (LOG.isDebugEnabled()) {
             LOG.debug("   destroy object " + adapter + " as instance of " + specification.getShortIdentifier());
         }
-        final ObjectStoreInstances ins = instancesFor(specification);
+        final ObjectStoreInstances ins = instancesFor(specification.getSpecId());
         ins.remove(adapter.getOid());
     }
 
-    private ObjectStoreInstances instancesFor(final ObjectSpecification spec) {
+    private ObjectStoreInstances instancesFor(final ObjectSpecId spec) {
         return persistedObjects.instancesFor(spec);
     }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances.java b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances.java
index 0cfadd0..3a6ea23 100644
--- a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances.java
+++ b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances.java
@@ -35,6 +35,7 @@ import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.version.SerialNumberVersion;
 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.objectstore.InMemoryObjectStore;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryBuiltIn;
@@ -53,13 +54,13 @@ public class ObjectStoreInstances {
     private final Map<Oid, Version> versionByOidMap = new HashMap<Oid, Version>();
 
     @SuppressWarnings("unused")
-    private final ObjectSpecification spec;
+    private final ObjectSpecId spec;
 
     // ///////////////////////////////////////////////////////
     // Constructors
     // ///////////////////////////////////////////////////////
 
-    public ObjectStoreInstances(final ObjectSpecification spec) {
+    public ObjectStoreInstances(final ObjectSpecId spec) {
         this.spec = spec;
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjects.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjects.java b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjects.java
index 76022ee..85dffcb 100644
--- a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjects.java
+++ b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjects.java
@@ -39,9 +39,9 @@ public interface ObjectStorePersistedObjects {
 
     public Oid getService(ObjectSpecId objectSpecId);
 
-    public Iterable<ObjectSpecification> specifications();
+    public Iterable<ObjectSpecId> specifications();
 
-    public ObjectStoreInstances instancesFor(ObjectSpecification spec);
+    public ObjectStoreInstances instancesFor(ObjectSpecId spec);
 
     public Iterable<ObjectStoreInstances> instances();
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault.java b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault.java
index 690cc78..33d06a0 100644
--- a/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault.java
+++ b/core/objectstore-inmemory/src/main/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault.java
@@ -20,6 +20,7 @@
 package org.apache.isis.core.objectstore.internal;
 
 import java.util.Map;
+import java.util.Set;
 
 import com.google.common.collect.Maps;
 
@@ -36,7 +37,7 @@ import org.apache.isis.core.runtime.system.persistence.IdentifierGeneratorDefaul
  */
 public class ObjectStorePersistedObjectsDefault implements ObjectStorePersistedObjects {
 
-    private final Map<ObjectSpecification, ObjectStoreInstances> instancesBySpecMap = Maps.newHashMap();
+    private final Map<ObjectSpecId, ObjectStoreInstances> instancesBySpecMap = Maps.newHashMap();
     private final Map<ObjectSpecId, Oid> serviceOidByIdMap = Maps.newHashMap();
 
     private IdentifierGeneratorDefault.Memento oidGeneratorMemento;
@@ -74,17 +75,17 @@ public class ObjectStorePersistedObjectsDefault implements ObjectStorePersistedO
     // also think we shouldn't surface the entire Map, just the API we require
     // (keySet, values etc).
     @Override
-    public ObjectStoreInstances instancesFor(final ObjectSpecification spec) {
-        ObjectStoreInstances ins = instancesBySpecMap.get(spec);
+    public ObjectStoreInstances instancesFor(final ObjectSpecId specId) {
+        ObjectStoreInstances ins = instancesBySpecMap.get(specId);
         if (ins == null) {
-            ins = new ObjectStoreInstances(spec);
-            instancesBySpecMap.put(spec, ins);
+            ins = new ObjectStoreInstances(specId);
+            instancesBySpecMap.put(specId, ins);
         }
         return ins;
     }
 
     @Override
-    public Iterable<ObjectSpecification> specifications() {
+    public Iterable<ObjectSpecId> specifications() {
         return instancesBySpecMap.keySet();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_findInstancesAndAdd.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_findInstancesAndAdd.java b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_findInstancesAndAdd.java
index 46883ed..e1835b6 100644
--- a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_findInstancesAndAdd.java
+++ b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_findInstancesAndAdd.java
@@ -35,6 +35,7 @@ import org.junit.Test;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.commons.matchers.IsisMatchers;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.runtime.persistence.query.PersistenceQueryBuiltIn;
 import org.apache.isis.core.runtime.system.persistence.AdapterManagerSpi;
@@ -50,7 +51,7 @@ public class ObjectStoreInstances_findInstancesAndAdd {
     public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
 
     @Mock
-    private ObjectSpecification mockSpec;
+    private ObjectSpecId mockSpecId;
     @Mock
     private PersistenceQueryBuiltIn mockPersistenceQueryBuiltIn;
     @Mock
@@ -65,7 +66,7 @@ public class ObjectStoreInstances_findInstancesAndAdd {
 
     @Before
     public void setUp() throws Exception {
-        instances = new ObjectStoreInstances(mockSpec) {
+        instances = new ObjectStoreInstances(mockSpecId) {
             @Override
             protected AuthenticationSession getAuthenticationSession() {
                 return mockAuthSession;

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_init.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_init.java b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_init.java
index 046272c..cd2c384 100644
--- a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_init.java
+++ b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_init.java
@@ -33,6 +33,7 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 /**
@@ -46,12 +47,12 @@ public class ObjectStoreInstances_init {
 
     private final Mockery context = new JUnit4Mockery();
 
-    private ObjectSpecification mockSpec;
+    private ObjectSpecId mockSpecId;
 
     @Before
     public void setUp() throws Exception {
-        mockSpec = context.mock(ObjectSpecification.class);
-        instances = new ObjectStoreInstances(mockSpec);
+        mockSpecId = context.mock(ObjectSpecId.class);
+        instances = new ObjectStoreInstances(mockSpecId);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_save.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_save.java b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_save.java
index 238ec49..9d93d54 100644
--- a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_save.java
+++ b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStoreInstances_save.java
@@ -37,12 +37,8 @@ import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
 import org.apache.isis.core.metamodel.adapter.version.Version;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 
-/**
- * Tested in style of <i>Working Effectively with Legacy Code</i> (Feathers) and
- * <i>Growing Object-Oriented Software</i> (Freeman &amp; Pryce).
- */
 @RunWith(JMock.class)
 public class ObjectStoreInstances_save {
 
@@ -50,16 +46,16 @@ public class ObjectStoreInstances_save {
 
     private final Mockery context = new JUnit4Mockery();
 
-    private ObjectSpecification mockSpec;
+    private ObjectSpecId mockSpecId;
     private ObjectAdapter mockAdapter;
     private AuthenticationSession mockAuthSession;
 
     @Before
     public void setUp() throws Exception {
-        mockSpec = context.mock(ObjectSpecification.class);
+        mockSpecId = context.mock(ObjectSpecId.class);
         mockAdapter = context.mock(ObjectAdapter.class);
         mockAuthSession = context.mock(AuthenticationSession.class);
-        instances = new ObjectStoreInstances(mockSpec) {
+        instances = new ObjectStoreInstances(mockSpecId) {
             @Override
             protected AuthenticationSession getAuthenticationSession() {
                 return mockAuthSession;

http://git-wip-us.apache.org/repos/asf/isis/blob/964e252b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault_instances.java
----------------------------------------------------------------------
diff --git a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault_instances.java b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault_instances.java
index d0cb746..9227c14 100644
--- a/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault_instances.java
+++ b/core/objectstore-inmemory/src/test/java/org/apache/isis/core/objectstore/internal/ObjectStorePersistedObjectsDefault_instances.java
@@ -30,6 +30,7 @@ import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 
 @RunWith(JMock.class)
@@ -39,12 +40,12 @@ public class ObjectStorePersistedObjectsDefault_instances {
 
     private final Mockery context = new JUnit4Mockery();
 
-    private ObjectSpecification mockSpec;
+    private ObjectSpecId mockSpec;
 
     @Before
     public void setUp() throws Exception {
         persistedObjects = new ObjectStorePersistedObjectsDefault();
-        mockSpec = context.mock(ObjectSpecification.class);
+        mockSpec = context.mock(ObjectSpecId.class);
     }
 
     @Test