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/03/24 15:01:52 UTC
svn commit: r1304796 [4/16] - in /incubator/isis/trunk/framework:
applib/src/main/java/org/apache/isis/applib/
applib/src/test/java/org/apache/isis/applib/
core/commons/src/main/java/org/apache/isis/core/commons/config/
core/commons/src/main/java/org/a...
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/pom.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/pom.xml?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/pom.xml (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/pom.xml Sat Mar 24 14:01:35 2012
@@ -82,27 +82,7 @@
<groupId>org.apache.isis.runtimes.dflt</groupId>
<artifactId>runtime</artifactId>
</dependency>
- <dependency>
- <groupId>org.apache.isis.runtimes.dflt</groupId>
- <artifactId>runtime</artifactId>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
-
- <!-- todo: remove this dependency -->
- <dependency>
- <groupId>org.apache.isis.progmodels</groupId>
- <artifactId>dflt</artifactId>
- <version>0.3.0-incubating-SNAPSHOT</version>
- <scope>test</scope>
- </dependency>
- <!-- todo: remove this dependency -->
- <dependency>
- <groupId>org.apache.isis.runtimes.dflt.bytecode</groupId>
- <artifactId>dflt</artifactId>
- <scope>test</scope>
- </dependency>
</dependencies>
</project>
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryObjectStore.java Sat Mar 24 14:01:35 2012
@@ -32,6 +32,7 @@ import org.apache.isis.core.commons.exce
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.ResolveState;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
@@ -138,7 +139,7 @@ public class InMemoryObjectStore impleme
final ObjectAdapter recreatedAdapter = getHydrator().recreateAdapter(oid, pojo);
final Version version = objectStoreInstances.getVersion(oid);
- recreatedAdapter.setOptimisticLock(version);
+ recreatedAdapter.setVersion(version);
}
}
@@ -229,15 +230,15 @@ public class InMemoryObjectStore impleme
@Override
public ObjectAdapter getObject(final Oid oid, final ObjectSpecification hint) throws ObjectNotFoundException, ObjectPersistenceException {
- LOG.debug("getObject " + oid);
+ if(LOG.isDebugEnabled()) {
+ LOG.debug("getObject " + oid);
+ }
final ObjectStoreInstances ins = instancesFor(hint);
final ObjectAdapter object = ins.retrieveObject(oid);
if (object == null) {
throw new ObjectNotFoundException(oid);
- } else {
- setupReferencedObjects(object);
- return object;
- }
+ }
+ return object;
}
@Override
@@ -253,7 +254,6 @@ public class InMemoryObjectStore impleme
// the object being resolved.
if (adapter.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
LOG.debug("resolve " + adapter);
- setupReferencedObjects(adapter);
PersistorUtil.start(adapter, ResolveState.RESOLVING);
PersistorUtil.end(adapter); // moves to RESOLVED
@@ -269,41 +269,7 @@ public class InMemoryObjectStore impleme
PersistorUtil.end(reference);
}
- private void setupReferencedObjects(final ObjectAdapter object) {
- setupReferencedObjects(object, new Vector());
- }
- private void setupReferencedObjects(final ObjectAdapter adapter, final Vector all) {
- // TODO: is this code needed, then? Looks like it isn't...
- if (true) {
- return;
- }
-
- if (adapter == null || all.contains(adapter)) {
- return;
- }
- all.addElement(adapter);
- PersistorUtil.start(adapter, ResolveState.RESOLVING);
-
- final List<ObjectAssociation> fields = adapter.getSpecification().getAssociations();
- for (int i = 0; i < fields.size(); i++) {
- final ObjectAssociation field = fields.get(i);
- if (field.isOneToManyAssociation()) {
- final ObjectAdapter col = field.get(adapter);
- final CollectionFacet facet = CollectionFacetUtils.getCollectionFacetFromSpec(col);
- for (final Iterator<ObjectAdapter> e = facet.iterator(col); e.hasNext();) {
- final ObjectAdapter element = e.next();
- setupReferencedObjects(element, all);
- }
- } else if (field.isOneToOneAssociation()) {
- final ObjectAdapter fieldContent = field.get(adapter);
- setupReferencedObjects(fieldContent, all);
- }
- }
-
- PersistorUtil.end(adapter);
-
- }
// ///////////////////////////////////////////////////////
// getInstances, hasInstances
@@ -356,7 +322,6 @@ public class InMemoryObjectStore impleme
final ObjectAdapter[] ins = new ObjectAdapter[instances.size()];
for (int i = 0; i < ins.length; i++) {
final ObjectAdapter object = instances.elementAt(i);
- setupReferencedObjects(object);
if (object.getResolveState().canChangeTo(ResolveState.RESOLVING)) {
PersistorUtil.start(object, ResolveState.RESOLVING);
PersistorUtil.end(object);
@@ -371,13 +336,13 @@ public class InMemoryObjectStore impleme
// ///////////////////////////////////////////////////////
@Override
- public Oid getOidForService(ObjectSpecification serviceSpecification, final String name) {
- return persistedObjects.getService(name);
+ public RootOid getOidForService(ObjectSpecification serviceSpec) {
+ return (RootOid) persistedObjects.getService(serviceSpec.getObjectType());
}
@Override
- public void registerService(final String name, final Oid oid) {
- persistedObjects.registerService(name, oid);
+ public void registerService(final RootOid rootOid) {
+ persistedObjects.registerService(rootOid.getObjectType(), rootOid);
}
private ObjectStoreInstances instancesFor(final ObjectSpecification spec) {
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceMechanismInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceMechanismInstaller.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceMechanismInstaller.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceMechanismInstaller.java Sat Mar 24 14:01:35 2012
@@ -32,8 +32,10 @@ import org.apache.isis.runtimes.dflt.run
*/
public class InMemoryPersistenceMechanismInstaller extends ObjectStorePersistenceMechanismInstallerAbstract {
+ public static final String NAME = "in-memory";
+
public InMemoryPersistenceMechanismInstaller() {
- super("in-memory");
+ super(NAME);
}
// ///////////////////////////////////////////////////////////////
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceSessionFactory.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceSessionFactory.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceSessionFactory.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/InMemoryPersistenceSessionFactory.java Sat Mar 24 14:01:35 2012
@@ -24,7 +24,7 @@ import org.apache.isis.runtimes.dflt.obj
import org.apache.isis.runtimes.dflt.objectstores.dflt.internal.ObjectStorePersistedObjectsDefault;
import org.apache.isis.runtimes.dflt.runtime.persistence.PersistenceSessionFactoryDelegate;
import org.apache.isis.runtimes.dflt.runtime.persistence.PersistenceSessionFactoryDelegating;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SimpleOidGenerator;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator;
import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.OidGenerator;
import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSession;
@@ -46,9 +46,9 @@ public class InMemoryPersistenceSessionF
final PersistenceSession persistenceSession = super.createPersistenceSession();
if (persistedObjects != null) {
final OidGenerator oidGenerator = persistenceSession.getOidGenerator();
- if (oidGenerator instanceof SimpleOidGenerator) {
- final SimpleOidGenerator simpleOidGenerator = (SimpleOidGenerator) oidGenerator;
- simpleOidGenerator.resetTo(persistedObjects.getOidGeneratorMemento());
+ if (oidGenerator instanceof RootOidGenerator) {
+ final RootOidGenerator rootOidGenerator = (RootOidGenerator) oidGenerator;
+ rootOidGenerator.resetTo(persistedObjects.getOidGeneratorMemento());
}
}
@@ -69,9 +69,9 @@ public class InMemoryPersistenceSessionF
*/
public void attach(final PersistenceSession persistenceSession, final ObjectStorePersistedObjects persistedObjects) {
final OidGenerator oidGenerator = persistenceSession.getOidGenerator();
- if (oidGenerator instanceof SimpleOidGenerator) {
- final SimpleOidGenerator simpleOidGenerator = (SimpleOidGenerator) oidGenerator;
- persistedObjects.saveOidGeneratorMemento(simpleOidGenerator.getMemento());
+ if (oidGenerator instanceof RootOidGenerator) {
+ final RootOidGenerator rootOidGenerator = (RootOidGenerator) oidGenerator;
+ persistedObjects.saveOidGeneratorMemento(rootOidGenerator.getMemento());
}
this.persistedObjects = persistedObjects;
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances.java Sat Mar 24 14:01:35 2012
@@ -105,7 +105,7 @@ public class ObjectStoreInstances {
final SerialNumberVersion version = versionByOidMap.get(adapter.getOid());
final SerialNumberVersion nextVersion = nextVersion(version);
versionByOidMap.put(adapter.getOid(), nextVersion);
- adapter.setOptimisticLock(nextVersion);
+ adapter.setVersion(nextVersion);
}
private synchronized SerialNumberVersion nextVersion(final SerialNumberVersion version) {
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjects.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjects.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjects.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjects.java Sat Mar 24 14:01:35 2012
@@ -21,7 +21,7 @@ package org.apache.isis.runtimes.dflt.ob
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SimpleOidGenerator.Memento;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator.Memento;
/**
* Represents the persisted objects.
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/main/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault.java Sat Mar 24 14:01:35 2012
@@ -25,7 +25,7 @@ import java.util.Map;
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SimpleOidGenerator.Memento;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator.Memento;
/**
* Represents the persisted objects.
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances_save.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances_save.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances_save.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStoreInstances_save.java Sat Mar 24 14:01:35 2012
@@ -81,7 +81,7 @@ public class ObjectStoreInstances_save {
allowingGetOidAndGetObjectAndTitleStringFromAdapter();
context.checking(new Expectations() {
{
- one(mockAdapter).setOptimisticLock(with(any(Version.class)));
+ one(mockAdapter).setVersion(with(any(Version.class)));
}
});
instances.save(mockAdapter);
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault_savesOidGeneratorAsMemento.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault_savesOidGeneratorAsMemento.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault_savesOidGeneratorAsMemento.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/dflt/src/test/java/org/apache/isis/runtimes/dflt/objectstores/dflt/internal/ObjectStorePersistedObjectsDefault_savesOidGeneratorAsMemento.java Sat Mar 24 14:01:35 2012
@@ -29,8 +29,8 @@ import org.jmock.lib.legacy.ClassImposte
import org.junit.Before;
import org.junit.Test;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SimpleOidGenerator;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SimpleOidGenerator.Memento;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGenerator.Memento;
public class ObjectStorePersistedObjectsDefault_savesOidGeneratorAsMemento {
@@ -42,12 +42,12 @@ public class ObjectStorePersistedObjects
}
};
- private SimpleOidGenerator.Memento mockMemento;
+ private RootOidGenerator.Memento mockMemento;
@Before
public void setUp() throws Exception {
persistedObjects = new ObjectStorePersistedObjectsDefault();
- mockMemento = context.mock(SimpleOidGenerator.Memento.class);
+ mockMemento = context.mock(RootOidGenerator.Memento.class);
}
@Test
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/GivenJpaProgrammingModelWhenInitializingTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/GivenJpaProgrammingModelWhenInitializingTest.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/GivenJpaProgrammingModelWhenInitializingTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/GivenJpaProgrammingModelWhenInitializingTest.java Sat Mar 24 14:01:35 2012
@@ -57,7 +57,6 @@ public class GivenJpaProgrammingModelWhe
final List<FacetFactory> list = jpaProgrammingModelFacets.getList();
assertThat(
list,
- IsisMatchers
- .containsElementThat(is(instanceOf(JpaEntityAnnotationFacetFactory.class))));
+ IsisMatchers.containsElementThat(is(instanceOf(JpaEntityAnnotationFacetFactory.class))));
}
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/facets/object/discriminator/GivenJpaDiscriminatorValueAnnotationFacetFactoryTest.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/facets/object/discriminator/GivenJpaDiscriminatorValueAnnotationFacetFactoryTest.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/facets/object/discriminator/GivenJpaDiscriminatorValueAnnotationFacetFactoryTest.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/jpa/jpa-metamodel/src/test/java/org/apache/isis/extensions/jpa/metamodel/facets/object/discriminator/GivenJpaDiscriminatorValueAnnotationFacetFactoryTest.java Sat Mar 24 14:01:35 2012
@@ -31,9 +31,7 @@ import org.apache.isis.core.metamodel.fa
import org.apache.isis.core.metamodel.facets.object.objecttype.ObjectTypeFacet;
import org.apache.isis.core.progmodel.facets.AbstractFacetFactoryTest;
-
-public class GivenJpaDiscriminatorValueAnnotationFacetFactoryTest extends
- AbstractFacetFactoryTest {
+public class GivenJpaDiscriminatorValueAnnotationFacetFactoryTest extends AbstractFacetFactoryTest {
private JpaDiscriminatorValueAnnotationFacetFactory facetFactory;
@@ -51,20 +49,12 @@ public class GivenJpaDiscriminatorValueA
}
public void testFeatureTypes() {
- final List<FeatureType> featureTypes = facetFactory
- .getFeatureTypes();
- Assert
- .assertTrue(contains(featureTypes,
- FeatureType.OBJECT));
- assertFalse(contains(featureTypes,
- FeatureType.PROPERTY));
- assertFalse(contains(featureTypes,
- FeatureType.COLLECTION));
- Assert
- .assertFalse(contains(featureTypes,
- FeatureType.ACTION));
- assertFalse(contains(featureTypes,
- FeatureType.ACTION_PARAMETER));
+ final List<FeatureType> featureTypes = facetFactory.getFeatureTypes();
+ Assert.assertTrue(contains(featureTypes, FeatureType.OBJECT));
+ assertFalse(contains(featureTypes, FeatureType.PROPERTY));
+ assertFalse(contains(featureTypes, FeatureType.COLLECTION));
+ Assert.assertFalse(contains(featureTypes, FeatureType.ACTION));
+ assertFalse(contains(featureTypes, FeatureType.ACTION_PARAMETER));
}
public void testDiscriminatorValueAnnotationPickedUpOnClass() {
@@ -74,11 +64,9 @@ public class GivenJpaDiscriminatorValueA
facetFactory.process(new FacetFactory.ProcessClassContext(Customer.class, methodRemover, facetHolder));
- final Facet facet = facetHolder
- .getFacet(ObjectTypeFacet.class);
+ final Facet facet = facetHolder.getFacet(ObjectTypeFacet.class);
assertNotNull(facet);
- Assert
- .assertTrue(facet instanceof ObjectTypeFacetInferredFromJpaDiscriminatorValueAnnotation);
+ Assert.assertTrue(facet instanceof ObjectTypeFacetInferredFromJpaDiscriminatorValueAnnotation);
}
public void testIfNoEntityAnnotationThenNoFacet() {
@@ -88,8 +76,7 @@ public class GivenJpaDiscriminatorValueA
facetFactory.process(new FacetFactory.ProcessClassContext(Customer.class, methodRemover, facetHolder));
- final Facet facet = facetHolder
- .getFacet(ObjectTypeFacet.class);
+ final Facet facet = facetHolder.getFacet(ObjectTypeFacet.class);
assertNull(facet);
}
@@ -100,8 +87,7 @@ public class GivenJpaDiscriminatorValueA
facetFactory.process(new FacetFactory.ProcessClassContext(Customer.class, methodRemover, facetHolder));
- final ObjectTypeFacet discriminatorValueFacet = facetHolder
- .getFacet(ObjectTypeFacet.class);
+ final ObjectTypeFacet discriminatorValueFacet = facetHolder.getFacet(ObjectTypeFacet.class);
assertEquals("CUS", discriminatorValueFacet.value());
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/pom.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/pom.xml?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/pom.xml (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/pom.xml Sat Mar 24 14:01:35 2012
@@ -207,6 +207,7 @@
<scope>test</scope>
</dependency>
+ <!-- TODO: remove this dependency when can -->
<dependency>
<groupId>org.apache.isis.runtimes.dflt</groupId>
<artifactId>runtime</artifactId>
@@ -216,6 +217,13 @@
<!-- TODO: remove this dependency when can -->
<dependency>
+ <groupId>org.apache.isis.runtimes.dflt</groupId>
+ <artifactId>testsupport</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- TODO: remove this dependency when can -->
+ <dependency>
<groupId>org.apache.isis.progmodels</groupId>
<artifactId>dflt</artifactId>
<version>0.3.0-incubating-SNAPSHOT</version>
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCommandContext.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCommandContext.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCommandContext.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCommandContext.java Sat Mar 24 14:01:35 2012
@@ -19,16 +19,16 @@
package org.apache.isis.runtimes.dflt.objectstores.nosql;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateWriter;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
public interface NoSqlCommandContext extends PersistenceCommandContext {
StateWriter createStateWriter(String specName);
- void delete(String specificationName, String key, String version);
-
void insert(StateWriter writer);
void update(StateWriter writer);
+ void delete(String specificationName, String key, String version);
}
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCreateObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCreateObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCreateObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlCreateObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -19,6 +19,9 @@
package org.apache.isis.runtimes.dflt.objectstores.nosql;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.CreateObjectCommand;
final class NoSqlCreateObjectCommand extends WriteObjectCommand implements CreateObjectCommand {
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDestroyObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -21,6 +21,8 @@ package org.apache.isis.runtimes.dflt.ob
import org.apache.isis.core.commons.lang.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
@@ -29,10 +31,10 @@ final class NoSqlDestroyObjectCommand im
private final KeyCreator keyCreator;
private final VersionCreator versionCreator;
- public NoSqlDestroyObjectCommand(final KeyCreator keyCreator, final VersionCreator versionCreator, final ObjectAdapter object) {
+ public NoSqlDestroyObjectCommand(final KeyCreator keyCreator, final VersionCreator versionCreator, final ObjectAdapter adapter) {
this.keyCreator = keyCreator;
this.versionCreator = versionCreator;
- this.adapter = object;
+ this.adapter = adapter;
}
@Override
@@ -41,7 +43,8 @@ final class NoSqlDestroyObjectCommand im
final String version = versionCreator.versionString(adapter.getVersion());
final String specificationName = adapter.getSpecification().getFullIdentifier();
- ((NoSqlCommandContext) context).delete(specificationName, key, version);
+ final NoSqlCommandContext noSqlCommandContext = (NoSqlCommandContext) context;
+ noSqlCommandContext.delete(specificationName, key, version);
}
@Override
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlObjectStore.java Sat Mar 24 14:01:35 2012
@@ -20,17 +20,24 @@
package org.apache.isis.runtimes.dflt.objectstores.nosql;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import com.google.common.collect.Maps;
+
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.NoSqlDataDatabase;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateReader;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.CreateObjectCommand;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
@@ -46,7 +53,7 @@ import org.apache.isis.runtimes.dflt.run
public class NoSqlObjectStore implements ObjectStore {
private final NoSqlDataDatabase database;
- private final Map<String, Oid> serviceCache = new HashMap<String, Oid>();
+ private final Map<String, RootOid> servicesByObjectType = Maps.newHashMap();
private final KeyCreator keyCreator;
private final VersionCreator versionCreator;
private final ObjectReader objectReader = new ObjectReader();
@@ -86,11 +93,11 @@ public class NoSqlObjectStore implements
}
@Override
- public DestroyObjectCommand createDestroyObjectCommand(final ObjectAdapter object) {
- if (object.getSpecification().isAggregated()) {
+ public DestroyObjectCommand createDestroyObjectCommand(final ObjectAdapter adapter) {
+ if (adapter.getSpecification().isAggregated()) {
throw new NoSqlStoreException("Can't delete an aggregated object");
} else {
- return new NoSqlDestroyObjectCommand(keyCreator, versionCreator, object);
+ return new NoSqlDestroyObjectCommand(keyCreator, versionCreator, adapter);
}
}
@@ -98,7 +105,7 @@ public class NoSqlObjectStore implements
public SaveObjectCommand createSaveObjectCommand(final ObjectAdapter adapter) {
// TODO should this be done at a higher level so it is applicable for
// all OSes
- final ObjectAdapter rootAdapter = aggregateRootAdapterFor(adapter);
+ final ObjectAdapter rootAdapter = getAggregateRootAdapterFor(adapter);
if (rootAdapter.getOid() instanceof AggregatedOid) {
throw new NoSqlStoreException("Unexpected aggregated object to save: " + rootAdapter + " (" + adapter + ")");
}
@@ -108,8 +115,8 @@ public class NoSqlObjectStore implements
/**
* Returns either itself, or its parent adapter (if aggregated)
*/
- public ObjectAdapter aggregateRootAdapterFor(final ObjectAdapter adapter) {
- return adapter.getAggregateRoot();
+ public ObjectAdapter getAggregateRootAdapterFor(final ObjectAdapter adapter) {
+ return adapter.getAggregateRoot(getAdapterManager());
}
@Override
@@ -153,17 +160,6 @@ public class NoSqlObjectStore implements
}
@Override
- public Oid getOidForService(ObjectSpecification serviceSpecification, final String name) {
- Oid oid = serviceCache.get(name);
- if (oid == null) {
- final String id = database.getService(name);
- oid = id == null ? null : keyCreator.oid(serviceSpecification, id);
- serviceCache.put(name, oid);
- }
- return oid;
- }
-
- @Override
public boolean hasInstances(final ObjectSpecification specification) {
return database.hasInstances(specification.getFullIdentifier());
}
@@ -174,12 +170,6 @@ public class NoSqlObjectStore implements
}
@Override
- public void registerService(final String name, final Oid oid) {
- final String key = keyCreator.key(oid);
- database.addService(name, key);
- }
-
- @Override
public void reset() {
}
@@ -213,10 +203,9 @@ public class NoSqlObjectStore implements
// TODO show details
}
- @Override
- public String debugTitle() {
- return "NoSql Object Store";
- }
+ // ////////////////////////////////////////////////////////////////
+ // open, close
+ // ////////////////////////////////////////////////////////////////
@Override
public void close() {
@@ -230,10 +219,42 @@ public class NoSqlObjectStore implements
@Override
public String name() {
- return "personal object store";
+ return "nosql";
+ }
+
+
+ // ////////////////////////////////////////////////////////////////
+ // Services
+ // ////////////////////////////////////////////////////////////////
+
+ @Override
+ public void registerService(final RootOid rootOid) {
+ final String key = keyCreator.key(rootOid);
+ database.addService(rootOid.getObjectType(), key);
}
@Override
+ public RootOid getOidForService(ObjectSpecification serviceSpec) {
+ final String objectType = serviceSpec.getObjectType();
+ RootOid oid = servicesByObjectType.get(objectType);
+ if (oid == null) {
+ final String id = database.getService(objectType);
+ if (id == null) {
+ oid = null;
+ } else {
+ oid = keyCreator.oid(serviceSpec, id);
+ }
+ servicesByObjectType.put(objectType, oid);
+ }
+ return oid;
+ }
+
+
+ // ////////////////////////////////////////////////////////////////
+ // Transaction Mgmt
+ // ////////////////////////////////////////////////////////////////
+
+ @Override
public void abortTransaction() {
}
@@ -245,6 +266,17 @@ public class NoSqlObjectStore implements
public void startTransaction() {
}
+
+ // ////////////////////////////////////////////////////////////////
+ // debugging
+ // ////////////////////////////////////////////////////////////////
+
+ @Override
+ public String debugTitle() {
+ return "NoSql Object Store";
+ }
+
+
// ////////////////////////////////////////////////////////////////
// Dependencies (from context)
// ////////////////////////////////////////////////////////////////
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlOidGenerator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlOidGenerator.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlOidGenerator.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlOidGenerator.java Sat Mar 24 14:01:35 2012
@@ -23,29 +23,30 @@ import org.apache.log4j.Logger;
import org.apache.isis.core.commons.debug.DebugBuilder;
import org.apache.isis.core.commons.ensure.Assert;
-import org.apache.isis.core.commons.exceptions.NotYetImplementedException;
-import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.stringable.directly.OidStringifierDirect;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoader;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.NoSqlDataDatabase;
import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.OidGeneratorAbstract;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
public class NoSqlOidGenerator extends OidGeneratorAbstract {
+
private static final Logger LOG = Logger.getLogger(NoSqlOidGenerator.class);
private static int INITIAL_TRANSIENT_ID = -9999999;
private static int DEFAULT_BATCH_SIZE = 50;
private static class IdNumbers {
+
+ private final int batchSize;
+
private long transientNumber;
private long nextId = 0;
private long newIdBatchAt = 0;
private long nextSubId = 0;
private long newSubIdBatchAt = 0;
- private final int batchSize;
-
+
public IdNumbers(final int initialTransientId, final int batchSize) {
transientNumber = initialTransientId;
this.batchSize = batchSize;
@@ -96,38 +97,33 @@ public class NoSqlOidGenerator extends O
}
public NoSqlOidGenerator(final NoSqlDataDatabase database, final int initialTransientId, final int batchSize) {
- super(new OidStringifierDirect(NoSqlOid.class));
+ super(RootOidDefault.class);
this.database = database;
ids = new IdNumbers(initialTransientId, batchSize);
}
+ public String name() {
+ return "NoSql Oids";
+ }
+
@Override
- public NoSqlOid createTransientOid(final Object object) {
+ public RootOid createTransientOid(final Object object) {
final ObjectSpecification objectSpec = getSpecificationLoader().loadSpecification(object.getClass());
- final String className = objectSpec.getCorrespondingClass().getName();
- return new NoSqlOid(className, SerialOid.createTransient(ids.nextTransientId()));
+ final String objectType = objectSpec.getObjectType();
+ return RootOidDefault.createTransient(objectType, "" + (ids.nextTransientId()));
}
@Override
- public String createAggregateId(final Object pojo) {
+ public String createAggregateLocalId(final Object pojo) {
Assert.assertNotNull("No connection set up", database);
return Long.toHexString(ids.nextSubId(database));
}
@Override
- public void convertTransientToPersistentOid(final Oid oid) {
+ public RootOid asPersistent(final RootOid rootOid) {
Assert.assertNotNull("No connection set up", database);
- if (oid instanceof AggregatedOid) {
- return;
- }
final long persistentId = ids.nextPersistentId(database);
- final NoSqlOid noSqlOid = (NoSqlOid) oid;
- noSqlOid.setId(persistentId);
- noSqlOid.makePersistent();
- }
-
- public void convertPersistentToTransientOid(final Oid oid) {
- throw new NotYetImplementedException();
+ return rootOid.asPersistent("" + persistentId);
}
@Override
@@ -138,10 +134,6 @@ public class NoSqlOidGenerator extends O
debug.unindent();
}
- public String name() {
- return "NoSql Oids";
- }
-
@Override
public String debugTitle() {
return "NoSql OID Generator";
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlSaveObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlSaveObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlSaveObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlSaveObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -19,6 +19,9 @@
package org.apache.isis.runtimes.dflt.objectstores.nosql;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.SaveObjectCommand;
final class NoSqlSaveObjectCommand extends WriteObjectCommand implements SaveObjectCommand {
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/ObjectReader.java Sat Mar 24 14:01:35 2012
@@ -27,7 +27,7 @@ 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.Oid;
-import org.apache.isis.core.metamodel.adapter.oid.stringable.directly.OidWithSpecification;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.version.Version;
import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
@@ -37,6 +37,10 @@ import org.apache.isis.core.metamodel.sp
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociationContainer;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateReader;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
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,7 +51,7 @@ class ObjectReader {
final String className = reader.readObjectType();
final ObjectSpecification specification = getSpecificationLoader().loadSpecification(className);
final String id = reader.readId();
- final OidWithSpecification oid = keyCreator.oid(specification, id);
+ final RootOid oid = keyCreator.oid(specification, id);
final ObjectAdapter object = getAdapter(oid);
if (object.getResolveState().isResolved()) {
@@ -88,7 +92,7 @@ class ObjectReader {
}
final String encryptionType = reader.readEncrytionType();
readFields(reader, object, keyCreator, dataEncrypters.get(encryptionType));
- object.setOptimisticLock(version);
+ object.setVersion(version);
object.changeState(resolveState.getEndState());
}
@@ -111,17 +115,20 @@ class ObjectReader {
}
}
- private void readAggregate(final StateReader reader, final KeyCreator keyCreator, final DataEncryption dataEncrypter, final OneToOneAssociation association, final ObjectAdapter object) {
+ private void readAggregate(final StateReader reader, final KeyCreator keyCreator, final DataEncryption dataEncrypter, final OneToOneAssociation association, final ObjectAdapter parentAdapter) {
final String id = association.getId();
final StateReader aggregateReader = reader.readAggregate(id);
+
+ final ObjectAdapter fieldObject;
if (aggregateReader != null) {
- final String id2 = aggregateReader.readId();
- final AggregatedOid oid = new AggregatedOid(object.getOid(), id2);
- final ObjectAdapter fieldObject = restoreAggregatedObject(aggregateReader, oid, keyCreator, dataEncrypter);
- association.initAssociation(object, fieldObject);
+ final String localId = aggregateReader.readId();
+ final AggregatedOid oid = new AggregatedOid(parentAdapter.getOid(), localId);
+ fieldObject = restoreAggregatedObject(aggregateReader, oid, keyCreator, dataEncrypter);
} else {
- association.initAssociation(object, null);
+ fieldObject = null;
}
+
+ association.initAssociation(parentAdapter, fieldObject);
}
private ObjectAdapter restoreAggregatedObject(final StateReader aggregateReader, final Oid oid, final KeyCreator keyCreator, final DataEncryption dataEncrypter) {
@@ -160,7 +167,7 @@ class ObjectReader {
if (ref.equals("")) {
throw new NoSqlStoreException("Invalid reference field (an empty string) in data for " + association.getName() + " in " + object);
}
- final OidWithSpecification oid = keyCreator.oidFromReference(ref);
+ final RootOid oid = keyCreator.oidFromReference(ref);
final ObjectSpecification specification = keyCreator.specificationFromReference(ref);
fieldObject = getAdapter(specification, oid);
}
@@ -171,27 +178,29 @@ class ObjectReader {
}
}
- private void readCollection(final StateReader reader, final KeyCreator keyCreator, final DataEncryption dataEncrypter, final OneToManyAssociation association, final ObjectAdapter object) {
- final ObjectAdapter collection = association.get(object);
- final CollectionFacet facet = collection.getSpecification().getFacet(CollectionFacet.class);
+ private void readCollection(final StateReader reader, final KeyCreator keyCreator, final DataEncryption dataEncrypter, final OneToManyAssociation association, final ObjectAdapter parentAdapter) {
+ final ObjectAdapter collectionAdapter = association.get(parentAdapter);
+
+ final CollectionFacet facet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
if (association.getSpecification().isAggregated()) {
+ // were persisted inline, so read back inline
final List<StateReader> readers = reader.readCollection(association.getId());
- // String id = association.getId();
- final ObjectAdapter[] elements = new ObjectAdapter[readers.size()];
+ final ObjectAdapter[] elementAdapters = new ObjectAdapter[readers.size()];
int i = 0;
for (final StateReader elementReader : readers) {
- final String id = elementReader.readId();
- final AggregatedOid oid = new AggregatedOid(object.getOid(), id);
- elements[i++] = restoreAggregatedObject(elementReader, oid, keyCreator, dataEncrypter);
+ final String localId = elementReader.readId();
+ final AggregatedOid aggregatedOid = new AggregatedOid(parentAdapter.getOid(), localId);
+ elementAdapters[i++] = restoreAggregatedObject(elementReader, aggregatedOid, keyCreator, dataEncrypter);
}
- facet.init(collection, elements);
+ facet.init(collectionAdapter, elementAdapters);
} else {
+ // were persisted as references, so read back as references
final String referencesList = reader.readField(association.getId());
if (referencesList == null || referencesList.length() == 0) {
- facet.init(collection, new ObjectAdapter[0]);
+ facet.init(collectionAdapter, new ObjectAdapter[0]);
} else {
final ObjectAdapter[] elements = restoreElements(referencesList, keyCreator);
- facet.init(collection, elements);
+ facet.init(collectionAdapter, elements);
}
}
}
@@ -201,7 +210,7 @@ class ObjectReader {
final ObjectAdapter[] elements = new ObjectAdapter[references.length];
for (int i = 0; i < references.length; i++) {
final ObjectSpecification specification = keyCreator.specificationFromReference(references[i]);
- final OidWithSpecification oid = keyCreator.oidFromReference(references[i]);
+ final RootOid oid = keyCreator.oidFromReference(references[i]);
elements[i] = getAdapter(specification, oid);
}
return elements;
@@ -216,7 +225,7 @@ class ObjectReader {
return getPersistenceSession().recreateAdapter(oid, specification);
}
- protected ObjectAdapter getAdapter(final OidWithSpecification oid) {
+ protected ObjectAdapter getAdapter(final RootOid oid) {
final AdapterManager objectLoader = getPersistenceSession().getAdapterManager();
final ObjectAdapter adapter = objectLoader.getAdapterFor(oid);
if (adapter != null) {
Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/WriteObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/WriteObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/WriteObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/WriteObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -22,19 +22,30 @@ package org.apache.isis.runtimes.dflt.ob
import java.util.ArrayList;
import java.util.List;
+import com.google.common.collect.Lists;
+
+import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.commons.lang.ToString;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
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.object.encodeable.EncodableFacet;
import org.apache.isis.core.metamodel.spec.DomainModelException;
import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
+import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
+import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateWriter;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommand;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
class WriteObjectCommand implements PersistenceCommand {
+
private final KeyCreator keyCreator;
private final ObjectAdapter object;
private final VersionCreator versionCreator;
@@ -51,16 +62,18 @@ class WriteObjectCommand implements Pers
@Override
public void execute(final PersistenceCommandContext context) {
+ final NoSqlCommandContext noSqlCommandContext = (NoSqlCommandContext) context;
+
final String specName = object.getSpecification().getFullIdentifier();
- final StateWriter writer = ((NoSqlCommandContext) context).createStateWriter(specName);
+ final StateWriter writer = noSqlCommandContext.createStateWriter(specName);
final String key = keyCreator.key(object.getOid());
writer.writeId(key);
writeFields(writer, specName, object);
- final String user = IsisContext.getAuthenticationSession().getUserName();
+ final String user = getAuthenticationSession().getUserName();
final Version currentVersion = object.getVersion();
final Version newVersion = isUpdate ? versionCreator.nextVersion(currentVersion) : versionCreator.newVersion(user);
- object.setOptimisticLock(newVersion);
+ object.setVersion(newVersion);
if (newVersion != null) {
final String version = currentVersion == null ? null : versionCreator.versionString(currentVersion);
writer.writeVersion(version, versionCreator.versionString(newVersion));
@@ -70,92 +83,123 @@ class WriteObjectCommand implements Pers
}
if (isUpdate) {
- ((NoSqlCommandContext) context).update(writer);
+ noSqlCommandContext.update(writer);
} else {
- ((NoSqlCommandContext) context).insert(writer);
+ noSqlCommandContext.insert(writer);
}
-
}
- private void writeFields(final StateWriter writer, final String specName, final ObjectAdapter object) {
- final List<ObjectAssociation> associations = object.getSpecification().getAssociations();
+ private void writeFields(final StateWriter writer, final String specName, final ObjectAdapter adapter) {
+ final List<ObjectAssociation> associations = adapter.getSpecification().getAssociations();
writer.writeType(specName);
for (final ObjectAssociation association : associations) {
if (association.isNotPersisted()) {
continue;
}
- final ObjectAdapter field = association.get(object);
+ final ObjectAdapter fieldAdapter = association.get(adapter);
if (association.isOneToManyAssociation()) {
- writeCollection(writer, association, field, keyCreator);
- } else if (association.getSpecification().isValue()) {
- writeValue(writer, association, field);
- } else if (association.getSpecification().isAggregated()) {
- writeAggregatedObject(writer, association, field, keyCreator);
- } else {
- writeReference(writer, association, field, keyCreator);
+ final OneToManyAssociation oneToManyAssociation = (OneToManyAssociation) association;
+ final ObjectAdapter collectionAdapter = fieldAdapter; // to explain
+ writeCollection(writer, oneToManyAssociation, collectionAdapter, keyCreator);
+ } else {
+ final OneToOneAssociation oneToOneAssociation = (OneToOneAssociation) association;
+ final ObjectAdapter propertyAdapter = fieldAdapter; // to explain
+ writeProperty(writer, oneToOneAssociation, propertyAdapter);
}
}
}
- private void writeAggregatedObject(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter field, final KeyCreator keyCreator) {
- if (field == null) {
- writer.writeField(association.getId(), null);
- } else if (field.getOid() instanceof AggregatedOid) {
- final String specName = field.getSpecification().getFullIdentifier();
- final StateWriter aggregateWriter = writer.addAggregate(association.getId());
- aggregateWriter.writeId(((AggregatedOid) field.getOid()).getId());
- writeFields(aggregateWriter, specName, field);
- } else {
- throw new NoSqlStoreException("Object type is inconsistent with it OID - it should have an AggregatedOid: " + field);
+ private void writeProperty(final StateWriter writer, final OneToOneAssociation oneToOneAssociation, final ObjectAdapter propertyAdapter) {
+ if (oneToOneAssociation.getSpecification().isValue()) {
+ final ObjectAdapter valueAdapter = propertyAdapter; // to explain
+ writeValueProperty(writer, oneToOneAssociation, valueAdapter);
+ } else {
+ final ObjectAdapter referencedAdapter = propertyAdapter; // to explain
+ writeReferenceProperty(writer, oneToOneAssociation, referencedAdapter);
}
}
- private void writeReference(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter reference, final KeyCreator keyCreator) {
- if (reference == null) {
- writer.writeField(association.getId(), null);
+ private void writeValueProperty(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter valueAdapter) {
+ String data;
+ if (valueAdapter == null) {
+ data = null;
} else {
- final String key = keyCreator.reference(reference);
- writer.writeField(association.getId(), key);
+ final EncodableFacet encodeableFacet = valueAdapter.getSpecification().getFacet(EncodableFacet.class);
+ data = encodeableFacet.toEncodedString(valueAdapter);
+ data = dataEncrypter.encrypt(data);
}
+ writer.writeField(otoa.getId(), data);
}
- private void writeValue(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter value) {
- String data;
- if (value == null) {
- data = null;
+ private void writeReferenceProperty(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter referencedAdapter) {
+ if (otoa.getSpecification().isAggregated()) {
+ writeReferencedAsAggregated(writer, otoa, referencedAdapter, keyCreator);
} else {
- final EncodableFacet encodeableFacet = value.getSpecification().getFacet(EncodableFacet.class);
- data = encodeableFacet.toEncodedString(value);
- data = dataEncrypter.encrypt(data);
+ writeReference(writer, otoa, referencedAdapter, keyCreator);
}
- writer.writeField(association.getId(), data);
}
- private void writeCollection(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collection, final KeyCreator keyCreator) {
- final CollectionFacet collectionFacet = collection.getSpecification().getFacet(CollectionFacet.class);
+ private void writeReferencedAsAggregated(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter referencedAdapter, final KeyCreator keyCreator) {
+ if (referencedAdapter == null) {
+ writer.writeField(otoa.getId(), null);
+ return;
+ }
+ final Oid referencedOid = referencedAdapter.getOid();
+ if (!(referencedOid instanceof AggregatedOid)) {
+ throw new NoSqlStoreException("Object type is inconsistent with it OID - it should have an AggregatedOid: " + referencedAdapter);
+ }
+ final AggregatedOid aggregatedOid = (AggregatedOid) referencedOid;
+
+ final String associationId = otoa.getId();
+ final StateWriter aggregateWriter = writer.addAggregate(associationId);
+ aggregateWriter.writeId(aggregatedOid.getLocalId());
+
+ final String specName = referencedAdapter.getSpecification().getFullIdentifier();
+ writeFields(aggregateWriter, specName, referencedAdapter);
+ }
+
+ private void writeReference(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter referencedAdapter, final KeyCreator keyCreator) {
+ final String key = keyCreator.reference(referencedAdapter);
+ writer.writeField(association.getId(), key);
+ }
+
+ private void writeCollection(final StateWriter writer, final OneToManyAssociation association, final ObjectAdapter collectionAdapter, final KeyCreator keyCreator) {
if (association.getSpecification().isAggregated()) {
- final List<StateWriter> elements = new ArrayList<StateWriter>();
- for (final ObjectAdapter element : collectionFacet.iterable(collection)) {
- final StateWriter elementWriter = writer.createElementWriter();
- elementWriter.writeId(((AggregatedOid) element.getOid()).getId());
- writeFields(elementWriter, element.getSpecification().getFullIdentifier(), element);
- elements.add(elementWriter);
- }
- writer.writeCollection(association.getId(), elements);
+ writeCollectionOfAggregated(writer, association, collectionAdapter);
} else {
- String refs = "";
- for (final ObjectAdapter element : collectionFacet.iterable(collection)) {
- if (element.isAggregated()) {
- throw new DomainModelException("Can't store an aggregated object within a collection that is not exoected aggregates: " + element + " (" + collection + ")");
- }
- refs += keyCreator.reference(element) + "|";
- }
- if (refs.length() > 0) {
- writer.writeField(association.getId(), refs);
+ writeCollectionOfReferences(writer, association, collectionAdapter, keyCreator);
+ }
+ }
+
+ private void writeCollectionOfAggregated(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collectionAdapter) {
+ final List<StateWriter> elementWriters = Lists.newArrayList();
+ final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+ for (final ObjectAdapter referencedAdapter : collectionFacet.iterable(collectionAdapter)) {
+ final AggregatedOid elementOid = (AggregatedOid) referencedAdapter.getOid();
+ final StateWriter elementWriter = writer.createElementWriter();
+ elementWriter.writeId(elementOid.getLocalId());
+ writeFields(elementWriter, referencedAdapter.getSpecification().getFullIdentifier(), referencedAdapter);
+ elementWriters.add(elementWriter);
+ }
+ writer.writeCollection(association.getId(), elementWriters);
+ }
+
+ private void writeCollectionOfReferences(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collectionAdapter, final KeyCreator keyCreator) {
+ final CollectionFacet collectionFacet = collectionAdapter.getSpecification().getFacet(CollectionFacet.class);
+
+ final StringBuilder buf = new StringBuilder();
+ for (final ObjectAdapter elementAdapter : collectionFacet.iterable(collectionAdapter)) {
+ if (elementAdapter.isParented()) {
+ throw new DomainModelException("Can't store an aggregated object within a collection that is not expected aggregates: " + elementAdapter + " (" + collectionAdapter + ")");
}
+ buf.append(keyCreator.reference(elementAdapter)).append("|");
+ }
+ if (buf.length() > 0) {
+ writer.writeField(association.getId(), buf.toString());
}
}
+
@Override
public ObjectAdapter onObject() {
return object;
@@ -168,4 +212,10 @@ class WriteObjectCommand implements Pers
toString.append("oid", object.getOid());
return toString.toString();
}
+
+
+ protected AuthenticationSession getAuthenticationSession() {
+ return IsisContext.getAuthenticationSession();
+ }
+
}
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlDataDatabase.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDataDatabase.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlDataDatabase.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlDataDatabase.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDataDatabase.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlDataDatabase.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlDataDatabase.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db;
import java.util.Iterator;
import java.util.List;
@@ -26,20 +26,16 @@ import org.apache.isis.runtimes.dflt.run
public interface NoSqlDataDatabase {
- StateReader getInstance(String key, String specificationName);
-
- void close();
-
void open();
-
+ void close();
+
boolean containsData();
void addService(String name, String key);
-
String getService(String name);
boolean hasInstances(String specificationName);
-
+ StateReader getInstance(String key, String specificationName);
Iterator<StateReader> instancesOf(String specificationName);
long nextSerialNumberBatch(String string, int batchSize);
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlPersistorMechanismInstaller.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlPersistorMechanismInstaller.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlPersistorMechanismInstaller.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlPersistorMechanismInstaller.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlPersistorMechanismInstaller.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/NoSqlPersistorMechanismInstaller.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/NoSqlPersistorMechanismInstaller.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db;
import java.util.HashMap;
import java.util.Map;
@@ -29,6 +29,14 @@ import org.apache.isis.core.commons.conf
import org.apache.isis.core.commons.exceptions.IsisException;
import org.apache.isis.core.commons.factory.InstanceUtil;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterFactory;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlObjectStore;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlOidGenerator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.DataEncryption;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.encryption.none.DataEncryptionNone;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.keys.KeyCreatorDefault;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreator;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.versions.VersionCreatorDefault;
import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.ObjectStorePersistenceMechanismInstallerAbstract;
import org.apache.isis.runtimes.dflt.runtime.persistence.PersistenceSessionFactoryDelegating;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
@@ -89,7 +97,7 @@ public abstract class NoSqlPersistorMech
}
if (!encryptionSpecified) {
LOG.warn("No encryption specified");
- final DataEncryption encryption = new NoEncryption();
+ final DataEncryption encryption = new DataEncryptionNone();
availableDataEncryption.put(encryption.getType(), encryption);
writeWithEncryption = encryption;
}
@@ -109,11 +117,11 @@ public abstract class NoSqlPersistorMech
protected abstract NoSqlDataDatabase createNoSqlDatabase(IsisConfiguration configuration);
- protected NoSqlKeyCreator createKeyCreator() {
- return new NoSqlKeyCreator();
+ protected KeyCreator createKeyCreator() {
+ return new KeyCreatorDefault();
}
private VersionCreator createVersionCreator() {
- return new SerialNumberVersionCreator();
+ return new VersionCreatorDefault();
}
}
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateReader.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateReader.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateReader.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateReader.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateReader.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateReader.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateReader.java Sat Mar 24 14:01:35 2012
@@ -17,13 +17,31 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db;
import java.util.List;
+import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
+import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
+
public interface StateReader {
- StateReader readAggregate(String id);
+ /**
+ * Aggregated objects are persisted "under" a key taken from the
+ * association (property or collection).
+ *
+ * <p>
+ * This is not to be confused with the adapter's {@link AggregatedOid#getLocalId() localId},
+ * which is a locally unique id for the adapter within the aggregate.
+ *
+ * <p>
+ * The parameter passed here is the {@link OneToOneAssociation#getId() property Id}.
+ *
+ * @param associationId - under which the aggregate (property/collection) were persisted.
+ */
+ StateReader readAggregate(String propertyId);
+
+ List<StateReader> readCollection(String collectionId);
long readLongField(String id);
@@ -41,6 +59,5 @@ public interface StateReader {
String readTime();
- List<StateReader> readCollection(String id);
}
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateWriter.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateWriter.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateWriter.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateWriter.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateWriter.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/StateWriter.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/StateWriter.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db;
import java.util.List;
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/ClientConnection.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/ClientConnection.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/ClientConnection.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/ClientConnection.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/ClientConnection.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/ClientConnection.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/ClientConnection.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql.file;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db.file;
import java.io.BufferedReader;
import java.io.IOException;
@@ -30,7 +30,7 @@ import java.io.PrintWriter;
import org.apache.log4j.Logger;
import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlStoreException;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.file.server.Util;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.file.server.Util;
import org.apache.isis.runtimes.dflt.runtime.persistence.ConcurrencyException;
import org.apache.isis.runtimes.dflt.runtime.persistence.ObjectNotFoundException;
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileClientCommandContext.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileClientCommandContext.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileClientCommandContext.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileClientCommandContext.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileClientCommandContext.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileClientCommandContext.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileClientCommandContext.java Sat Mar 24 14:01:35 2012
@@ -17,12 +17,12 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql.file;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db.file;
import java.util.zip.CRC32;
import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlCommandContext;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.StateWriter;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateWriter;
class FileClientCommandContext implements NoSqlCommandContext {
@@ -42,7 +42,7 @@ class FileClientCommandContext implement
@Override
public StateWriter createStateWriter(final String specificationName) {
- return new JsonStateWriter(connection, specificationName);
+ return new JsonStateWriter();
}
@Override
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerDb.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerDb.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerDb.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerDb.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerDb.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerDb.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerDb.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql.file;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db.file;
import java.io.IOException;
import java.net.Socket;
@@ -30,9 +30,9 @@ import java.util.zip.CRC32;
import org.apache.log4j.Logger;
import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlCommandContext;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlDataDatabase;
import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlStoreException;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.StateReader;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.NoSqlDataDatabase;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateReader;
import org.apache.isis.runtimes.dflt.runtime.persistence.ConcurrencyException;
import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommand;
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerPersistorMechanismInstaller.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerPersistorMechanismInstaller.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerPersistorMechanismInstaller.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerPersistorMechanismInstaller.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerPersistorMechanismInstaller.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/FileServerPersistorMechanismInstaller.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/FileServerPersistorMechanismInstaller.java Sat Mar 24 14:01:35 2012
@@ -17,12 +17,12 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql.file;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db.file;
import org.apache.isis.core.commons.config.ConfigurationConstants;
import org.apache.isis.core.commons.config.IsisConfiguration;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlDataDatabase;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlPersistorMechanismInstaller;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.NoSqlDataDatabase;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.NoSqlPersistorMechanismInstaller;
public class FileServerPersistorMechanismInstaller extends NoSqlPersistorMechanismInstaller {
Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/JsonStateReader.java (from r1301918, incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/JsonStateReader.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/JsonStateReader.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/JsonStateReader.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/JsonStateReader.java&r1=1301918&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/file/JsonStateReader.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/nosql/src/main/java/org/apache/isis/runtimes/dflt/objectstores/nosql/db/file/JsonStateReader.java Sat Mar 24 14:01:35 2012
@@ -17,7 +17,7 @@
* under the License.
*/
-package org.apache.isis.runtimes.dflt.objectstores.nosql.file;
+package org.apache.isis.runtimes.dflt.objectstores.nosql.db.file;
import java.util.ArrayList;
import java.util.List;
@@ -27,7 +27,7 @@ import org.json.JSONException;
import org.json.JSONObject;
import org.apache.isis.runtimes.dflt.objectstores.nosql.NoSqlStoreException;
-import org.apache.isis.runtimes.dflt.objectstores.nosql.StateReader;
+import org.apache.isis.runtimes.dflt.objectstores.nosql.db.StateReader;
public class JsonStateReader implements StateReader {
// private static final Logger LOG =