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 [7/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/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlOidGenerator.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlOidGenerator.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlOidGenerator.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlOidGenerator.java Sat Mar 24 14:01:35 2012
@@ -23,78 +23,21 @@ 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.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.SpecificationLookup;
 import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.OidGeneratorAbstract;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
+import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.transaction.ObjectPersistenceException;
 
 public class SqlOidGenerator extends OidGeneratorAbstract {
-    private static final Logger LOG = Logger.getLogger(SqlOidGenerator.class);
-
-    private static class IdNumbers {
-        private static final String NUMBER_COLUMN = "number";
-        private static final String TABLE_NAME = "isis_admin_serial_id";
-        private static int BATCH_SIZE = 50;
-        private long transientNumber = -9999999;
-        private long lastId = 0;
-        private long newBatchAt = 0;
-
-        public synchronized long nextTransientId() {
-            return transientNumber++;
-        }
-
-        public synchronized long nextPersistentId(final DatabaseConnectorPool connectionPool) {
-            if (lastId > newBatchAt) {
-                throw new SqlObjectStoreException("ID exception, last id (" + lastId + ") past new batch boundary (" + newBatchAt + ")");
-            }
-            if (lastId == newBatchAt) {
-                prepareNewBatch(connectionPool);
-            }
-            lastId++;
-            return lastId;
-        }
-
-        private void prepareNewBatch(final DatabaseConnectorPool connectionPool) {
-            final DatabaseConnector db = connectionPool.acquire();
-            try {
-                final String tableName = Sql.tableIdentifier(TABLE_NAME);
-                final String numberColumn = Sql.identifier(NUMBER_COLUMN);
-                if (!db.hasTable(tableName)) {
-                    lastId = 1;
-                    newBatchAt = BATCH_SIZE;
-                    db.update("create table " + tableName + " (" + numberColumn + " INTEGER)");
-                    db.update("insert into " + tableName + " values (" + newBatchAt + ")");
-                    LOG.debug("Initial ID batch created, from " + lastId + " to " + newBatchAt);
-                } else {
-                    if (db.update("update " + tableName + " set " + numberColumn + " = " + numberColumn + " + " + BATCH_SIZE) != 1) {
-                        throw new SqlObjectStoreException("failed to update serial id table; no rows updated");
-                    }
-                    final Results rs = db.select("select " + numberColumn + " from " + tableName);
-                    rs.next();
-                    newBatchAt = rs.getLong(NUMBER_COLUMN); // TODO here
-                    lastId = newBatchAt - BATCH_SIZE;
-                    LOG.debug("New ID batch created, from " + lastId + " to " + newBatchAt);
-                    rs.close();
-                }
-            } catch (final ObjectPersistenceException e) {
-                throw e;
-            } finally {
-                connectionPool.release(db);
-            }
-        }
-
-        public void debugData(final DebugBuilder debug) {
-            debug.appendln("id", lastId);
-            debug.appendln("transient id", transientNumber);
-        }
-
-    }
-
+    
     private final DatabaseConnectorPool connectionPool;
     private final IdNumbers ids = new IdNumbers();
 
     public SqlOidGenerator(final DatabaseConnectorPool connectionPool) {
-        super(new OidStringifierDirect(SqlOid.class));
+        super(RootOidDefault.class);
         this.connectionPool = connectionPool;
     }
 
@@ -103,26 +46,30 @@ public class SqlOidGenerator extends Oid
     }
 
     @Override
-    public SqlOid createTransientOid(final Object object) {
-        final String className = object.getClass().getName();
-        return SqlOid.createTransient(className, ids.nextTransientId());
+    public RootOid createTransientOid(final Object object) {
+        final Class<? extends Object> cls = object.getClass();
+        final ObjectSpecification objectSpec = getSpecificationLookup().loadSpecification(cls);
+        return RootOidDefault.createTransient(objectSpec.getObjectType(), ""+ids.nextTransientId());
     }
 
     @Override
-    public String createAggregateId(final Object pojo) {
+    public String createAggregateLocalId(final Object pojo) {
         throw new SqlObjectStoreException("Aggregated objects are not supported in this store");
     }
 
     @Override
-    public void convertTransientToPersistentOid(final Oid oid) {
+    public RootOid asPersistent(final RootOid rootOid) {
         Assert.assertNotNull("No connection set up", connectionPool);
-        final IntegerPrimaryKey primaryKey = new IntegerPrimaryKey((int) ids.nextPersistentId(connectionPool));
-        ((SqlOid) oid).setId(primaryKey);
-        ((SqlOid) oid).makePersistent();
+        
+        final int next = (int) ids.nextPersistentId(connectionPool);
+        
+        return rootOid.asPersistent("" + next);
     }
 
-    public void convertPersistentToTransientOid(final Oid oid) {
-    }
+    
+    ///////////////////////////////////////////////////////
+    // Debug
+    ///////////////////////////////////////////////////////
 
     @Override
     public void debugData(final DebugBuilder debug) {
@@ -136,4 +83,75 @@ public class SqlOidGenerator extends Oid
     public String debugTitle() {
         return "SQL OID Generator";
     }
+    
+    ///////////////////////////////////////////////////////
+    // Dependencies
+    ///////////////////////////////////////////////////////
+    
+    protected SpecificationLookup getSpecificationLookup() {
+        return IsisContext.getSpecificationLoader();
+    }
+}
+
+class IdNumbers {
+
+    private static final Logger LOG = Logger.getLogger(IdNumbers.class);
+
+    private static final String NUMBER_COLUMN = "number";
+    private static final String TABLE_NAME = "isis_admin_serial_id";
+    private static int BATCH_SIZE = 50;
+    private long transientNumber = -9999999;
+    private long lastId = 0;
+    private long newBatchAt = 0;
+
+    public synchronized long nextTransientId() {
+        return transientNumber++;
+    }
+
+    public synchronized long nextPersistentId(final DatabaseConnectorPool connectionPool) {
+        if (lastId > newBatchAt) {
+            throw new SqlObjectStoreException("ID exception, last id (" + lastId + ") past new batch boundary (" + newBatchAt + ")");
+        }
+        if (lastId == newBatchAt) {
+            prepareNewBatch(connectionPool);
+        }
+        lastId++;
+        return lastId;
+    }
+
+    private void prepareNewBatch(final DatabaseConnectorPool connectionPool) {
+        final DatabaseConnector db = connectionPool.acquire();
+        try {
+            final String tableName = Sql.tableIdentifier(TABLE_NAME);
+            final String numberColumn = Sql.identifier(NUMBER_COLUMN);
+            if (!db.hasTable(tableName)) {
+                lastId = 1;
+                newBatchAt = BATCH_SIZE;
+                db.update("create table " + tableName + " (" + numberColumn + " INTEGER)");
+                db.update("insert into " + tableName + " values (" + newBatchAt + ")");
+                LOG.debug("Initial ID batch created, from " + lastId + " to " + newBatchAt);
+            } else {
+                if (db.update("update " + tableName + " set " + numberColumn + " = " + numberColumn + " + " + BATCH_SIZE) != 1) {
+                    throw new SqlObjectStoreException("failed to update serial id table; no rows updated");
+                }
+                final Results rs = db.select("select " + numberColumn + " from " + tableName);
+                rs.next();
+                newBatchAt = rs.getLong(NUMBER_COLUMN); // TODO here
+                lastId = newBatchAt - BATCH_SIZE;
+                LOG.debug("New ID batch created, from " + lastId + " to " + newBatchAt);
+                rs.close();
+            }
+        } catch (final ObjectPersistenceException e) {
+            throw e;
+        } finally {
+            connectionPool.release(db);
+        }
+    }
+
+    public void debugData(final DebugBuilder debug) {
+        debug.appendln("id", lastId);
+        debug.appendln("transient id", transientNumber);
+    }
+
 }
+

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlPersistorInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlPersistorInstaller.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlPersistorInstaller.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/SqlPersistorInstaller.java Sat Mar 24 14:01:35 2012
@@ -34,11 +34,13 @@ import org.apache.isis.runtimes.dflt.run
 
 public class SqlPersistorInstaller extends ObjectStorePersistenceMechanismInstallerAbstract {
 
+    public static final String NAME = "sql";
+    
     private SqlObjectStore objectStore;
     private DatabaseConnectorPool connectionPool;
 
     public SqlPersistorInstaller() {
-        super("sql");
+        super(NAME);
     }
 
     @Override

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoCollectionMapper.java Sat Mar 24 14:01:35 2012
@@ -27,6 +27,8 @@ import org.apache.log4j.Logger;
 import org.apache.isis.core.commons.debug.DebugBuilder;
 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.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.typeof.TypeOfFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
@@ -125,7 +127,8 @@ public class AutoCollectionMapper extend
         sql.append("delete from ");
         sql.append(tableName);
         sql.append(" where ");
-        idMapping.appendWhereClause(connector, sql, parent.getOid());
+        final RootOid oid = (RootOid) parent.getOid();
+        idMapping.appendWhereClause(connector, sql, oid);
         connector.update(sql.toString());
 
         sql = new StringBuffer();

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/AutoMapper.java Sat Mar 24 14:01:35 2012
@@ -29,6 +29,7 @@ import org.apache.isis.core.commons.debu
 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.util.InvokeUtils;
 import org.apache.isis.core.metamodel.adapter.version.SerialNumberVersion;
 import org.apache.isis.core.metamodel.facets.notpersisted.NotPersistedFacet;
@@ -135,7 +136,7 @@ public class AutoMapper extends Abstract
         sql.append(") ");
 
         connector.insert(sql.toString());
-        object.setOptimisticLock(version);
+        object.setVersion(version);
 
         for (final CollectionMapper collectionMapper : collectionMappers) {
             collectionMapper.saveInternalCollection(connector, object);
@@ -146,7 +147,8 @@ public class AutoMapper extends Abstract
     public void destroyObject(final DatabaseConnector connector, final ObjectAdapter object) {
         final StringBuffer sql = new StringBuffer();
         sql.append("delete from " + table + " WHERE ");
-        idMapping.appendWhereClause(connector, sql, object.getOid());
+        final RootOid oid = (RootOid) object.getOid();
+        idMapping.appendWhereClause(connector, sql, oid);
         sql.append(" AND ");
         sql.append(versionMapping.whereClause(connector, (SerialNumberVersion) object.getVersion()));
         final int updateCount = connector.update(sql.toString());
@@ -261,7 +263,7 @@ public class AutoMapper extends Abstract
     public ObjectAdapter getObject(final DatabaseConnector connector, final Oid oid, final ObjectSpecification hint) {
         final StringBuffer sql = createSelectStatement();
         sql.append(" WHERE ");
-        idMapping.appendWhereClause(connector, sql, oid);
+        idMapping.appendWhereClause(connector, sql, (RootOid) oid);
         final Results rs = connector.select(completeSelectStatement(sql));
         if (rs.next()) {
             return loadObject(connector, hint, rs);
@@ -315,7 +317,7 @@ public class AutoMapper extends Abstract
         /*
          * oneToManyProperties[i].get(object); }
          */
-        object.setOptimisticLock(versionMapping.getLock(rs));
+        object.setVersion(versionMapping.getLock(rs));
         PersistorUtil.end(object);
     }
 
@@ -365,7 +367,8 @@ public class AutoMapper extends Abstract
         sql.append(",");
         sql.append(versionMapping.appendColumnNames());
         sql.append(" from " + table + " WHERE ");
-        idMapping.appendWhereClause(connector, sql, object.getOid());
+        final RootOid oid = (RootOid) object.getOid();
+        idMapping.appendWhereClause(connector, sql, oid);
 
         final Results rs = connector.select(sql.toString());
         if (rs.next()) {
@@ -377,7 +380,7 @@ public class AutoMapper extends Abstract
             }
         } else {
             rs.close();
-            throw new SqlObjectStoreException("Unable to load data from " + table + " with id " + idMapping.primaryKey(object.getOid()));
+            throw new SqlObjectStoreException("Unable to load data from " + table + " with id " + object.getOid().enString());
         }
     }
 
@@ -400,8 +403,8 @@ public class AutoMapper extends Abstract
     }
 
     @Override
-    public void save(final DatabaseConnector connector, final ObjectAdapter object) {
-        final SerialNumberVersion version = (SerialNumberVersion) object.getVersion();
+    public void save(final DatabaseConnector connector, final ObjectAdapter adapter) {
+        final SerialNumberVersion version = (SerialNumberVersion) adapter.getVersion();
         final long nextSequence;
         if (useVersioning) {
             nextSequence = version.getSequence() + 1;
@@ -412,31 +415,32 @@ public class AutoMapper extends Abstract
         final StringBuffer sql = new StringBuffer();
         sql.append("UPDATE " + table + " SET ");
         for (final FieldMapping mapping : fieldMappingByField.values()) {
-            mapping.appendUpdateValues(connector, sql, object);
+            mapping.appendUpdateValues(connector, sql, adapter);
             sql.append(", ");
         }
         sql.append(versionMapping.updateAssigment(connector, nextSequence));
         sql.append(", ");
-        titleMapping.appendUpdateAssignment(connector, sql, object);
+        titleMapping.appendUpdateAssignment(connector, sql, adapter);
         sql.append(" WHERE ");
-        idMapping.appendWhereClause(connector, sql, object.getOid());
+        final RootOid oid = (RootOid) adapter.getOid();
+        idMapping.appendWhereClause(connector, sql, oid);
         if (useVersioning) {
             sql.append(" AND ");
-            sql.append(versionMapping.whereClause(connector, (SerialNumberVersion) object.getVersion()));
+            sql.append(versionMapping.whereClause(connector, (SerialNumberVersion) adapter.getVersion()));
         }
 
         final int updateCount = connector.update(sql.toString());
         if (updateCount == 0) {
             LOG.info("concurrency conflict object " + this + "; no update performed");
-            throw new ConcurrencyException("", object.getOid());
+            throw new ConcurrencyException("", adapter.getOid());
         } else {
-            object.setOptimisticLock(createVersion(nextSequence));
+            adapter.setVersion(createVersion(nextSequence));
         }
 
         // TODO update collections - change only when needed rather than
         // reinserting from scratch
         for (final CollectionMapper collectionMapper : collectionMappers) {
-            collectionMapper.saveInternalCollection(connector, object);
+            collectionMapper.saveInternalCollection(connector, adapter);
         }
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ForeignKeyCollectionMapper.java Sat Mar 24 14:01:35 2012
@@ -30,6 +30,7 @@ import org.apache.isis.core.commons.debu
 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.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
@@ -125,12 +126,12 @@ public class ForeignKeyCollectionMapper 
     }
 
     @Override
-    public void startup(final DatabaseConnector connector, final FieldMappingLookup lookup) {
+    public void startup(final DatabaseConnector connector) {
         if (originalMapping == null) {
             originalMapping = objectMappingLookup.getMapping(specification, null);
         }
         originalMapping.startup(connector, objectMapperLookup2);
-        super.startup(connector, lookup);
+        super.startup(connector);
     }
 
     @Override
@@ -255,7 +256,7 @@ public class ForeignKeyCollectionMapper 
             for (final FieldMapping mapping : fieldMappingByField.values()) {
                 mapping.initializeField(object, rs);
             }
-            object.setOptimisticLock(versionMapping.getLock(rs));
+            object.setVersion(versionMapping.getLock(rs));
             if (makeResolved) {
                 PersistorUtil.end(object);
             }
@@ -327,7 +328,8 @@ public class ForeignKeyCollectionMapper 
             if (count++ > 0) {
                 update.append(",");
             }
-            idMapping.appendObjectId(connector, update, element.getOid());
+            final RootOid elementOid = (RootOid) element.getOid();
+            idMapping.appendObjectId(connector, update, elementOid);
         }
         update.append(")");
         if (count > 0) {

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/PolymorphicForeignKeyInChildCollectionBaseMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/PolymorphicForeignKeyInChildCollectionBaseMapper.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/PolymorphicForeignKeyInChildCollectionBaseMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/PolymorphicForeignKeyInChildCollectionBaseMapper.java Sat Mar 24 14:01:35 2012
@@ -30,6 +30,7 @@ import org.apache.log4j.Logger;
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 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;
@@ -157,8 +158,8 @@ public class PolymorphicForeignKeyInChil
             update.append(") VALUES (");
 
             // Row ID column
-            final Oid transientOid = oidGenerator.createTransientOid(thisAdapter.getObject());
-            oidGenerator.convertTransientToPersistentOid(transientOid);
+            final RootOid transientOid = oidGenerator.createTransientOid(thisAdapter.getObject());
+            oidGenerator.asPersistent(transientOid);
             polyIdMapper.appendObjectId(connector, update, transientOid);
             // polyIdMapper.appendObjectId(connector, update,
             // thisAdapter.getOid());
@@ -169,7 +170,8 @@ public class PolymorphicForeignKeyInChil
             update.append(",");
 
             // item Id column
-            getIdMapping().appendObjectId(connector, update, thisAdapter.getOid());
+            final RootOid oid = (RootOid) thisAdapter.getOid();
+            getIdMapping().appendObjectId(connector, update, oid);
 
             // Class name column
             update.append(",?)");

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/auto/ReversedAutoAssociationMapper.java Sat Mar 24 14:01:35 2012
@@ -133,7 +133,7 @@ public class ReversedAutoAssociationMapp
          * oneToManyProperties[i].get(object); }
          */
 
-        object.setOptimisticLock(versionMapping.getLock(rs));
+        object.setVersion(versionMapping.getLock(rs));
         if (makeResolved) {
             PersistorUtil.end(object);
         }
@@ -173,7 +173,7 @@ public class ReversedAutoAssociationMapp
             insert.append(") ");
 
             connector.insert(insert.toString());
-            element.setOptimisticLock(version);
+            element.setVersion(version);
         }
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceFieldMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceFieldMapping.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceFieldMapping.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceFieldMapping.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.debug.DebugBuilder;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
@@ -54,13 +56,15 @@ public class JdbcObjectReferenceFieldMap
     @Override
     public void appendWhereClause(final DatabaseConnector connector, final StringBuffer sql, final ObjectAdapter object) {
         final ObjectAdapter fieldValue = field.get(object);
-        appendWhereClause(connector, sql, fieldValue.getOid());
+        final RootOid oid = (RootOid) fieldValue.getOid();
+        appendWhereClause(connector, sql, oid);
     }
 
     @Override
     public void appendWhereObject(final DatabaseConnector connector, final ObjectAdapter objectAdapter) {
         final ObjectAdapter fieldValue = field.get(objectAdapter);
-        connector.addToQueryValues(primaryKeyAsObject(fieldValue.getOid()));
+        final RootOid oid = (RootOid) fieldValue.getOid();
+        connector.addToQueryValues(primaryKey(oid));
     }
 
     public JdbcObjectReferenceFieldMapping(final ObjectAssociation field) {

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceMapping.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceMapping.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcObjectReferenceMapping.java Sat Mar 24 14:01:35 2012
@@ -21,6 +21,7 @@ package org.apache.isis.runtimes.dflt.ob
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.sql.DatabaseConnector;
 import org.apache.isis.runtimes.dflt.objectstores.sql.IdMappingAbstract;
@@ -39,14 +40,15 @@ public class JdbcObjectReferenceMapping 
     }
 
     @Override
-    public void appendUpdateValues(final DatabaseConnector connector, final StringBuffer sql, final ObjectAdapter object) {
+    public void appendUpdateValues(final DatabaseConnector connector, final StringBuffer sql, final ObjectAdapter adapter) {
         sql.append(getColumn());
-        if (object == null) {
+        if (adapter == null) {
             sql.append("= NULL ");
         } else {
             sql.append("= ?");
             // sql.append(primaryKey(object.getOid()));
-            connector.addToQueryValues(primaryKeyAsObject(object.getOid()));
+            final RootOid oid = (RootOid) adapter.getOid();
+            connector.addToQueryValues(primaryKey(oid));
         }
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcPolymorphicObjectReferenceMapping.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcPolymorphicObjectReferenceMapping.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcPolymorphicObjectReferenceMapping.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-impl/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/jdbc/JdbcPolymorphicObjectReferenceMapping.java Sat Mar 24 14:01:35 2012
@@ -21,6 +21,7 @@ package org.apache.isis.runtimes.dflt.ob
 
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
 import org.apache.isis.core.metamodel.adapter.oid.Oid;
+import org.apache.isis.core.metamodel.adapter.oid.RootOid;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.sql.DatabaseConnector;
 import org.apache.isis.runtimes.dflt.objectstores.sql.IdMappingAbstract;
@@ -42,14 +43,15 @@ public class JdbcPolymorphicObjectRefere
     }
 
     @Override
-    public void appendUpdateValues(final DatabaseConnector connector, final StringBuffer sql, final ObjectAdapter object) {
+    public void appendUpdateValues(final DatabaseConnector connector, final StringBuffer sql, final ObjectAdapter adapter) {
         sql.append(getColumn());
-        if (object == null) {
+        if (adapter == null) {
             sql.append("= NULL ");
         } else {
             sql.append("= ?");
             // sql.append(primaryKey(object.getOid()));
-            connector.addToQueryValues(primaryKeyAsObject(object.getOid()));
+            final RootOid oid = (RootOid) adapter.getOid();
+            connector.addToQueryValues(primaryKey(oid));
         }
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/pom.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/pom.xml?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/pom.xml (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/pom.xml Sat Mar 24 14:01:35 2012
@@ -101,9 +101,16 @@
     <dependencies>
 
         <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>testsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
             <groupId>org.apache.isis.runtimes.dflt</groupId>
             <artifactId>runtime</artifactId>
         </dependency>
+        
         <!--  Required for TestProxy -->
 		<!-- Isis defaults -->
         <dependency>
@@ -116,6 +123,11 @@
             <type>test-jar</type>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt</groupId>
+            <artifactId>testsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
         <!-- TODO: remove this dependency -->
         <dependency>
         	<groupId>org.apache.isis.runtimes.dflt.bytecode</groupId>

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommonBase.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommonBase.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommonBase.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/common/SqlIntegrationTestCommonBase.java Sat Mar 24 14:01:35 2012
@@ -28,11 +28,22 @@ import junit.framework.TestCase;
 
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
+import org.jmock.auto.Mock;
+import org.junit.Rule;
 
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2;
+import org.apache.isis.core.testsupport.jmock.JUnitRuleMockery2.Mode;
 import org.apache.isis.runtimes.dflt.objectstores.sql.singleton.SqlIntegrationTestSingleton;
+import org.apache.isis.runtimes.embedded.EmbeddedContext;
 
 public abstract class SqlIntegrationTestCommonBase extends TestCase {
 
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
+    
+    @Mock
+    protected EmbeddedContext mockEmbeddedContext;
+
     protected SqlIntegrationTestSingleton getSingletonInstance() {
         return SqlIntegrationTestSingleton.getInstance();
     }
@@ -70,9 +81,9 @@ public abstract class SqlIntegrationTest
         if (getSingletonInstance().getState() == 0) {
             final Properties properties = getProperties();
             if (properties == null) {
-                getSingletonInstance().initNOF("src/test/config", getPropertiesFilename());
+                getSingletonInstance().initNOF(mockEmbeddedContext, "src/test/config", getPropertiesFilename());
             } else {
-                getSingletonInstance().initNOF(properties);
+                getSingletonInstance().initNOF(mockEmbeddedContext, properties);
             }
 
             final String sqlSetupString = getSqlSetupString();

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/singleton/SqlIntegrationTestSingleton.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/singleton/SqlIntegrationTestSingleton.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/singleton/SqlIntegrationTestSingleton.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/singleton/SqlIntegrationTestSingleton.java Sat Mar 24 14:01:35 2012
@@ -33,23 +33,31 @@ import java.sql.Statement;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.commons.config.IsisConfigurationDefault;
 import org.apache.isis.core.commons.exceptions.IsisException;
+import org.apache.isis.runtimes.dflt.objectstores.dflt.InMemoryPersistenceMechanismInstaller;
 import org.apache.isis.runtimes.dflt.objectstores.sql.Sql;
 import org.apache.isis.runtimes.dflt.objectstores.sql.SqlObjectStore;
+import org.apache.isis.runtimes.dflt.objectstores.sql.SqlPersistorInstaller;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.SqlDataClassFactory;
-import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.TestProxySystemIII;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.dataclasses.NumericTestClass;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.dataclasses.SimpleClass;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.dataclasses.SimpleClassTwo;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.dataclasses.SqlDataClass;
 import org.apache.isis.runtimes.dflt.objectstores.sql.testsystem.dataclasses.polymorphism.PolyTestClass;
+import org.apache.isis.runtimes.dflt.objectstores.xml.XmlPersistenceMechanismInstaller;
+import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.ObjectStorePersistenceMechanismInstallerAbstract;
+import org.apache.isis.runtimes.dflt.testsupport.TestSystem;
+import org.apache.isis.runtimes.embedded.EmbeddedContext;
+import org.apache.isis.runtimes.embedded.IsisMetaModel;
 
 /**
  * @author Kevin
  * 
  */
 public class SqlIntegrationTestSingleton {
+    
     static SqlIntegrationTestSingleton instance;
 
     public static SqlIntegrationTestSingleton getInstance() {
@@ -60,48 +68,72 @@ public class SqlIntegrationTestSingleton
     }
 
     private int state = 0;
-
     public int getState() {
         return state;
     }
-
     public void setState(final int state) {
         this.state = state;
     }
 
     private String persistorName;
+    
     private SqlDataClassFactory sqlDataClassFactory = null;
-    private TestProxySystemIII system = null;
+    private TestSystem system = null;
 
-    public void initNOF(final String propertiesDirectory, final String propertiesFileName) throws FileNotFoundException, IOException, SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
+    // JDBC
+    private Connection c = null;
+    private Statement s = null;
+    private SqlDataClass sqlDataClass;
+    private PolyTestClass polyTestClass;
+
+    public void initNOF(final EmbeddedContext embeddedContext, final String propertiesDirectory, final String propertiesFileName) throws FileNotFoundException, IOException, SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
 
         final Properties properties = new Properties();
         properties.load(new FileInputStream(propertiesDirectory + "/" + propertiesFileName));
-        this.initNOF(properties);
+        this.initNOF(embeddedContext, properties);
     }
 
-    public void initNOF(final Properties properties) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
+    public void initNOF(final EmbeddedContext embeddedContext, final Properties properties) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
         final IsisConfigurationDefault configuration = new IsisConfigurationDefault();
         configuration.add(properties);
         persistorName = configuration.getString("isis.persistor");
 
         sqlDataClassFactory = new SqlDataClassFactory();
         if (system != null) {
-            system.shutDown();
+            system.closeSession();
         }
-        system = new TestProxySystemIII();
-        system.setConfiguration(configuration);
-        system.init(sqlDataClassFactory);
+        
+        
+        final IsisMetaModel isisMetaModel = new IsisMetaModel(embeddedContext, sqlDataClassFactory);
+        isisMetaModel.setConfiguration(configuration);
+        system = new TestSystem(isisMetaModel);
+        
+        final ObjectStorePersistenceMechanismInstallerAbstract persistorInstaller = createPersistorInstaller(configuration);
+        system.openSession(null, persistorInstaller);
 
         resetPersistorState(configuration);
-
     }
 
-    // JDBC
-    private Connection c = null;
-    private Statement s = null;
-    private SqlDataClass sqlDataClass;
-    private PolyTestClass polyTestClass;
+
+    private static ObjectStorePersistenceMechanismInstallerAbstract createPersistorInstaller(final IsisConfiguration configuration) {
+        
+        final String jdbcDriver = configuration.getString(SqlObjectStore.BASE_NAME + ".jdbc.driver");
+        if (jdbcDriver != null) {
+            return new SqlPersistorInstaller();
+        } 
+        
+        final String persistor = configuration.getString("isis.persistor");
+        if (persistor.equals(InMemoryPersistenceMechanismInstaller.NAME)) {
+            return new InMemoryPersistenceMechanismInstaller();
+        }
+        if (persistor.equals(XmlPersistenceMechanismInstaller.NAME)) {
+            return new XmlPersistenceMechanismInstaller();
+        }
+        if (persistor.equals(SqlPersistorInstaller.NAME)) {
+            return new SqlPersistorInstaller();
+        }
+        return new InMemoryPersistenceMechanismInstaller();
+    }
 
     @SuppressWarnings("unchecked")
     private void resetPersistorState(final IsisConfigurationDefault IsisConfigurationDefault) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
@@ -187,14 +219,13 @@ public class SqlIntegrationTestSingleton
 
     public void shutDown() {
         if (system != null) {
-            system.shutDown();
+            system.closeSession();
         }
     }
 
     // {{ SqlDataClass support
     public static void setDataClass(final SqlDataClass person) {
         getInstance().setSqlDataClass(person);
-
     }
 
     public static SqlDataClass getDataClass() {
@@ -213,7 +244,6 @@ public class SqlIntegrationTestSingleton
     public SqlDataClass getSqlDataClass() {
         return sqlDataClass;
     }
-
     // }}
 
     // {{ PolyTestClass support

Copied: incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/Util.java (from r1304217, incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/TestProxySystemIII.java)
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/Util.java?p2=incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/Util.java&p1=incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/TestProxySystemIII.java&r1=1304217&r2=1304796&rev=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/TestProxySystemIII.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/sql/sql-tests-common/src/main/java/org/apache/isis/runtimes/dflt/objectstores/sql/testsystem/Util.java Sat Mar 24 14:01:35 2012
@@ -19,121 +19,14 @@
 
 package org.apache.isis.runtimes.dflt.objectstores.sql.testsystem;
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.jmock.lib.legacy.ClassImposteriser;
-
-import org.apache.isis.applib.AbstractFactoryAndRepository;
-import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.spec.SpecificationLoader;
-import org.apache.isis.core.metamodel.specloader.ObjectReflectorDefault;
-import org.apache.isis.core.runtime.authentication.AuthenticationManager;
-import org.apache.isis.core.runtime.authentication.standard.SimpleSession;
-import org.apache.isis.core.runtime.authorization.AuthorizationManager;
-import org.apache.isis.core.runtime.imageloader.TemplateImageLoader;
-import org.apache.isis.core.runtime.userprofile.UserProfileLoader;
-import org.apache.isis.progmodels.dflt.JavaReflectorInstaller;
+import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.runtimes.dflt.objectstores.dflt.InMemoryPersistenceMechanismInstaller;
 import org.apache.isis.runtimes.dflt.objectstores.sql.SqlObjectStore;
 import org.apache.isis.runtimes.dflt.objectstores.sql.SqlPersistorInstaller;
 import org.apache.isis.runtimes.dflt.objectstores.xml.XmlPersistenceMechanismInstaller;
 import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.ObjectStorePersistenceMechanismInstallerAbstract;
-import org.apache.isis.runtimes.dflt.runtime.persistence.internal.RuntimeContextFromSession;
-import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
-import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
-import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContextStatic;
-import org.apache.isis.runtimes.dflt.runtime.system.persistence.PersistenceSessionFactory;
-import org.apache.isis.runtimes.dflt.runtime.system.session.IsisSessionFactoryDefault;
-
-/*
- * TODO allow to be created with specific requirements for components being set up rather than using mocks.
- */
-public class TestProxySystemIII {
-
-    private IsisConfigurationDefault configuration;
-
-    public void setConfiguration(final IsisConfigurationDefault configuration) {
-        this.configuration = configuration;
-    }
-
-    public IsisConfigurationDefault getConfiguration() {
-        if (configuration == null) {
-            configuration = new IsisConfigurationDefault();
-        }
-        return configuration;
-    }
-
-    private List<Object> servicesList;
-    private final Mockery mockery = new JUnit4Mockery() {
-        {
-            setImposteriser(ClassImposteriser.INSTANCE);
-        }
-    };
-    private IsisSessionFactoryDefault sessionFactory = null;
-    private IsisContext context = null;
-    private ObjectStorePersistenceMechanismInstallerAbstract persistenceMechanismInstaller;
-
-    public void init(final AbstractFactoryAndRepository factory) {
-        servicesList = new ArrayList<Object>();
-        servicesList.add(factory);
-
-        final TemplateImageLoader mockTemplateImageLoader = mockery.mock(TemplateImageLoader.class);
-        final UserProfileLoader mockUserProfileLoader = mockery.mock(UserProfileLoader.class);
-        final AuthenticationManager mockAuthenticationManager = mockery.mock(AuthenticationManager.class);
-        final AuthorizationManager mockAuthorizationManager = mockery.mock(AuthorizationManager.class);
-
-        mockery.checking(new Expectations() {
-            {
-                ignoring(mockTemplateImageLoader);
-                ignoring(mockUserProfileLoader);
-                ignoring(mockAuthenticationManager);
-                ignoring(mockAuthorizationManager);
-            }
-        });
-
-        SpecificationLoader mockSpecificationLoader;
-        final JavaReflectorInstaller javaReflectorInstaller = new JavaReflectorInstaller();
-        javaReflectorInstaller.setConfiguration(configuration);
-        mockSpecificationLoader = javaReflectorInstaller.createReflector();
-
-        ((ObjectReflectorDefault) mockSpecificationLoader).setRuntimeContext(new RuntimeContextFromSession());
-
-        if (configuration.getString(SqlObjectStore.BASE_NAME + ".jdbc.driver") == null) {
-            if (configuration.getString("isis.persistor") == "in-memory") {
-                persistenceMechanismInstaller = new InMemoryPersistenceMechanismInstaller();
-            } else {
-                persistenceMechanismInstaller = new XmlPersistenceMechanismInstaller();
-            }
-        } else {
-            persistenceMechanismInstaller = new SqlPersistorInstaller();
-        }
-
-        persistenceMechanismInstaller.setConfiguration(configuration);
-        final PersistenceSessionFactory persistenceSessionFactory = persistenceMechanismInstaller.createPersistenceSessionFactory(DeploymentType.PROTOTYPE);
-
-        sessionFactory = new IsisSessionFactoryDefault(DeploymentType.EXPLORATION, configuration, mockTemplateImageLoader, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockUserProfileLoader, persistenceSessionFactory, servicesList);
-        context = IsisContextStatic.createRelaxedInstance(sessionFactory);
-        IsisContext.setConfiguration(sessionFactory.getConfiguration());
-        sessionFactory.init();
 
-        context.openSessionInstance(new SimpleSession("tester", new String[0], "001"));
-    }
+public class Util {
 
-    public void addToConfiguration(final String key, final String value) {
-        configuration.add(key, value);
-    }
 
-    public void shutDown() {
-        if (sessionFactory != null) {
-            sessionFactory.shutdown();
-        }
-        if (persistenceMechanismInstaller != null) {
-            persistenceMechanismInstaller.shutdown();
-        }
-        context.closeSessionInstance();
-    }
 }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/pom.xml
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/pom.xml?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/pom.xml (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/pom.xml Sat Mar 24 14:01:35 2012
@@ -85,6 +85,11 @@
 			<type>test-jar</type>
 			<scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.isis.core</groupId>
+            <artifactId>testsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
 
 		<dependency>
 			<groupId>org.apache.isis.runtimes.dflt</groupId>
@@ -96,6 +101,11 @@
 			<type>test-jar</type>
 			<scope>test</scope>
 		</dependency>
+        <dependency>
+            <groupId>org.apache.isis.runtimes.dflt</groupId>
+            <artifactId>testsupport</artifactId>
+            <scope>test</scope>
+        </dependency>
 	</dependencies>
 
 </project>

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlObjectStore.java Sat Mar 24 14:01:35 2012
@@ -33,6 +33,7 @@ import org.apache.isis.core.commons.xml.
 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.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
 import org.apache.isis.core.metamodel.facets.object.encodeable.EncodableFacet;
@@ -62,7 +63,7 @@ import org.apache.isis.runtimes.dflt.run
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommand;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.SaveObjectCommand;
-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.persistence.query.PersistenceQueryBuiltIn;
 import org.apache.isis.runtimes.dflt.runtime.system.context.IsisContext;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
@@ -170,13 +171,13 @@ public class XmlObjectStore implements O
                     initObjectSetupReference(object, data, field);
                 }
             }
-            object.setOptimisticLock(data.getVersion());
+            object.setVersion(data.getVersion());
             PersistorUtil.end(object);
         }
     }
 
     private void initObjectSetupReference(final ObjectAdapter object, final ObjectData data, final ObjectAssociation field) {
-        final SerialOid referenceOid = (SerialOid) data.get(field.getId());
+        final RootOidDefault referenceOid = (RootOidDefault) data.get(field.getId());
         LOG.debug("setting up field " + field + " with " + referenceOid);
         if (referenceOid == null) {
             return;
@@ -231,7 +232,7 @@ public class XmlObjectStore implements O
             final int size = refs == null ? 0 : refs.size();
             final ObjectAdapter[] elements = new ObjectAdapter[size];
             for (int j = 0; j < size; j++) {
-                final SerialOid elementOid = refs.elementAt(j);
+                final RootOidDefault elementOid = refs.elementAt(j);
                 ObjectAdapter adapter;
                 adapter = getAdapterManager().getAdapterFor(elementOid);
                 if (adapter == null) {
@@ -303,7 +304,7 @@ public class XmlObjectStore implements O
     @Override
     public ObjectAdapter getObject(final Oid oid, final ObjectSpecification hint) {
         LOG.debug("getObject " + oid);
-        final Data data = dataManager.loadData((SerialOid) oid);
+        final Data data = dataManager.loadData((RootOidDefault) oid);
         LOG.debug("  data read " + data);
 
         ObjectAdapter object;
@@ -326,7 +327,7 @@ public class XmlObjectStore implements O
 
     @Override
     public void resolveImmediately(final ObjectAdapter object) {
-        final ObjectData data = (ObjectData) dataManager.loadData((SerialOid) object.getOid());
+        final ObjectData data = (ObjectData) dataManager.loadData((RootOidDefault) object.getOid());
         Assert.assertNotNull("Not able to read in data during resolve", object, data);
         initObject(object, data);
     }
@@ -336,7 +337,7 @@ public class XmlObjectStore implements O
      * object should haves its internal collection populated by this method.
      */
     private ObjectAdapter recreateObject(final ObjectData data) {
-        final SerialOid oid = data.getOid();
+        final RootOidDefault oid = data.getOid();
         final ObjectSpecification spec = specFor(data);
         final ObjectAdapter object = getPersistenceSession().recreateAdapter(oid, spec);
         initObject(object, data);
@@ -370,7 +371,7 @@ public class XmlObjectStore implements O
             final ObjectData instanceData = data.element(i);
             LOG.debug("instance data " + instanceData);
 
-            final SerialOid oid = instanceData.getOid();
+            final RootOidDefault oid = instanceData.getOid();
 
             final ObjectSpecification spec = specFor(instanceData);
             final ObjectAdapter instance = getPersistenceSession().recreateAdapter(oid, spec);
@@ -396,13 +397,13 @@ public class XmlObjectStore implements O
     // /////////////////////////////////////////////////////////
 
     @Override
-    public Oid getOidForService(ObjectSpecification serviceSpecification, final String name) {
-        return serviceManager.getOidForService(name);
+    public RootOid getOidForService(ObjectSpecification serviceSpec) {
+        return serviceManager.getOidForService(serviceSpec.getObjectType());
     }
 
     @Override
-    public void registerService(final String name, final Oid oid) {
-        serviceManager.registerService(name, oid);
+    public void registerService(final RootOid rootOid) {
+        serviceManager.registerService(rootOid);
     }
 
     // /////////////////////////////////////////////////////////

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlPersistenceMechanismInstaller.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlPersistenceMechanismInstaller.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlPersistenceMechanismInstaller.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/XmlPersistenceMechanismInstaller.java Sat Mar 24 14:01:35 2012
@@ -19,16 +19,12 @@
 
 package org.apache.isis.runtimes.dflt.objectstores.xml;
 
-import org.apache.log4j.Logger;
-
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapterFactory;
-import org.apache.isis.runtimes.dflt.objectstores.xml.internal.adapter.XmlAdapterManager;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.clock.DefaultClock;
 import org.apache.isis.runtimes.dflt.runtime.installerregistry.installerapi.ObjectStorePersistenceMechanismInstallerAbstract;
-import org.apache.isis.runtimes.dflt.runtime.persistence.adaptermanager.AdapterManagerExtended;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.ObjectStore;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.timebased.TimeBasedOidGenerator;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidGeneratorSeededOnCurrentTime;
 import org.apache.isis.runtimes.dflt.runtime.system.DeploymentType;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.AdapterManager;
 import org.apache.isis.runtimes.dflt.runtime.system.persistence.OidGenerator;
@@ -36,12 +32,12 @@ import org.apache.isis.runtimes.dflt.run
 
 public class XmlPersistenceMechanismInstaller extends ObjectStorePersistenceMechanismInstallerAbstract {
 
-    @SuppressWarnings("unused")
-    private static final Logger LOG = Logger.getLogger(XmlPersistenceMechanismInstaller.class);
+    public static final String NAME = "xml";
+    
     private XmlObjectStore objectStore;
 
     public XmlPersistenceMechanismInstaller() {
-        super("xml");
+        super(NAME);
     }
 
     @Override
@@ -54,13 +50,8 @@ public class XmlPersistenceMechanismInst
     }
 
     @Override
-    protected AdapterManagerExtended createAdapterManager(final IsisConfiguration configuration) {
-        return new XmlAdapterManager();
-    }
-
-    @Override
     protected OidGenerator createOidGenerator(final IsisConfiguration configuration) {
-        return new TimeBasedOidGenerator();
+        return new RootOidGeneratorSeededOnCurrentTime();
     }
 
     @Override

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/AbstractXmlPersistenceCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/AbstractXmlPersistenceCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/AbstractXmlPersistenceCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/AbstractXmlPersistenceCommand.java Sat Mar 24 14:01:35 2012
@@ -31,7 +31,7 @@ import org.apache.isis.runtimes.dflt.obj
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.data.ObjectData;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandAbstract;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 
 abstract class AbstractXmlPersistenceCommand extends PersistenceCommandAbstract {
     private static final Logger LOG = Logger.getLogger(AbstractXmlPersistenceCommand.class);
@@ -53,7 +53,7 @@ abstract class AbstractXmlPersistenceCom
         }
 
         final ObjectSpecification adapterSpec = adapter.getSpecification();
-        final ObjectData data = new ObjectData(adapterSpec, (SerialOid) adapter.getOid(), (FileVersion) adapter.getVersion());
+        final ObjectData data = new ObjectData(adapterSpec, (RootOidDefault) adapter.getOid(), (FileVersion) adapter.getVersion());
 
         final List<ObjectAssociation> associations = adapterSpec.getAssociations();
         for (final ObjectAssociation association : associations) {

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlCreateObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlCreateObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlCreateObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlCreateObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -42,7 +42,7 @@ public final class XmlCreateObjectComman
             LOG.debug("  create object " + onObject());
         }
         final String user = getAuthenticationSession().getUserName();
-        onObject().setOptimisticLock(new FileVersion(user));
+        onObject().setVersion(new FileVersion(user));
         final ObjectData data = createObjectData(onObject(), true);
         getDataManager().insertObject(data);
     }

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlDestroyObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlDestroyObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlDestroyObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlDestroyObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.ad
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.data.DataManager;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.DestroyObjectCommand;
 import org.apache.isis.runtimes.dflt.runtime.persistence.objectstore.transaction.PersistenceCommandContext;
-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.transaction.ObjectPersistenceException;
 
 public final class XmlDestroyObjectCommand extends AbstractXmlPersistenceCommand implements DestroyObjectCommand {
@@ -40,9 +40,9 @@ public final class XmlDestroyObjectComma
         if (LOG.isDebugEnabled()) {
             LOG.debug("  destroy object " + onObject());
         }
-        final SerialOid oid = (SerialOid) onObject().getOid();
+        final RootOidDefault oid = (RootOidDefault) onObject().getOid();
         getDataManager().remove(oid);
-        onObject().setOptimisticLock(null);
+        onObject().setVersion(null);
     }
 
     @Override

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlUpdateObjectCommand.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlUpdateObjectCommand.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlUpdateObjectCommand.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/commands/XmlUpdateObjectCommand.java Sat Mar 24 14:01:35 2012
@@ -43,7 +43,7 @@ public final class XmlUpdateObjectComman
             LOG.debug("  save object " + onObject());
         }
         final String user = getAuthenticationSession().getUserName();
-        onObject().setOptimisticLock(new FileVersion(user));
+        onObject().setVersion(new FileVersion(user));
 
         final Data data = createObjectData(onObject(), true);
         getDataManager().save(data);

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/CollectionData.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/CollectionData.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/CollectionData.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/CollectionData.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.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 
 /**
  * A logical collection of elements of a specified type
@@ -29,16 +29,16 @@ import org.apache.isis.runtimes.dflt.run
 public class CollectionData extends Data {
     private final ReferenceVector elements;
 
-    public CollectionData(final ObjectSpecification noSpec, final SerialOid oid, final FileVersion version) {
+    public CollectionData(final ObjectSpecification noSpec, final RootOidDefault oid, final FileVersion version) {
         super(noSpec, oid, version);
         elements = new ReferenceVector();
     }
 
-    public void addElement(final SerialOid elementOid) {
+    public void addElement(final RootOidDefault elementOid) {
         elements.add(elementOid);
     }
 
-    public void removeElement(final SerialOid elementOid) {
+    public void removeElement(final RootOidDefault elementOid) {
         elements.remove(elementOid);
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/Data.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/Data.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/Data.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/Data.java Sat Mar 24 14:01:35 2012
@@ -21,20 +21,20 @@ package org.apache.isis.runtimes.dflt.ob
 
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 
 public abstract class Data {
     private final ObjectSpecification noSpec;
-    private final SerialOid oid;
+    private final RootOidDefault oid;
     private final FileVersion version;
 
-    Data(final ObjectSpecification noSpec, final SerialOid oid, final FileVersion version) {
+    Data(final ObjectSpecification noSpec, final RootOidDefault oid, final FileVersion version) {
         this.noSpec = noSpec;
         this.oid = oid;
         this.version = version;
     }
 
-    public SerialOid getOid() {
+    public RootOidDefault getOid() {
         return oid;
     }
 

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/DataManager.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/DataManager.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/DataManager.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/DataManager.java Sat Mar 24 14:01:35 2012
@@ -20,7 +20,7 @@
 package org.apache.isis.runtimes.dflt.objectstores.xml.internal.data;
 
 import org.apache.isis.runtimes.dflt.runtime.persistence.ObjectNotFoundException;
-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.transaction.ObjectPersistenceException;
 
 public interface DataManager {
@@ -37,14 +37,14 @@ public interface DataManager {
      */
     public int numberOfInstances(final ObjectData pattern);
 
-    public Data loadData(final SerialOid oid);
+    public Data loadData(final RootOidDefault oid);
 
     /**
      * Save the data for an object and adds the reference to a list of instances
      */
     void insertObject(ObjectData data);
 
-    void remove(SerialOid oid) throws ObjectNotFoundException, ObjectPersistenceException;
+    void remove(RootOidDefault oid) throws ObjectNotFoundException, ObjectPersistenceException;
 
     /**
      * Save the data for latter retrieval.

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ObjectData.java Sat Mar 24 14:01:35 2012
@@ -28,7 +28,7 @@ import org.apache.isis.core.metamodel.fa
 import org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacetUtils;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.runtimes.dflt.objectstores.xml.internal.version.FileVersion;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 
 /**
  * A logical collection of elements of a specified type
@@ -36,7 +36,7 @@ import org.apache.isis.runtimes.dflt.run
 public class ObjectData extends Data {
     private final Map<String, Object> fieldById;
 
-    public ObjectData(final ObjectSpecification noSpec, final SerialOid oid, final FileVersion version) {
+    public ObjectData(final ObjectSpecification noSpec, final RootOidDefault oid, final FileVersion version) {
         super(noSpec, oid, version);
         fieldById = new HashMap<String, Object>();
     }
@@ -51,7 +51,7 @@ public class ObjectData extends Data {
 
     public String id(final String fieldId) {
         final Object field = get(fieldId);
-        return field == null ? null : "" + ((SerialOid) field).getSerialNo();
+        return field == null ? null : "" + ((RootOidDefault) field).getIdentifier();
     }
 
     // ////////////////////////////////////////////////////////
@@ -98,7 +98,7 @@ public class ObjectData extends Data {
         fieldById.put(fieldId, new ReferenceVector());
     }
 
-    public void addElement(final String fieldId, final SerialOid elementOid) {
+    public void addElement(final String fieldId, final RootOidDefault elementOid) {
         if (!fieldById.containsKey(fieldId)) {
             throw new IsisException("Field " + fieldId + " not found  in hashtable");
         }
@@ -141,19 +141,9 @@ public class ObjectData extends Data {
                 throw new IllegalStateException("Element is not persistent " + element);
             }
 
-            addElement(fieldId, (SerialOid) elementOid);
+            addElement(fieldId, (RootOidDefault) elementOid);
         }
-
-        /*
-         * while (e.hasMoreElements()) { ObjectAdapter element = (ObjectAdapter)
-         * e.nextElement(); //
-         * LOG.debug("adding element to internal collection field " + fieldId
-         * +" " + element); Object elementOid = element.getOid(); if (elementOid
-         * == null) { throw new IllegalStateException("Element is not persistent
-         * "+element); }
-         * 
-         * addElement(fieldId, (SimpleOid) elementOid); }
-         */}
+    }
 
     // ////////////////////////////////////////////////////////
     // toString

Modified: incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ReferenceVector.java
URL: http://svn.apache.org/viewvc/incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ReferenceVector.java?rev=1304796&r1=1304795&r2=1304796&view=diff
==============================================================================
--- incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ReferenceVector.java (original)
+++ incubator/isis/trunk/framework/runtimes/dflt/objectstores/xml/src/main/java/org/apache/isis/runtimes/dflt/objectstores/xml/internal/data/ReferenceVector.java Sat Mar 24 14:01:35 2012
@@ -22,16 +22,16 @@ package org.apache.isis.runtimes.dflt.ob
 import java.util.Vector;
 
 import org.apache.isis.core.commons.lang.ToString;
-import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.simple.SerialOid;
+import org.apache.isis.runtimes.dflt.runtime.persistence.oidgenerator.serial.RootOidDefault;
 
 public class ReferenceVector {
     private final Vector elements = new Vector();
 
-    public void add(final SerialOid oid) {
+    public void add(final RootOidDefault oid) {
         elements.addElement(oid);
     }
 
-    public void remove(final SerialOid oid) {
+    public void remove(final RootOidDefault oid) {
         elements.removeElement(oid);
     }
 
@@ -39,8 +39,8 @@ public class ReferenceVector {
         return elements.size();
     }
 
-    public SerialOid elementAt(final int index) {
-        return (SerialOid) elements.elementAt(index);
+    public RootOidDefault elementAt(final int index) {
+        return (RootOidDefault) elements.elementAt(index);
     }
 
     @Override