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/07/03 17:01:56 UTC

[50/63] [abbrv] [partial] ISIS-832: mothballing components

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/NOTICE
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/NOTICE b/component/objectstore/nosql/NOTICE
deleted file mode 100644
index ba21d0c..0000000
--- a/component/objectstore/nosql/NOTICE
+++ /dev/null
@@ -1,7 +0,0 @@
-Apache Isis
-Copyright 2010-2013 The Apache Software Foundation
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).
-
-

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/config/logging.properties
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/config/logging.properties b/component/objectstore/nosql/config/logging.properties
deleted file mode 100644
index 323bf75..0000000
--- a/component/objectstore/nosql/config/logging.properties
+++ /dev/null
@@ -1,36 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#         http://www.apache.org/licenses/LICENSE-2.0
-#         
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-# apache's log4j is used to provide system logging.
-log4j.rootCategory=ALL, Console, File
-
-# The console appender
-log4j.appender.Console=org.apache.log4j.ConsoleAppender
-#log4j.appender.Console.threshold=INFO
-log4j.appender.Console.target=System.out
-log4j.appender.Console.layout=org.apache.log4j.PatternLayout
-log4j.appender.Console.layout.ConversionPattern=%d{ABSOLUTE}  [%-20c{1} %-10t %-5p]  %m%n
-
-
-# The rolling file appender
-log4j.appender.File=org.apache.log4j.RollingFileAppender
-log4j.appender.File.file=fileserver.log
-log4j.appender.File.append=false
-#log4j.appender.File.maxFileSize=500KB
-#log4j.appender.File.maxBackupIndex=1
-log4j.appender.File.layout=org.apache.log4j.PatternLayout
-log4j.appender.File.layout.ConversionPattern=%d [%-20c{1} %-10t %-5p]  %m%n
-

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/config/server.properties
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/config/server.properties b/component/objectstore/nosql/config/server.properties
deleted file mode 100644
index 575d8ed..0000000
--- a/component/objectstore/nosql/config/server.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-#  Licensed to the Apache Software Foundation (ASF) under one
-#  or more contributor license agreements.  See the NOTICE file
-#  distributed with this work for additional information
-#  regarding copyright ownership.  The ASF licenses this file
-#  to you under the Apache License, Version 2.0 (the
-#  "License"); you may not use this file except in compliance
-#  with the License.  You may obtain a copy of the License at
-#  
-#         http://www.apache.org/licenses/LICENSE-2.0
-#         
-#  Unless required by applicable law or agreed to in writing,
-#  software distributed under the License is distributed on an
-#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-#  KIND, either express or implied.  See the License for the
-#  specific language governing permissions and limitations
-#  under the License.
-fileserver.host = localhost
-fileserver.port = 9100
-fileserver.control-host=localhost
-fileserver.control-port = 9101
-fileserver.sync-host=localhost
-fileserver.sync-port = 9102
-
-#fileserver.data = data
-#fileserver.services = services
-#fileserver.logs = logs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/pom.xml
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/pom.xml b/component/objectstore/nosql/pom.xml
deleted file mode 100644
index 29ca0a3..0000000
--- a/component/objectstore/nosql/pom.xml
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one
-  or more contributor license agreements.  See the NOTICE file
-  distributed with this work for additional information
-  regarding copyright ownership.  The ASF licenses this file
-  to you under the Apache License, Version 2.0 (the
-  "License"); you may not use this file except in compliance
-  with the License.  You may obtain a copy of the License at
-  
-         http://www.apache.org/licenses/LICENSE-2.0
-         
-  Unless required by applicable law or agreed to in writing,
-  software distributed under the License is distributed on an
-  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-  KIND, either express or implied.  See the License for the
-  specific language governing permissions and limitations
-  under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-
-    <parent>
-		<groupId>org.apache.isis.core</groupId>
-		<artifactId>isis</artifactId>
-        <version>1.6.0-SNAPSHOT</version>
-		<relativePath>../../../core/pom.xml</relativePath>
-    </parent>
-
-    <groupId>org.apache.isis.objectstore</groupId>
-    <artifactId>isis-objectstore-nosql</artifactId>
-    <version>1.0.0-SNAPSHOT</version>
-
-    <name>Isis NOSQL ObjectStore</name>
-
-    <description>
-    	Provides file-based or MongoDB-based persistence for a standalone application using a NOSQL database.
-    </description>
-
-    <properties>
-        <siteBaseDir>.</siteBaseDir>
-		<relativeUrl/>
-    </properties>
-
-    <!-- used in Site generation for relative references. -->
-    <url>http://isis.apache.org/${relativeUrl}</url>
-
-    <build>
-		<pluginManagement>
-			<plugins>
-                <!-- Apache Release Audit Tool -->
-                <plugin>
-                    <groupId>org.apache.rat</groupId>
-                    <artifactId>apache-rat-plugin</artifactId>
-                    <version>0.10</version>
-	                <configuration>
-	                    <excludes>
-	                    	<!-- 
-	                    	overriding inherited excludes from oia.core:isis 
-	                    	with a more specific set for this component
-	                    	 -->
-	                        <exclude>**/target/**</exclude>
-	                        <exclude>**/target-ide/**</exclude>
-
-	                        <exclude>**/*.project</exclude>
-	                        <exclude>**/.classpath</exclude>
-	                        <exclude>**/.settings/**</exclude>
-	                    </excludes>
-                    </configuration>
-	            </plugin>
-			</plugins>
-		</pluginManagement>
-    </build>
-
-    <reporting>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-project-info-reports-plugin</artifactId>
-                <inherited>false</inherited>
-                <configuration>
-                	<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
-                </configuration>
-                <reportSets>
-                    <reportSet>
-                        <inherited>false</inherited>
-                        <reports>
-                            <report>dependency-management</report>
-                            <report>dependencies</report>
-                            <report>dependency-convergence</report>
-                            <report>plugins</report>
-                            <report>summary</report>
-                        </reports>
-                    </reportSet>
-                </reportSets>
-            </plugin>
-        </plugins>
-    </reporting>
-
-    <dependencyManagement>
-
-    	<!-- for benefit of application developers, using scope=import -->
-    	<dependencies>
-			<dependency>
-			    <groupId>org.apache.isis.objectstore</groupId>
-			    <artifactId>isis-objectstore-nosql</artifactId>
-				<version>1.0.0-SNAPSHOT</version>
-			</dependency>
-
-
-            <dependency>
-                <groupId>org.mongodb</groupId>
-                <artifactId>mongo-java-driver</artifactId>
-                <version>2.11.1</version>
-            </dependency>
-            <dependency>
-                <groupId>org.json</groupId>
-                <artifactId>json</artifactId>
-                <version>20090211</version>
-                <!-- 
-                upgrading the dependency caused tests to fail...
-                <version>20140107</version>
-                 -->
-            </dependency>
-            <dependency>
-                <groupId>commons-configuration</groupId>
-                <artifactId>commons-configuration</artifactId>
-                <version>1.9</version>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-    
-        <!--  compile dependencies -->
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-runtime</artifactId>
-        </dependency>
-
-
-        <dependency>
-            <groupId>commons-cli</groupId>
-            <artifactId>commons-cli</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.mongodb</groupId>
-            <artifactId>mongo-java-driver</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>commons-configuration</groupId>
-            <artifactId>commons-configuration</artifactId>
-        </dependency>
-
-
-        <!--  test dependencies -->
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-unittestsupport</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-runtime</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-integtestsupport</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-bytecode-cglib</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-objectstore</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.isis.core</groupId>
-            <artifactId>isis-core-objectstore</artifactId>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
-            <scope>test</scope>
-        </dependency>
-
-    </dependencies>
-    
-</project>

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/appended-resources/supplemental-models.xml
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/appended-resources/supplemental-models.xml b/component/objectstore/nosql/src/main/appended-resources/supplemental-models.xml
deleted file mode 100644
index 837b4e9..0000000
--- a/component/objectstore/nosql/src/main/appended-resources/supplemental-models.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<supplementalDataModels 
-  xmlns="http://maven.apache.org/supplemental-model/1.0.0"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://maven.apache.org/supplemental-model/1.0.0 
-            http://maven.apache.org/xsd/supplemental-model-1.0.0.xsd">
-
-</supplementalDataModels>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCommandContext.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCommandContext.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCommandContext.java
deleted file mode 100644
index f95de8b..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCommandContext.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import org.apache.isis.core.metamodel.adapter.oid.Oid;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
-import org.apache.isis.objectstore.nosql.db.StateWriter;
-
-public interface NoSqlCommandContext extends PersistenceCommandContext {
-
-    StateWriter createStateWriter(ObjectSpecId objectSpecId);
-
-    void insert(StateWriter writer);
-    void update(StateWriter writer);
-
-    void delete(ObjectSpecId objectSpecId, String key, String version, Oid oid);
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCreateObjectCommand.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCreateObjectCommand.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCreateObjectCommand.java
deleted file mode 100644
index 2be121b..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlCreateObjectCommand.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.objectstore.nosql;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-final class NoSqlCreateObjectCommand extends WriteObjectCommand implements CreateObjectCommand {
-
-    public NoSqlCreateObjectCommand(final VersionCreator versionCreator, final DataEncryption dataEncrypter, final ObjectAdapter object) {
-        super(Mode.NON_UPDATE, versionCreator, dataEncrypter, object);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlDestroyObjectCommand.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlDestroyObjectCommand.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlDestroyObjectCommand.java
deleted file mode 100644
index dee418c..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlDestroyObjectCommand.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import org.apache.isis.core.commons.util.ToString;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
-import org.apache.isis.objectstore.nosql.keys.KeyCreatorDefault;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-final class NoSqlDestroyObjectCommand implements DestroyObjectCommand {
-    
-    private final KeyCreatorDefault keyCreator = new KeyCreatorDefault();
-    
-    private final ObjectAdapter adapter;
-    private final VersionCreator versionCreator;
-
-    public NoSqlDestroyObjectCommand(final VersionCreator versionCreator, final ObjectAdapter adapter) {
-        this.versionCreator = versionCreator;
-        this.adapter = adapter;
-    }
-
-    @Override
-    public void execute(final PersistenceCommandContext context) {
-        final String key = keyCreator.getIdentifierForPersistentRoot(adapter.getOid());
-        final String version = versionCreator.versionString(adapter.getVersion());
-        final ObjectSpecification objectSpec = adapter.getSpecification();
-
-        final NoSqlCommandContext noSqlCommandContext = (NoSqlCommandContext) context;
-        noSqlCommandContext.delete(objectSpec.getSpecId(), key, version, adapter.getOid());
-    }
-
-    @Override
-    public ObjectAdapter onAdapter() {
-        return adapter;
-    }
-
-    @Override
-    public String toString() {
-        final ToString toString = new ToString(this);
-        toString.append("spec", adapter.getSpecification().getFullIdentifier());
-        toString.append("oid", adapter.getOid());
-        return toString.toString();
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlIdentifierGenerator.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlIdentifierGenerator.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlIdentifierGenerator.java
deleted file mode 100644
index 552a2aa..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlIdentifierGenerator.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.objectstore.nosql;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.core.commons.debug.DebugBuilder;
-import org.apache.isis.core.commons.ensure.Assert;
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.runtime.system.persistence.IdentifierGenerator;
-import org.apache.isis.objectstore.nosql.db.NoSqlDataDatabase;
-
-public class NoSqlIdentifierGenerator implements IdentifierGenerator {
-    
-    private static int INITIAL_TRANSIENT_ID = -9999999;
-    private static int DEFAULT_BATCH_SIZE = 50;
-
-    private final NoSqlDataDatabase database;
-    private final IdNumbers ids;
-
-    
-    //////////////////////////////////////////////////////////////////
-    // constructor
-    //////////////////////////////////////////////////////////////////
-
-    public NoSqlIdentifierGenerator(final NoSqlDataDatabase database) {
-        this(database, INITIAL_TRANSIENT_ID, DEFAULT_BATCH_SIZE);
-    }
-
-    public NoSqlIdentifierGenerator(final NoSqlDataDatabase database, final int initialTransientId, final int batchSize) {
-        this.database = database;
-        ids = new IdNumbers(initialTransientId, batchSize);
-    }
-
-    
-    //////////////////////////////////////////////////////////////////
-    // API
-    //////////////////////////////////////////////////////////////////
-
-    @Override
-    public String createTransientIdentifierFor(ObjectSpecId objectSpecId, Object pojo) {
-        final String identifier = "" + ids.nextTransientId();
-        return identifier;
-    }
-
-    @Override
-    public String createAggregateLocalId(ObjectSpecId objectSpecId, final Object pojo, final ObjectAdapter parentAdapter) {
-        Assert.assertNotNull("No connection set up", database);
-        return Long.toHexString(ids.nextSubId(database));
-    }
-
-    @Override
-    public String createPersistentIdentifierFor(ObjectSpecId objectSpecId, Object pojo, RootOid transientRootOid) {
-        return "" + ids.nextPersistentId(database);
-    }
-
-    
-    //////////////////////////////////////////////////////////////////
-    // debug
-    //////////////////////////////////////////////////////////////////
-    
-    @Override
-    public void debugData(final DebugBuilder debug) {
-        debug.appendln(this.toString());
-        debug.indent();
-        ids.debugData(debug);
-        debug.unindent();
-    }
-
-    @Override
-    public String debugTitle() {
-        return "NoSql OID Generator";
-    }
-}
-
-class IdNumbers {
-
-    private static final Logger LOG = LoggerFactory.getLogger(IdNumbers.class);
-
-    private final int batchSize;
-    
-    private long transientNumber;
-    private long nextId = 0;
-    private long newIdBatchAt = 0;
-    private long nextSubId = 0;
-    private long newSubIdBatchAt = 0;
-    
-    public IdNumbers(final int initialTransientId, final int batchSize) {
-        transientNumber = initialTransientId;
-        this.batchSize = batchSize;
-    }
-
-    public synchronized long nextTransientId() {
-        return transientNumber++;
-    }
-
-    public synchronized long nextSubId(final NoSqlDataDatabase connectionPool) {
-        if (nextSubId > newSubIdBatchAt) {
-            final String message = "ID exception, last id (" + nextSubId + ") past new batch boundary (" + newSubIdBatchAt + ")";
-            throw new NoSqlStoreException(message);
-        }
-        if (nextSubId == newSubIdBatchAt) {
-            nextSubId = connectionPool.nextSerialNumberBatch(ObjectSpecId.of("_sub-id"), batchSize);
-            newSubIdBatchAt = nextSubId + batchSize;
-            LOG.debug("New Sub-ID batch created, from " + nextSubId + " to " + newSubIdBatchAt);
-        }
-        return nextSubId++;
-    }
-
-    public synchronized long nextPersistentId(final NoSqlDataDatabase connectionPool) {
-        if (nextId > newIdBatchAt) {
-            final String message = "ID exception, last id (" + nextId + ") past new batch boundary (" + newIdBatchAt + ")";
-            throw new NoSqlStoreException(message);
-        }
-        if (nextId == newIdBatchAt) {
-            nextId = connectionPool.nextSerialNumberBatch(ObjectSpecId.of("_id"), batchSize);
-            newIdBatchAt = nextId + batchSize;
-            LOG.debug("New ID batch created, from " + nextId + " to " + newIdBatchAt);
-        }
-        return nextId++;
-    }
-
-    public void debugData(final DebugBuilder debug) {
-        debug.appendln("id", nextId);
-        debug.appendln("sub-id", nextSubId);
-        debug.appendln("transient id", transientNumber);
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlObjectStore.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlObjectStore.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlObjectStore.java
deleted file mode 100644
index 062fcbc..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlObjectStore.java
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import com.google.common.collect.Lists;
-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.mgr.AdapterManager;
-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.adapter.oid.TypedOid;
-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.ObjectAssociation;
-import org.apache.isis.core.runtime.persistence.objectstore.ObjectStoreSpi;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.CreateObjectCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.SaveObjectCommand;
-import org.apache.isis.core.runtime.persistence.query.PersistenceQueryBuiltIn;
-import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindAllInstances;
-import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindByPattern;
-import org.apache.isis.core.runtime.persistence.query.PersistenceQueryFindByTitle;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.IdentifierGenerator;
-import org.apache.isis.core.runtime.system.persistence.OidGenerator;
-import org.apache.isis.core.runtime.system.persistence.PersistenceQuery;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.objectstore.nosql.db.NoSqlDataDatabase;
-import org.apache.isis.objectstore.nosql.db.StateReader;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.keys.KeyCreatorDefault;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-public class NoSqlObjectStore implements ObjectStoreSpi {
-    
-    private final KeyCreatorDefault keyCreator = new KeyCreatorDefault();
-    private final Map<ObjectSpecId, RootOid> servicesByObjectSpecId = Maps.newHashMap();
-    
-    private final NoSqlDataDatabase database;
-    private final VersionCreator versionCreator;
-    private final ObjectReader objectReader = new ObjectReader();
-    private final OidGenerator oidGenerator;
-    private final DataEncryption wrtingDataEncrypter;
-    private final Map<String, DataEncryption> availableDataEncrypters;
-    private final boolean isDataLoaded;
-
-    public NoSqlObjectStore(final NoSqlDataDatabase db, final OidGenerator oidGenerator, final VersionCreator versionCreator, final DataEncryption writingDataEncrypter, final Map<String, DataEncryption> availableDataEncrypters) {
-        this.database = db;
-        this.oidGenerator = oidGenerator;
-        this.versionCreator = versionCreator;
-        this.wrtingDataEncrypter = writingDataEncrypter;
-        this.availableDataEncrypters = availableDataEncrypters;
-
-        db.open();
-        isDataLoaded = db.containsData();
-        db.close();
-    }
-
-    public IdentifierGenerator getIdentifierGenerator() {
-        return oidGenerator.getIdentifierGenerator();
-    }
-
-    @Override
-    public CreateObjectCommand createCreateObjectCommand(final ObjectAdapter object) {
-        // TODO should this be done at a higher level so it is applicable for
-        // all OSes
-        if (object.getSpecification().isParented()) {
-            // throw new
-            // UnexpectedCallException("Aggregated objects should not be created outside of their owner");
-            return null;
-        } else {
-            return new NoSqlCreateObjectCommand(versionCreator, wrtingDataEncrypter, object);
-        }
-    }
-
-    @Override
-    public DestroyObjectCommand createDestroyObjectCommand(final ObjectAdapter adapter) {
-        if (adapter.getSpecification().isParented()) {
-            throw new NoSqlStoreException("Can't delete an aggregated object");
-        } else {
-            return new NoSqlDestroyObjectCommand(versionCreator, adapter);
-        }
-    }
-
-    @Override
-    public SaveObjectCommand createSaveObjectCommand(final ObjectAdapter adapter) {
-        
-        // TODO should this be done at a higher level 
-        // so it is applicable for all object stores?
-        
-        final ObjectAdapter rootAdapter = adapter.getAggregateRoot();
-        if (!(rootAdapter.getOid() instanceof RootOid)) {
-            throw new NoSqlStoreException("Unexpected aggregated object to save: " + rootAdapter + " (" + adapter + ")");
-        }
-        return new NoSqlSaveObjectCommand(versionCreator, wrtingDataEncrypter, rootAdapter);
-    }
-
-    @Override
-    public void execute(final List<PersistenceCommand> commands) {
-        database.write(commands);
-    }
-    
-    @Override
-    public List<ObjectAdapter> loadInstancesAndAdapt(final PersistenceQuery persistenceQuery) {
-        if (persistenceQuery instanceof PersistenceQueryFindByTitle) {
-            return getAllInstances((PersistenceQueryFindByTitle) persistenceQuery);
-        } else if (persistenceQuery instanceof PersistenceQueryFindAllInstances) {
-            return getAllInstances((PersistenceQueryFindAllInstances) persistenceQuery);
-        } else if (persistenceQuery instanceof PersistenceQueryFindByPattern) {
-            return findByPattern((PersistenceQueryFindByPattern) persistenceQuery);
-        } else {
-            return findDefaultr(persistenceQuery);
-        }
-    }
-
-    private List<ObjectAdapter> findDefaultr(PersistenceQuery persistenceQuery) {
-        final List<ObjectAdapter> instances = Lists.newArrayList();
-        final ObjectSpecification specification = persistenceQuery.getSpecification();
-        final Iterator<StateReader> instanceData = database.instancesOf(specification.getSpecId());
-        while (instanceData.hasNext()) {
-            final StateReader reader = instanceData.next();
-            final ObjectAdapter instance = objectReader.load(reader, versionCreator, availableDataEncrypters);
-            instances.add(instance);
-        }
-        return instances;
-    }
-
-    private List<ObjectAdapter> findByPattern(PersistenceQueryFindByPattern query) {
-        final ObjectSpecification specification = query.getSpecification();
-        final List<ObjectAdapter> instances = Lists.newArrayList();
-        appendPatternInstances(query, specification, instances);
-        return instances;
-    }
-    
-    private void appendPatternInstances(final PersistenceQueryFindByPattern persistenceQuery, final ObjectSpecification specification, final List<ObjectAdapter> instances) {      
-        final Iterator<StateReader> instanceData = database.instancesOf(specification.getSpecId(), persistenceQuery.getPattern());
-        while (instanceData.hasNext()) {
-            final StateReader reader = instanceData.next();
-            final ObjectAdapter instance = objectReader.load(reader, versionCreator, availableDataEncrypters);
-            instances.add(instance);
-        }
-        for (final ObjectSpecification spec : specification.subclasses()) {
-            appendPatternInstances(persistenceQuery, spec, instances);
-        }
-    }
-
-
-    private List<ObjectAdapter> getAllInstances(PersistenceQuery query) {
-        final ObjectSpecification specification = query.getSpecification();
-        final List<ObjectAdapter> instances = Lists.newArrayList();
-        appendInstances(query, specification, instances);
-        return instances;
-    }
-
-    private void appendInstances(final PersistenceQuery persistenceQuery, final ObjectSpecification specification, final List<ObjectAdapter> instances) {      
-        final Iterator<StateReader> instanceData = database.instancesOf(specification.getSpecId());
-        while (instanceData.hasNext()) {
-            final StateReader reader = instanceData.next();
-            final ObjectAdapter instance = objectReader.load(reader, versionCreator, availableDataEncrypters);
-            
-            // TODO deal with this natively
-            if (persistenceQuery instanceof PersistenceQueryBuiltIn) {
-                if (!((PersistenceQueryBuiltIn) persistenceQuery).matches(instance)) {
-                    continue;
-                }
-            }
-            instances.add(instance);
-        }
-        for (final ObjectSpecification spec : specification.subclasses()) {
-            appendInstances(persistenceQuery, spec, instances);
-        }
-    }
-
-
-
-    @Override
-    public ObjectAdapter loadInstanceAndAdapt(final TypedOid oid) {
-        final String key = keyCreator.getIdentifierForPersistentRoot(oid);
-        final ObjectSpecification objectSpec = getSpecificationLookup().lookupBySpecId(oid.getObjectSpecId());
-        final StateReader reader = database.getInstance(key, objectSpec.getSpecId());
-        return objectReader.load(reader, versionCreator, availableDataEncrypters);
-    }
-
-    @Override
-    public boolean hasInstances(final ObjectSpecification specification) {
-        return database.hasInstances(specification.getSpecId());
-    }
-
-    @Override
-    public boolean isFixturesInstalled() {
-        return isDataLoaded;
-    }
-
-    @Override
-    public void reset() {
-    }
-
-    @Override
-    public void resolveField(final ObjectAdapter object, final ObjectAssociation field) {
-        final ObjectAdapter fieldValue = field.get(object);
-        if (fieldValue != null && !fieldValue.isResolved() && !fieldValue.getSpecification().isParented()) {
-            resolveImmediately(fieldValue);
-        }
-    }
-
-    @Override
-    public void resolveImmediately(final ObjectAdapter adapter) {
-        final Oid oid = adapter.getOid();
-        if (!(oid instanceof AggregatedOid)) {
-            final ObjectSpecification objectSpec = adapter.getSpecification();
-            final String key = keyCreator.getIdentifierForPersistentRoot(oid);
-            final StateReader reader = database.getInstance(key, objectSpec.getSpecId());
-            objectReader.update(reader, versionCreator, availableDataEncrypters, adapter);
-        }
-    }
-
-    @Override
-    public void debugData(final DebugBuilder debug) {
-        // TODO show details
-    }
-
-    // ////////////////////////////////////////////////////////////////
-    // open, close
-    // ////////////////////////////////////////////////////////////////
-
-    @Override
-    public void close() {
-        database.close();
-    }
-
-    @Override
-    public void open() {
-        database.open();
-    }
-
-    @Override
-    public String name() {
-        return "nosql";
-    }
-
-    
-    // ////////////////////////////////////////////////////////////////
-    // Services
-    // ////////////////////////////////////////////////////////////////
-    
-    @Override
-    public void registerService(final RootOid rootOid) {
-        final String key = keyCreator.getIdentifierForPersistentRoot(rootOid);
-        database.addService(rootOid.getObjectSpecId(), key);
-    }
-
-    @Override
-    public RootOid getOidForService(ObjectSpecification serviceSpec) {
-        final ObjectSpecId objectSpecId = serviceSpec.getSpecId();
-        RootOid oid = servicesByObjectSpecId.get(objectSpecId);
-        if (oid == null) {
-            final String id = database.getService(objectSpecId);
-            if (id == null) {
-                oid = null;
-            } else {
-                oid = keyCreator.createRootOid(serviceSpec, id);
-            }
-            servicesByObjectSpecId.put(objectSpecId, oid);
-        }
-        return oid;
-    }
-
-
-    // ////////////////////////////////////////////////////////////////
-    // Transaction Mgmt
-    // ////////////////////////////////////////////////////////////////
-
-    @Override
-    public void abortTransaction() {
-    }
-
-    @Override
-    public void endTransaction() {
-    }
-
-    @Override
-    public void startTransaction() {
-    }
-
-    
-    // ////////////////////////////////////////////////////////////////
-    // debugging
-    // ////////////////////////////////////////////////////////////////
-
-    @Override
-    public String debugTitle() {
-        return "NoSql Object Store";
-    }
-
-
-    // ////////////////////////////////////////////////////////////////
-    // Dependencies (from context)
-    // ////////////////////////////////////////////////////////////////
-
-    protected AdapterManager getAdapterManager() {
-        return getPersistenceSession().getAdapterManager();
-    }
-
-    protected PersistenceSession getPersistenceSession() {
-        return IsisContext.getPersistenceSession();
-    }
-
-    protected SpecificationLoader getSpecificationLookup() {
-        return IsisContext.getSpecificationLoader();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlSaveObjectCommand.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlSaveObjectCommand.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlSaveObjectCommand.java
deleted file mode 100644
index aeca21e..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlSaveObjectCommand.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-package org.apache.isis.objectstore.nosql;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.SaveObjectCommand;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-final class NoSqlSaveObjectCommand extends WriteObjectCommand implements SaveObjectCommand {
-
-    public NoSqlSaveObjectCommand(final VersionCreator versionCreator, final DataEncryption dataEncrypter, final ObjectAdapter object) {
-        super(Mode.UPDATE, versionCreator, dataEncrypter, object);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlStoreException.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlStoreException.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlStoreException.java
deleted file mode 100644
index 3bdf720..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/NoSqlStoreException.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import org.apache.isis.core.commons.exceptions.IsisException;
-
-public class NoSqlStoreException extends IsisException {
-    private static final long serialVersionUID = 1L;
-
-    public NoSqlStoreException() {
-        super();
-    }
-
-    public NoSqlStoreException(final String messageFormat, final Object... args) {
-        super(messageFormat, args);
-    }
-
-    public NoSqlStoreException(final String message, final Throwable cause) {
-        super(message, cause);
-    }
-
-    public NoSqlStoreException(final String message) {
-        super(message);
-    }
-
-    public NoSqlStoreException(final Throwable cause) {
-        super(cause);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/ObjectReader.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/ObjectReader.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/ObjectReader.java
deleted file mode 100644
index cf43bff..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/ObjectReader.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import java.util.List;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.ResolveState;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
-import org.apache.isis.core.metamodel.adapter.oid.AggregatedOid;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
-import org.apache.isis.core.metamodel.adapter.oid.RootOid;
-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.object.encodeable.EncodableFacet;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
-import org.apache.isis.core.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.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.Persistor;
-import org.apache.isis.objectstore.nosql.db.StateReader;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.keys.KeyCreatorDefault;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-public class ObjectReader {
-
-    private static final Logger LOG = LoggerFactory.getLogger(ObjectReader.class);
-    
-    private final KeyCreatorDefault keyCreator = new KeyCreatorDefault();
-
-    public ObjectAdapter load(final StateReader reader, final VersionCreator versionCreator, final Map<String, DataEncryption> dataEncrypters) {
-        
-        final String oidStr = reader.readOid();
-        final RootOid rootOid = getOidMarshaller().unmarshal(oidStr, RootOid.class);
-        
-        final ObjectAdapter adapter = getAdapter(rootOid);
-        if (adapter.isResolved()) {
-            Version version = null;
-            final String versionString = reader.readVersion();
-            if (!versionString.equals("")) {
-                final String user = reader.readUser();
-                final String time = reader.readTime();
-                version = versionCreator.version(versionString, user, time);
-            }
-            if (version.different(adapter.getVersion())) {
-                // TODO - do we need to CHECK version and update
-                LOG.warn("while reading data into " + oidStr + " version was " + version + " when existing adapter was already " + adapter.getVersion());
-            }
-            
-        } else {
-            
-            // TODO move lock to common method
-            // object.setOptimisticLock(version);
-            loadState(reader, versionCreator, dataEncrypters, adapter);
-        }
-
-        return adapter;
-    }
-
-    public void update(final StateReader reader, final VersionCreator versionCreator, final Map<String, DataEncryption> dataEncrypters, final ObjectAdapter object) {
-        loadState(reader, versionCreator, dataEncrypters, object);
-    }
-
-    private void loadState(final StateReader reader, final VersionCreator versionCreator, final Map<String, DataEncryption> dataEncrypters, final ObjectAdapter object) {
-        final ResolveState resolveState = ResolveState.RESOLVING;
-        object.changeState(resolveState);
-        Version version = null;
-        final String versionString = reader.readVersion();
-        if (!versionString.equals("")) {
-            final String user = reader.readUser();
-            final String time = reader.readTime();
-            version = versionCreator.version(versionString, user, time);
-        }
-        final String encryptionType = reader.readEncrytionType();
-        readFields(reader, object, dataEncrypters.get(encryptionType));
-        object.setVersion(version);
-        object.changeState(resolveState.getEndState());
-    }
-
-    private void readFields(final StateReader reader, final ObjectAdapter object, final DataEncryption dataEncrypter) {
-        final ObjectAssociationContainer specification = object.getSpecification();
-        final List<ObjectAssociation> associations = specification.getAssociations(Contributed.EXCLUDED);
-        for (final ObjectAssociation association : associations) {
-            if (association.isNotPersisted()) {
-                continue;
-            }
-            if (association.isOneToManyAssociation()) {
-                readCollection(reader, dataEncrypter, (OneToManyAssociation) association, object);
-            } else if (association.getSpecification().isValue()) {
-                readValue(reader, dataEncrypter, (OneToOneAssociation) association, object);
-            } else if (association.getSpecification().isParented()) {
-                readAggregate(reader, dataEncrypter, (OneToOneAssociation) association, object);
-            } else {
-                readReference(reader, (OneToOneAssociation) association, object);
-            }
-        }
-    }
-
-    private void readAggregate(final StateReader reader, 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 oidStr = aggregateReader.readOid();
-            final AggregatedOid aggregatedOid = getOidMarshaller().unmarshal(oidStr, AggregatedOid.class);
-            fieldObject = restoreAggregatedObject(aggregateReader, aggregatedOid, dataEncrypter);
-        } else {
-            fieldObject = null;
-        }
-        
-        association.initAssociation(parentAdapter, fieldObject);
-    }
-
-    private ObjectAdapter restoreAggregatedObject(final StateReader aggregateReader, final AggregatedOid aggregatedOid, final DataEncryption dataEncrypter) {
-        final ObjectAdapter fieldObject = getAdapter(aggregatedOid);
-        final ResolveState resolveState = ResolveState.RESOLVING;
-        fieldObject.changeState(resolveState);
-        readFields(aggregateReader, fieldObject, dataEncrypter);
-        fieldObject.changeState(resolveState.getEndState());
-
-        return fieldObject;
-    }
-
-    private void readValue(final StateReader reader, final DataEncryption dataEncrypter, final OneToOneAssociation association, final ObjectAdapter object) {
-        final String fieldData = reader.readField(association.getId());
-        if (fieldData != null) {
-            if (fieldData.equals("null")) {
-                association.initAssociation(object, null);
-            } else {
-                final EncodableFacet encodeableFacet = association.getSpecification().getFacet(EncodableFacet.class);
-                final String decryptedData = dataEncrypter.decrypt(fieldData);
-                final ObjectAdapter value = encodeableFacet.fromEncodedString(decryptedData);
-                association.initAssociation(object, value);
-            }
-        }
-    }
-
-    private void readReference(final StateReader reader, final OneToOneAssociation association, final ObjectAdapter object) {
-        ObjectAdapter fieldObject;
-        final String ref = reader.readField(association.getId());
-        if (ref == null || ref.equals("null")) {
-            fieldObject = null;
-        } else {
-            if (ref.equals("")) {
-                throw new NoSqlStoreException("Invalid reference field (an empty string) in data for " + association.getName() + "  in " + object);
-            }
-            final RootOid oid = keyCreator.unmarshal(ref);
-            fieldObject = getAdapter(oid);
-        }
-        try {
-            association.initAssociation(object, fieldObject);
-        } catch (IllegalArgumentException e) {
-            throw new NoSqlStoreException("Failed to process field data for " + association.getName() + "  in " + object + ": " + ref);
-        }
-    }
-
-    private void readCollection(final StateReader reader, 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().isParented()) {
-            // were persisted inline, so read back inline
-            final List<StateReader> readers = reader.readCollection(association.getId());
-            final ObjectAdapter[] elementAdapters = new ObjectAdapter[readers.size()];
-            int i = 0;
-            for (final StateReader elementReader : readers) {
-                
-                final String oidStr = elementReader.readOid();
-                final AggregatedOid aggregatedOid = getOidMarshaller().unmarshal(oidStr, AggregatedOid.class);
-                
-                elementAdapters[i++] = restoreAggregatedObject(elementReader, aggregatedOid, dataEncrypter);
-            }
-            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(collectionAdapter, new ObjectAdapter[0]);
-            } else {
-                final ObjectAdapter[] elements = restoreElements(referencesList);
-                facet.init(collectionAdapter, elements);
-            }
-        }
-    }
-
-    private ObjectAdapter[] restoreElements(final String referencesList) {
-        final String[] references = referencesList.split("\\|");
-        final ObjectAdapter[] elements = new ObjectAdapter[references.length];
-        for (int i = 0; i < references.length; i++) {
-            
-            // no longer used
-            //final ObjectSpecification specification = keyCreator.specificationFromOidStr(references[i]);
-            
-            final RootOid oid = keyCreator.unmarshal(references[i]);
-            elements[i] = getAdapter(oid);
-        }
-        return elements;
-    }
-
-    protected ObjectAdapter getAdapter(final TypedOid oid) {
-        return getAdapterManager().adapterFor(oid);
-    }
-
-    
-    ////////////////////////////////////////////////////////////////////////////
-    // dependencies (from context)
-    ////////////////////////////////////////////////////////////////////////////
-    
-    protected Persistor getPersistenceSession() {
-    	return IsisContext.getPersistenceSession();
-    }
-    
-    protected AdapterManager getAdapterManager() {
-        return getPersistenceSession().getAdapterManager();
-    }
-
-    protected SpecificationLoaderSpi getSpecificationLoader() {
-        return IsisContext.getSpecificationLoader();
-    }
-
-    protected OidMarshaller getOidMarshaller() {
-        return IsisContext.getOidMarshaller();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/WriteObjectCommand.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/WriteObjectCommand.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/WriteObjectCommand.java
deleted file mode 100644
index 844d129..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/WriteObjectCommand.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql;
-
-import java.util.List;
-
-import com.google.common.collect.Lists;
-
-import org.apache.isis.core.commons.authentication.AuthenticationSession;
-import org.apache.isis.core.commons.util.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.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.object.encodeable.EncodableFacet;
-import org.apache.isis.core.metamodel.spec.DomainModelException;
-import org.apache.isis.core.metamodel.spec.ObjectSpecification;
-import org.apache.isis.core.metamodel.spec.feature.Contributed;
-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.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
-import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.objectstore.nosql.db.StateWriter;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.keys.KeyCreatorDefault;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-
-class WriteObjectCommand implements PersistenceCommand {
-    
-    public enum Mode {
-        UPDATE,
-        NON_UPDATE;
-        
-        public static Mode modeFor(boolean isUpdate) {
-            return isUpdate?UPDATE:NON_UPDATE;
-        }
-
-        public boolean isUpdate() {
-            return this == UPDATE;
-        }
-    }
-    
-    private final KeyCreatorDefault keyCreator = new KeyCreatorDefault();
-    private final ObjectAdapter adapter;
-    private final VersionCreator versionCreator;
-    private final DataEncryption dataEncrypter;
-    private final Mode mode;
-
-    WriteObjectCommand(final Mode mode, final VersionCreator versionCreator, final DataEncryption dataEncrypter, final ObjectAdapter adapter) {
-        this.mode = mode;
-        this.versionCreator = versionCreator;
-        this.dataEncrypter = dataEncrypter;
-        this.adapter = adapter;
-    }
-
-    @Override
-    public void execute(final PersistenceCommandContext context) {
-        final NoSqlCommandContext noSqlCommandContext = (NoSqlCommandContext) context;
-        
-        final ObjectSpecification objectSpec = adapter.getSpecification();
-        //final String specName = objectSpec.getFullIdentifier();
-        final StateWriter writer = noSqlCommandContext.createStateWriter(objectSpec.getSpecId());
-        
-        //final String key = keyCreator.key(adapter.getOid());
-        //writer.writeId(key);
-        final TypedOid typedOid = (TypedOid) adapter.getOid();
-        writer.writeOid(typedOid);
-        
-        writeFields(writer, adapter);
-        final String user = getAuthenticationSession().getUserName();
-
-        final Version currentVersion = adapter.getVersion();
-        
-        final Version newVersion = mode.isUpdate() ? versionCreator.nextVersion(currentVersion, user) : versionCreator.newVersion(user);
-        adapter.setVersion(newVersion);
-        if (newVersion != null) {
-            final String version = currentVersion == null ? null : versionCreator.versionString(currentVersion);
-            writer.writeVersion(version, versionCreator.versionString(newVersion));
-            writer.writeUser(newVersion.getUser());
-            writer.writeTime(versionCreator.timeString(newVersion));
-            writer.writeEncryptionType(dataEncrypter.getType());
-        }
-
-        if (mode.isUpdate()) {
-            noSqlCommandContext.update(writer);
-        } else {
-            noSqlCommandContext.insert(writer);
-        }
-    }
-
-    private void writeFields(final StateWriter writer, final ObjectAdapter adapter) {
-        
-        final List<ObjectAssociation> associations = adapter.getSpecification().getAssociations(Contributed.EXCLUDED);
-        
-//        final String specName = adapter.getSpecification().getFullIdentifier();
-//        writer.writeObjectType(specName);
-        
-        writer.writeOid((TypedOid) adapter.getOid());
-        
-        for (final ObjectAssociation association : associations) {
-            if (association.isNotPersisted()) {
-                continue;
-            }
-            final ObjectAdapter fieldAdapter = association.get(adapter);
-            if (association.isOneToManyAssociation()) {
-                final OneToManyAssociation oneToManyAssociation = (OneToManyAssociation) association;
-                final ObjectAdapter collectionAdapter = fieldAdapter; // to explain
-                writeCollection(writer, oneToManyAssociation, collectionAdapter);
-            } else { 
-                final OneToOneAssociation oneToOneAssociation = (OneToOneAssociation) association;
-                final ObjectAdapter propertyAdapter = fieldAdapter; // to explain
-                writeProperty(writer, oneToOneAssociation, propertyAdapter);
-            }
-        }
-    }
-
-    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 writeValueProperty(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter valueAdapter) {
-        String data;
-        if (valueAdapter == null) {
-            data = null;
-        } else {
-            final EncodableFacet encodeableFacet = valueAdapter.getSpecification().getFacet(EncodableFacet.class);
-            data = encodeableFacet.toEncodedString(valueAdapter);
-            data = dataEncrypter.encrypt(data);
-        }
-        writer.writeField(otoa.getId(), data);
-    }
-
-    private void writeReferenceProperty(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter referencedAdapter) {
-        if (otoa.getSpecification().isParented()) {
-            writeReferencedAsAggregated(writer, otoa, referencedAdapter);
-        } else {
-            writeReference(writer, otoa, referencedAdapter);
-        }
-    }
-
-    private void writeReferencedAsAggregated(final StateWriter writer, final OneToOneAssociation otoa, final ObjectAdapter referencedAdapter) {
-        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());
-        aggregateWriter.writeOid(aggregatedOid);
-        
-        writeFields(aggregateWriter, referencedAdapter);
-    }
-
-    private void writeReference(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter referencedAdapter) {
-        final String key = keyCreator.oidStrFor(referencedAdapter);
-        writer.writeField(association.getId(), key);
-    }
-
-    private void writeCollection(final StateWriter writer, final OneToManyAssociation association, final ObjectAdapter collectionAdapter) {
-        if (association.getSpecification().isParented()) {
-            writeCollectionOfAggregated(writer, association, collectionAdapter);
-        } else {
-            writeCollectionOfReferences(writer, association, collectionAdapter);
-        }
-    }
-
-    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());
-            elementWriter.writeOid(elementOid);
-            
-            writeFields(elementWriter, referencedAdapter);
-            elementWriters.add(elementWriter);
-        }
-        writer.writeCollection(association.getId(), elementWriters);
-    }
-
-    private void writeCollectionOfReferences(final StateWriter writer, final ObjectAssociation association, final ObjectAdapter collectionAdapter) {
-        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.oidStrFor(elementAdapter)).append("|");
-        }
-        if (buf.length() > 0) {
-            writer.writeField(association.getId(), buf.toString());
-        }
-    }
-
-
-    @Override
-    public ObjectAdapter onAdapter() {
-        return adapter;
-    }
-
-    @Override
-    public String toString() {
-        final ToString toString = new ToString(this);
-        toString.append("spec", adapter.getSpecification().getFullIdentifier());
-        toString.append("oid", adapter.getOid());
-        return toString.toString();
-    }
-    
-    
-    protected AuthenticationSession getAuthenticationSession() {
-        return IsisContext.getAuthenticationSession();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlDataDatabase.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlDataDatabase.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlDataDatabase.java
deleted file mode 100644
index a6e283b..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlDataDatabase.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql.db;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.spec.ObjectSpecId;
-import org.apache.isis.core.runtime.persistence.objectstore.transaction.PersistenceCommand;
-
-public interface NoSqlDataDatabase {
-
-    void open();
-    void close();
-    
-    boolean containsData();
-
-    void addService(ObjectSpecId objectSpecId, String key);
-    String getService(ObjectSpecId objectSpecId);
-
-    boolean hasInstances(ObjectSpecId objectSpecId);
-    StateReader getInstance(String key, ObjectSpecId objectSpecId);
-    Iterator<StateReader> instancesOf(ObjectSpecId objectSpecId);
-    Iterator<StateReader> instancesOf(ObjectSpecId specId, ObjectAdapter pattern);
-
-    long nextSerialNumberBatch(ObjectSpecId objectSpecId, int batchSize);
-
-    void write(List<PersistenceCommand> commands);
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlPersistorMechanismInstaller.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlPersistorMechanismInstaller.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlPersistorMechanismInstaller.java
deleted file mode 100644
index 05e94ae..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/NoSqlPersistorMechanismInstaller.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql.db;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import org.apache.isis.core.commons.config.ConfigurationConstants;
-import org.apache.isis.core.commons.config.IsisConfiguration;
-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.core.runtime.installerregistry.installerapi.PersistenceMechanismInstallerAbstract;
-import org.apache.isis.core.runtime.persistence.objectstore.ObjectStoreSpi;
-import org.apache.isis.core.runtime.system.persistence.AdapterManagerSpi;
-import org.apache.isis.core.runtime.system.persistence.IdentifierGenerator;
-import org.apache.isis.core.runtime.system.persistence.OidGenerator;
-import org.apache.isis.objectstore.nosql.NoSqlIdentifierGenerator;
-import org.apache.isis.objectstore.nosql.NoSqlObjectStore;
-import org.apache.isis.objectstore.nosql.encryption.DataEncryption;
-import org.apache.isis.objectstore.nosql.encryption.none.DataEncryptionNone;
-import org.apache.isis.objectstore.nosql.versions.VersionCreator;
-import org.apache.isis.objectstore.nosql.versions.VersionCreatorDefault;
-
-public abstract class NoSqlPersistorMechanismInstaller extends PersistenceMechanismInstallerAbstract {
-
-    private static final Logger LOG = LoggerFactory.getLogger(NoSqlPersistorMechanismInstaller.class);
-
-    private static final String NAKEDOBJECTS_ENCRYPTION_CLASSES = ConfigurationConstants.ROOT + "nosql.encryption";
-
-    private NoSqlObjectStore objectStore;
-
-    public NoSqlPersistorMechanismInstaller(final String name) {
-        super(name);
-    }
-
-    @Override
-    protected ObjectStoreSpi createObjectStore(final IsisConfiguration configuration, final ObjectAdapterFactory objectFactory, final AdapterManagerSpi adapterManager) {
-        return getObjectStore(configuration);
-    }
-
-    @Override
-    public IdentifierGenerator createIdentifierGenerator(final IsisConfiguration configuration) {
-        return getObjectStore(configuration).getIdentifierGenerator();
-    }
-
-    private NoSqlObjectStore getObjectStore(final IsisConfiguration configuration) {
-        if (objectStore == null) {
-            //final KeyCreatorDefault keyCreator = createKeyCreator();
-            final VersionCreator versionCreator = createVersionCreator();
-            final NoSqlDataDatabase db = createNoSqlDatabase(configuration);
-            final OidGenerator oidGenerator = new OidGenerator(createIdentifierGenerator(db));
-
-            final Map<String, DataEncryption> availableDataEncryption = new HashMap<String, DataEncryption>();
-            try {
-                final String[] encryptionClasses = getConfiguration().getList(NAKEDOBJECTS_ENCRYPTION_CLASSES);
-                DataEncryption writeWithEncryption = null;
-                boolean encryptionSpecified = false;
-                for (final String fullyQualifiedClass : encryptionClasses) {
-                    LOG.info("  adding encryption " + fullyQualifiedClass);
-                    final DataEncryption encryption = (DataEncryption) InstanceUtil.createInstance(fullyQualifiedClass);
-                    encryption.init(configuration);
-                    availableDataEncryption.put(encryption.getType(), encryption);
-                    if (!encryptionSpecified) {
-                        writeWithEncryption = encryption;
-                    }
-                    encryptionSpecified = true;
-                }
-                if (!encryptionSpecified) {
-                    LOG.warn("No encryption specified");
-                    final DataEncryption encryption = new DataEncryptionNone();
-                    availableDataEncryption.put(encryption.getType(), encryption);
-                    writeWithEncryption = encryption;
-                }
-                objectStore = new NoSqlObjectStore(db, oidGenerator, versionCreator, writeWithEncryption, availableDataEncryption);
-            } catch (final IllegalArgumentException e) {
-                throw new IsisException(e);
-            } catch (final SecurityException e) {
-                throw new IsisException(e);
-            }
-        }
-        return objectStore;
-    }
-
-    protected NoSqlIdentifierGenerator createIdentifierGenerator(final NoSqlDataDatabase database) {
-        return new NoSqlIdentifierGenerator(database);
-    }
-
-    protected abstract NoSqlDataDatabase createNoSqlDatabase(IsisConfiguration configuration);
-
-    private VersionCreator createVersionCreator() {
-        return new VersionCreatorDefault();
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateReader.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateReader.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateReader.java
deleted file mode 100644
index c7a3770..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateReader.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.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 {
-
-    /**
-     * Aggregated objects are persisted &quot;under&quot; 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);
-
-    String readField(String id);
-
-    String readEncrytionType();
-
-//    String readObjectType();
-//    String readId();
-    
-    String readOid();
-
-    String readVersion();
-
-    String readUser();
-
-    String readTime();
-
-
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/680f0c8d/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateWriter.java
----------------------------------------------------------------------
diff --git a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateWriter.java b/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateWriter.java
deleted file mode 100644
index e605a56..0000000
--- a/component/objectstore/nosql/src/main/java/org/apache/isis/objectstore/nosql/db/StateWriter.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one
- *  or more contributor license agreements.  See the NOTICE file
- *  distributed with this work for additional information
- *  regarding copyright ownership.  The ASF licenses this file
- *  to you under the Apache License, Version 2.0 (the
- *  "License"); you may not use this file except in compliance
- *  with the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing,
- *  software distributed under the License is distributed on an
- *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- *  KIND, either express or implied.  See the License for the
- *  specific language governing permissions and limitations
- *  under the License.
- */
-
-package org.apache.isis.objectstore.nosql.db;
-
-import java.util.List;
-
-import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
-
-public interface StateWriter {
-
-    StateWriter addAggregate(String id);
-
-//    void writeObjectType(String type);
-//    void writeId(String oid);
-    
-    void writeOid(TypedOid typedOid);
-
-    void writeEncryptionType(String type);
-
-    void writeField(String id, String data);
-
-    void writeField(String id, long l);
-
-    void writeVersion(String currentVersion, String newVersion);
-
-    void writeTime(String time);
-
-    void writeUser(String user);
-
-    void writeCollection(String id, List<StateWriter> elements);
-
-    StateWriter createElementWriter();
-
-}