You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by pa...@apache.org on 2015/04/21 13:50:26 UTC

[14/18] zest-sandbox git commit: Move Qi4j related projects in a `qi4j/` subfolder

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/HeapDump.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/HeapDump.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/HeapDump.java
deleted file mode 100644
index e9fb3f2..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/HeapDump.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import org.qi4j.api.entity.EntityReference;
-
-public class HeapDump
-{
-    static final long DATA_AREA_OFFSET = 256;
-    private static final String HEAP_DATA_FILENAME = "heap.data";
-
-    private static RandomAccessFile dataFile;
-
-    public static void main( String[] args )
-        throws Exception
-    {
-        File dataDirectory = new File( args[ 0 ] ).getAbsoluteFile();
-        File dataDir = dataDirectory.getAbsoluteFile();
-        File file = new File( dataDir, HEAP_DATA_FILENAME );
-        dataFile = new RandomAccessFile( file, "rw" );
-
-        long position = 256;
-        dataFile.seek( position );  // skip maintenance block.
-        while( dataFile.getFilePointer() < dataFile.length() )
-        {
-            int blockSize = dataFile.readInt();
-            if( blockSize == -1 )
-            {
-                break;
-            }
-            int usage = dataFile.readByte();
-            if( usage != 0 )
-            {
-                long instanceVersion = dataFile.readLong();
-                int schemaVersion = dataFile.readInt();
-                long refPos = dataFile.getFilePointer();
-                String ref = readReference().identity();
-                System.out.print( ref );
-                dataFile.seek( refPos + 129 );
-                long mirror = dataFile.readLong();
-                if( usage == 2 )
-                    dataFile.seek( mirror );
-                if( usage == 3 || usage == 4 )
-                {
-                    System.err.println( "Inconsistent Heap: " + usage + ", pos: " + position  );
-                    System.err.flush();
-                }
-                int dataSize = dataFile.readInt();
-                byte[] data = new byte[ dataSize ];
-                dataFile.read( data, 0, dataSize );
-                System.out.println( new String( data, "UTF-8" ) );
-                System.out.flush();
-            }
-            position = position + blockSize;
-            dataFile.seek( position );
-        }
-    }
-
-    private static EntityReference readReference()
-        throws IOException
-    {
-        int idSize = dataFile.readByte();
-        if( idSize < 0 )
-        {
-            idSize = idSize + 256;  // Fix 2's-complement negative values of bytes into unsigned 8 bit.
-        }
-        byte[] idData = new byte[idSize];
-        dataFile.read( idData );
-        dataFile.skipBytes( 128 - idSize );
-        return new EntityReference( new String( idData ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFile.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFile.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFile.java
deleted file mode 100644
index 69af039..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFile.java
+++ /dev/null
@@ -1,302 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import org.qi4j.api.entity.EntityReference;
-
-/**
- * For Slot 0
- * [version]     -  4 bytes
- * [noOfEntries] -  4 bytes
- * [slotSize]    -  4 bytes
- *
- * For Slot 1..n
- * [isExtended]  -  1 byte
- * [position]    -  8 bytes
- * [identity]    -  [slotSize-16] bytes
- */
-public class IdentityFile
-{
-    private static final int CURRENT_VERSION = 1;
-
-    private RandomAccessFile identityStore;
-    private int entries;
-    private int slotSize;
-    private boolean closed;
-    private BucketManager bucketManager;
-
-    private IdentityFile( RandomAccessFile store, File bucketDir, int slotSize, int entries )
-        throws IOException
-    {
-        this.closed = false;
-        identityStore = store;
-        bucketManager = new BucketManager( bucketDir );
-        this.slotSize = slotSize;
-        this.entries = entries;
-    }
-
-    int entries()
-    {
-        return entries;
-    }
-
-    long find( EntityReference reference )
-        throws IOException
-    {
-        if( closed )
-        {
-            throw new IdentityFileClosedException();
-        }
-        if( reference.identity().length() > slotSize - 16 )
-        {
-            throw new IdentityTooLongException( reference );
-        }
-        final int slot = getSlot( reference );
-        identityStore.seek( slot * slotSize );
-        boolean isExtended = identityStore.readBoolean();
-        if( !isExtended )
-        {
-            long pos = identityStore.readLong();
-            String idString = identityStore.readUTF();
-            if( idString.length() == 0 )
-            {
-                return -1;
-            }
-            EntityReference foundReference = new EntityReference( idString );
-            if( foundReference.equals( reference ) )
-            {
-                return pos;
-            }
-            return -1;
-        }
-        RandomAccessFile buckets = bucketManager.get( slot );
-        int next = 0;
-        while( next * slotSize < buckets.length() )
-        {
-            buckets.seek( next * slotSize );
-            boolean isUsed = buckets.readBoolean();
-            long pos = buckets.readLong();
-            EntityReference foundReference = new EntityReference( buckets.readUTF() );
-            if( isUsed && foundReference.equals( reference ) )
-            {
-                return pos;
-            }
-            next++;
-        }
-        return -1;
-    }
-
-    void remember( EntityReference reference, long pos )
-        throws IOException
-    {
-        if( closed )
-        {
-            throw new IdentityFileClosedException();
-        }
-        if( reference.identity().length() > slotSize - 16 )
-        {
-            throw new IdentityTooLongException( reference );
-        }
-        final int slot = getSlot( reference );
-        identityStore.seek( slot * slotSize );
-        boolean isExtended = identityStore.readBoolean();
-        if( isExtended )
-        {
-            RandomAccessFile bucket = bucketManager.get( slot );
-            bucket.seek( 0 );
-            int next = 0;
-            while( next * slotSize < bucket.length() )
-            {
-                bucket.seek( next * slotSize );
-                boolean isUsed = bucket.readBoolean();
-                if( !isUsed )
-                {
-                    break;
-                }
-                next++;
-            }
-            bucket.seek( next * slotSize );
-            bucket.writeBoolean( true );
-            bucket.writeLong( pos );
-            bucket.writeUTF( reference.identity() );
-            fillExtras( bucket, next, slotSize );
-        }
-        else
-        {
-            long existingPos = identityStore.readLong();
-            if( existingPos == -1 )
-            {
-                // Not used yet.
-                identityStore.seek( slot * slotSize );
-                identityStore.writeBoolean( false );
-                identityStore.writeLong( pos );
-                identityStore.writeUTF( reference.identity() );
-            }
-            else
-            {
-                // Move existing record over to a new bucket.
-                RandomAccessFile bucket = bucketManager.get( slot );
-                bucket.seek( 0 );
-                bucket.writeBoolean( true );
-                bucket.writeLong( existingPos );
-                bucket.writeUTF( identityStore.readUTF() );
-                fillExtras( bucket, 0, slotSize );
-                bucket.seek( slotSize );
-                bucket.writeBoolean( true );
-                bucket.writeLong( pos );
-                bucket.writeUTF( reference.identity() );
-                fillExtras( bucket, 1, slotSize );
-                identityStore.seek( slot * slotSize );
-                identityStore.writeBoolean( true );
-                identityStore.writeLong( -1 );
-                identityStore.writeUTF( "" );
-                fillExtras( identityStore, slot, slotSize );
-            }
-        }
-    }
-
-    void drop( EntityReference reference )
-        throws IOException
-    {
-        if( closed )
-        {
-            throw new IdentityFileClosedException();
-        }
-        if( reference.identity().length() > slotSize - 16 )
-        {
-            throw new IdentityTooLongException( reference );
-        }
-        final int slot = getSlot( reference );
-        identityStore.seek( slot * slotSize );
-        boolean isExtended = identityStore.readBoolean();
-        if( isExtended )
-        {
-            RandomAccessFile buckets = bucketManager.get( slot );
-            int next = 0;
-            while( next * slotSize < buckets.length() )
-            {
-                buckets.seek( next * slotSize );
-                boolean isUsed = buckets.readBoolean();
-                buckets.readLong();  //ignore, should probably be changed to skip(8);
-                EntityReference foundReference = new EntityReference( buckets.readUTF() );
-                if( isUsed && foundReference.equals( reference ) )
-                {
-                    buckets.seek( next * slotSize );
-                    buckets.writeBoolean( false );
-                    return;
-                }
-                next++;
-            }
-        }
-        else
-        {
-            identityStore.readLong(); // ignore the pos
-            EntityReference foundReference = new EntityReference( identityStore.readUTF() );
-            if( reference.equals( foundReference ) )
-            {
-                // found, no erase.
-                identityStore.seek( slot * slotSize );
-                identityStore.writeBoolean( false );
-                identityStore.writeLong( -1 );
-                identityStore.writeUTF( "" );
-                fillExtras( identityStore, slot, slotSize );
-            }
-        }
-    }
-
-    private int getSlot( EntityReference identity )
-    {
-        int hashCode = identity.hashCode();
-        hashCode = hashCode < 0 ? -hashCode : hashCode;
-        return 1 + hashCode % entries;
-    }
-
-    public void close()
-        throws IOException
-    {
-        bucketManager.close();
-        identityStore.close();
-        closed = true;
-    }
-
-    private static void initialize( RandomAccessFile newFile, int entries, int slotSize )
-        throws IOException
-    {
-        for( int i = 1; i <= entries + 1; i++ )
-        {
-            newFile.seek( i * slotSize );
-            newFile.writeBoolean( false );  // Extended
-            newFile.writeLong( -1 );        // Position
-            newFile.writeUTF( "" );         // Identity
-            fillExtras( newFile, i, slotSize );
-        }
-        newFile.seek( 0 );
-        newFile.writeInt( CURRENT_VERSION );
-        newFile.writeInt( entries );
-        newFile.writeInt( slotSize );
-    }
-
-    private static void fillExtras( RandomAccessFile accessFile, int slot, int slotSize )
-        throws IOException
-    {
-        long pointer = accessFile.getFilePointer();
-        long fillTo = ( slot + 1 ) * slotSize - 1;
-        long arraysize = fillTo - pointer;
-        if( arraysize < 0 )
-        {
-            System.err.println( "Negative Array Size detected:" + arraysize );
-        }
-        byte[] extras = new byte[(int) arraysize];
-        accessFile.write( extras );
-    }
-
-    public static IdentityFile use( File identityDir )
-        throws MalformedIdentityDirectoryException, IOException
-    {
-        File idFile = new File( identityDir, "id-hash.data" );
-        if( !idFile.exists() )
-        {
-            throw new MalformedIdentityDirectoryException( identityDir );
-        }
-        File bucketDir = new File( identityDir, "buckets" );
-        if( !bucketDir.exists() )
-        {
-            throw new MalformedIdentityDirectoryException( identityDir );
-        }
-        RandomAccessFile store = new RandomAccessFile( idFile, "rw" );
-        int version = store.readInt(); // Read Version
-        int entries = store.readInt(); // Read entries
-        int slotSize = store.readInt(); // Read slotSize
-        return new IdentityFile( store, bucketDir, slotSize, entries );
-    }
-
-    public static IdentityFile create( File identityDir, int slotSize, int idEntries )
-        throws IOException
-    {
-        FileUtils.delete( identityDir );
-        identityDir.mkdirs();
-        File idFile = new File( identityDir, "id-hash.data" );
-        RandomAccessFile store = new RandomAccessFile( idFile, "rw" );
-        initialize( store, idEntries, slotSize );
-        File bucketDir = new File( identityDir, "buckets" );
-        return new IdentityFile( store, bucketDir, slotSize, idEntries );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFileClosedException.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFileClosedException.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFileClosedException.java
deleted file mode 100644
index 4b663b6..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityFileClosedException.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.spi.entitystore.EntityStoreException;
-
-public class IdentityFileClosedException extends EntityStoreException
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityTooLongException.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityTooLongException.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityTooLongException.java
deleted file mode 100644
index bb5c4a0..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/IdentityTooLongException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.spi.entitystore.EntityStoreException;
-
-public class IdentityTooLongException extends EntityStoreException
-{
-    public IdentityTooLongException( EntityReference identity )
-    {
-        super( "The identity is too long for the configured store: " + identity.toString().length() + ", " + identity );
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/MalformedIdentityDirectoryException.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/MalformedIdentityDirectoryException.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/MalformedIdentityDirectoryException.java
deleted file mode 100644
index 613e35d..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/MalformedIdentityDirectoryException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.File;
-
-public class MalformedIdentityDirectoryException extends Exception
-{
-    private File idDir;
-
-    public MalformedIdentityDirectoryException( File idDir )
-    {
-        this.idDir = idDir;
-    }
-
-    public File getDirectory()
-    {
-        return idDir;
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/RecordManager.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/RecordManager.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/RecordManager.java
deleted file mode 100644
index 9bd7efa..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/RecordManager.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.io.Input;
-import org.qi4j.spi.entitystore.EntityStoreException;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.io.Reader;
-import java.util.ArrayList;
-
-public class RecordManager
-    implements UndoManager
-{
-    private static final byte UNDO_DELETE = 2;
-    private static final byte UNDO_MODIFY = 3;
-    private static final byte UNDO_NEW_IDENTITY = 4;
-    private static final byte UNDO_DROP_IDENTITY = 5;
-    private static final byte UNDO_EXTEND = 6;
-
-    private DataStore dataStore;
-    private RandomAccessFile undoJournal;
-    private ArrayList<UndoCommand> commands;
-
-    public RecordManager( File dataDir, boolean recover )
-        throws IOException
-    {
-        File undoFile = new File( dataDir, "undo.data" );
-        dataStore = new DataStore( dataDir, this );
-        commands = new ArrayList<UndoCommand>();
-        if( undoFile.exists() )
-        {
-            undoJournal = new RandomAccessFile( undoFile, "rw" );
-            if( recover && undoJournal.length() > 0 )
-            {
-                recover();
-            }
-        }
-        else
-        {
-            undoFile.createNewFile();
-            undoJournal = new RandomAccessFile( undoFile, "rw" );
-        }
-
-    }
-
-    public void putData( DataBlock data )
-        throws IOException
-    {
-        dataStore.putData( data );
-    }
-
-    public void deleteData( EntityReference reference )
-        throws IOException
-    {
-        dataStore.delete( reference );
-    }
-
-    public DataBlock readData( EntityReference reference )
-        throws IOException
-    {
-        return dataStore.readData( reference );
-    }
-
-    
-    public void commit()
-        throws IOException
-    {
-        dataStore.flush();
-        commands.clear();
-        undoJournal.setLength( 0 );
-    }
-
-    public void discard()
-        throws IOException
-    {
-        for( UndoCommand command : commands )
-        {
-            command.undo( dataStore.dataFile(), dataStore.identityFile() );
-        }
-        commands.clear();
-        undoJournal.setLength( 0 );
-    }
-
-    public void close()
-        throws IOException
-    {
-        dataStore.close();
-    }
-
-    public void saveUndoCommand( UndoCommand command )
-    {
-        commands.add( command );
-        try
-        {
-            if( command instanceof UndoDeleteCommand )
-            {
-                undoJournal.write( UNDO_DELETE );
-                command.save( undoJournal );
-            }
-            else if( command instanceof UndoModifyCommand )
-            {
-                undoJournal.write( UNDO_MODIFY );
-                command.save( undoJournal );
-            }
-            else if( command instanceof UndoDropIdentityCommand )
-            {
-                undoJournal.write( UNDO_DROP_IDENTITY );
-                command.save( undoJournal );
-            }
-            else if( command instanceof UndoNewIdentityCommand )
-            {
-                undoJournal.write( UNDO_NEW_IDENTITY );
-                command.save( undoJournal );
-            }
-            else if( command instanceof UndoExtendCommand )
-            {
-                undoJournal.write( UNDO_EXTEND );
-                command.save( undoJournal );
-            }
-            else
-            {
-                throw new InternalError();
-            }
-        }
-        catch( IOException e )
-        {
-            throw new EntityStoreException( "Undo storage medium is malfunctioning." );
-        }
-    }
-
-    private void recover()
-    {
-        try
-        {
-            undoJournal.seek( 0 );
-            while( undoJournal.getFilePointer() < undoJournal.length() )
-            {
-                byte type = undoJournal.readByte();
-                UndoCommand command;
-                if( type == UNDO_MODIFY )
-                {
-                    command = UndoModifyCommand.load( undoJournal );
-                }
-                else if( type == UNDO_DELETE )
-                {
-                    command = UndoDeleteCommand.load( undoJournal );
-                }
-                else if( type == UNDO_DROP_IDENTITY )
-                {
-                    command = UndoDropIdentityCommand.load( undoJournal );
-                }
-                else if( type == UNDO_EXTEND )
-                {
-                    command = UndoExtendCommand.load( undoJournal );
-                }
-                else if( type == UNDO_NEW_IDENTITY )
-                {
-                    command = UndoNewIdentityCommand.load( undoJournal );
-                }
-                else
-                {
-                    throw new InternalError();
-                }
-                commands.add( command );
-            }
-            discard();
-        }
-        catch( IOException e )
-        {
-            throw new EntityStoreException( "Unable to recover from previous crash." );
-        }
-    }
-
-    public Input<Reader, IOException> data()
-    {
-        return dataStore.data();
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/StoreIterator.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/StoreIterator.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/StoreIterator.java
deleted file mode 100644
index 69d1fd6..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/StoreIterator.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.entity.EntityReference;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import java.util.Iterator;
-
-class StoreIterator
-    implements Iterator<EntityReference>
-{
-    private boolean isAvailable;
-    private RandomAccessFile store;
-    private EntityReference identity;
-    private long position;
-    private int identityMaxLength;
-
-    StoreIterator( RandomAccessFile store, int identityMaxLength )
-    {
-        this.store = store;
-        this.position = DataStore.DATA_AREA_OFFSET;
-        this.identityMaxLength = identityMaxLength;
-        getNext();
-    }
-
-    public boolean hasNext()
-    {
-        return isAvailable;
-    }
-
-    public EntityReference next()
-    {
-        EntityReference result = identity;
-        getNext();
-        return result;
-    }
-
-    private void getNext()
-    {
-        try
-        {
-            while( store.getFilePointer() < store.length() )
-            {
-                store.seek( position );
-                int blockSize = store.readInt();
-                if( blockSize == 0 )
-                {
-                    // TODO This is a bug. Why does it occur??
-                    isAvailable = false;
-                    return;
-                }
-                position = position + blockSize;  // position for next round...
-                byte usage = store.readByte();
-                if( usage == 1 || usage == 2 )
-                {
-                    store.skipBytes( 12 );
-                    identity = readIdentity();
-                    isAvailable = true;
-                    return;
-                }
-            }
-            isAvailable = false;
-        }
-        catch( IOException e )
-        {
-            identity = null;
-            isAvailable = false;
-        }
-    }
-
-    public void remove()
-    {
-        throw new UnsupportedOperationException();
-    }
-
-    private EntityReference readIdentity()
-        throws IOException
-    {
-        int idSize = store.readByte();
-        if( idSize < 0 )
-        {
-            idSize = idSize + 256;  // Fix 2's-complement negative values of bytes into unsigned 8 bit.
-        }
-        byte[] idData = new byte[idSize];
-        store.read( idData );
-        store.skipBytes( identityMaxLength - idSize );
-        return new EntityReference( new String( idData ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftConfiguration.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftConfiguration.java
deleted file mode 100644
index b36db15..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftConfiguration.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-public interface SwiftConfiguration extends ConfigurationComposite
-{
-    Property<String> storageDirectory();
-
-    @Optional @UseDefaults Property<Boolean> turboMode();
-
-    @Optional @UseDefaults Property<Boolean> recover();
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreAssembler.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreAssembler.java
deleted file mode 100644
index 55c217b..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreAssembler.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.bootstrap.Assembler;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-
-public class SwiftEntityStoreAssembler
-    implements Assembler
-{
-    private String configurationModuleName;
-
-    public SwiftEntityStoreAssembler( String configurationModule )
-    {
-        this.configurationModuleName = configurationModule;
-    }
-
-    public void assemble( ModuleAssembly module ) throws AssemblyException
-    {
-        module.services( SwiftEntityStoreService.class, UuidIdentityGeneratorService.class );
-        ModuleAssembly config = module.layer().module( configurationModuleName );
-        config.entities( SwiftConfiguration.class ).visibleIn( Visibility.layer );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreMixin.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreMixin.java
deleted file mode 100644
index 89cf3e5..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreMixin.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.configuration.Configuration;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.injection.scope.Uses;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.api.service.ServiceDescriptor;
-import org.qi4j.io.Input;
-import org.qi4j.spi.entitystore.EntityNotFoundException;
-import org.qi4j.spi.entitystore.EntityStoreException;
-import org.qi4j.spi.entitystore.helpers.MapEntityStore;
-
-import java.io.*;
-import java.util.concurrent.locks.ReadWriteLock;
-import org.qi4j.api.entity.EntityDescriptor;
-
-public class SwiftEntityStoreMixin
-    implements ServiceActivation, MapEntityStore
-{
-    private @This ReadWriteLock lock;
-    @Uses private ServiceDescriptor descriptor;
-    @This private Configuration<SwiftConfiguration> configuration;
-    private RecordManager recordManager;
-
-    public void activateService()
-        throws Exception
-    {
-        SwiftConfiguration conf = configuration.get();
-        String storage = conf.storageDirectory().get();
-        File storageDir;
-        storageDir = new File( storage );
-        Boolean recover = conf.recover().get();
-        if( recover == null )
-        {
-            recover = Boolean.TRUE;
-        }
-        recordManager = new RecordManager( storageDir, recover );
-    }
-
-    public void passivateService()
-        throws Exception
-    {
-        recordManager.close();
-    }
-
-    public Reader get( EntityReference entityReference )
-        throws EntityStoreException
-    {
-        try
-        {
-            DataBlock dataBlock = recordManager.readData( entityReference );
-            if( dataBlock == null )
-            {
-                throw new EntityNotFoundException( entityReference );
-            }
-            StringReader reader = new StringReader( new String( dataBlock.data, "UTF-8" ) );
-            return reader;
-        }
-        catch( UnsupportedEncodingException e )
-        {
-            // Can not happen.
-            throw new InternalError();
-        }
-        catch( IOException e )
-        {
-            throw new EntityStoreException( "Unable to read '" + entityReference + "' from the store.", e );
-        }
-    }
-
-    public Input<Reader, IOException> entityStates()
-    {
-        return recordManager.data();
-    }
-
-    public void applyChanges( MapChanges changes )
-        throws IOException
-    {
-        try
-        {
-            changes.visitMap( new MapChanger()
-            {
-                public Writer newEntity( final EntityReference ref, EntityDescriptor entityType ) throws IOException
-                {
-                    return new StringWriter( 1000 )
-                    {
-                        @Override public void close() throws IOException
-                        {
-                            super.close();
-
-                            byte[] stateArray = toString().getBytes( "UTF-8" );
-                            DataBlock block = new DataBlock( ref, stateArray, 0, 0 );
-                            recordManager.putData( block );
-                        }
-                    };
-                }
-
-                public Writer updateEntity( final EntityReference ref, EntityDescriptor entityType ) throws IOException
-                {
-                    return new StringWriter( 1000 )
-                    {
-                        @Override public void close() throws IOException
-                        {
-                            super.close();
-                            byte[] stateArray = toString().getBytes( "UTF-8" );
-                            DataBlock block = new DataBlock( ref, stateArray, 0, 0 );
-                            recordManager.putData( block );
-                        }
-                    };
-                }
-
-                public void removeEntity( EntityReference ref, EntityDescriptor entityType ) throws EntityNotFoundException
-                {
-                    try
-                    {
-                        recordManager.deleteData( ref );
-                    }
-                    catch( IOException e )
-                    {
-                        throw new EntityStoreException( e );
-                    }
-                }
-            } );
-            recordManager.commit();
-        }
-        catch( Exception e )
-        {
-            recordManager.discard();
-            if( e instanceof IOException )
-            {
-                throw (IOException) e;
-            }
-            else if( e instanceof EntityStoreException )
-            {
-                throw (EntityStoreException) e;
-            }
-            else
-            {
-                IOException exception = new IOException();
-                exception.initCause( e );
-                throw exception;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreService.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreService.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreService.java
deleted file mode 100644
index 3386862..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/SwiftEntityStoreService.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.concern.Concerns;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.library.locking.LockingAbstractComposite;
-import org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern;
-import org.qi4j.spi.entitystore.EntityStateVersions;
-import org.qi4j.spi.entitystore.EntityStore;
-import org.qi4j.spi.entitystore.StateChangeNotificationConcern;
-import org.qi4j.spi.entitystore.helpers.MapEntityStoreMixin;
-
-@Concerns( { StateChangeNotificationConcern.class, ConcurrentModificationCheckConcern.class } )
-@Mixins( { MapEntityStoreMixin.class, SwiftEntityStoreMixin.class } )
-public interface SwiftEntityStoreService
-    extends ServiceActivation, EntityStore, EntityStateVersions, LockingAbstractComposite
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoCommand.java
deleted file mode 100644
index 8570716..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoCommand.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-public interface UndoCommand
-{
-    void undo( RandomAccessFile dataFile, IdentityFile idFile ) throws IOException;
-
-    void save( RandomAccessFile undoJournal ) throws IOException;
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDeleteCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDeleteCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDeleteCommand.java
deleted file mode 100644
index 32eff50..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDeleteCommand.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-/**
- * Record has been deleted and we want to restore it.
- *
- * Block Structure
- * [blockSize]     4 bytes
- * [usage]         1 byte    (0=Unused, 1=prime, 2=mirror, 3=primeChanged, 4=mirrorChanged)
- * [instanceVersion] 8 bytes
- * [schemaVersion] 4 bytes
- * [identitySize]  1 byte
- * [identity]      IDENTITY_MAX_LENGTH bytes
- * [mirrorPointer] 8 bytes
- * [primeDataLength] 4 bytes
- * [primeData]     n bytes
- * [mirrorDataLength] 4 bytes
- * [mirrorData]    n bytes
- */
-public class UndoDeleteCommand
-    implements UndoCommand
-{
-    private long position;
-    private byte usage;
-
-    public UndoDeleteCommand( long position, byte usage )
-    {
-        this.position = position;
-        this.usage = usage;
-    }
-
-    public void undo( RandomAccessFile dataFile, IdentityFile idFile )
-        throws IOException
-    {
-        dataFile.seek( position );
-        dataFile.skipBytes( 4 );
-        dataFile.writeByte( usage );
-    }
-
-    public void save( RandomAccessFile undoJournal ) throws IOException
-    {
-        undoJournal.writeLong( position );
-        undoJournal.writeByte( usage );
-    }
-
-    static UndoDeleteCommand load( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        long position = undoJournal.readLong();
-        byte usage = undoJournal.readByte();
-        return new UndoDeleteCommand( position, usage );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDropIdentityCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDropIdentityCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDropIdentityCommand.java
deleted file mode 100644
index f0b6f43..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoDropIdentityCommand.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-import org.qi4j.api.entity.EntityReference;
-
-public class UndoDropIdentityCommand
-    implements UndoCommand
-{
-    private EntityReference reference;
-    private long position;
-
-    public UndoDropIdentityCommand( EntityReference reference, long position )
-    {
-        this.reference = reference;
-        this.position = position;
-    }
-
-    public void undo( RandomAccessFile dataFile, IdentityFile idFile ) throws IOException
-    {
-        idFile.remember( reference, position );
-    }
-
-    public void save( RandomAccessFile undoJournal ) throws IOException
-    {
-        undoJournal.writeUTF( reference.identity() );
-        undoJournal.writeLong( position );
-    }
-
-    static UndoDropIdentityCommand load( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        String idString = undoJournal.readUTF();
-        EntityReference ref = new EntityReference( idString );
-        long pos = undoJournal.readLong();
-        return new UndoDropIdentityCommand( ref, pos );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoExtendCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoExtendCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoExtendCommand.java
deleted file mode 100644
index f4145f7..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoExtendCommand.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-/**
- * The DataFile has been extended at the end.
- *
- * To undo this we simply set the Length of the file to the previously known length.
- * Block Structure
- * [blockSize]     4 bytes
- * [usage]         1 byte    (0=Unused, 1=prime, 2=mirror, 3=primeChanged, 4=mirrorChanged)
- * [instanceVersion] 8 bytes
- * [schemaVersion] 4 bytes
- * [identitySize]  1 byte
- * [identity]      IDENTITY_MAX_LENGTH bytes
- * [mirrorPointer] 8 bytes
- * [primeDataLength] 4 bytes
- * [primeData]     n bytes
- * [mirrorDataLength] 4 bytes
- * [mirrorData]    n bytes
- */
-public class UndoExtendCommand
-    implements UndoCommand
-{
-    private long previousLength;
-
-    public UndoExtendCommand( long previousLength )
-    {
-        this.previousLength = previousLength;
-    }
-
-    public void undo( RandomAccessFile dataFile, IdentityFile idFile ) throws IOException
-    {
-        dataFile.setLength( previousLength );
-        dataFile.seek( dataFile.length() );
-        dataFile.writeInt( -1 );  // Put in the EOF
-    }
-
-    public void save( RandomAccessFile undoJournal ) throws IOException
-    {
-        undoJournal.writeLong( previousLength );
-    }
-
-    static UndoExtendCommand load( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        long position = undoJournal.readLong();
-        return new UndoExtendCommand( position );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoManager.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoManager.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoManager.java
deleted file mode 100644
index a9dc23e..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoManager.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-public interface UndoManager
-{
-    void saveUndoCommand( UndoCommand command );
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoModifyCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoModifyCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoModifyCommand.java
deleted file mode 100644
index 2331725..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoModifyCommand.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-/**
- * Record has been modified and we can restore it.
- *
- * Block Structure
- * [blockSize]     4 bytes
- * [usage]         1 byte    (0=Unused, 1=prime, 2=mirror, 3=primeChanged, 4=mirrorChanged)
- * [instanceVersion] 8 bytes
- * [schemaVersion] 4 bytes
- * [identitySize]  1 byte
- * [identity]      IDENTITY_MAX_LENGTH bytes
- * [mirrorPointer] 8 bytes
- * [primeDataLength] 4 bytes
- * [primeData]     n bytes
- * [mirrorDataLength] 4 bytes
- * [mirrorData]    n bytes
- */
-public class UndoModifyCommand
-    implements UndoCommand
-{
-    private long position;
-    private byte usage;
-    private long instanceVersion;
-    private int schemaVersion;
-
-    public UndoModifyCommand( long position, byte usage, long instanceVersion, int schemaVersion )
-    {
-        this.position = position;
-        this.usage = usage;
-        this.instanceVersion = instanceVersion;
-        this.schemaVersion = schemaVersion;
-    }
-
-    public void undo( RandomAccessFile dataFile, IdentityFile idFile ) throws IOException
-    {
-        dataFile.seek( position + 4 );
-        dataFile.writeByte( usage );
-        dataFile.writeLong( instanceVersion );
-        dataFile.writeInt( schemaVersion );
-    }
-
-    public void save( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        undoJournal.writeLong( position );
-        undoJournal.writeByte( usage );
-        undoJournal.writeLong( instanceVersion );
-        undoJournal.writeInt( schemaVersion );
-    }
-
-    static UndoCommand load( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        long position = undoJournal.readLong();
-        byte usage = undoJournal.readByte();
-        long instanceVersion = undoJournal.readLong();
-        int schemaVersion = undoJournal.readInt();
-        return new UndoModifyCommand( position, usage, instanceVersion, schemaVersion );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoNewIdentityCommand.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoNewIdentityCommand.java b/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoNewIdentityCommand.java
deleted file mode 100644
index 9293513..0000000
--- a/extensions/entitystore-swift/src/main/java/org/qi4j/entitystore/swift/UndoNewIdentityCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.spi.entity.QualifiedIdentity;
-import org.qi4j.api.entity.EntityReference;
-
-import java.io.IOException;
-import java.io.RandomAccessFile;
-
-public class UndoNewIdentityCommand
-    implements UndoCommand
-{
-    private EntityReference reference;
-
-    public UndoNewIdentityCommand( EntityReference reference )
-    {
-        this.reference = reference;
-    }
-
-    public void undo( RandomAccessFile dataFile, IdentityFile idFile ) throws IOException
-    {
-        idFile.drop( reference );
-    }
-
-    public void save( RandomAccessFile undoJournal ) throws IOException
-    {
-        undoJournal.writeUTF( reference.toString() );
-    }
-
-    static UndoNewIdentityCommand load( RandomAccessFile undoJournal )
-        throws IOException
-    {
-        String idString = undoJournal.readUTF();
-        EntityReference ref = new EntityReference( idString );
-        return new UndoNewIdentityCommand( ref );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/main/resources/org/qi4j/entitystore/quick/QuickEntityStoreService.properties
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/main/resources/org/qi4j/entitystore/quick/QuickEntityStoreService.properties b/extensions/entitystore-swift/src/main/resources/org/qi4j/entitystore/quick/QuickEntityStoreService.properties
deleted file mode 100644
index 32422c2..0000000
--- a/extensions/entitystore-swift/src/main/resources/org/qi4j/entitystore/quick/QuickEntityStoreService.properties
+++ /dev/null
@@ -1,17 +0,0 @@
-
-### Configuration for the Quick EntityStore.
-### The commented out properties are the default values if not specified.
-
-
-### The recovery system is needed to ensure a consistent database after a non-managed shutdown, such
-### power-failure, JVM crash and "kill -9"
-## If there is an Undo file on the file system, use it to undo the pending changes.
-# recover=true
-
-### Storage Directory is the place (relative to current working directory) where the database
-### will store its files. This directory needs to be dedicated to Quick EntityStore.
-# storageDirectory=qi4j/quickstore
-
-### TurboMode disables the use of regular Java serialization and uses custom Objcet streams
-### for performance reasons.
-# turboMode=false
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/DataFileTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/DataFileTest.java b/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/DataFileTest.java
deleted file mode 100644
index 783b416..0000000
--- a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/DataFileTest.java
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.junit.Assert;
-import org.junit.Test;
-import org.qi4j.api.entity.EntityReference;
-
-import java.io.File;
-
-public class DataFileTest
-{
-    @Test
-    public void whenPuttingDataThenExpectSameDataBack()
-        throws Exception
-    {
-        File dir = new File( "swift-store" );
-        RecordManager man = new RecordManager( dir, false );
-        try
-        {
-            EntityReference ref = createReference( "12345678" );
-            String data = "Hej hopp du glade man!!";
-            DataBlock originalData = new DataBlock( ref, data.getBytes(), 81273, 91283 );
-            man.putData( originalData );
-
-            DataBlock retrieveData = man.readData( ref );
-            Assert.assertEquals( "Incorrect Data retrieved.", originalData, retrieveData );
-        }
-        finally
-        {
-            FileUtils.delete( dir );
-        }
-    }
-
-    @Test
-    public void whenPutting100DataWithIndividualCommitsThenExpectSameDataBack()
-        throws Exception
-    {
-        File dir = new File( "swift-store" );
-        RecordManager man = new RecordManager( dir, false );
-        try
-        {
-            EntityReference[] ids = new EntityReference[100];
-            String[] values = new String[100];
-            int[] schemas = new int[100];
-            long[] versions = new long[100];
-            long t0 = System.currentTimeMillis();
-            for( int i = 0; i < 100; i++ )
-            {
-                ids[ i ] = createReference( "habba" + i );
-                values[ i ] = "Hej hopp du glade man!!" + Math.random();
-                DataBlock originalData = new DataBlock( ids[ i ], values[ i ].getBytes(), versions[ i ], schemas[ i ] );
-                man.putData( originalData );
-                man.commit();
-            }
-            long t1 = System.currentTimeMillis();
-            System.out.println( "Thruoughput: " + 100000 / ( t1 - t0 ) + " creations/sec" );
-            for( int i = 0; i < 100; i++ )
-            {
-                DataBlock data = man.readData( ids[ i ] );
-                Assert.assertEquals( "Incorrect Data retrieved.", ids[ i ], data.reference );
-                Assert.assertEquals( "Incorrect Data retrieved.", versions[ i ], data.instanceVersion );
-                Assert.assertEquals( "Incorrect Data retrieved.", values[ i ], new String( data.data ) );
-                Assert.assertEquals( "Incorrect Data retrieved.", schemas[ i ], data.schemaVersion );
-            }
-        }
-        finally
-        {
-            FileUtils.delete( dir );
-        }
-    }
-
-    @Test
-    public void whenPutting100DataWithSingleCommitThenExpectSameDataBack()
-        throws Exception
-    {
-        File dir = new File( "swift-store" );
-        RecordManager man = new RecordManager( dir, false );
-        try
-        {
-            EntityReference[] ids = new EntityReference[100];
-            String[] values = new String[100];
-            int[] schemas = new int[100];
-            long[] versions = new long[100];
-            long t0 = System.currentTimeMillis();
-            for( int i = 0; i < 100; i++ )
-            {
-                ids[ i ] = createReference( "habba" + i );
-                values[ i ] = "Hej hopp du glade man!!" + Math.random();
-                DataBlock originalData = new DataBlock( ids[ i ], values[ i ].getBytes(), versions[ i ], schemas[ i ] );
-                man.putData( originalData );
-            }
-            man.commit();
-            long t1 = System.currentTimeMillis();
-            System.out.println( "Thruoughput: " + 100000 / ( t1 - t0 ) + " creations/sec" );
-            for( int i = 0; i < 100; i++ )
-            {
-                DataBlock data = man.readData( ids[ i ] );
-                Assert.assertEquals( "Incorrect Data retrieved.", ids[ i ], data.reference );
-                Assert.assertEquals( "Incorrect Data retrieved.", versions[ i ], data.instanceVersion );
-                Assert.assertEquals( "Incorrect Data retrieved.", values[ i ], new String( data.data ) );
-                Assert.assertEquals( "Incorrect Data retrieved.", schemas[ i ], data.schemaVersion );
-            }
-        }
-        finally
-        {
-            FileUtils.delete( dir );
-        }
-    }
-
-
-    @Test
-    public void whenEntityReferenceIsAtMaxThenExpectSameDataBack()
-        throws Exception
-    {
-        File dir = new File( "swift-store" );
-        RecordManager man = new RecordManager( dir, false );
-        try
-        {
-            EntityReference ref = createReference( "012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678912" );
-            String data = "Hej hopp du glade man!!";
-            DataBlock originalData = new DataBlock( ref, data.getBytes(), 81273, 91283 );
-            man.putData( originalData );
-            man.commit();
-
-            DataBlock retrieveData = man.readData( ref );
-            Assert.assertEquals( "Incorrect Data retrieved.", originalData, retrieveData );
-        }
-        finally
-        {
-            FileUtils.delete( dir );
-        }
-
-    }
-
-    @Test
-    public void whenTooLongEntityReferenceThenExpectException()
-        throws Exception
-    {
-        File dir = new File( "swift-store" );
-        RecordManager man = new RecordManager( dir, false );
-        try
-        {
-            StringBuffer buf = new StringBuffer();
-            for( int i=0 ; i < 129 ; i++ )
-                buf.append( (i % 10) );
-            EntityReference ref = createReference( buf.toString() );
-            
-            String data = "Hej hopp du glade man!!";
-            DataBlock originalData = new DataBlock( ref, data.getBytes(), 81273, 91283 );
-            man.putData( originalData );
-            Assert.fail( "Exceeeding max length didn't cause Exception." );
-        }
-        catch( IdentityTooLongException e )
-        {
-            // Expected.
-        }
-        finally
-        {
-            FileUtils.delete( dir );
-        }
-
-    }
-
-    private EntityReference createReference( String identity )
-    {
-        return new EntityReference( identity );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/IdentityFileTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/IdentityFileTest.java b/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/IdentityFileTest.java
deleted file mode 100644
index 6af5d81..0000000
--- a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/IdentityFileTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Random;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Test;
-import org.qi4j.api.entity.EntityReference;
-
-@SuppressWarnings( { "ResultOfMethodCallIgnored" } )
-public class IdentityFileTest
-{
-    private File idFile;
-    private IdentityFile file;
-
-    @Test
-    public void whenCreatingNewIdentityFileThenSucceed()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 64, 1000 );
-    }
-
-    @Test
-    public void whenCreatingAnEntryThenGetTheResultBack()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 64, 1000 );
-        populateRandom( file );
-        long value = 9783249823L;
-        EntityReference identity = createIdentity( "SomeIdentity" );
-        file.remember( identity, value );
-        long recalled = file.find( identity );
-        Assert.assertEquals( "Wrong position retrieved for item.", value, recalled );
-    }
-
-    @Test
-    public void whenCreating50EntriesThenGetTheResultBack()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 64, 1000 );
-        populateRandom( file );
-        long[] pos = new long[50];
-        for( int i = 0; i < 50; i++ )
-        {
-            pos[ i ] = (long) ( Math.random() * Long.MAX_VALUE );
-            EntityReference identity = createIdentity( "Identity-" + i );
-            file.remember( identity, pos[ i ] );
-        }
-
-        for( int i = 0; i < 50; i++ )
-        {
-            EntityReference identity = createIdentity( "Identity-" + i );
-            long recalled = file.find( identity );
-            Assert.assertEquals( "Wrong position retrieved for item " + i + ".", pos[ i ], recalled );
-        }
-    }
-
-
-    @Test
-    public void whenIdentityIsLongerThanAllowedExpectException()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 24, 1000 );
-        try
-        {
-            EntityReference identity = createIdentity( "12345678901" );
-            file.remember( identity, 827349813743908274L );
-            Assert.fail( "Should not allow this long identity." );
-        }
-        catch( IdentityTooLongException e )
-        {
-            // expected
-        }
-    }
-
-    @Test
-    public void whenNotEnoughSpaceIsAvailableExpectThatCanStillStore()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 64, 1 );
-        long[] pos = new long[150];
-        for( int i = 0; i < 150; i++ )
-        {
-            pos[ i ] = (long) ( Math.random() * Long.MAX_VALUE );
-            EntityReference identity = createIdentity( "Identity-" + i );
-            file.remember( identity, pos[ i ] );
-        }
-
-        for( int i = 0; i < 150; i++ )
-        {
-            EntityReference identity = createIdentity( "Identity-" + i );
-            long recalled = file.find( identity );
-            Assert.assertEquals( "Wrong position retrieved for item " + i + ".", pos[ i ], recalled );
-        }
-    }
-
-    @Test
-    public void whenDroppingAnIdentityExpectMinusOneWhenLookingUp()
-        throws Exception
-    {
-        idFile = new File( "swift-store" );
-        idFile.mkdirs();
-        file = IdentityFile.create( idFile, 64, 5 );
-        long[] pos = new long[150];
-        for( int i = 0; i < 150; i++ )
-        {
-            pos[ i ] = (long) ( Math.random() * Long.MAX_VALUE );
-            EntityReference identity = createIdentity( "Identity-" + i );
-            file.remember( identity, pos[ i ] );
-        }
-
-        for( int i = 0; i < 150; i++ )
-        {
-            EntityReference identity = createIdentity( "Identity-" + i );
-            file.drop( identity );
-        }
-
-        for( int i = 0; i < 150; i++ )
-        {
-            EntityReference identity = createIdentity( "Identity-" + i );
-            Assert.assertEquals( "Identity entry not gone.", -1, file.find( identity ) );
-        }
-    }
-
-    @After
-    public void cleanUp()
-    {
-        try
-        {
-            file.close();
-        }
-        catch( IOException e )
-        {
-            e.printStackTrace();
-        }
-        delete( idFile );
-    }
-
-    private void delete( File file )
-    {
-        if( file.isDirectory() )
-        {
-            for( File child : file.listFiles() )
-            {
-                delete( child );
-            }
-        }
-        file.delete();
-    }
-
-    private EntityReference createIdentity( String identity )
-    {
-        return new EntityReference( identity );
-    }
-
-    private void populateRandom( IdentityFile file )
-        throws IOException
-    {
-        Random rnd = new Random();
-        int max = (int) ( file.entries() * 0.5 );
-        for( int i = 0; i < max; i++ )
-        {
-            String id = String.valueOf( rnd.nextInt(16) );
-            EntityReference ref = new EntityReference( id );
-            file.remember(ref, i);
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftEntityStoreTest.java b/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftEntityStoreTest.java
deleted file mode 100644
index e039475..0000000
--- a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftEntityStoreTest.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2008 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.test.entity.AbstractEntityStoreTest;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-public class SwiftEntityStoreTest extends AbstractEntityStoreTest
-{
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        super.assemble( module );
-        module.services( SwiftEntityStoreService.class, UuidIdentityGeneratorService.class );
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-
-        ModuleAssembly config = module.layer().module( "config" );
-        config.entities( SwiftConfiguration.class ).visibleIn( Visibility.layer );
-        new EntityTestAssembler().assemble( config );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftStorePerformanceTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftStorePerformanceTest.java b/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftStorePerformanceTest.java
deleted file mode 100644
index affae56..0000000
--- a/extensions/entitystore-swift/src/test/java/org/qi4j/entitystore/swift/SwiftStorePerformanceTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright 2009 Niclas Hedhman.
- *
- * Licensed  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.qi4j.entitystore.swift;
-
-// import org.qi4j.test.entity.performance.AbstractEntityStorePerformanceTest;
-import org.junit.Ignore;
-import org.qi4j.bootstrap.Assembler;
-
-@Ignore( "Needs org.qi4j.test.performance dependency" )
-public class SwiftStorePerformanceTest // extends AbstractEntityStorePerformanceTest
-{
-    public SwiftStorePerformanceTest()
-    {
-        // super( "SwiftEntityStore", createAssembler() );
-    }
-
-    private static Assembler createAssembler()
-    {
-        return new SwiftEntityStoreAssembler( "config" );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-swift/src/test/resources/org/qi4j/entitystore/swift/SwiftEntityStoreService.properties
----------------------------------------------------------------------
diff --git a/extensions/entitystore-swift/src/test/resources/org/qi4j/entitystore/swift/SwiftEntityStoreService.properties b/extensions/entitystore-swift/src/test/resources/org/qi4j/entitystore/swift/SwiftEntityStoreService.properties
deleted file mode 100644
index 56cc119..0000000
--- a/extensions/entitystore-swift/src/test/resources/org/qi4j/entitystore/swift/SwiftEntityStoreService.properties
+++ /dev/null
@@ -1 +0,0 @@
-storageDirectory=target/swiftdb

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/pom.xml b/extensions/pom.xml
deleted file mode 100644
index 7093373..0000000
--- a/extensions/pom.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<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/xsd/maven-4.0.0.xsd">
-  <parent>
-    <groupId>org.qi4j.sandbox</groupId>
-    <artifactId>qi4j-sandbox</artifactId>
-    <version>0-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>qi4j-sandbox-extensions</artifactId>
-  <name>Qi4j Sandbox Extensions - Build POM</name>
-  <packaging>pom</packaging>
-
-  <modules>
-    <module>entitystore-jndi</module>
-    <module>entitystore-cassandra</module>
-    <module>entitystore-jgroups</module>
-    <module>entitystore-rmi</module>
-    <module>entitystore-s3</module>
-    <module>entitystore-swift</module>
-
-    <!-- Coherence needs a manual installation
-    <module>entitystore-coherence</module> -->
-
-  </modules>
-</project>

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/beans/dev-status.xml b/libraries/beans/dev-status.xml
deleted file mode 100644
index 0c93156..0000000
--- a/libraries/beans/dev-status.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1">
-  <status>
-    <codebase>early</codebase>
-    <!--none,early,beta,stable,mature-->
-    <documentation>none</documentation>
-    <!-- none, brief, good, complete -->
-    <unittests>some</unittests>
-    <!-- none, some, good, complete -->
-  </status>
-  <licenses>
-    <license>ALv2</license>
-  </licenses>
-</module>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/pom.xml
----------------------------------------------------------------------
diff --git a/libraries/beans/pom.xml b/libraries/beans/pom.xml
deleted file mode 100644
index c8c36c7..0000000
--- a/libraries/beans/pom.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<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.qi4j.sandbox</groupId>
-    <artifactId>qi4j-sandbox-libraries</artifactId>
-    <version>0-SNAPSHOT</version>
-  </parent>
-  <groupId>org.qi4j.library</groupId>
-  <artifactId>org.qi4j.library.beans</artifactId>
-  <name>Qi4j Library - Beans</name>
-  <dependencies>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.bootstrap</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.runtime</artifactId>
-      <scope>runtime</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.testsupport</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Getters.java
----------------------------------------------------------------------
diff --git a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Getters.java b/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Getters.java
deleted file mode 100644
index 14bca23..0000000
--- a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Getters.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.qi4j.library.beans.properties;
-
-import org.qi4j.api.common.AppliesToFilter;
-
-import java.lang.reflect.Method;
-
-/**
- * Filter for getter methods. Method name must match "get*" or "is*" or "has*".
- */
-public class Getters implements AppliesToFilter
-{
-    public static final MethodPrefixFilter GET = new MethodPrefixFilter( "get" );
-    public static final MethodPrefixFilter IS = new MethodPrefixFilter( "is" );
-    public static final MethodPrefixFilter HAS = new MethodPrefixFilter( "has" );
-    public static final AppliesToFilter GETTERS = new OrAppliesToFilter( GET, IS, HAS );
-
-    public boolean appliesTo( Method method, Class mixin, Class compositeType, Class modelClass )
-    {
-        return GETTERS.appliesTo( method, mixin, compositeType, modelClass );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Iterables.java
----------------------------------------------------------------------
diff --git a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Iterables.java b/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Iterables.java
deleted file mode 100644
index fe82b96..0000000
--- a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/Iterables.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2008 Wen Tao. All Rights Reserved.
- *
- * Licensed 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.qi4j.library.beans.properties;
-
-import org.qi4j.api.common.AppliesToFilter;
-
-import java.beans.Introspector;
-import java.lang.reflect.Method;
-
-public class Iterables implements PropertyNameExtractor, AppliesToFilter
-{
-    public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
-    {
-        return matches( method.getName() );
-    }
-
-    public boolean matches( String methodName )
-    {
-        return methodName.endsWith( "Iterator" ) || "iterator".equals( methodName );
-    }
-
-    public String extractPropertyName( String methodName )
-    {
-        if( !matches( methodName ) )
-        {
-            return null;
-        }
-        return Introspector.decapitalize( methodName.substring( 0, methodName.length() - 8 ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/src/main/java/org/qi4j/library/beans/properties/MethodPrefixFilter.java
----------------------------------------------------------------------
diff --git a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/MethodPrefixFilter.java b/libraries/beans/src/main/java/org/qi4j/library/beans/properties/MethodPrefixFilter.java
deleted file mode 100644
index bcb7634..0000000
--- a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/MethodPrefixFilter.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright 2008 Wen Tao. All Rights Reserved.
- *
- * Licensed 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.qi4j.library.beans.properties;
-
-import org.qi4j.api.common.AppliesToFilter;
-
-import java.beans.Introspector;
-import java.lang.reflect.Method;
-
-public class MethodPrefixFilter implements PropertyNameExtractor, AppliesToFilter
-{
-    private String prefix;
-
-    public MethodPrefixFilter( String prefix )
-    {
-        this.prefix = prefix;
-    }
-
-    public boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
-    {
-        return matches( method.getName() );
-    }
-
-    public boolean matches( String methodName )
-    {
-        return methodName.startsWith( prefix );
-    }
-
-    public String extractPropertyName( String methodName )
-    {
-        if( !matches( methodName ) )
-        {
-            return null;
-        }
-        return Introspector.decapitalize( methodName.substring( prefix.length() ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/libraries/beans/src/main/java/org/qi4j/library/beans/properties/OrAppliesToFilter.java
----------------------------------------------------------------------
diff --git a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/OrAppliesToFilter.java b/libraries/beans/src/main/java/org/qi4j/library/beans/properties/OrAppliesToFilter.java
deleted file mode 100644
index 87a4673..0000000
--- a/libraries/beans/src/main/java/org/qi4j/library/beans/properties/OrAppliesToFilter.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2008 Wen Tao. All Rights Reserved.
- *
- * Licensed 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.qi4j.library.beans.properties;
-
-import org.qi4j.api.common.AppliesToFilter;
-
-import java.lang.reflect.Method;
-
-public final class OrAppliesToFilter
-    implements AppliesToFilter
-{
-    private final AppliesToFilter[] filters;
-
-    public OrAppliesToFilter( AppliesToFilter... filters )
-    {
-        this.filters = filters;
-    }
-
-    public final boolean appliesTo( Method method, Class<?> mixin, Class<?> compositeType, Class<?> fragmentClass )
-    {
-        for( AppliesToFilter filter : filters )
-        {
-            if( filter.appliesTo( method, mixin, compositeType, fragmentClass ) )
-            {
-                return true;
-            }
-        }
-        return false;
-    }
-}