polygene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nic...@apache.org
Subject [08/50] [abbrv] zest-qi4j git commit: QI-318 Javadoc and assembly refinements
Date Fri, 17 Apr 2015 16:05:28 GMT
http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-riak/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/build.gradle b/extensions/entitystore-riak/build.gradle
index d5a4f3a..1066bab 100644
--- a/extensions/entitystore-riak/build.gradle
+++ b/extensions/entitystore-riak/build.gradle
@@ -3,13 +3,16 @@ description = "Qi4j Riak EntityStore Extension"
 jar { manifest { name = "Qi4j Extension - EntityStore - Riak" }}
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.locking"))
-  compile(libraries.riak)
-
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
-  
-  testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  testRuntime(libraries.logback)
+    
+    compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
+    compile(project(":org.qi4j.libraries:org.qi4j.library.locking"))
+    compile(libraries.riak)
+
+    testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
+    testCompile(project(":org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson"))
+
+    testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
+    testRuntime(libraries.logback)
+
 }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreAssembler.java b/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreAssembler.java
index f7b869a..0b6e7de 100644
--- a/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreAssembler.java
+++ b/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreAssembler.java
@@ -18,12 +18,10 @@
 package org.qi4j.entitystore.riak;
 
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 
 /**
  * Riak Http EntityStore assembly.
@@ -65,9 +63,6 @@ public class RiakHttpMapEntityStoreAssembler
         module.services( UuidIdentityGeneratorService.class ).
             visibleIn( visibility );
 
-        module.services( OrgJsonValueSerializationService.class ).
-            taggedWith( ValueSerialization.Formats.JSON );
-
         module.services( RiakMapEntityStoreService.class ).
             withMixins( RiakHttpMapEntityStoreMixin.class ).
             visibleIn( visibility );
@@ -75,5 +70,4 @@ public class RiakHttpMapEntityStoreAssembler
         configModule.entities( RiakHttpEntityStoreConfiguration.class ).
             visibleIn( configVisibility );
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreAssembler.java b/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreAssembler.java
index 76e794f..b9d3629 100644
--- a/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreAssembler.java
+++ b/extensions/entitystore-riak/src/main/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreAssembler.java
@@ -18,12 +18,10 @@
 package org.qi4j.entitystore.riak;
 
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 
 /**
  * Riak Protobuf EntityStore assembly.
@@ -66,9 +64,6 @@ public class RiakProtobufMapEntityStoreAssembler
         module.services( UuidIdentityGeneratorService.class ).
             visibleIn( visibility );
 
-        module.services( OrgJsonValueSerializationService.class ).
-            taggedWith( ValueSerialization.Formats.JSON );
-
         module.services( RiakMapEntityStoreService.class ).
             withMixins( RiakProtobufMapEntityStoreMixin.class ).
             visibleIn( visibility );
@@ -76,5 +71,4 @@ public class RiakProtobufMapEntityStoreAssembler
         configModule.entities( RiakProtobufEntityStoreConfiguration.class ).
             visibleIn( configVisibility );
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreTest.java b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreTest.java
index ea4c1f2..6ade781 100644
--- a/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreTest.java
+++ b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakHttpMapEntityStoreTest.java
@@ -22,35 +22,35 @@ import com.basho.riak.client.bucket.Bucket;
 import org.junit.Ignore;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
+import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 @Ignore( "This test is ignored because it needs a Riak instance" )
 public class RiakHttpMapEntityStoreTest
-        extends AbstractEntityStoreTest
+    extends AbstractEntityStoreTest
 {
 
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
-            throws AssemblyException
+        throws AssemblyException
     {
         // END SNIPPET: assembly
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
-        config.services( MemoryEntityStoreService.class );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
         // START SNIPPET: assembly
         new RiakHttpMapEntityStoreAssembler().withConfigModule( config ).assemble( module );
     }
     // END SNIPPET: assembly
-
     private IRiakClient riakClient;
-
     private String bucketKey;
 
     @Override
     public void setUp()
-            throws Exception
+        throws Exception
     {
         super.setUp();
         RiakMapEntityStoreService es = module.findService( RiakMapEntityStoreService.class ).get();
@@ -60,14 +60,14 @@ public class RiakHttpMapEntityStoreTest
 
     @Override
     public void tearDown()
-            throws Exception
+        throws Exception
     {
         // Riak don't expose bucket deletion in its API so we empty the Qi4j Entities bucket.
         Bucket bucket = riakClient.fetchBucket( bucketKey ).execute();
-        for ( String key : bucket.keys() ) {
+        for( String key : bucket.keys() )
+        {
             bucket.delete( key ).execute();
         }
         super.tearDown();
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreTest.java b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreTest.java
index 2b463d8..369ab32 100644
--- a/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreTest.java
+++ b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakProtobufMapEntityStoreTest.java
@@ -22,35 +22,35 @@ import com.basho.riak.client.bucket.Bucket;
 import org.junit.Ignore;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
+import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 @Ignore( "This test is ignored because it needs a Riak instance" )
 public class RiakProtobufMapEntityStoreTest
-        extends AbstractEntityStoreTest
+    extends AbstractEntityStoreTest
 {
 
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
-            throws AssemblyException
+        throws AssemblyException
     {
         // END SNIPPET: assembly
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
-        config.services( MemoryEntityStoreService.class );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
         // START SNIPPET: assembly
         new RiakProtobufMapEntityStoreAssembler().withConfigModule( config ).assemble( module );
     }
     // END SNIPPET: assembly
-
     private IRiakClient riakClient;
-
     private String bucketKey;
 
     @Override
     public void setUp()
-            throws Exception
+        throws Exception
     {
         super.setUp();
         RiakMapEntityStoreService es = module.findService( RiakMapEntityStoreService.class ).get();
@@ -60,14 +60,14 @@ public class RiakProtobufMapEntityStoreTest
 
     @Override
     public void tearDown()
-            throws Exception
+        throws Exception
     {
         // Riak don't expose bucket deletion in its API so we empty the Qi4j Entities bucket.
         Bucket bucket = riakClient.fetchBucket( bucketKey ).execute();
-        for ( String key : bucket.keys() ) {
+        for( String key : bucket.keys() )
+        {
             bucket.delete( key ).execute();
         }
         super.tearDown();
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/build.gradle b/extensions/entitystore-sql/build.gradle
index f084ebf..b3f9684 100644
--- a/extensions/entitystore-sql/build.gradle
+++ b/extensions/entitystore-sql/build.gradle
@@ -11,6 +11,7 @@ dependencies {
 
   testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
   testCompile project(":org.qi4j.libraries:org.qi4j.library.sql-dbcp")
+  testCompile(project(":org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson"))
   testCompile libraries.derby // Needed at compile time for polite test shutdown
 
   testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/main/java/org/qi4j/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/main/java/org/qi4j/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java b/extensions/entitystore-sql/src/main/java/org/qi4j/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java
index b0b65b4..ea4c2d5 100644
--- a/extensions/entitystore-sql/src/main/java/org/qi4j/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java
+++ b/extensions/entitystore-sql/src/main/java/org/qi4j/entitystore/sql/assembly/AbstractSQLEntityStoreAssembler.java
@@ -16,7 +16,6 @@ package org.qi4j.entitystore.sql.assembly;
 
 import java.io.IOException;
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -28,7 +27,6 @@ import org.qi4j.entitystore.sql.internal.DatabaseSQLServiceStatementsMixin;
 import org.qi4j.entitystore.sql.internal.DatabaseSQLStringsBuilder;
 import org.qi4j.library.sql.common.SQLConfiguration;
 import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 import org.sql.generation.api.vendor.SQLVendor;
 import org.sql.generation.api.vendor.SQLVendorProvider;
 
@@ -115,9 +113,6 @@ abstract class AbstractSQLEntityStoreAssembler<T extends AbstractSQLEntityStoreA
         module.services( SQLEntityStoreService.class,
                          UuidIdentityGeneratorService.class ).
             visibleIn( visibility );
-        module.services( OrgJsonValueSerializationService.class ).
-            taggedWith( ValueSerialization.Formats.JSON ).
-            visibleIn( visibility );
         configModule.entities( SQLConfiguration.class ).
             visibleIn( configVisibility );
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/DerbySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/DerbySQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/DerbySQLEntityStoreTest.java
index 694138e..e88d4ff 100644
--- a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/DerbySQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/DerbySQLEntityStoreTest.java
@@ -31,6 +31,7 @@ import org.qi4j.library.sql.common.SQLUtil;
 import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 public class DerbySQLEntityStoreTest
         extends AbstractEntityStoreTest
@@ -45,6 +46,7 @@ public class DerbySQLEntityStoreTest
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
 
         // START SNIPPET: assembly
         // DataSourceService

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/H2SQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/H2SQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/H2SQLEntityStoreTest.java
index 7336f82..0c257c0 100644
--- a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/H2SQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/H2SQLEntityStoreTest.java
@@ -24,6 +24,7 @@ import org.qi4j.library.sql.assembly.DataSourceAssembler;
 import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 public class H2SQLEntityStoreTest
         extends AbstractEntityStoreTest
@@ -38,6 +39,7 @@ public class H2SQLEntityStoreTest
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
 
         // START SNIPPET: assembly
         // DataSourceService

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/MySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/MySQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/MySQLEntityStoreTest.java
index 8adc857..45cd3dd 100644
--- a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/MySQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/MySQLEntityStoreTest.java
@@ -31,6 +31,7 @@ import org.qi4j.library.sql.common.SQLUtil;
 import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 @Ignore( "This test needs a MySQL instance running" )
 public class MySQLEntityStoreTest
@@ -46,6 +47,7 @@ public class MySQLEntityStoreTest
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
 
         // START SNIPPET: assembly
         // DataSourceService

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/PostgreSQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/PostgreSQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/PostgreSQLEntityStoreTest.java
index 67458ee..befb2a7 100644
--- a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/PostgreSQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/PostgreSQLEntityStoreTest.java
@@ -31,6 +31,7 @@ import org.qi4j.library.sql.common.SQLUtil;
 import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 /**
  * WARN This test is deactivated on purpose, please do not commit it activated.
@@ -76,6 +77,7 @@ public class PostgreSQLEntityStoreTest
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
 
         // START SNIPPET: assembly
         // DataSourceService

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/SQLiteEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/SQLiteEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/SQLiteEntityStoreTest.java
index 14528be..cae4f28 100644
--- a/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/SQLiteEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/qi4j/entitystore/sql/SQLiteEntityStoreTest.java
@@ -25,6 +25,7 @@ import org.qi4j.library.sql.assembly.DataSourceAssembler;
 import org.qi4j.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.qi4j.test.EntityTestAssembler;
 import org.qi4j.test.entity.AbstractEntityStoreTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 import static org.junit.Assume.assumeTrue;
 
@@ -48,6 +49,7 @@ public class SQLiteEntityStoreTest
         super.assemble( module );
         ModuleAssembly config = module.layer().module( "config" );
         new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
 
         // START SNIPPET: assembly
         // DataSourceService

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-voldemort/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-voldemort/build.gradle b/extensions/entitystore-voldemort/build.gradle
index 4e49a7b..6efd134 100644
--- a/extensions/entitystore-voldemort/build.gradle
+++ b/extensions/entitystore-voldemort/build.gradle
@@ -3,28 +3,30 @@ description = "Qi4j Voldemort EntityStore Extension"
 jar { manifest { name = "Qi4j Extension - EntityStore - Voldemort" }}
 
 repositories {
-  mavenRepo name: 'clojars-repo', url: 'http://clojars.org/repo'
-  mavenRepo name: 'oracle-repo', url: 'http://download.oracle.com/maven'
+    mavenRepo name: 'clojars-repo', url: 'http://clojars.org/repo'
+    mavenRepo name: 'oracle-repo', url: 'http://download.oracle.com/maven'
 }
 
 dependencies {
 
-  compile project(":org.qi4j.core:org.qi4j.core.bootstrap")
-  compile project(":org.qi4j.libraries:org.qi4j.library.locking")
-  compile libraries.voldemort
-  compile libraries.guava
-
-  testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
-
-  testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
-  testRuntime libraries.logback
-  testRuntime libraries.sleepycat
-  testRuntime libraries.log4j
-  testRuntime libraries.jdom
-  testRuntime libraries.velocity
-  testRuntime libraries.commons_codec
-  testRuntime libraries.commons_dbcp
-  testRuntime libraries.commons_io
-  testRuntime libraries.commons_lang
+    compile project(":org.qi4j.core:org.qi4j.core.bootstrap")
+    compile project(":org.qi4j.libraries:org.qi4j.library.locking")
+    compile libraries.voldemort
+    compile libraries.guava
+
+    testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
+    testCompile(project(":org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson"))
+
+    testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
+    testRuntime libraries.logback
+    testRuntime libraries.sleepycat
+    testRuntime libraries.log4j
+    testRuntime libraries.jdom
+    testRuntime libraries.velocity
+    testRuntime libraries.commons_codec
+    testRuntime libraries.commons_dbcp
+    testRuntime libraries.commons_io
+    testRuntime libraries.commons_lang
+
 }
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-voldemort/src/main/java/org/qi4j/entitystore/voldemort/assembly/VoldemortAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-voldemort/src/main/java/org/qi4j/entitystore/voldemort/assembly/VoldemortAssembler.java b/extensions/entitystore-voldemort/src/main/java/org/qi4j/entitystore/voldemort/assembly/VoldemortAssembler.java
index e00d8f9..63fc705 100644
--- a/extensions/entitystore-voldemort/src/main/java/org/qi4j/entitystore/voldemort/assembly/VoldemortAssembler.java
+++ b/extensions/entitystore-voldemort/src/main/java/org/qi4j/entitystore/voldemort/assembly/VoldemortAssembler.java
@@ -15,23 +15,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.qi4j.entitystore.voldemort.assembly;
 
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
-import org.qi4j.entitystore.voldemort.VoldemortConfiguration;
 import org.qi4j.entitystore.voldemort.VoldemortEntityStoreService;
 import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 
 public class VoldemortAssembler
     implements Assembler
 {
+
     private Visibility visibility;
 
     public VoldemortAssembler( Visibility visibility )
@@ -45,11 +41,5 @@ public class VoldemortAssembler
     {
         module.services( VoldemortEntityStoreService.class ).visibleIn( visibility ).instantiateOnStartup();
         module.services( UuidIdentityGeneratorService.class ).visibleIn( visibility );
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-        // FIXME Remove from here and update documentation accordingly
-        ModuleAssembly config = module.layer().module( "config" );
-        config.entities( VoldemortConfiguration.class ).visibleIn( Visibility.layer );
-        config.services( MemoryEntityStoreService.class );
-
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/entitystore-voldemort/src/test/java/org/qi4j/entitystore/voldemort/VoldemortTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-voldemort/src/test/java/org/qi4j/entitystore/voldemort/VoldemortTest.java b/extensions/entitystore-voldemort/src/test/java/org/qi4j/entitystore/voldemort/VoldemortTest.java
index aa78944..bdf8d7f 100644
--- a/extensions/entitystore-voldemort/src/test/java/org/qi4j/entitystore/voldemort/VoldemortTest.java
+++ b/extensions/entitystore-voldemort/src/test/java/org/qi4j/entitystore/voldemort/VoldemortTest.java
@@ -15,7 +15,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
 package org.qi4j.entitystore.voldemort;
 
 import org.junit.Ignore;
@@ -32,17 +31,21 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
 import java.util.Random;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
-@Ignore( "This version of Voldemort is still using Jetty 6. If we can not upgrade, we should drop support for this ES.")
-public class VoldemortTest extends AbstractEntityStoreTest
+@Ignore( "This version of Voldemort is still using Jetty 6. If we can not upgrade, we should drop support for this ES." )
+public class VoldemortTest
+    extends AbstractEntityStoreTest
 {
+
     private List<VoldemortServer> servers = new ArrayList<VoldemortServer>();
 
     @Override
     public void setUp()
         throws Exception
     {
-        Thread.sleep(200);
+        Thread.sleep( 200 );
         File voldemortHome1 = setupVoldemortHome();
         startServer( voldemortHome1, "node0.properties" );
         File voldemortHome2 = setupVoldemortHome();
@@ -66,6 +69,11 @@ public class VoldemortTest extends AbstractEntityStoreTest
         throws AssemblyException
     {
         super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        config.entities( VoldemortConfiguration.class ).visibleIn( Visibility.layer );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+
         new VoldemortAssembler( Visibility.layer ).assemble( module );
     }
 
@@ -112,5 +120,4 @@ public class VoldemortTest extends AbstractEntityStoreTest
         in.close();
         stream.close();
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/indexing-rdf/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-rdf/build.gradle b/extensions/indexing-rdf/build.gradle
index b201b63..b15ec67 100644
--- a/extensions/indexing-rdf/build.gradle
+++ b/extensions/indexing-rdf/build.gradle
@@ -9,6 +9,7 @@ dependencies {
     compile libraries.sesame
     compile libraries.commons_lang
 
+    testCompile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
     testCompile project( ':org.qi4j.extensions:org.qi4j.extension.entitystore-preferences' )
     testCompile project( ':org.qi4j.extensions:org.qi4j.extension.entitystore-jdbm' )
     testCompile project( ":org.qi4j.core:org.qi4j.core.testsupport" )

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/indexing-rdf/src/test/java/org/qi4j/index/rdf/qi95/Qi95IssueTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-rdf/src/test/java/org/qi4j/index/rdf/qi95/Qi95IssueTest.java b/extensions/indexing-rdf/src/test/java/org/qi4j/index/rdf/qi95/Qi95IssueTest.java
index 85c2db2..bbd66f4 100644
--- a/extensions/indexing-rdf/src/test/java/org/qi4j/index/rdf/qi95/Qi95IssueTest.java
+++ b/extensions/indexing-rdf/src/test/java/org/qi4j/index/rdf/qi95/Qi95IssueTest.java
@@ -17,6 +17,11 @@
  */
 package org.qi4j.index.rdf.qi95;
 
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Random;
 import org.junit.Test;
 import org.qi4j.api.common.Visibility;
 import org.qi4j.api.entity.EntityBuilder;
