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:28 UTC

[16/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-jgroups/osgi.bundle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jgroups/osgi.bundle b/extensions/entitystore-jgroups/osgi.bundle
deleted file mode 100644
index 30d169e..0000000
--- a/extensions/entitystore-jgroups/osgi.bundle
+++ /dev/null
@@ -1,59 +0,0 @@
-Bundle-Activator:
-
-Private-Package:
-
-Ignore-Package: bsh, \
-                com_cenqua_clover, \
-                junit.framework, \
-                junit.textui, \
-                org.jgroups.tests, \
-                org.jgroups.debug, \
-                org.bouncycastle.jce.provider
-
-Import-Package: javax.crypto, \
-                javax.crypto.spec, \
-                javax.jms, \
-                javax.management, \
-                javax.naming, \
-                javax.net, \
-                javax.net.ssl, \
-                javax.xml.parsers, \
-                org.apache.commons.logging, \
-                org.jgroups, \
-                org.jgroups.blocks, \
-                org.qi4j.api, \
-                org.qi4j.api.composite, \
-                org.qi4j.api.concern, \
-                org.qi4j.api.entity, \
-                org.qi4j.api.injection.scope, \
-                org.qi4j.api.io, \
-                org.qi4j.api.mixin, \
-                org.qi4j.api.service, \
-                org.qi4j.api.structure,\
-                org.qi4j.entitystore.map, \
-                org.qi4j.library.locking, \
-                org.qi4j.spi.composite, \
-                org.qi4j.spi.entity, \
-                org.qi4j.spi.entity.helpers, \
-                org.qi4j.spi.entitystore, \
-                org.qi4j.spi.serialization, \
-                org.qi4j.spi.service, \
-                org.w3c.dom
-
-Export-Package: org.qi4j.entitystore.jgroups, \
-                org.jgroups, \
-                org.jgroups.blocks, \
-                org.jgroups.conf, \
-                org.jgroups.jmx, \
-                org.jgroups.mux, \
-                org.jgroups.persistence, \
-                org.jgroups.stack, \
-                org.jgroups.util, \
-                org.jgroups.auth, \
-                org.jgroups.protocols, \
-                org.jgroups.protocols.pbcast
-
-Embed-Dependency: org.jgroups;scope=compile|runtime, \
-                  org.jgroups.*;scope=compile|runtime
-
-Embed-Transitive:  true

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jgroups/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jgroups/pom.xml b/extensions/entitystore-jgroups/pom.xml
deleted file mode 100644
index 8e4c22a..0000000
--- a/extensions/entitystore-jgroups/pom.xml
+++ /dev/null
@@ -1,61 +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-extensions</artifactId>
-      <version>0-SNAPSHOT</version>
-   </parent>
-  <groupId>org.qi4j.extension</groupId>
-  <artifactId>qi4j-entitystore-jgroups</artifactId>
-  <name>Qi4j Extension - EntityStore - JGroups</name>
-  <packaging>jar</packaging>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <argLine>-Djava.net.preferIPv4Stack=true</argLine>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-  <dependencies>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.spi</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.testsupport</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.runtime</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.library</groupId>
-      <artifactId>org.qi4j.library.locking</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>jgroups</groupId>
-      <artifactId>jgroups</artifactId>
-      <version>2.6.2</version>
-    </dependency>
-    <dependency>
-      <groupId>commons-logging</groupId>
-      <artifactId>commons-logging</artifactId>
-      <version>1.1</version>
-    </dependency>
-  </dependencies>
-  <repositories>
-    <repository>
-      <id>jboss-repository</id>
-      <url>http://repository.jboss.org/maven2</url>
-    </repository>
-  </repositories>
-</project>

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreMixin.java b/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreMixin.java
deleted file mode 100644
index 6997f0d..0000000
--- a/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreMixin.java
+++ /dev/null
@@ -1,148 +0,0 @@
-/*  Copyright 2008 Rickard Öberg.
- *
- * 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.jgroups;
-
-import org.jgroups.JChannel;
-import org.jgroups.blocks.ReplicatedHashMap;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.io.Input;
-import org.qi4j.io.Output;
-import org.qi4j.io.Receiver;
-import org.qi4j.io.Sender;
-import org.qi4j.spi.entitystore.EntityNotFoundException;
-import org.qi4j.spi.entitystore.EntityStoreException;
-
-import java.io.*;
-import org.qi4j.api.entity.EntityDescriptor;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.spi.entitystore.helpers.MapEntityStore;
-
-/**
- * JGroups implementation of EntityStore
- */
-public class JGroupsEntityStoreMixin
-        implements ServiceActivation, MapEntityStore
-{
-    private JChannel channel;
-    private ReplicatedHashMap<String, String> replicatedMap;
-
-    public void activateService() throws Exception
-    {
-        channel = new JChannel();
-        channel.connect( "entitystore" );
-        replicatedMap = new ReplicatedHashMap<String, String>( channel, false );
-        replicatedMap.setBlockingUpdates( true );
-    }
-
-    public void passivateService() throws Exception
-    {
-        channel.close();
-    }
-
-    public Reader get( EntityReference entityReference )
-            throws EntityStoreException
-    {
-        try
-        {
-            String data = replicatedMap.get( entityReference.identity() );
-            if (data == null)
-            {
-                throw new EntityNotFoundException( entityReference );
-            }
-            return new StringReader( data );
-        }
-        catch (RuntimeException e)
-        {
-            throw new EntityStoreException( e );
-        }
-    }
-
-    public Input<Reader, IOException> entityStates()
-    {
-        return new Input<Reader, IOException>()
-        {
-            public <ReceiverThrowableType extends Throwable> void transferTo( Output<? super Reader, ReceiverThrowableType> output )
-                throws IOException, ReceiverThrowableType
-            {
-                output.receiveFrom(
-                    new Sender<Reader, IOException>()
-                    {
-                        public <ReceiverThrowableType extends Throwable> void sendTo( Receiver<? super Reader, ReceiverThrowableType> receiver )
-                        throws ReceiverThrowableType, IOException
-                        {
-                            for( String json : replicatedMap.values() )
-                            {
-                                receiver.receive( new StringReader( json ) );
-                            }
-                        }
-                    }
-                );
-            }
-        };
-    }
-
-    public void applyChanges( MapChanges changes ) throws IOException
-    {
-        try
-        {
-            changes.visitMap( new MapChanger()
-            {
-                public Writer newEntity( final EntityReference ref, EntityDescriptor entityDescriptor ) throws IOException
-                {
-                    return new StringWriter( 1000 )
-                    {
-                        @Override
-                        public void close() throws IOException
-                        {
-                            super.close();
-                            String value = toString();
-                            String key = ref.identity();
-                            replicatedMap.put( key, value );
-                        }
-                    };
-                }
-
-                public Writer updateEntity( final EntityReference ref, EntityDescriptor entityDescriptor ) throws IOException
-                {
-                    return new StringWriter( 1000 )
-                    {
-                        @Override
-                        public void close() throws IOException
-                        {
-                            super.close();
-                            String value = toString();
-                            String key = ref.identity();
-                            replicatedMap.put( key, value );
-                        }
-                    };
-                }
-
-                public void removeEntity( EntityReference ref, EntityDescriptor entityDescriptor ) throws EntityNotFoundException
-                {
-                    replicatedMap.remove( ref.identity() );
-                }
-            } );
-        }
-        catch (RuntimeException e)
-        {
-            IOException exception = new IOException();
-            exception.initCause( e );
-            throw exception;
-        }
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreService.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreService.java b/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreService.java
deleted file mode 100644
index bf82584..0000000
--- a/extensions/entitystore-jgroups/src/main/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreService.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*  Copyright 2008 Rickard Öberg.
- *
- * 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.jgroups;
-
-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.EntityStore;
-import org.qi4j.spi.entitystore.StateChangeNotificationConcern;
-import org.qi4j.spi.entitystore.helpers.MapEntityStoreMixin;
-
-/**
- * EntityStore service backed by JGroups store.
- */
-
-@Concerns({ StateChangeNotificationConcern.class, ConcurrentModificationCheckConcern.class})
-@Mixins({ MapEntityStoreMixin.class, JGroupsEntityStoreMixin.class})
-public interface JGroupsEntityStoreService
-    extends EntityStore, ServiceActivation, LockingAbstractComposite
-
-{
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jgroups/src/test/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jgroups/src/test/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreTest.java b/extensions/entitystore-jgroups/src/test/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreTest.java
deleted file mode 100644
index d4f3423..0000000
--- a/extensions/entitystore-jgroups/src/test/java/org/qi4j/entitystore/jgroups/JGroupsEntityStoreTest.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/*  Copyright 2008 Rickard Öberg.
- *
- * 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.jgroups;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.fail;
-
-import org.junit.Test;
-import org.junit.Ignore;
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.api.association.Association;
-import org.qi4j.api.association.ManyAssociation;
-import org.qi4j.api.property.Immutable;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.unitofwork.NoSuchEntityException;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
-import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.api.value.ValueComposite;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.SingletonAssembler;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-/**
- * Test of JGroups EntityStore backend.
- */
-public class JGroupsEntityStoreTest
-    extends AbstractQi4jTest
-{
-    public void assemble( ModuleAssembly module ) throws AssemblyException
-    {
-        module.services( UuidIdentityGeneratorService.class );
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-        module.entities( TestEntity.class );
-        module.values( TestValue.class );
-        module.services( JGroupsEntityStoreService.class );
-    }
-
-    @Test
-    @Ignore
-    public void whenNewEntityThenFindInReplica()
-        throws Exception
-    {
-        // Create first app
-        SingletonAssembler app1 = new SingletonAssembler()
-        {
-            public void assemble( ModuleAssembly module ) throws AssemblyException
-            {
-                module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-                module.services( JGroupsEntityStoreService.class, UuidIdentityGeneratorService.class ).instantiateOnStartup();
-                module.entities( TestEntity.class );
-            }
-        };
-
-        // Create second app
-        SingletonAssembler app2 = new SingletonAssembler()
-        {
-            public void assemble( ModuleAssembly module ) throws AssemblyException
-            {
-                module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-                module.services( JGroupsEntityStoreService.class, UuidIdentityGeneratorService.class ).instantiateOnStartup();
-                module.entities( TestEntity.class );
-            }
-        };
-
-        // Create entity in app 1
-        System.out.println( "Create entity" );
-        UnitOfWork app1Unit = app1.module().newUnitOfWork();
-        EntityBuilder<TestEntity> builder = app1Unit.newEntityBuilder( TestEntity.class );
-        TestEntity instance = builder.instance();
-        instance.name().set( "Foo" );
-        instance = builder.newInstance();
-        app1Unit.complete();
-
-//        Thread.sleep( 5000 );
-
-        // Find entity in app 2
-        System.out.println( "Find entity" );
-        UnitOfWork app2Unit = app2.module().newUnitOfWork();
-        instance = app2Unit.get( instance );
-
-        System.out.println( instance.name() );
-        app2Unit.discard();
-
-    }
-
-    @Test
-    @Ignore
-    public void whenNewEntityThenCanFindEntity()
-        throws Exception
-    {
-        try
-        {
-            UnitOfWork unitOfWork = module.newUnitOfWork();
-            try
-            {
-                TestEntity instance = createEntity( unitOfWork );
-                unitOfWork.complete();
-
-                // Find entity
-                unitOfWork = module.newUnitOfWork();
-                instance = unitOfWork.get( instance );
-
-                // Check state
-                assertThat( "property has correct value", instance.name().get(), equalTo( "Test" ) );
-                assertThat( "property has correct value", instance.unsetName().get(), equalTo( null ) );
-                assertThat( "association has correct value", instance.association().get(), equalTo( instance ) );
-                assertThat( "manyAssociation has correct value", instance.manyAssociation().iterator().next(), equalTo( instance ) );
-                unitOfWork.discard();
-            }
-            catch( UnitOfWorkCompletionException e )
-            {
-                unitOfWork.discard();
-                throw e;
-            }
-            catch( NoSuchEntityException e )
-            {
-                unitOfWork.discard();
-                throw e;
-            }
-            catch( RuntimeException e )
-            {
-                unitOfWork.discard();
-                throw e;
-            }
-
-        }
-        catch( Exception e )
-        {
-            e.printStackTrace();
-        }
-    }
-
-    @Test
-    @Ignore
-    public void whenRemovedEntityThenCannotFindEntity()
-        throws Exception
-    {
-        UnitOfWork unitOfWork = module.newUnitOfWork();
-        try
-        {
-            TestEntity newInstance = createEntity( unitOfWork );
-            String identity = newInstance.identity().get();
-            unitOfWork.complete();
-
-            // Remove entity
-            unitOfWork = module.newUnitOfWork();
-            TestEntity instance = unitOfWork.get( newInstance );
-            unitOfWork.remove( instance );
-            unitOfWork.complete();
-
-            // Find entity
-            unitOfWork = module.newUnitOfWork();
-            try
-            {
-                instance = unitOfWork.get( TestEntity.class, identity );
-                fail( "Should not be able to find entity" );
-            }
-            catch( NoSuchEntityException e )
-            {
-                // Ok!
-            }
-            unitOfWork.discard();
-        }
-        catch( UnitOfWorkCompletionException e )
-        {
-            unitOfWork.discard();
-            throw e;
-        }
-        catch( NoSuchEntityException e )
-        {
-            unitOfWork.discard();
-            throw e;
-        }
-        catch( RuntimeException e )
-        {
-            unitOfWork.discard();
-            throw e;
-        }
-    }
-
-    protected TestEntity createEntity( UnitOfWork unitOfWork )
-        throws UnitOfWorkCompletionException
-    {
-        // Create entity
-        EntityBuilder<TestEntity> builder = unitOfWork.newEntityBuilder( TestEntity.class );
-        TestEntity instance = builder.newInstance();
-        String id = instance.identity().get();
-
-        instance.name().set( "Test" );
-        instance.association().set( instance );
-
-        ValueBuilder<TestValue> valueBuilder = module.newValueBuilder( TestValue.class );
-        TestValue state = valueBuilder.prototype();
-        state.someValue().set( "Foo" );
-        state.otherValue().set( 5 );
-
-        TestValue value = valueBuilder.newInstance();
-
-        instance.valueProperty().set( value );
-        instance.manyAssociation().add( instance );
-
-        return instance;
-    }
-
-    public interface TestEntity
-        extends EntityComposite
-    {
-        @Optional Property<String> name();
-
-        @Optional Property<String> unsetName();
-
-        @Optional Property<TestValue> valueProperty();
-
-        @Optional Association<TestEntity> association();
-
-        @Optional Association<TestEntity> unsetAssociation();
-
-        ManyAssociation<TestEntity> manyAssociation();
-    }
-
-    public interface TestValue extends ValueComposite
-    {
-        @Immutable Property<String> someValue();
-
-        @Immutable Property<Integer> otherValue();
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/.gitignore
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/.gitignore b/extensions/entitystore-jndi/.gitignore
deleted file mode 100644
index 2f7896d..0000000
--- a/extensions/entitystore-jndi/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-target/

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/osgi.bundle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/osgi.bundle b/extensions/entitystore-jndi/osgi.bundle
deleted file mode 100644
index ddb1f77..0000000
--- a/extensions/entitystore-jndi/osgi.bundle
+++ /dev/null
@@ -1,30 +0,0 @@
-Import-Package:\
-    javax.naming, \
-    javax.naming.directory, \
-    javax.naming.ldap, \
-    org.qi4j.api.common, \
-    org.qi4j.api.concern, \
-    org.qi4j.api.configuration, \
-    org.qi4j.api.entity, \
-    org.qi4j.api.injection.scope, \
-    org.qi4j.api.io, \
-    org.qi4j.api.mixin, \
-    org.qi4j.api.property, \
-    org.qi4j.api.service, \
-    org.qi4j.api.structure, \
-    org.qi4j.api.usecase, \
-    org.qi4j.bootstrap, \
-    org.qi4j.entitystore.memory, \
-    org.qi4j.library.locking, \
-    org.qi4j.spi.entity, \
-    org.qi4j.spi.entity.association, \
-    org.qi4j.spi.entity.helpers, \
-    org.qi4j.spi.entitystore,  \
-    org.qi4j.spi.property, \
-    org.qi4j.spi.structure, \
-    org.qi4j.spi.unitofwork, \
-    org.qi4j.spi.uuid
-    
-Export-Package:\
-    org.qi4j.entitystore.jndi
-

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/pom.xml b/extensions/entitystore-jndi/pom.xml
deleted file mode 100644
index c4ce324..0000000
--- a/extensions/entitystore-jndi/pom.xml
+++ /dev/null
@@ -1,50 +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-extensions</artifactId>
-      <version>0-SNAPSHOT</version>
-   </parent>
-  <groupId>org.qi4j.extension</groupId>
-  <artifactId>qi4j-entitystore-jndi</artifactId>
-  <name>Qi4j Extension - EntityStore - JNDI</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.library</groupId>
-      <artifactId>org.qi4j.library.locking</artifactId>
-    </dependency>
-
-    <!-- Tests -->
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.testsupport</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.runtime</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.library</groupId>
-      <artifactId>org.qi4j.library.ldap-server</artifactId>
-      <version>${project.version}</version>
-      <scope>test</scope>
-    </dependency>
-
-  </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiConfiguration.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiConfiguration.java
deleted file mode 100644
index e3bd659..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiConfiguration.java
+++ /dev/null
@@ -1,284 +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.jndi;
-
-import org.qi4j.api.common.Optional;
-import org.qi4j.api.common.UseDefaults;
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-/**
- * Configuration for the JNDI EntityStore.
- * <p>
- * Many of the Property instances are passed on to the <code>javax.naming.InitialContext</code> as is, and the javadoc
- * below mirrors the meaning found for the constants in the <code>javax.naming.Context</code> interface.
- * </p>
- */
-public interface JndiConfiguration extends ConfigurationComposite
-{
-
-    /**
-     * If set to read-only mode, then no creation and no updates of the EntityStore will be allowed.
-     *
-     * @return if true, then don't allow updates of the underlying store. Such operations will throw a
-     *         ReadOnlyEntityStoreException.
-     */
-    @UseDefaults Property<Boolean> readOnly();
-
-    /**
-     * Instance version property.
-     *
-     * If the EntityStore is NOT readonly, each entry must have an attribute to store the instance version. This
-     * Property names that attribute available in all entries.
-     *
-     * If not specified, the atttribute used will be "instanceVersion".
-     *
-     * @return The name of the attribute where to store the instance version number.
-     */
-    @Optional Property<String> versionAttribute();
-
-    /**
-     * Last modified property.
-     * If the EntityStore is NOT readonly, each entry must have an attribute to store the last modified date.
-     * This property names that attributes in all entries.
-     *
-     * If not specified, the attribute used will be "lastModifiedDate".
-     *
-     * @return The name of the attribute where to store the last modified date.
-     */
-    @Optional Property<String> lastModifiedDateAttribute();
-
-    /**
-     * QualifiedType attribute.
-     *
-     * If the EntityStore is going to support the Iterable interface, it must store the qualifiedType in an
-     * attribute in the entry. This is also required for non-readOnly stores.
-     *
-     * @return The name of the attribute where to store the qualifiedType.
-     */
-    @Optional Property<String> qualifiedTypeAttribute();
-
-    /**
-     * Whether Turbo Mode for serialization should be used or not.
-     *
-     * @return Whether turbo mode is enabled or not.
-     */
-    @UseDefaults Property<Boolean> turboMode();
-
-    /**
-     * The Distinguished Name of the base.
-     * All creation and retrieval will occur in this directory.
-     *
-     * @return The property of the DN to the directory of operation.
-     */
-    Property<String> baseDN();
-
-    /**
-     * This will provide the name of the attribute where the binary blob of the properties will be stored.
-     * <p>
-     * If there is no attribute name provided, each property will be stored in its own attribute, of the same
-     * name as the property itself.
-     * </p>
-     * <p>
-     * Note: Associations are always stored in attributes with the same name as the attribute itself. It doesn't
-     * allow for aggregated/collapsing of all into a single attribute as is possible for property data.
-     * </p>
-     *
-     * @return The property containing the attribute name, or empty if property collapsing should not occur.
-     */
-    @Optional Property<String> propertyAttribute();
-
-
-    /**
-     * The attribute to use for storing the identity in an entry.
-     *
-     * <p>
-     * If there is no attribute name provided, then use "uid" as the identity attribute in the entry.
-     * </p>
-     *
-     * @return
-     */
-    @UseDefaults Property<String> identityAttribute();
-
-    /**
-     * Property for specifying the authoritativeness of the service requested.
-     * <p>
-     * If the value of the property is the string "true", it means that the access is to the most authoritative
-     * source (i.e. bypass any cache or replicas). If the value is anything else, the source need not be (but may be)
-     * authoritative. If unspecified, the value defaults to "false".
-     * </p>
-     *
-     * @return The property containing the string "true" or "false", whether the source is authorative or not.
-     */
-    @Optional Property<String> authorative();
-
-    /**
-     * Property for specifying the batch size to use when returning data via the service's protocol.
-     * <p>
-     * This is a hint to the provider to return the results of operations in batches of the specified size, so the
-     * provider can optimize its performance and usage of resources. The value of the property is the string
-     * representation of an integer. If unspecified, the batch size is determined by the service provider.
-     *
-     * @return The property that contains the batch size.
-     */
-    @Optional Property<String> batchSize();
-
-    /**
-     * Property for specifying the list of control factories to use.
-     * <p>
-     * The value of the property should be a colon-separated list of the fully qualified class names of factory
-     * classes that will create a control given another control.
-     * </p>
-     *
-     * @return The property that possibly contains the control factory(ies) class names.
-     */
-    @Optional Property<String> controlFactories();
-
-    /**
-     * Property for specifying the DNS host and domain names to use for the JNDI URL context (for example,
-     * "dns://somehost/wiz.com").
-     *
-     * <p>
-     * This property may be specified in the environment, an applet parameter, a system property, or a resource file.
-     * If it is not specified in any of these sources and the program attempts to use a JNDI URL containing a DNS
-     * name, a ConfigurationException will be thrown.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> dnsUrl();
-
-    /**
-     * Property for specifying the initial context factory to use.
-     * <p>
-     * The value of the property should be the fully qualified class name of the factory class that will create an
-     * initial context. If it is not specified in any of these sources, NoInitialContextException is thrown when an
-     * initial context is required to complete an operation.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> initialContextFactory();
-
-    /**
-     * Property for specifying the preferred language to use with the service.
-     *
-     * <p>
-     * The value of the property is a colon-separated list of language tags as defined in RFC 1766. If this property
-     * is unspecified, the language preference is determined by the service provider.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> language();
-
-    /**
-     * Property for specifying the list of object factories to use.
-     * <p>
-     * The value of the property should be a colon-separated list of the fully qualified class names of factory classes
-     * that will create an object given information about the object.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> objectFactories();
-
-    /**
-     * The URL string to connect to the LDAP server.
-     *
-     * property for specifying configuration information for the service provider to use. The value of the property
-     * should contain a URL string (e.g. "ldap://somehost:389"). It may also contain connect arguments as query
-     * arguments in the URL.
-     *
-     * @return The connection string to use to connect.
-     */
-    Property<String> providerUrl();
-
-    /**
-     * A property to define how referrals should be dealt with.
-     * <p>
-     * The value of the property is one of the following strings:
-     * <code><pre>
-     * "follow" follow referrals automatically
-     * "ignore" ignore referrals
-     * "throw" throw ReferralException when a referral is encountered.
-     * If this property is not specified, the default is determined by the provider.
-     */
-    @Optional Property<String> referral();
-
-    /**
-     * What type of authentication should be used.
-     * <p>
-     * Its value is one of the following strings: "none", "simple", "strong". If this property is unspecified, the
-     * behaviour is determined by the service provider.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> securityAuthentication();
-
-    /**
-     * The Principal passworf to log into the LDAP server.
-     *
-     * <p>
-     * The value of the property depends on the authentication scheme. For example, it could be a hashed password,
-     * clear-text password, key, certificate, and so on.
-     * </p>
-     *
-     * @return The password to use to log in.
-     */
-    Property<String> securityCredentials();
-
-    /**
-     * The Principal Name to log into the LDAP server.
-     *
-     * @return The username to use to log in.
-     */
-    Property<String> securityPrincipal();
-
-    /**
-     * The Security protocol, if any, to be used.
-     *
-     * @return The protocol that should be used, or null if defined by the provider.
-     */
-    @Optional Property<String> securityProtocol();
-
-    /**
-     * Property for specifying the list of state factories to use.
-     * <p>
-     * The value of the property should be a colon-separated list of the fully qualified class names of state factory
-     * classes that will be used to get an object's state given the object itself.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> stateFactories();
-
-    /**
-     * Property for specifying the list of package prefixes to use when loading in URL context factories.
-     * <p>
-     * The value of the property should be a colon-separated list of package prefixes for the class name of the
-     * factory class that will create a URL context factory.
-     * The prefix com.sun.jndi.url is always appended to the possibly empty list of package prefixes.
-     * </p>
-     *
-     * @return
-     */
-    @Optional Property<String> urlPkgPrefixes();
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityState.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityState.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityState.java
deleted file mode 100644
index 036995e..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityState.java
+++ /dev/null
@@ -1,157 +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.jndi;
-
-import org.qi4j.api.entity.EntityDescriptor;
-import org.qi4j.spi.entity.EntityState;
-import org.qi4j.spi.entity.EntityStatus;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.spi.entity.ManyAssociationState;
-import org.qi4j.api.common.QualifiedName;
-import java.util.Map;
-import java.util.List;
-import java.util.HashMap;
-
-public class JndiEntityState
-    implements EntityState
-{
-    private JndiUow unitOfWork;
-    protected EntityStatus status;
-    protected String version;
-    protected long lastModified;
-    private final EntityReference identity;
-
-    private final EntityDescriptor entityDescriptor;
-    protected final Map<QualifiedName, Object> properties;
-    protected final Map<QualifiedName, EntityReference> associations;
-    protected final Map<QualifiedName, List<EntityReference>> manyAssociations;
-
-    public JndiEntityState( JndiUow unitOfWork, EntityReference identity, EntityDescriptor entityDescriptor)
-    {
-        this( unitOfWork, "",
-              System.currentTimeMillis(),
-              identity,
-              EntityStatus.NEW,
-                entityDescriptor,
-              new HashMap<QualifiedName, Object>(),
-              new HashMap<QualifiedName, EntityReference>(),
-              new HashMap<QualifiedName, List<EntityReference>>() );
-    }
-
-    public JndiEntityState( JndiUow unitOfWork,
-                               String version,
-                               long lastModified,
-                               EntityReference identity,
-                               EntityStatus status,
-                               EntityDescriptor entityDescriptor,
-                               Map<QualifiedName, Object> properties,
-                               Map<QualifiedName, EntityReference> associations,
-                               Map<QualifiedName, List<EntityReference>> manyAssociations )
-    {
-        this.unitOfWork = unitOfWork;
-        this.version = version;
-        this.lastModified = lastModified;
-        this.identity = identity;
-        this.status = status;
-        this.entityDescriptor = entityDescriptor;
-        this.properties = properties;
-        this.associations = associations;
-        this.manyAssociations = manyAssociations;
-    }
-
-
-    public EntityReference identity()
-    {
-        return identity;
-    }
-
-    public String version()
-    {
-        return version;
-    }
-
-    public long lastModified()
-    {
-        return lastModified;
-    }
-
-    public void remove()
-    {
-    }
-
-    public EntityStatus status()
-    {
-        return status;
-    }
-
-    public boolean isAssignableTo( Class<?> type )
-    {
-        return false;
-    }
-
-    public EntityDescriptor entityDescriptor()
-    {
-        return entityDescriptor;
-    }
-
-    public Object propertyValueOf( QualifiedName stateName )
-    {
-        return properties.get( stateName );
-    }
-
-    public void setPropertyValue( QualifiedName stateName, Object json )
-    {
-        properties.put( stateName, json );
-    }
-
-    public EntityReference associationValueOf( QualifiedName stateName )
-    {
-        return associations.get( stateName );
-    }
-
-    public void setAssociationValue( QualifiedName stateName, EntityReference newEntity )
-    {
-        associations.put( stateName, newEntity );
-    }
-
-    public ManyAssociationState manyAssociationValueOf( QualifiedName stateName )
-    {
-        return null;
-    }
-
-    public void refresh()
-    {
-    }
-
-    public void hasBeenApplied()
-    {
-        status = EntityStatus.LOADED;
-        version = unitOfWork.identity();
-    }
-
-    @Override
-    public String toString()
-    {
-        return identity + "(" +
-               properties.size() + " properties, " +
-               associations.size() + " associations, " +
-               manyAssociations.size() + " many-associations)";
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreAssembler.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreAssembler.java
deleted file mode 100644
index 0117834..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreAssembler.java
+++ /dev/null
@@ -1,44 +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.jndi;
-
-import org.qi4j.api.common.Visibility;
-import org.qi4j.bootstrap.Assembler;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-
-public class JndiEntityStoreAssembler
-    implements Assembler
-{
-    private String configurationModuleName;
-
-    public JndiEntityStoreAssembler( String configurationModule )
-    {
-        this.configurationModuleName = configurationModule;
-    }
-
-    public void assemble( ModuleAssembly module ) throws AssemblyException
-    {
-        module.addServices( JndiEntityStoreService.class, UuidIdentityGeneratorService.class );
-        ModuleAssembly config = module.layer().module( configurationModuleName );
-        config.entities( JndiConfiguration.class ).visibleIn( Visibility.layer );
-        config.services( MemoryEntityStoreService.class );
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreMixin.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreMixin.java
deleted file mode 100644
index c20738a..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreMixin.java
+++ /dev/null
@@ -1,129 +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.jndi;
-
-import org.qi4j.api.configuration.Configuration;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.io.Input;
-import org.qi4j.io.Output;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.usecase.Usecase;
-import org.qi4j.spi.entity.EntityState;
-import org.qi4j.spi.entitystore.EntityStore;
-import org.qi4j.spi.entitystore.EntityStoreException;
-import org.qi4j.spi.entitystore.EntityStoreUnitOfWork;
-
-import javax.naming.Context;
-import javax.naming.NamingException;
-import javax.naming.directory.InitialDirContext;
-import java.util.Hashtable;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.api.structure.Module;
-
-public class JndiEntityStoreMixin
-    implements ServiceActivation, EntityStore
-{
-    @This private Configuration<JndiConfiguration> configuration;
-    private JndiSetup setup;
-
-    public void activateService()
-        throws Exception
-    {
-        connect();
-    }
-
-    private void connect()
-        throws NamingException
-    {
-        JndiConfiguration conf = configuration.get();
-        setup = new JndiSetup();
-        setup.instanceVersionAttribute = conf.versionAttribute().get();
-        if( setup.instanceVersionAttribute == null )
-        {
-            setup.instanceVersionAttribute = "instanceVersion";
-        }
-        setup.lastModifiedDateAttribute = conf.lastModifiedDateAttribute().get();
-        if( setup.lastModifiedDateAttribute == null )
-        {
-            setup.lastModifiedDateAttribute = "lastModifiedDate";
-        }
-        setup.identityAttribute = conf.identityAttribute().get();
-        if( setup.identityAttribute == null )
-        {
-            setup.identityAttribute = "uid";
-        }
-        setup.qualifiedTypeAttribute = conf.qualifiedTypeAttribute().get();
-        setup.baseDn = conf.baseDN().get();
-        setup.isReadOnly = conf.readOnly().get();
-
-        Hashtable<String, String> env = new Hashtable<String, String>();
-        addToEnv( env, Context.AUTHORITATIVE, conf.authorative(), null );
-        addToEnv( env, Context.BATCHSIZE, conf.batchSize(), null );
-        addToEnv( env, Context.DNS_URL, conf.dnsUrl(), null );
-        addToEnv( env, Context.INITIAL_CONTEXT_FACTORY, conf.initialContextFactory(), "com.sun.jndi.ldap.LdapCtxFactory" );
-        addToEnv( env, Context.LANGUAGE, conf.language(), null );
-        addToEnv( env, Context.OBJECT_FACTORIES, conf.objectFactories(), null );
-        addToEnv( env, Context.PROVIDER_URL, conf.providerUrl(), null );
-        addToEnv( env, Context.REFERRAL, conf.referral(), null );
-        addToEnv( env, Context.SECURITY_AUTHENTICATION, conf.securityAuthentication(), null );
-        addToEnv( env, Context.SECURITY_CREDENTIALS, conf.securityCredentials(), null );
-        addToEnv( env, Context.SECURITY_PRINCIPAL, conf.securityPrincipal(), null );
-        addToEnv( env, Context.SECURITY_PROTOCOL, conf.securityProtocol(), null );
-        addToEnv( env, Context.STATE_FACTORIES, conf.stateFactories(), null );
-        addToEnv( env, Context.URL_PKG_PREFIXES, conf.urlPkgPrefixes(), null );
-        setup.context = new InitialDirContext( env );
-    }
-
-    private void addToEnv( Hashtable<String, String> env, String key, Property<String> property, String defaultValue )
-    {
-        String value = property.get();
-        if( value != null )
-        {
-            env.put( key, value );
-        }
-        else if( defaultValue != null )
-        {
-            env.put( key, defaultValue );
-        }
-    }
-
-    public void passivateService()
-        throws Exception
-    {
-        setup.context.close();
-        setup = null;
-    }
-
-    public EntityStoreUnitOfWork newUnitOfWork( Usecase usecase, Module module, long currentTime )
-    {
-        return new JndiUow( setup, usecase, module, currentTime );
-    }
-
-    public Input<EntityState, EntityStoreException> entityStates( Module module )
-    {
-        return new Input<EntityState, EntityStoreException>()
-        {
-            public <ReceiverThrowableType extends Throwable> void transferTo( Output<? super EntityState, ReceiverThrowableType> output )
-                throws EntityStoreException, ReceiverThrowableType
-            {
-                // TODO Actual iteration
-                throw new UnsupportedOperationException( "Not implemented yet!" );
-            }
-        };
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreService.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreService.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreService.java
deleted file mode 100644
index f73d5ec..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiEntityStoreService.java
+++ /dev/null
@@ -1,33 +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.jndi;
-
-import org.qi4j.api.concern.Concerns;
-import org.qi4j.api.configuration.Configuration;
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.api.service.ServiceComposite;
-import org.qi4j.library.locking.LockingAbstractComposite;
-import org.qi4j.spi.entitystore.ConcurrentModificationCheckConcern;
-import org.qi4j.spi.entitystore.EntityStore;
-
-@Concerns( ConcurrentModificationCheckConcern.class )
-@Mixins( JndiEntityStoreMixin.class )
-public interface JndiEntityStoreService extends ServiceActivation, EntityStore, ServiceComposite, LockingAbstractComposite, Configuration
-{
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiSetup.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiSetup.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiSetup.java
deleted file mode 100644
index 7b5564e..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiSetup.java
+++ /dev/null
@@ -1,32 +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.jndi;
-
-import javax.naming.directory.InitialDirContext;
-
-class JndiSetup
-{
-    InitialDirContext context;
-    String instanceVersionAttribute;
-    String lastModifiedDateAttribute;
-    Boolean isReadOnly;
-    String identityAttribute;
-    String baseDn;
-    String qualifiedTypeAttribute;
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiUow.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiUow.java b/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiUow.java
deleted file mode 100644
index 3685f27..0000000
--- a/extensions/entitystore-jndi/src/main/java/org/qi4j/entitystore/jndi/JndiUow.java
+++ /dev/null
@@ -1,239 +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.jndi;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import javax.naming.NamingException;
-import javax.naming.directory.Attribute;
-import javax.naming.directory.Attributes;
-import javax.naming.ldap.LdapName;
-import org.qi4j.api.association.AssociationDescriptor;
-import org.qi4j.api.common.QualifiedName;
-import org.qi4j.api.entity.EntityDescriptor;
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.api.property.PropertyDescriptor;
-import org.qi4j.api.structure.Module;
-import org.qi4j.api.usecase.Usecase;
-import org.qi4j.spi.entity.EntityState;
-import org.qi4j.spi.entity.EntityStatus;
-import org.qi4j.spi.entitystore.EntityNotFoundException;
-import org.qi4j.spi.entitystore.EntityStoreException;
-import org.qi4j.spi.entitystore.EntityStoreUnitOfWork;
-import org.qi4j.spi.entitystore.ReadOnlyEntityStoreException;
-import org.qi4j.spi.entitystore.StateCommitter;
-
-public class JndiUow implements EntityStoreUnitOfWork
-{
-    private static final ArrayList<String> RESTRICTED_PROPERTIES = new ArrayList<String>();
-
-    static
-    {
-        RESTRICTED_PROPERTIES.add( "identity" );
-    }
-
-    private long currentTime;
-    private Usecase usecase;
-    private Module module;
-    private String uowIdentity;
-    private JndiSetup setup;
-
-    public JndiUow( JndiSetup setup, Usecase usecase, Module module, long currentTime )
-    {
-        this.setup = setup;
-        uowIdentity = UUID.randomUUID().toString();
-        this.usecase = usecase;
-        this.module = module;
-        this.currentTime = currentTime;
-    }
-
-    public String identity()
-    {
-        return uowIdentity;
-    }
-
-    public long currentTime()
-    {
-        return currentTime;
-    }
-
-    public EntityState newEntityState( EntityReference anIdentity, EntityDescriptor entityDescriptor )
-        throws EntityStoreException
-    {
-        throw new ReadOnlyEntityStoreException( "JndiEntityStore is read-only." );
-    }
-
-    public EntityState entityStateOf( EntityReference identity )
-        throws EntityStoreException, EntityNotFoundException
-    {
-        try
-        {
-            String id = identity.identity();
-            Attributes attrs = lookup( id );
-
-            String version = Long.toString( getVersion( attrs ) );
-            long lastModified = getLastModified( attrs );
-            EntityStatus status = EntityStatus.LOADED;
-            EntityDescriptor descriptor = module.entityDescriptor( getType( attrs ) );
-            Map<QualifiedName, Object> properties = getProperties( attrs, descriptor );
-            Map<QualifiedName, EntityReference> associations = getAssociations( attrs, descriptor );
-            Map<QualifiedName, List<EntityReference>> manyAssocations = getManyAssociations( attrs, descriptor );
-            return new JndiEntityState( this,
-                                        version,
-                                        lastModified,
-                                        identity,
-                                        status,
-                                        descriptor,
-                                        properties,
-                                        associations,
-                                        manyAssocations );
-        }
-        catch( NamingException e )
-        {
-            throw new EntityStoreException( e );
-        }
-    }
-
-    public StateCommitter applyChanges()
-        throws EntityStoreException
-    {
-        return new StateCommitter()
-        {
-            public void commit()
-            {
-            }
-
-            public void cancel()
-            {
-            }
-        };
-    }
-
-    public void discard()
-    {
-    }
-
-    private Attributes lookup( String id )
-        throws NamingException
-    {
-        // TODO: Caching
-        LdapName dn = new LdapName( setup.identityAttribute + "=" + id + "," + setup.baseDn );
-        return setup.context.getAttributes( dn );
-    }
-
-
-    private String getType( Attributes attrs )
-        throws NamingException
-    {
-        Attribute typeAttr = attrs.get( setup.qualifiedTypeAttribute );
-        if( typeAttr == null )
-        {
-            return null;
-        }
-        return (String) typeAttr.get();
-    }
-
-    private long getLastModified( Attributes attrs )
-        throws NamingException
-    {
-        Attribute lastModifiedAttr = attrs.get( setup.lastModifiedDateAttribute );
-        if( lastModifiedAttr == null )
-        {
-            return -1;
-        }
-        String lastModifiedValue = (String) lastModifiedAttr.get();
-        return Long.parseLong( lastModifiedValue );
-    }
-
-    private long getVersion( Attributes attrs )
-        throws NamingException
-    {
-        Attribute versionAttr = attrs.get( setup.instanceVersionAttribute );
-        if( versionAttr == null )
-        {
-            return -1;
-        }
-        String versionValue = (String) versionAttr.get();
-        return Long.parseLong( versionValue );
-    }
-
-
-    private Map<QualifiedName, Object> getProperties( Attributes attrs, EntityDescriptor entityType )
-        throws NamingException
-    {
-        Map<QualifiedName, Object> result = new HashMap<QualifiedName, Object>();
-        for( PropertyDescriptor property : entityType.state().properties() )
-        {
-            QualifiedName qualifiedName = property.qualifiedName();
-            String propertyName = qualifiedName.name();
-            if( !RESTRICTED_PROPERTIES.contains( propertyName ) )
-            {
-                Attribute attribute = attrs.get( propertyName );
-                if( attribute != null )
-                {
-                    result.put( qualifiedName, attribute.get() );
-                }
-            }
-        }
-        return result;
-    }
-
-    private Map<QualifiedName, EntityReference> getAssociations( Attributes attrs, EntityDescriptor entityType )
-        throws NamingException
-    {
-        Map<QualifiedName, EntityReference> result = new HashMap<QualifiedName, EntityReference>();
-        for( AssociationDescriptor associationType : entityType.state().associations() )
-        {
-            QualifiedName qualifiedName = associationType.qualifiedName();
-            String associationName = qualifiedName.name();
-            Attribute attribute = attrs.get( associationName );
-            String identity = (String) attribute.get();
-            EntityReference entityReference = EntityReference.parseEntityReference( identity );
-            result.put( qualifiedName, entityReference );
-        }
-        return result;
-    }
-
-    private Map<QualifiedName, List<EntityReference>> getManyAssociations( Attributes attrs, EntityDescriptor entityType )
-        throws NamingException
-    {
-        Map<QualifiedName, List<EntityReference>> result = new HashMap<QualifiedName, List<EntityReference>>();
-        for( AssociationDescriptor associationType : entityType.state().manyAssociations() )
-        {
-            QualifiedName qualifiedName = associationType.qualifiedName();
-            String associationName = qualifiedName.name();
-            Attribute attribute = attrs.get( associationName );
-            String identity = (String) attribute.get();
-            EntityReference entityRef = new EntityReference( identity );
-            List<EntityReference> entry = result.get( qualifiedName );
-            if( entry == null )
-            {
-                entry = new ArrayList<EntityReference>();
-                result.put( qualifiedName, entry );
-            }
-            entry.add( entityRef );
-        }
-        return result;
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/Group.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/Group.java b/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/Group.java
deleted file mode 100644
index 39f0977..0000000
--- a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/Group.java
+++ /dev/null
@@ -1,26 +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.jndi;
-
-import org.qi4j.api.property.Property;
-
-public interface Group
-{
-    Property<String> uid();
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/GroupEntity.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/GroupEntity.java b/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/GroupEntity.java
deleted file mode 100644
index f000532..0000000
--- a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/GroupEntity.java
+++ /dev/null
@@ -1,24 +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.jndi;
-
-import org.qi4j.api.entity.EntityComposite;
-
-public interface GroupEntity extends Group, EntityComposite
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/JndiReadEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/JndiReadEntityStoreTest.java b/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/JndiReadEntityStoreTest.java
deleted file mode 100644
index 1e57060..0000000
--- a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/JndiReadEntityStoreTest.java
+++ /dev/null
@@ -1,82 +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.jndi;
-
-import org.junit.Test;
-import org.junit.Assert;
-import org.junit.Ignore;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.test.AbstractQi4jTest;
-
-import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.InitialDirContext;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-public class JndiReadEntityStoreTest extends AbstractQi4jTest
-{
-    public void assemble( ModuleAssembly module ) throws AssemblyException
-    {
-        module.services( JndiEntityStoreService.class, UuidIdentityGeneratorService.class );
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-        ModuleAssembly config = module.layer().module( "config" );
-        config.entities( JndiConfiguration.class ).visibleIn( Visibility.layer );
-        new EntityTestAssembler().assemble( config );
-
-        module.entities( UserEntity.class, GroupEntity.class );
-    }
-
-    @Test
-    @Ignore( "Requires connection to LDAP server on OPS4J that is now unavailable" )
-    public void findSaslSupportTypes()
-        throws Exception
-    {
-        // Create initial context
-        DirContext ctx = new InitialDirContext();
-
-        // Read supportedSASLMechanisms from root DSE
-        Attributes attrs = ctx.getAttributes(
-            "ldap://srv07.ops4j.org:389", new String[]{ "supportedSASLMechanisms" } );
-
-        System.out.println( attrs );
-    }
-
-    @Test
-    @Ignore
-    public void testReadNiclasFromLdap()
-        throws Exception
-    {
-        UnitOfWork uow = module.newUnitOfWork();
-        try
-        {
-            User user = uow.get( User.class, "niclas.hedhman" );
-            System.out.println( user.givenName().get() + " " + user.sn().get() );
-            Assert.assertEquals( "Niclas", user.givenName().get() );
-        }
-        finally
-        {
-            uow.discard();
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/User.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/User.java b/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/User.java
deleted file mode 100644
index a656c56..0000000
--- a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/User.java
+++ /dev/null
@@ -1,27 +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.jndi;
-
-import org.qi4j.api.property.Property;
-
-public interface User
-{
-    Property<String> sn();
-
-    Property<String> givenName();
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/UserEntity.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/UserEntity.java b/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/UserEntity.java
deleted file mode 100644
index 84ef3e5..0000000
--- a/extensions/entitystore-jndi/src/test/java/org/qi4j/entitystore/jndi/UserEntity.java
+++ /dev/null
@@ -1,24 +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.jndi;
-
-import org.qi4j.api.entity.EntityComposite;
-
-public interface UserEntity extends User, EntityComposite
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-jndi/src/test/resources/org/qi4j/entitystore/jndi/JndiEntityStoreService.properties
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jndi/src/test/resources/org/qi4j/entitystore/jndi/JndiEntityStoreService.properties b/extensions/entitystore-jndi/src/test/resources/org/qi4j/entitystore/jndi/JndiEntityStoreService.properties
deleted file mode 100644
index 3d41382..0000000
--- a/extensions/entitystore-jndi/src/test/resources/org/qi4j/entitystore/jndi/JndiEntityStoreService.properties
+++ /dev/null
@@ -1,59 +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.
-
-readOnly=true
-
-# versionAttribute=instanceVersion
-
-# qualifiedTypeAttribute
-
-# turboMode=false
-
-baseDN=ou=qi4jdev
-
-# propertyAttribute=
-
-identityAttribute=cn
-
-# authorative=false
-
-# batchSize=
-
-# controlFactories=
-
-# dnsUrl=
-
-# initialContextFactory=
-
-# language=
-
-# objectFactories=
-
-providerUrl=ldap://srv07.ops4j.org:389/dc=codedragons,dc=com
-
-# referral=
-
-# securityAuthentication=
-
-securityCredentials=HappyGoLucky
-
-securityPrincipal=cn=_tester,ou=qi4jdev,dc=codedragons,dc=com
-
-# securityProtocol=
-
-# stateFactories=
-
-# urlPkgPrefixes=

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/dev-status.xml b/extensions/entitystore-rmi/dev-status.xml
deleted file mode 100644
index 0c93156..0000000
--- a/extensions/entitystore-rmi/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/extensions/entitystore-rmi/osgi.bundle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/osgi.bundle b/extensions/entitystore-rmi/osgi.bundle
deleted file mode 100644
index 66452e5..0000000
--- a/extensions/entitystore-rmi/osgi.bundle
+++ /dev/null
@@ -1,26 +0,0 @@
-Bundle-Activator:
-
-Private-Package:
-
-Ignore-Package: com_cenqua_clover
-
-Import-Package: org.qi4j.api.composite, \
-                org.qi4j.api.common, \
-                org.qi4j.api.configuration, \
-                org.qi4j.api.entity, \
-                org.qi4j.api.injection.scope, \
-                org.qi4j.api.io, \
-                org.qi4j.api.mixin, \
-                org.qi4j.api.property, \
-                org.qi4j.api.service, \
-                org.qi4j.entitystore.map, \
-                org.qi4j.library.locking, \
-                org.qi4j.spi, \
-                org.qi4j.spi.composite, \
-                org.qi4j.spi.entity, \
-                org.qi4j.spi.entity.helpers, \
-                org.qi4j.spi.entitystore, \
-                org.qi4j.spi.service, \
-                org.qi4j.api.structure
-
-Export-Package: org.qi4j.entitystore.rmi

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/pom.xml
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/pom.xml b/extensions/entitystore-rmi/pom.xml
deleted file mode 100644
index 1a5640b..0000000
--- a/extensions/entitystore-rmi/pom.xml
+++ /dev/null
@@ -1,44 +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-extensions</artifactId>
-      <version>0-SNAPSHOT</version>
-   </parent>
-  <groupId>org.qi4j.extension</groupId>
-  <artifactId>qi4j-entitystore-rmi</artifactId>
-  <name>Qi4j Extension - EntityStore - RMI</name>
-  <packaging>jar</packaging>
-
-  <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.library</groupId>
-      <artifactId>org.qi4j.library.locking</artifactId>
-    </dependency>
-
-    <!-- For tests -->
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.testsupport</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.qi4j.core</groupId>
-      <artifactId>org.qi4j.core.runtime</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreMixin.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreMixin.java
deleted file mode 100644
index a44105b..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreMixin.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*  Copyright 2008 Rickard Öberg.
- *
- * 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.rmi;
-
-import org.qi4j.api.entity.EntityReference;
-import org.qi4j.io.Input;
-import org.qi4j.io.Output;
-import org.qi4j.spi.entitystore.EntityStoreException;
-
-import java.io.IOException;
-import java.io.Reader;
-import java.rmi.registry.LocateRegistry;
-import java.rmi.registry.Registry;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.spi.entitystore.helpers.MapEntityStore;
-
-/**
- * RMI client implementation of Entity
- */
-public class ClientRmiEntityStoreMixin
-    implements ServiceActivation, MapEntityStore
-{
-    private RemoteEntityStore remote;
-
-    // Activatable implementation
-    public void activateService()
-        throws Exception
-    {
-        Registry registry = LocateRegistry.getRegistry( "localhost" );
-        remote = (RemoteEntityStore) registry.lookup( ServerRmiEntityStoreService.class.getSimpleName() );
-    }
-
-    public void passivateService()
-        throws Exception
-    {
-        remote = null;
-    }
-
-    public Reader get( EntityReference entityReference )
-        throws EntityStoreException
-    {
-        return null;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public Input<Reader, IOException> entityStates()
-    {
-        return new Input<Reader, IOException>()
-        {
-            public <ReceiverThrowableType extends Throwable> void transferTo( Output<? super Reader, ReceiverThrowableType> output )
-                throws IOException, ReceiverThrowableType
-            {
-                // TODO Implement this
-                throw new UnsupportedOperationException( "Not supported yet." );
-            }
-        };
-    }
-
-    public void applyChanges( MapChanges changes )
-        throws IOException
-    {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreService.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreService.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreService.java
deleted file mode 100644
index f46424c..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/ClientRmiEntityStoreService.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*  Copyright 2008 Rickard Öberg.
- *
- * 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.rmi;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceActivation;
-import org.qi4j.library.locking.LockingAbstractComposite;
-import org.qi4j.spi.entitystore.EntityStore;
-
-/**
- * EntityStore service for remote access of another EntityStore.
- */
-
-@Mixins( { ClientRmiEntityStoreMixin.class } )
-public interface ClientRmiEntityStoreService
-    extends EntityStore, ServiceActivation, LockingAbstractComposite
-{
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryConfiguration.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryConfiguration.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryConfiguration.java
deleted file mode 100644
index a2eaa8b..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryConfiguration.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.qi4j.entitystore.rmi;
-
-import org.qi4j.api.configuration.ConfigurationComposite;
-import org.qi4j.api.property.Property;
-
-/**
- * JAVADOC
- */
-public interface RegistryConfiguration
-    extends ConfigurationComposite
-{
-    Property<Integer> port();
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryMixin.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryMixin.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryMixin.java
deleted file mode 100644
index 198e11f..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryMixin.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package org.qi4j.entitystore.rmi;
-
-import org.qi4j.api.common.AppliesTo;
-import org.qi4j.api.configuration.Configuration;
-import org.qi4j.api.injection.scope.This;
-import org.qi4j.api.service.ServiceActivation;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.rmi.RemoteException;
-import java.rmi.registry.LocateRegistry;
-import java.rmi.registry.Registry;
-import java.rmi.server.UnicastRemoteObject;
-
-/**
- * Create and delegate to a RMI registry.
- */
-@AppliesTo( { Registry.class, ServiceActivation.class } )
-public class RegistryMixin
-    implements InvocationHandler, ServiceActivation
-{
-    Registry registry;
-
-    @This Configuration<RegistryConfiguration> config;
-
-    public void activateService() throws Exception
-    {
-        try
-        {
-            Integer port = config.get().port().get();
-            registry = LocateRegistry.createRegistry( port );
-        }
-        catch( RemoteException e )
-        {
-            registry = LocateRegistry.getRegistry();
-        }
-    }
-
-    public void passivateService() throws Exception
-    {
-        for( String boundService : registry.list() )
-        {
-            registry.unbind( boundService );
-        }
-        UnicastRemoteObject.unexportObject( registry, true );
-    }
-
-    public Object invoke( Object o, Method method, Object[] objects ) throws Throwable
-    {
-        return method.invoke( registry, objects );
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryService.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryService.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryService.java
deleted file mode 100644
index 7adbc7d..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RegistryService.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package org.qi4j.entitystore.rmi;
-
-import org.qi4j.api.mixin.Mixins;
-import org.qi4j.api.service.ServiceActivation;
-
-import java.rmi.registry.Registry;
-
-/**
- * RMI Registry service
- */
-@Mixins( RegistryMixin.class )
-public interface RegistryService
-    extends ServiceActivation, Registry
-{
-}

http://git-wip-us.apache.org/repos/asf/zest-sandbox/blob/d4dd9c17/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RemoteEntityStore.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RemoteEntityStore.java b/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RemoteEntityStore.java
deleted file mode 100644
index 0e91190..0000000
--- a/extensions/entitystore-rmi/src/main/java/org/qi4j/entitystore/rmi/RemoteEntityStore.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package org.qi4j.entitystore.rmi;
-
-import java.io.IOException;
-import java.rmi.Remote;
-import org.qi4j.spi.entity.EntityState;
-import org.qi4j.spi.entity.QualifiedIdentity;
-import org.qi4j.spi.entitystore.ConcurrentEntityStateModificationException;
-
-/**
- * Interface for remote EntityStore
- */
-public interface RemoteEntityStore
-    extends Remote
-{
-    EntityState getEntityState( QualifiedIdentity identity )
-        throws IOException;
-
-    void prepare( Iterable<EntityState> newStates, Iterable<EntityState> loadedStates, Iterable<QualifiedIdentity> removedStates )
-        throws IOException, ConcurrentEntityStateModificationException;
-}