@@ -35,12 +40,7 @@ import org.qi4j.index.rdf.assembly.RdfMemoryStoreAssembler;
 import org.qi4j.index.rdf.assembly.RdfNativeSesameStoreAssembler;
 import org.qi4j.library.rdf.repository.NativeConfiguration;
 import org.qi4j.test.EntityTestAssembler;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Random;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 import static org.junit.Assert.assertTrue;
 
@@ -305,6 +305,7 @@ public class Qi95IssueTest
             public void assemble( ModuleAssembly module )
                 throws AssemblyException
             {
+                new OrgJsonValueSerializationAssembler().assemble( module );
                 new JdbmEntityStoreAssembler( Visibility.application ).assemble( module );
             }
         };

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/dev-status.xml b/extensions/valueserialization-jackson/dev-status.xml
index 7a7c572..5bcc65c 100644
--- a/extensions/valueserialization-jackson/dev-status.xml
+++ b/extensions/valueserialization-jackson/dev-status.xml
@@ -6,7 +6,7 @@
   <status>
     <codebase>beta</codebase>
     <!--none,early,beta,stable,mature-->
-    <documentation>none</documentation>
+    <documentation>good</documentation>
     <!-- none, brief, good, complete -->
     <unittests>complete</unittests>
     <!-- none, some, good, complete -->

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/src/main/java/org/qi4j/valueserialization/jackson/JacksonValueSerializationAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/main/java/org/qi4j/valueserialization/jackson/JacksonValueSerializationAssembler.java b/extensions/valueserialization-jackson/src/main/java/org/qi4j/valueserialization/jackson/JacksonValueSerializationAssembler.java
new file mode 100644
index 0000000..fa45eac
--- /dev/null
+++ b/extensions/valueserialization-jackson/src/main/java/org/qi4j/valueserialization/jackson/JacksonValueSerializationAssembler.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2013, Paul Merlin. 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.valueserialization.jackson;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.structure.Application;
+import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.Assembler;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.functional.Function;
+
+/**
+ * Assemble a ValueSerialization Service producing and consuming JSON documents.
+ */
+public class JacksonValueSerializationAssembler
+    implements Assembler
+{
+
+    private Visibility visibility = Visibility.module;
+    private Function<Application, Module> valuesModuleFinder;
+
+    public JacksonValueSerializationAssembler visibleIn( Visibility visibility )
+    {
+        this.visibility = visibility;
+        return this;
+    }
+
+    public JacksonValueSerializationAssembler withValuesModuleFinder( Function<Application, Module> valuesModuleFinder )
+    {
+        this.valuesModuleFinder = valuesModuleFinder;
+        return this;
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        if( valuesModuleFinder == null )
+        {
+            module.services( JacksonValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.JSON );
+        }
+        else
+        {
+            module.services( JacksonValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.JSON ).
+                setMetaInfo( valuesModuleFinder );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonCollectionSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonCollectionSerializationTest.java b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonCollectionSerializationTest.java
index 7029b83..08fd937 100644
--- a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonCollectionSerializationTest.java
+++ b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonCollectionSerializationTest.java
@@ -15,12 +15,10 @@
  */
 package org.qi4j.valueserialization.jackson;
 
-import org.junit.Ignore;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.test.value.AbstractCollectionSerializationTest;
 
-//@Ignore( "WORKS OK" )
 public class JacksonCollectionSerializationTest
     extends AbstractCollectionSerializationTest
 {
@@ -30,6 +28,6 @@ public class JacksonCollectionSerializationTest
         throws AssemblyException
     {
         super.assemble( module );
-        module.services( JacksonValueSerializationService.class );
+        new JacksonValueSerializationAssembler().assemble( module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonJsonDateFormatTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonJsonDateFormatTest.java b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonJsonDateFormatTest.java
index 583b6a1..3ec53c2 100644
--- a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonJsonDateFormatTest.java
+++ b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonJsonDateFormatTest.java
@@ -1,3 +1,18 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.jackson;
 
 import org.qi4j.bootstrap.AssemblyException;
@@ -13,6 +28,6 @@ public class JacksonJsonDateFormatTest
         throws AssemblyException
     {
         super.assemble( module );
-        module.services( JacksonValueSerializationService.class );
+        new JacksonValueSerializationAssembler().assemble( module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonPlainValueSerializationTest.java b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonPlainValueSerializationTest.java
index 793c601..0f496dc 100644
--- a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonPlainValueSerializationTest.java
+++ b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonPlainValueSerializationTest.java
@@ -23,11 +23,12 @@ public class JacksonPlainValueSerializationTest
     extends AbstractPlainValueSerializationTest
 {
 
+    // START SNIPPET: assembly
     @Override
     public void assemble( ModuleAssembly module )
         throws AssemblyException
     {
-        super.assemble( module );
-        module.services( JacksonValueSerializationService.class );
+        new JacksonValueSerializationAssembler().assemble( module );
     }
+    // END SNIPPET: assembly
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonValueCompositeSerializationTest.java b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonValueCompositeSerializationTest.java
index c823314..54479d3 100644
--- a/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonValueCompositeSerializationTest.java
+++ b/extensions/valueserialization-jackson/src/test/java/org/qi4j/valueserialization/jackson/JacksonValueCompositeSerializationTest.java
@@ -28,6 +28,6 @@ public class JacksonValueCompositeSerializationTest
         throws AssemblyException
     {
         super.assemble( module );
-        module.services( JacksonValueSerializationService.class );
+        new JacksonValueSerializationAssembler().assemble( module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/build.gradle b/extensions/valueserialization-orgjson/build.gradle
new file mode 100644
index 0000000..ec311e5
--- /dev/null
+++ b/extensions/valueserialization-orgjson/build.gradle
@@ -0,0 +1,15 @@
+description = "Qi4j org.json ValueSerialization Extension"
+
+jar { manifest { name = "Qi4j Extension - ValueSerialization - org.json" } }
+
+dependencies {
+
+    compile project(":org.qi4j.core:org.qi4j.core.bootstrap")
+
+    testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
+
+    testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
+    testRuntime libraries.logback
+
+}
+

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/dev-status.xml b/extensions/valueserialization-orgjson/dev-status.xml
new file mode 100644
index 0000000..cff4f93
--- /dev/null
+++ b/extensions/valueserialization-orgjson/dev-status.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<module xmlns="http://www.qi4j.org/schemas/2008/dev-status/1"
+        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+        xsi:schemaLocation="http://www.qi4j.org/schemas/2008/dev-status/1
+        http://www.qi4j.org/schemas/2008/dev-status/1/dev-status.xsd">
+  <status>
+    <codebase>stable</codebase>
+    <!--none,early,beta,stable,mature-->
+    <documentation>good</documentation>
+    <!-- none, brief, good, complete -->
+    <unittests>complete</unittests>
+    <!-- none, some, good, complete -->
+  </status>
+  <licenses>
+    <license>ALv2</license>
+  </licenses>
+</module>

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerializationAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerializationAssembler.java b/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerializationAssembler.java
new file mode 100644
index 0000000..bf06aaa
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/OrgJsonValueSerializationAssembler.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.orgjson;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.structure.Application;
+import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.Assembler;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.functional.Function;
+
+/**
+ * Assemble a ValueSerialization Service producing and consuming JSON documents.
+ */
+public class OrgJsonValueSerializationAssembler
+    implements Assembler
+{
+
+    private Visibility visibility = Visibility.module;
+    private Function<Application, Module> valuesModuleFinder;
+
+    public OrgJsonValueSerializationAssembler visibleIn( Visibility visibility )
+    {
+        this.visibility = visibility;
+        return this;
+    }
+
+    public OrgJsonValueSerializationAssembler withValuesModuleFinder( Function<Application, Module> valuesModuleFinder )
+    {
+        this.valuesModuleFinder = valuesModuleFinder;
+        return this;
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        if( valuesModuleFinder == null )
+        {
+            module.services( OrgJsonValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.JSON );
+        }
+        else
+        {
+            module.services( OrgJsonValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.JSON ).
+                setMetaInfo( valuesModuleFinder );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/package.html
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/package.html b/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/package.html
new file mode 100644
index 0000000..d06943b
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/main/java/org/qi4j/valueserialization/orgjson/package.html
@@ -0,0 +1,5 @@
+<html>
+    <body>
+        <h2>org.json Value Serialization.</h2>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonCollectionSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonCollectionSerializationTest.java b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonCollectionSerializationTest.java
new file mode 100644
index 0000000..f3b3ce6
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonCollectionSerializationTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.orgjson;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.value.AbstractCollectionSerializationTest;
+
+public class OrgJsonCollectionSerializationTest
+    extends AbstractCollectionSerializationTest
+{
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonDateFormatTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonDateFormatTest.java b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonDateFormatTest.java
new file mode 100644
index 0000000..8bd0da2
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonDateFormatTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.orgjson;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.value.AbstractJsonDateFormatTest;
+
+public class OrgJsonDateFormatTest
+    extends AbstractJsonDateFormatTest
+{
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonPlainValueSerializationTest.java b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonPlainValueSerializationTest.java
new file mode 100644
index 0000000..0f124e0
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonPlainValueSerializationTest.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.orgjson;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.value.AbstractPlainValueSerializationTest;
+
+public class OrgJsonPlainValueSerializationTest
+    extends AbstractPlainValueSerializationTest
+{
+
+    // START SNIPPET: assembly
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        new OrgJsonValueSerializationAssembler().assemble( module );
+    }
+    // END SNIPPET: assembly
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonValueCompositeSerializationTest.java b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonValueCompositeSerializationTest.java
new file mode 100644
index 0000000..1b2f7eb
--- /dev/null
+++ b/extensions/valueserialization-orgjson/src/test/java/org/qi4j/valueserialization/orgjson/OrgJsonValueCompositeSerializationTest.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.orgjson;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.value.AbstractValueCompositeSerializationTest;
+
+public class OrgJsonValueCompositeSerializationTest
+    extends AbstractValueCompositeSerializationTest
+{
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-stax/dev-status.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/dev-status.xml b/extensions/valueserialization-stax/dev-status.xml
index 7a7c572..5bcc65c 100644
--- a/extensions/valueserialization-stax/dev-status.xml
+++ b/extensions/valueserialization-stax/dev-status.xml
@@ -6,7 +6,7 @@
   <status>
     <codebase>beta</codebase>
     <!--none,early,beta,stable,mature-->
-    <documentation>none</documentation>
+    <documentation>good</documentation>
     <!-- none, brief, good, complete -->
     <unittests>complete</unittests>
     <!-- none, some, good, complete -->

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueSerializationAssembler.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueSerializationAssembler.java b/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueSerializationAssembler.java
new file mode 100644
index 0000000..0b4ef1d
--- /dev/null
+++ b/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueSerializationAssembler.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2012, Paul Merlin. 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.valueserialization.stax;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.structure.Application;
+import org.qi4j.api.structure.Module;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.Assembler;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.functional.Function;
+
+/**
+ * Assemble a ValueSerialization Service producing and consuming XML documents.
+ */
+public class StaxValueSerializationAssembler
+    implements Assembler
+{
+
+    private Visibility visibility = Visibility.module;
+    private Function<Application, Module> valuesModuleFinder;
+
+    public StaxValueSerializationAssembler visibleIn( Visibility visibility )
+    {
+        this.visibility = visibility;
+        return this;
+    }
+
+    public StaxValueSerializationAssembler withValuesModuleFinder( Function<Application, Module> valuesModuleFinder )
+    {
+        this.valuesModuleFinder = valuesModuleFinder;
+        return this;
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        if( valuesModuleFinder == null )
+        {
+            module.services( StaxValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.XML );
+        }
+        else
+        {
+            module.services( StaxValueSerializationService.class ).
+                visibleIn( visibility ).
+                taggedWith( ValueSerialization.Formats.XML ).
+                setMetaInfo( valuesModuleFinder );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxCollectionSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxCollectionSerializationTest.java b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxCollectionSerializationTest.java
index 1079e7f..1b8f109 100644
--- a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxCollectionSerializationTest.java
+++ b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxCollectionSerializationTest.java
@@ -28,6 +28,6 @@ public class StaxCollectionSerializationTest
         throws AssemblyException
     {
         super.assemble( module );
-        module.services( StaxValueSerializationService.class );
+        new StaxValueSerializationAssembler().assemble( module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxPlainValueSerializationTest.java b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxPlainValueSerializationTest.java
index f318314..3389e48 100644
--- a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxPlainValueSerializationTest.java
+++ b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxPlainValueSerializationTest.java
@@ -23,11 +23,12 @@ public class StaxPlainValueSerializationTest
     extends AbstractPlainValueSerializationTest
 {
 
+    // START SNIPPET: assembly
     @Override
     public void assemble( ModuleAssembly module )
         throws AssemblyException
     {
-        super.assemble( module );
-        module.services( StaxValueSerializationService.class );
+        new StaxValueSerializationAssembler().assemble( module );
     }
+    // END SNIPPET: assembly
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxValueCompositeSerializationTest.java b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxValueCompositeSerializationTest.java
index 2fcac14..dd37660 100644
--- a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxValueCompositeSerializationTest.java
+++ b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxValueCompositeSerializationTest.java
@@ -28,6 +28,6 @@ public class StaxValueCompositeSerializationTest
         throws AssemblyException
     {
         super.assemble( module );
-        module.services( StaxValueSerializationService.class );
+        new StaxValueSerializationAssembler().assemble( module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/eventsourcing-jdbm/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-jdbm/build.gradle b/libraries/eventsourcing-jdbm/build.gradle
index ec181a3..1ca9ae3 100644
--- a/libraries/eventsourcing-jdbm/build.gradle
+++ b/libraries/eventsourcing-jdbm/build.gradle
@@ -9,6 +9,7 @@ dependencies {
   compile(libraries.jdbm)
 
   testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
+  testCompile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
 
   testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
   testRuntime(libraries.logback)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/eventsourcing-jdbm/src/test/java/org/qi4j/library/eventsourcing/domain/source/jdbm/JdbmEventStoreServiceTest.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-jdbm/src/test/java/org/qi4j/library/eventsourcing/domain/source/jdbm/JdbmEventStoreServiceTest.java b/libraries/eventsourcing-jdbm/src/test/java/org/qi4j/library/eventsourcing/domain/source/jdbm/JdbmEventStoreServiceTest.java
index 2d4cae8..0068c5f 100644
--- a/libraries/eventsourcing-jdbm/src/test/java/org/qi4j/library/eventsourcing/domain/source/jdbm/JdbmEventStoreServiceTest.java
+++ b/libraries/eventsourcing-jdbm/src/test/java/org/qi4j/library/eventsourcing/domain/source/jdbm/JdbmEventStoreServiceTest.java
@@ -14,6 +14,8 @@
 
 package org.qi4j.library.eventsourcing.domain.source.jdbm;
 
+import java.io.IOException;
+import java.security.Principal;
 import org.junit.Test;
 import org.qi4j.api.common.UseDefaults;
 import org.qi4j.api.entity.EntityComposite;
@@ -38,18 +40,12 @@ import org.qi4j.library.eventsourcing.domain.source.EventSource;
 import org.qi4j.library.fileconfig.FileConfigurationService;
 import org.qi4j.test.AbstractQi4jTest;
 import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
-import java.io.IOException;
-import java.security.Principal;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-/**
- * JAVADOC
- */
 public class JdbmEventStoreServiceTest
         extends AbstractQi4jTest
     {
+        @Override
         public void assemble( ModuleAssembly module ) throws AssemblyException
         {
             module.layer().application().setName( "JDBMEventStoreTest" );
@@ -58,7 +54,7 @@ public class JdbmEventStoreServiceTest
 
             module.values( DomainEventValue.class, UnitOfWorkDomainEventsValue.class );
             module.services( FileConfigurationService.class );
-            module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+            new OrgJsonValueSerializationAssembler().assemble( module );
             module.services( JdbmEventStoreService.class );
             module.services( DomainEventFactoryService.class );
             module.importedServices( CurrentUserUoWPrincipal.class ).importedBy( ImportedServiceDeclaration.NEW_OBJECT );
@@ -101,7 +97,7 @@ public class JdbmEventStoreServiceTest
                         }
                     }, Outputs.systemOut() ));
         }
-        
+
         @Mixins( TestEntity.Mixin.class )
         public interface TestEntity
             extends EntityComposite

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rdf/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rdf/build.gradle b/libraries/rdf/build.gradle
index 3f3dc38..135a83b 100644
--- a/libraries/rdf/build.gradle
+++ b/libraries/rdf/build.gradle
@@ -17,6 +17,7 @@ dependencies {
 //  compile("org.openrdf.sesame:sesame-sail-rdbms:$rdfVersion")
 
   testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
+  testCompile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
 
   testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
   testRuntime(libraries.logback)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rdf/src/test/java/org/qi4j/library/rdf/entity/EntitySerializerTest.java
----------------------------------------------------------------------
diff --git a/libraries/rdf/src/test/java/org/qi4j/library/rdf/entity/EntitySerializerTest.java b/libraries/rdf/src/test/java/org/qi4j/library/rdf/entity/EntitySerializerTest.java
index 33ae781..d31a928 100644
--- a/libraries/rdf/src/test/java/org/qi4j/library/rdf/entity/EntitySerializerTest.java
+++ b/libraries/rdf/src/test/java/org/qi4j/library/rdf/entity/EntitySerializerTest.java
@@ -27,7 +27,6 @@ import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
 import org.qi4j.api.usecase.UsecaseBuilder;
 import org.qi4j.api.value.ValueBuilder;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.entitystore.memory.MemoryEntityStoreService;
@@ -37,7 +36,8 @@ import org.qi4j.library.rdf.serializer.RdfXmlSerializer;
 import org.qi4j.spi.entity.EntityState;
 import org.qi4j.spi.entitystore.EntityStore;
 import org.qi4j.test.AbstractQi4jTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 /**
  * JAVADOC
@@ -50,8 +50,9 @@ public class EntitySerializerTest
 
     public void assemble( ModuleAssembly module ) throws AssemblyException
     {
-        module.services( MemoryEntityStoreService.class );
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+        new EntityTestAssembler().assemble( module );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+
         module.entities( TestEntity.class );
         module.values( TestValue.class, Test2Value.class );
         module.objects( EntityStateSerializer.class, EntitySerializerTest.class );

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-client/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest-client/build.gradle b/libraries/rest-client/build.gradle
index be74bc6..ab9fa12 100644
--- a/libraries/rest-client/build.gradle
+++ b/libraries/rest-client/build.gradle
@@ -3,13 +3,16 @@ description = "Qi4j REST Client Library provides a client library for the Qi4j R
 jar { manifest { name = "Qi4j Library - REST Client" }}
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.api"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.rest-common"))
-  compile(libraries.restlet)
 
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
-  testCompile(project(":org.qi4j.libraries:org.qi4j.library.rest-server"))
+    compile project( ":org.qi4j.core:org.qi4j.core.api" )
+    compile project( ":org.qi4j.libraries:org.qi4j.library.rest-common" )
+    compile libraries.restlet
+
+    testCompile project( ":org.qi4j.core:org.qi4j.core.testsupport" )
+    testCompile project( ":org.qi4j.libraries:org.qi4j.library.rest-server" )
+    testCompile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
+
+    testRuntime project( ":org.qi4j.core:org.qi4j.core.runtime" )
+    testRuntime libraries.logback
 
-  testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  testRuntime(libraries.logback)
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-client/src/main/java/org/qi4j/library/rest/client/ClientAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/rest-client/src/main/java/org/qi4j/library/rest/client/ClientAssembler.java b/libraries/rest-client/src/main/java/org/qi4j/library/rest/client/ClientAssembler.java
index f881721..c1ea6dc 100644
--- a/libraries/rest-client/src/main/java/org/qi4j/library/rest/client/ClientAssembler.java
+++ b/libraries/rest-client/src/main/java/org/qi4j/library/rest/client/ClientAssembler.java
@@ -18,7 +18,6 @@
 package org.qi4j.library.rest.client;
 
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
@@ -29,7 +28,6 @@ import org.qi4j.library.rest.client.requestwriter.ValueCompositeRequestWriter;
 import org.qi4j.library.rest.client.responsereader.DefaultResponseReader;
 import org.qi4j.library.rest.client.responsereader.JSONResponseReader;
 import org.qi4j.library.rest.client.responsereader.TableResponseReader;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 
 /**
  * JAVADOC
@@ -50,7 +48,5 @@ public class ClientAssembler
       module.objects(RequestWriterDelegator.class,
             FormRequestWriter.class,
             ValueCompositeRequestWriter.class).visibleIn(Visibility.application);
-
-      module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
    }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContextResourceClientFactoryTest.java
----------------------------------------------------------------------
diff --git a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContextResourceClientFactoryTest.java b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContextResourceClientFactoryTest.java
index 30c1560..fd9f274 100644
--- a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContextResourceClientFactoryTest.java
+++ b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContextResourceClientFactoryTest.java
@@ -2,9 +2,7 @@ package org.qi4j.library.rest.client;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.Arrays;
 import java.util.Collections;
-import java.util.List;
 import org.hamcrest.CoreMatchers;
 import org.junit.After;
 import org.junit.Assert;
@@ -55,6 +53,7 @@ import org.qi4j.library.rest.server.assembler.RestServerAssembler;
 import org.qi4j.library.rest.server.restlet.NullCommandResult;
 import org.qi4j.library.rest.server.spi.CommandResult;
 import org.qi4j.test.AbstractQi4jTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 import org.restlet.Client;
 import org.restlet.Request;
 import org.restlet.Response;
@@ -74,9 +73,6 @@ import org.restlet.service.MetadataService;
 import static org.qi4j.bootstrap.ImportedServiceDeclaration.*;
 import static org.qi4j.library.rest.client.api.HandlerCommand.*;
 
-/**
- * TODO
- */
 public class ContextResourceClientFactoryTest
     extends AbstractQi4jTest
 {
@@ -90,8 +86,8 @@ public class ContextResourceClientFactoryTest
         throws AssemblyException
     {
         // General setup of client and server
+        new OrgJsonValueSerializationAssembler().assemble( module );
         new ClientAssembler().assemble( module );
-
         new ValueAssembler().assemble( module );
         new RestServerAssembler().assemble( module );
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContinuousIntegrationTest.java
----------------------------------------------------------------------
diff --git a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContinuousIntegrationTest.java b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContinuousIntegrationTest.java
index 78d929d..432b21d 100644
--- a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContinuousIntegrationTest.java
+++ b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/ContinuousIntegrationTest.java
@@ -33,6 +33,7 @@ import org.qi4j.library.rest.server.assembler.RestServerAssembler;
 import org.qi4j.library.rest.server.restlet.NullCommandResult;
 import org.qi4j.library.rest.server.spi.CommandResult;
 import org.qi4j.test.AbstractQi4jTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 import org.restlet.Client;
 import org.restlet.Request;
 import org.restlet.Response;
@@ -68,8 +69,8 @@ public class ContinuousIntegrationTest
         throws AssemblyException
     {
         // General setup of client and server
+        new OrgJsonValueSerializationAssembler().assemble( module );
         new ClientAssembler().assemble( module );
-
         new ValueAssembler().assemble( module );
         new RestServerAssembler().assemble( module );
 

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/RssReaderTest.java
----------------------------------------------------------------------
diff --git a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/RssReaderTest.java b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/RssReaderTest.java
index 7f1924e..76eb8a2 100644
--- a/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/RssReaderTest.java
+++ b/libraries/rest-client/src/test/java/org/qi4j/library/rest/client/RssReaderTest.java
@@ -16,13 +16,13 @@ import org.qi4j.library.rest.client.api.ContextResourceClient;
 import org.qi4j.library.rest.client.api.ContextResourceClientFactory;
 import org.qi4j.library.rest.client.api.ErrorHandler;
 import org.qi4j.library.rest.client.api.HandlerCommand;
-import org.qi4j.library.rest.client.spi.NullResponseHandler;
 import org.qi4j.library.rest.client.spi.ResponseHandler;
 import org.qi4j.library.rest.client.spi.ResponseReader;
 import org.qi4j.library.rest.client.spi.ResultHandler;
 import org.qi4j.library.rest.common.ValueAssembler;
 import org.qi4j.library.rest.common.link.Link;
 import org.qi4j.test.AbstractQi4jTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 import org.restlet.Client;
 import org.restlet.Response;
 import org.restlet.data.Protocol;
@@ -48,6 +48,7 @@ public class RssReaderTest
         throws AssemblyException
     {
         // General setup of client
+        new OrgJsonValueSerializationAssembler().assemble( module );
         new ClientAssembler().assemble( module );
         new ValueAssembler().assemble( module );
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest-server/src/main/java/org/qi4j/library/rest/server/assembler/RestServerAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/rest-server/src/main/java/org/qi4j/library/rest/server/assembler/RestServerAssembler.java b/libraries/rest-server/src/main/java/org/qi4j/library/rest/server/assembler/RestServerAssembler.java
index a9ed19c..d21a3cf 100644
--- a/libraries/rest-server/src/main/java/org/qi4j/library/rest/server/assembler/RestServerAssembler.java
+++ b/libraries/rest-server/src/main/java/org/qi4j/library/rest/server/assembler/RestServerAssembler.java
@@ -22,7 +22,6 @@ import java.util.Properties;
 import org.apache.velocity.app.VelocityEngine;
 import org.qi4j.api.common.Visibility;
 import org.qi4j.api.service.importer.NewObjectImporter;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ClassScanner;
@@ -36,7 +35,6 @@ import org.qi4j.library.rest.server.restlet.requestreader.DefaultRequestReader;
 import org.qi4j.library.rest.server.restlet.responsewriter.AbstractResponseWriter;
 import org.qi4j.library.rest.server.restlet.responsewriter.DefaultResponseWriter;
 import org.qi4j.library.rest.server.spi.ResponseWriter;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 import org.restlet.service.MetadataService;
 
 import static org.qi4j.api.util.Classes.hasModifier;
@@ -109,7 +107,5 @@ public class RestServerAssembler
 
         // Standard request readers
         module.objects( DefaultRequestReader.class );
-
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest/build.gradle b/libraries/rest/build.gradle
index 4c2ab78..6c5422b 100644
--- a/libraries/rest/build.gradle
+++ b/libraries/rest/build.gradle
@@ -3,18 +3,21 @@ description = "Qi4j REST Library provides various Restlet resources that can be
 jar { manifest { name = "Qi4j Library - REST" }}
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.api"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.rdf"))
-  compile(project(':org.qi4j.extensions:org.qi4j.extension.indexing-rdf'))
-  compile(libraries.restlet)
-  compile(libraries.sparql)
-  compile(libraries.velocity)
-  compile(libraries.servlet_api)
 
-  testCompile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
-  testCompile(project(":org.qi4j.libraries:org.qi4j.library.http"))
-  testCompile libraries.http_client
+    compile project( ":org.qi4j.core:org.qi4j.core.api" )
+    compile project( ":org.qi4j.libraries:org.qi4j.library.rdf" )
+    compile project( ':org.qi4j.extensions:org.qi4j.extension.indexing-rdf' )
+    compile libraries.restlet
+    compile libraries.sparql
+    compile libraries.velocity
+    compile libraries.servlet_api
+
+    testCompile project( ":org.qi4j.core:org.qi4j.core.testsupport" )
+    testCompile project( ":org.qi4j.libraries:org.qi4j.library.http" )
+    testCompile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
+    testCompile libraries.http_client
+
+    testRuntime project( ":org.qi4j.core:org.qi4j.core.runtime" )
+    testRuntime libraries.logback
 
-  testRuntime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  testRuntime(libraries.logback)
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest/src/main/java/org/qi4j/library/rest/admin/RestAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/rest/src/main/java/org/qi4j/library/rest/admin/RestAssembler.java b/libraries/rest/src/main/java/org/qi4j/library/rest/admin/RestAssembler.java
index 942c0cd..41de415 100644
--- a/libraries/rest/src/main/java/org/qi4j/library/rest/admin/RestAssembler.java
+++ b/libraries/rest/src/main/java/org/qi4j/library/rest/admin/RestAssembler.java
@@ -17,7 +17,6 @@ import org.qi4j.api.common.Visibility;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
 
 public class RestAssembler
     implements Assembler
@@ -44,6 +43,5 @@ public class RestAssembler
                         EntityResource.class,
                         IndexResource.class,
                         SPARQLResource.class );
-        module.services( OrgJsonValueSerializationService.class ).visibleIn( Visibility.module );
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RDFAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RDFAssembler.java b/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RDFAssembler.java
index cc17df6..9d3ce77 100644
--- a/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RDFAssembler.java
+++ b/libraries/rest/src/test/java/org/qi4j/library/rest/admin/RDFAssembler.java
@@ -15,13 +15,12 @@
 package org.qi4j.library.rest.admin;
 
 import org.qi4j.api.common.Visibility;
-import org.qi4j.api.value.ValueSerialization;
 import org.qi4j.bootstrap.Assembler;
 import org.qi4j.bootstrap.AssemblyException;
 import org.qi4j.bootstrap.ModuleAssembly;
 import org.qi4j.library.rdf.entity.EntityStateSerializer;
 import org.qi4j.library.rdf.entity.EntityTypeSerializer;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 /**
  * JAVADOC
@@ -32,7 +31,7 @@ class RDFAssembler
     public void assemble( ModuleAssembly module )
         throws AssemblyException
     {
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+        new OrgJsonValueSerializationAssembler().assemble( module );
         module.objects( EntityStateSerializer.class ).visibleIn( Visibility.application );
         module.objects( EntityTypeSerializer.class ).visibleIn( Visibility.application );
     }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/samples/dci-cargo/dcisample_a/build.gradle
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_a/build.gradle b/samples/dci-cargo/dcisample_a/build.gradle
index 81ef4a3..9d4f076 100644
--- a/samples/dci-cargo/dcisample_a/build.gradle
+++ b/samples/dci-cargo/dcisample_a/build.gradle
@@ -8,6 +8,7 @@ dependencies {
   compile(project(":org.qi4j.libraries:org.qi4j.library.constraints"))
   compile(project(":org.qi4j.libraries:org.qi4j.library.conversion"))
   compile(project(":org.qi4j.libraries:org.qi4j.library.rdf"))
+  compile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
   compile(project(":org.qi4j.extensions:org.qi4j.extension.indexing-rdf"))
   compile(project(":org.qi4j.tools:org.qi4j.tool.envisage"))
   compile(libraries.jetty_webapp)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/samples/dci-cargo/dcisample_b/build.gradle
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/build.gradle b/samples/dci-cargo/dcisample_b/build.gradle
index 2d50a9f..79e0072 100644
--- a/samples/dci-cargo/dcisample_b/build.gradle
+++ b/samples/dci-cargo/dcisample_b/build.gradle
@@ -8,6 +8,7 @@ dependencies {
   compile(project(":org.qi4j.libraries:org.qi4j.library.constraints"))
   compile(project(":org.qi4j.libraries:org.qi4j.library.conversion"))
   compile(project(":org.qi4j.libraries:org.qi4j.library.rdf"))
+  compile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
   compile(project(":org.qi4j.extensions:org.qi4j.extension.indexing-rdf"))
   compile(project(":org.qi4j.tools:org.qi4j.tool.envisage"))
   compile(libraries.jetty_webapp)

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
index 1838cb3..a8c61db 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -69,6 +69,7 @@ include "core:functional",
         'extensions:metrics-yammer',
         'extensions:migration',
         'extensions:reindexer',
+        'extensions:valueserialization-orgjson',
         'extensions:valueserialization-jackson',
         'extensions:valueserialization-stax',
         'manual',

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/tests/performance/build.gradle
----------------------------------------------------------------------
diff --git a/tests/performance/build.gradle b/tests/performance/build.gradle
index 46e5ebd..c88fa61 100644
--- a/tests/performance/build.gradle
+++ b/tests/performance/build.gradle
@@ -3,20 +3,17 @@ description = "Qi4j Performance Test Suite for Entity Stores."
 jar { manifest { name = "Qi4j Performance Test - EntityStores" }}
 
 dependencies {
-  compile(project(":org.qi4j.core:org.qi4j.core.api"))
-  compile(project(":org.qi4j.core:org.qi4j.core.bootstrap"))
-  compile(project(":org.qi4j.core:org.qi4j.core.testsupport"))
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.entitystore-jdbm"))
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.entitystore-sql"))
-  compile(project(":org.qi4j.libraries:org.qi4j.library.sql-dbcp"))
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.cache-ehcache"))
-  compile(libraries.derby)
-  compile(project(":org.qi4j.extensions:org.qi4j.extension.indexing-rdf"))
-  compile(libraries.slf4j_api)
 
-  runtime(project(":org.qi4j.core:org.qi4j.core.spi"))
-  runtime(project(":org.qi4j.core:org.qi4j.core.runtime"))
-  runtime(libraries.asm)
-  runtime(libraries.asm_commons)
-  runtime(libraries.slf4j_simple)
+    compile project( ":org.qi4j.core:org.qi4j.core.testsupport" )
+    compile project( ":org.qi4j.libraries:org.qi4j.library.sql-dbcp" )
+    compile project( ':org.qi4j.extensions:org.qi4j.extension.valueserialization-orgjson' )
+    compile project( ":org.qi4j.extensions:org.qi4j.extension.entitystore-jdbm" )
+    compile project( ":org.qi4j.extensions:org.qi4j.extension.entitystore-sql" )
+    compile project( ":org.qi4j.extensions:org.qi4j.extension.cache-ehcache" )
+    compile project( ":org.qi4j.extensions:org.qi4j.extension.indexing-rdf" )
+    compile libraries.derby
+
+    runtime project(":org.qi4j.core:org.qi4j.core.runtime")
+    runtime libraries.logback
+
 }

http://git-wip-us.apache.org/repos/asf/zest-qi4j/blob/bb5fcda3/tests/performance/src/main/java/org/qi4j/test/performance/entitystore/memory/MemoryEntityStorePerformanceTest.java
----------------------------------------------------------------------
diff --git a/tests/performance/src/main/java/org/qi4j/test/performance/entitystore/memory/MemoryEntityStorePerformanceTest.java b/tests/performance/src/main/java/org/qi4j/test/performance/entitystore/memory/MemoryEntityStorePerformanceTest.java
index fa73d62..2905ee2 100644
--- a/tests/performance/src/main/java/org/qi4j/test/performance/entitystore/memory/MemoryEntityStorePerformanceTest.java
+++ b/tests/performance/src/main/java/org/qi4j/test/performance/entitystore/memory/MemoryEntityStorePerformanceTest.java
@@ -26,11 +26,12 @@ import org.qi4j.entitystore.memory.MemoryEntityStoreService;
 import org.qi4j.spi.entitystore.helpers.MapEntityStoreMixin;
 import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
 import org.qi4j.test.performance.entitystore.model.AbstractEntityStorePerformanceTest;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
 
 public class MemoryEntityStorePerformanceTest
     extends AbstractEntityStorePerformanceTest
 {
+
     public MemoryEntityStorePerformanceTest()
     {
         super( "MemoryEntityStore", createAssembler() );
@@ -46,7 +47,7 @@ public class MemoryEntityStorePerformanceTest
                 module.services( MemoryEntityStoreService.class );
 //                module.services( MemoryEntityStoreService2.class );
                 module.services( UuidIdentityGeneratorService.class );
-                module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+                new OrgJsonValueSerializationAssembler().assemble( module );
             }
         };
     }
@@ -57,4 +58,5 @@ public class MemoryEntityStorePerformanceTest
         extends MemoryEntityStoreService
     {
     }
+
 }


Mime
View raw message