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/07/28 14:54:58 UTC

[01/50] zest-java git commit: Merge Tibor Mlynarik work on EventSourcing documentation from Github pull-request

Repository: zest-java
Updated Branches:
  refs/heads/master 74ee70365 -> c81602d89
Updated Tags:  refs/tags/2.1-RC1 [created] a6b6c8892


Merge Tibor Mlynarik work on EventSourcing documentation from Github pull-request

See https://github.com/apache/zest-qi4j/pull/1


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/80c28954
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/80c28954
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/80c28954

Branch: refs/heads/master
Commit: 80c2895448866a191f3f21e8c92eb5513465b704
Parents: 294aa1d 6c0e59f
Author: Paul Merlin <pa...@apache.org>
Authored: Sun Jul 19 18:04:41 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sun Jul 19 18:04:41 2015 +0200

----------------------------------------------------------------------
 .../src/docs/eventsourcing-jdbm.txt             |  31 ---
 .../src/docs/eventsourcing-rest.txt             |  32 ---
 .../eventsourcing/src/docs/eventsourcing.txt    | 104 +++++++++-
 .../factory/ApplicationEventFactoryService.java |   6 +-
 .../MemoryApplicationEventStoreService.java     | 132 ++++++++++++
 .../bootstrap/EventsourcingAssembler.java       |  68 ++++++
 .../application/ApplicationEventTest.java       | 206 +++++++++++++++++++
 .../eventsourcing/domain/DomainEventTest.java   |  18 +-
 8 files changed, 525 insertions(+), 72 deletions(-)
----------------------------------------------------------------------



[42/50] zest-java git commit: ZEST-107 TestSupport: add MemoryCachePoolService for testing purpose

Posted by pa...@apache.org.
ZEST-107 TestSupport: add MemoryCachePoolService for testing purpose


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/ef1dcd50
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/ef1dcd50
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/ef1dcd50

Branch: refs/heads/master
Commit: ef1dcd503ef666b306c283f2627b3728bb8459e6
Parents: 12622af
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 16:28:00 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:02 2015 +0200

----------------------------------------------------------------------
 core/testsupport/build.gradle                   |   4 +-
 .../org/qi4j/test/cache/MemoryCacheImpl.java    | 142 +++++++++++++++++++
 .../qi4j/test/cache/MemoryCachePoolMixin.java   |  82 +++++++++++
 .../qi4j/test/cache/MemoryCachePoolService.java |  37 +++++
 .../org/qi4j/test/cache/MemoryCacheTest.java    |  32 +++++
 5 files changed, 296 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/ef1dcd50/core/testsupport/build.gradle
----------------------------------------------------------------------
diff --git a/core/testsupport/build.gradle b/core/testsupport/build.gradle
index 7fc088a..2f0af58 100644
--- a/core/testsupport/build.gradle
+++ b/core/testsupport/build.gradle
@@ -24,4 +24,6 @@ dependencies {
   compile project( ':org.qi4j.core:org.qi4j.core.bootstrap' )
   compile libraries.junit
 
-}
\ No newline at end of file
+  testRuntime project( ':org.qi4j.core:org.qi4j.core.runtime' )
+
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ef1dcd50/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCacheImpl.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCacheImpl.java b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCacheImpl.java
new file mode 100644
index 0000000..18a99c8
--- /dev/null
+++ b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCacheImpl.java
@@ -0,0 +1,142 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.test.cache;
+
+import java.util.concurrent.ConcurrentHashMap;
+import org.qi4j.spi.cache.Cache;
+
+/**
+ * In-Memory Cache implementation based on ConcurrentHashMap.
+ */
+public class MemoryCacheImpl<T>
+    implements Cache<T>
+{
+    private int refCount;
+
+    private final ConcurrentHashMap<String, Object> backingCache;
+    private final Class<T> valueType;
+    private final String id;
+
+    private int gets;
+    private int removes;
+    private int puts;
+    private int exists;
+
+    public MemoryCacheImpl( String cacheId, ConcurrentHashMap<String, Object> cache, Class<T> valueType )
+    {
+        this.id = cacheId;
+        this.backingCache = cache;
+        this.valueType = valueType;
+    }
+
+    @Override
+    public T get( String key )
+    {
+        try
+        {
+            return valueType.cast( backingCache.get( key ) );
+        }
+        finally
+        {
+            gets++;
+        }
+    }
+
+    @Override
+    public T remove( String key )
+    {
+        try
+        {
+            return valueType.cast( backingCache.remove( key ) );
+        }
+        finally
+        {
+            removes++;
+        }
+    }
+
+    @Override
+    public void put( String key, T value )
+    {
+        try
+        {
+            backingCache.put( key, value );
+        }
+        finally
+        {
+            puts++;
+        }
+    }
+
+    @Override
+    public boolean exists( String key )
+    {
+        try
+        {
+            return backingCache.containsKey( key );
+        }
+        finally
+        {
+            exists++;
+        }
+    }
+
+    synchronized void decRefCount()
+    {
+        refCount--;
+    }
+
+    synchronized void incRefCount()
+    {
+        refCount++;
+    }
+
+    synchronized boolean isNotUsed()
+    {
+        return refCount == 0;
+    }
+
+    public String cacheId()
+    {
+        return id;
+    }
+
+    public int size()
+    {
+        return backingCache.size();
+    }
+
+    public int gets()
+    {
+        return gets;
+    }
+
+    public int removes()
+    {
+        return removes;
+    }
+
+    public int puts()
+    {
+        return puts;
+    }
+
+    public int exists()
+    {
+        return exists;
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ef1dcd50/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolMixin.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolMixin.java b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolMixin.java
new file mode 100644
index 0000000..cc9e014
--- /dev/null
+++ b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolMixin.java
@@ -0,0 +1,82 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.test.cache;
+
+import java.util.concurrent.ConcurrentHashMap;
+import org.qi4j.api.util.NullArgumentException;
+import org.qi4j.spi.cache.Cache;
+
+import static org.qi4j.functional.Iterables.single;
+
+/**
+ * In-Memory CachePool Mixin based on ConcurrentHashMap.
+ */
+public abstract class MemoryCachePoolMixin
+    implements MemoryCachePoolService
+{
+    private final ConcurrentHashMap<String, MemoryCacheImpl<?>> caches = new ConcurrentHashMap<>();
+
+    @Override
+    public <T> Cache<T> fetchCache( String cacheId, Class<T> valueType )
+    {
+        NullArgumentException.validateNotEmpty( "cacheId", cacheId );
+        MemoryCacheImpl<?> cache = caches.get( cacheId );
+        if( cache == null )
+        {
+            cache = createNewCache( cacheId, valueType );
+            caches.put( cacheId, cache );
+        }
+        cache.incRefCount();
+        return (Cache<T>) cache;
+    }
+
+    private <T> MemoryCacheImpl<T> createNewCache( String cacheId, Class<T> valueType )
+    {
+        return new MemoryCacheImpl<>( cacheId, new ConcurrentHashMap<String, Object>(), valueType );
+    }
+
+    @Override
+    public void returnCache( Cache<?> cache )
+    {
+        MemoryCacheImpl<?> memory = (MemoryCacheImpl<?>) cache;
+        memory.decRefCount();
+        if( memory.isNotUsed() )
+        {
+            caches.remove( memory.cacheId() );
+        }
+    }
+
+    @Override
+    public void activateService()
+        throws Exception
+    {
+        caches.clear();
+    }
+
+    @Override
+    public void passivateService()
+        throws Exception
+    {
+        caches.clear();
+    }
+
+    @Override
+    public MemoryCacheImpl<?> singleCache()
+    {
+        return single( caches.values() );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ef1dcd50/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolService.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolService.java b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolService.java
new file mode 100644
index 0000000..66b5c94
--- /dev/null
+++ b/core/testsupport/src/main/java/org/qi4j/test/cache/MemoryCachePoolService.java
@@ -0,0 +1,37 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.test.cache;
+
+import org.qi4j.api.mixin.Mixins;
+import org.qi4j.api.service.ServiceActivation;
+import org.qi4j.spi.cache.CachePool;
+
+/**
+ * In-Memory CachePool Service.
+ */
+@Mixins( MemoryCachePoolMixin.class )
+public interface MemoryCachePoolService
+    extends CachePool, ServiceActivation
+{
+    /**
+     * Get the single Cache of this CachePool.
+     *
+     * @return The single Cache of this CachePool
+     * @throws IllegalArgumentException if no or more than one Cache is present in the CachePool
+     */
+    MemoryCacheImpl<?> singleCache();
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ef1dcd50/core/testsupport/src/test/java/org/qi4j/test/cache/MemoryCacheTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/test/java/org/qi4j/test/cache/MemoryCacheTest.java b/core/testsupport/src/test/java/org/qi4j/test/cache/MemoryCacheTest.java
new file mode 100644
index 0000000..1bbd6cf
--- /dev/null
+++ b/core/testsupport/src/test/java/org/qi4j/test/cache/MemoryCacheTest.java
@@ -0,0 +1,32 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.test.cache;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.cache.AbstractCachePoolTest;
+
+public class MemoryCacheTest
+    extends AbstractCachePoolTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.services( MemoryCachePoolService.class );
+    }
+}


[14/50] zest-java git commit: Build: minor edits, mostly documentation

Posted by pa...@apache.org.
Build: minor edits, mostly documentation


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/80986670
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/80986670
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/80986670

Branch: refs/heads/master
Commit: 80986670d3dad9a764eeeae96b77a73b9b9dc523
Parents: 8938d54
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 17:45:49 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 17:45:49 2015 +0200

----------------------------------------------------------------------
 build.gradle | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/80986670/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 9dd16a3..84c43e0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -268,14 +268,16 @@ allprojects {
   project.ext {
     javaDir = new File( "$projectDir/src/main/java" )
     scalaDir = new File( "$projectDir/src/main/scala" )
+    groovyDir = new File( "$projectDir/src/main/groovy")
     documentationDir = new File( "$projectDir/src/docs" )
     testJavaDir = new File( "$projectDir/src/tests/java" )
     testScalaDir = new File( "$projectDir/src/tests/scala" )
+    testGroovyDir = new File( "$projectDir/src/tests/groovy")
   }
 
   // Actual code projects BEGIN -------------------------------------------
-  if( ext.javaDir.isDirectory() || ext.scalaDir.isDirectory() ||
-      ext.testJavaDir.isDirectory() || ext.testScalaDir.isDirectory() )
+  if( ext.javaDir.isDirectory() || ext.scalaDir.isDirectory() || ext.groovyDir.isDirectory() ||
+      ext.testJavaDir.isDirectory() || ext.testScalaDir.isDirectory() || ext.testGroovyDir.isDirectory() )
   {
     apply plugin: 'jacoco'
     apply plugin: 'osgi'
@@ -564,7 +566,7 @@ task archiveJavadocs(type: Copy ) {
 // Build All
 task buildAll( dependsOn: [
     javadocs,
-    test,
+    check,
     jar,
     subprojects*.dependencyReport,
     subprojects*.assemble,
@@ -836,6 +838,8 @@ signing {
 }
 
 task dist( type: Copy, dependsOn: install ) {
+  description "Unpack the binary distribution"
+  group = "distributions"
   with binDistImage
   into "$buildDir/dist"
 }
@@ -847,23 +851,33 @@ task dist( type: Copy, dependsOn: install ) {
 def unpackedSrcDistDir = file( "build/unpacked-distributions/src/qi4j-sdk-$version" )
 def unpackedBinDistDir = file( "build/unpacked-distributions/bin/qi4j-sdk-$version" )
 task unpackSrcDist( type: Copy ) {
+  description "Unpack the source distribution"
+  group = "distributions"
   with srcDistImage
   into 'build/unpacked-distributions/src'
 }
 task checkSrcDist( type: GradleBuild, dependsOn: unpackSrcDist ) {
+  description = "Check the source distribution by running the 'check' task inside"
+  group = "distributions"
   buildFile = "$unpackedSrcDistDir/build.gradle"
   tasks = [ 'check' ]
 }
 task unpackBinDist( type: Copy, dependsOn: buildAll ) {
+  description "Unpack the binary distribution"
+  group = "distributions"
   with binDistImage
   into 'build/unpacked-distributions/bin'
 }
 task checkBinDist_rat( type: org.apache.rat.gradle.RatTask, dependsOn: unpackBinDist ) {
+  description "Check the binary distribution using Apache RAT"
+  group = "distributions"
   inputDir = unpackedBinDistDir
   reportDir = file( 'build/reports/rat-bin-dist' )
   excludes = []
 }
 task checkBinDist_goOfflineGradle( type: GradleBuild, dependsOn: unpackBinDist ) {
+  description "Check the binary distribution Gradle go-offline helper"
+  group = "distributions"
   def dependenciesDir = new File( unpackedBinDistDir, 'dependencies' )
   doFirst { dependenciesDir.deleteDir() }
   buildFile = "$unpackedBinDistDir/go-offline.gradle"
@@ -882,6 +896,8 @@ task checkBinDist_goOfflineGradle( type: GradleBuild, dependsOn: unpackBinDist )
   }
 }
 task checkBinDist_goOfflineMaven( type: Exec, dependsOn: unpackBinDist ) {
+  description "Check the binary distribution Maven go-offline helper"
+  group = "distributions"
   onlyIf {
     def pathDirs = System.getenv( 'PATH' ).split( File.pathSeparator )
     pathDirs.collect( { new File( it, 'mvn') } ).flatten().findAll( { it.isFile() } )
@@ -904,9 +920,13 @@ task checkBinDist_goOfflineMaven( type: Exec, dependsOn: unpackBinDist ) {
   }
 }
 task checkBinDist {
+  description "Check the binary distribution"
+  group = "distributions"
   dependsOn /*checkBinDist_rat,*/ checkBinDist_goOfflineGradle, checkBinDist_goOfflineMaven
 }
 task checkDists {
+  description "Check the souce and binary distributions"
+  group = "distributions"
   dependsOn checkSrcDist, checkBinDist
 }
 
@@ -958,7 +978,7 @@ task release {
 // This task should be run by "build master" and the resulting ouput committed to source control.  Its outputs include:
 //  1) /gradlew which is the *NIX shell script for executing builds
 //  2) /gradlew.bat which is the windows bat script for for executing builds
-//  3) /wrapper which is a directory named by the "jarPath" config which contains other needed files.
+//  3) /gradle/wrapper which is a directory named by the "jarPath" config which contains other needed files.
 task wrapper( type: Wrapper ) {
   gradleVersion = '2.5'
 }


[24/50] zest-java git commit: ZEST-25 Better build instructions in source distribution

Posted by pa...@apache.org.
ZEST-25 Better build instructions in source distribution


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5fd949c2
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5fd949c2
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5fd949c2

Branch: refs/heads/master
Commit: 5fd949c24e8a17dd3d593d58b53a1cfac8cf2211
Parents: a9e1d99
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 14:09:08 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 14:09:08 2015 +0200

----------------------------------------------------------------------
 README.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/5fd949c2/README.txt
----------------------------------------------------------------------
diff --git a/README.txt b/README.txt
index 1709c39..8cedbd6 100644
--- a/README.txt
+++ b/README.txt
@@ -34,7 +34,7 @@ Dependencies not included
 -------------------------
 The source distribution contains Zest™ sources only to keep the download
 size small. The Gradle build automatically downloads needed dependencies.
-If you need to go offline type `./gradlew gooffline` to ensure all needed
+If you need to go offline type `./gradlew goOffline` to ensure all needed
 dependencies are cached by Gradle.
 
 If you prefer to use a dependency management system, go to:
@@ -49,7 +49,11 @@ installation.
 If you want to build the Zest™ manual, then you also need a valid Asciidoc
 (http://www.methods.co.nz/asciidoc/) installation.
 
-This document the Zest™ build system and its usage:
+Here is how to run a full build:
+
+    ./gradlew buildAll
+
+Read the Zest™ Build System tutorial for more details:
 https://zest.apache.org/java/latest/build-system.html
 
 


[20/50] zest-java git commit: ZEST-100 Warn about unix-like-only process

Posted by pa...@apache.org.
ZEST-100 Warn about unix-like-only process


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/ba94c739
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/ba94c739
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/ba94c739

Branch: refs/heads/master
Commit: ba94c739bbab69d5205dd80cd78761f1c17e891b
Parents: c597e28
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 13:50:29 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 13:51:55 2015 +0200

----------------------------------------------------------------------
 manual/src/docs/tutorials/howto-releasing-apache.txt | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/ba94c739/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index bd22cec..009d2ca 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -26,12 +26,16 @@ It describes the tools and processes of a typical release.
 It is intended to be a recommendation of best practices for the Apache Zest™ project.
 The instructions provided here are consistent with, but not a replacement for the https://www.apache.org/dev/release.html[ASF Release Guidelines].
 
-Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
-
+[WARNING]
+====
+You need a unix-like environment to actually perform the release process.
+This tutorial is known to work on Linux and Mac.
+====
 
 
 // TODOs
 // - review commands for managing dev/release dist uploads, they may be too greedy
+Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
 
 
 


[32/50] zest-java git commit: Disabling a new test, since StaxValueSerialization won't spport complex value types in 2.1

Posted by pa...@apache.org.
Disabling a new test, since StaxValueSerialization won't spport complex value types in 2.1


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/f2aeede4
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/f2aeede4
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/f2aeede4

Branch: refs/heads/master
Commit: f2aeede45036f6d81b03bac73a50022c36844e07
Parents: 2626287
Author: Niclas Hedhman <ni...@hedhman.org>
Authored: Thu Jul 23 10:41:10 2015 +0800
Committer: Niclas Hedhman <ni...@hedhman.org>
Committed: Thu Jul 23 10:41:10 2015 +0800

----------------------------------------------------------------------
 .../stax/StaxConfigurationDeserializationTest.java                | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/f2aeede4/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxConfigurationDeserializationTest.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxConfigurationDeserializationTest.java b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxConfigurationDeserializationTest.java
index f4c4b87..4f32986 100644
--- a/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxConfigurationDeserializationTest.java
+++ b/extensions/valueserialization-stax/src/test/java/org/qi4j/valueserialization/stax/StaxConfigurationDeserializationTest.java
@@ -18,15 +18,16 @@
 
 package org.qi4j.valueserialization.stax;
 
+import org.junit.Ignore;
 import org.junit.Test;
 import org.qi4j.api.injection.scope.Service;
 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.spi.uuid.UuidIdentityGeneratorService;
 import org.qi4j.test.entity.AbstractConfigurationDeserializationTest;
 
+@Ignore( "Complex configurations are not yet support in Stax ValueSerialization, due to handling arrays with Java serialization.")
 public class StaxConfigurationDeserializationTest
     extends AbstractConfigurationDeserializationTest
 {


[46/50] zest-java git commit: ZEST-107 Fix JSONEntityState clone logic

Posted by pa...@apache.org.
ZEST-107 Fix JSONEntityState clone logic

The cloneStateIfGlobalStateLoaded() method of JSONEntityState is called
before any change is made to the entity state.

This method starts with the following check:

if( isStateNotCloned() )
{
    return;
}
// Do the clone

And the (private) isStateNotCloned() method returns:
status == EntityStatus.LOADED

IOW, the code says that it will clone state if status is loaded,
but does the opposite!

Rewriting the cloneStateIfGlobalStateLoaded() method,
as Tibor suggested, fixes the issue:

if( status != EntityState.LOADED )
{
    return;
}
// Do the clone

I removed the isStateNotCloned() method BTW as it was not used elsewhere
and the code is simpler without it.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/14cbf30d
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/14cbf30d
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/14cbf30d

Branch: refs/heads/master
Commit: 14cbf30dcc28af1573f3779c685a595e9aa41a0e
Parents: 965c769
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 16:22:07 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:02 2015 +0200

----------------------------------------------------------------------
 .../org/qi4j/spi/entitystore/helpers/JSONEntityState.java     | 7 +------
 1 file changed, 1 insertion(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/14cbf30d/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONEntityState.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONEntityState.java b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONEntityState.java
index 435acde..ae60809 100644
--- a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONEntityState.java
+++ b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONEntityState.java
@@ -308,14 +308,9 @@ public final class JSONEntityState
         }
     }
 
-    boolean isStateNotCloned()
-    {
-        return status == EntityStatus.LOADED;
-    }
-
     void cloneStateIfGlobalStateLoaded()
     {
-        if( isStateNotCloned() )
+        if( status != EntityStatus.LOADED )
         {
             return;
         }


[35/50] zest-java git commit: ZEST-40 & INFRA-10043 Rename git repository from zest-qi4j to zest-java

Posted by pa...@apache.org.
ZEST-40 & INFRA-10043 Rename git repository from zest-qi4j to zest-java

This commits contains impacts on documentation.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/2204d788
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/2204d788
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/2204d788

Branch: refs/heads/master
Commit: 2204d788754507b6097591358efc2ee742ed8476
Parents: 5f4712d
Author: Paul Merlin <pa...@apache.org>
Authored: Fri Jul 24 17:28:36 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Fri Jul 24 17:28:36 2015 +0200

----------------------------------------------------------------------
 doap.rdf                                              |  4 ++--
 manual/src/docs/tutorials/howto-releasing-apache.txt  |  4 ++--
 manual/src/docs/website/samples.txt                   | 14 +++++++-------
 .../dcicargo/sample_a/communication/web/BasePage.html |  2 +-
 .../dcicargo/sample_b/communication/web/BasePage.html |  2 +-
 5 files changed, 13 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/2204d788/doap.rdf
----------------------------------------------------------------------
diff --git a/doap.rdf b/doap.rdf
index 537a6a0..bb13fa0 100644
--- a/doap.rdf
+++ b/doap.rdf
@@ -54,8 +54,8 @@
     </repository>
     <repository>
       <GitRepository>
-        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/zest-qi4j.git"/>
-        <browse rdf:resource="https://github.com/apache/zest-qi4j"/>
+        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/zest-java.git"/>
+        <browse rdf:resource="https://github.com/apache/zest-java"/>
       </GitRepository>
     </repository>
     <maintainer>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/2204d788/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index 04fcdfb..e56d2f4 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -53,7 +53,7 @@ Clone/checkout all needed repositories, next to each other:
 ----
 mkdir zest-repos
 cd zest-repos
-git clone https://git-wip-us.apache.org/repos/asf/zest-qi4j.git zest-java
+git clone https://git-wip-us.apache.org/repos/asf/zest-java.git zest-java
 svn checkout https://svn.apache.org/repos/asf/zest/ zest-svn
 svn checkout https://dist.apache.org/repos/dist/dev/zest/ zest-dist-dev
 svn checkout https://dist.apache.org/repos/dist/release/zest/ zest-dist-release
@@ -318,7 +318,7 @@ I am happy to start the VOTE thread for Apache Zest (Java Edition) <RELEASE-VERS
 
 The changelog for this release can be found here: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316820&version=12332997
 
-Tag: https://git-wip-us.apache.org/repos/asf?p=zest-qi4j.git;a=tag;h=cc0f8211bf47b2df72a6239c9fdcd1d6906ea246
+Tag: https://git-wip-us.apache.org/repos/asf?p=zest-java.git;a=tag;h=cc0f8211bf47b2df72a6239c9fdcd1d6906ea246
 
 The artifacts to be voted on are located here: https://dist.apache.org/repos/dist/dev/zest/
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/2204d788/manual/src/docs/website/samples.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/website/samples.txt b/manual/src/docs/website/samples.txt
index 39df02c..b4de2ff 100644
--- a/manual/src/docs/website/samples.txt
+++ b/manual/src/docs/website/samples.txt
@@ -35,7 +35,7 @@ The samples are available in the +samples/+ directory of the Zest™ SDK.
 Sample of how DCI (Data, Context & Interaction) pattern is implemented using
 Zest™ core only.
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/dci[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/dci[Browse Source]
 
 [[sample-dci-cargo,DCI Cargo Sample]]
 == DCI Cargo Sample ==
@@ -46,7 +46,7 @@ Zest™, for Eric Evans DDD sample.
 This sample, contributed by Marc Grue, is described in details on his
 website: http://marcgrue.com/
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/dci-cargo[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/dci-cargo[Browse Source]
 
 [[sample-forum,Forum Sample]]
 == Forum Sample ==
@@ -54,7 +54,7 @@ https://github.com/apache/zest-qi4j/tree/develop/samples/dci-cargo[Browse Source
 Sample of how to build a web forum using <<library-rest-server>>,
 <<extension-es-file>> and <<library-fileconfig>>.
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/forum[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/forum[Browse Source]
 
 [[sample-car-rental,Car Rental Sample]]
 == Car Rental Sample ==
@@ -62,14 +62,14 @@ https://github.com/apache/zest-qi4j/tree/develop/samples/forum[Browse Source]
 Sample of implementation of a Car Rental application implemented as a Servlet
 based Webapp packaged as a WAR.
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/rental[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/rental[Browse Source]
 
 // [[sample-scala,Scala Sample]]
 // == Scala Sample ==
 //
 // Sample of how to use Scala with Zest™.
 //
-// https://github.com/apache/zest-qi4j/tree/develop/samples/scala[Browse Source]
+// https://github.com/apache/zest-java/tree/develop/samples/scala[Browse Source]
 
 [[sample-sql-support,SQL Support Sample]]
 == SQL Support Sample ==
@@ -78,7 +78,7 @@ NOTE: This sample use PostgreSQL and drop all of its data once run in order to b
 
 Sample of how to fully use Zest™ SQL support : <<library-sql>>, <<extension-es-sql>> and <<extension-indexing-sql>>.
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/sql-support[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/sql-support[Browse Source]
 
 Here are the steps needed to setup the database using the `psql` utility command:
 
@@ -106,4 +106,4 @@ A gradle task `runSample` is defined in this module as a shortcut to run the exa
 
 Sample of how to write custom binders.
 
-https://github.com/apache/zest-qi4j/tree/develop/samples/swing[Browse Source]
+https://github.com/apache/zest-java/tree/develop/samples/swing[Browse Source]

http://git-wip-us.apache.org/repos/asf/zest-java/blob/2204d788/samples/dci-cargo/dcisample_a/src/main/resources/org/qi4j/sample/dcicargo/sample_a/communication/web/BasePage.html
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_a/src/main/resources/org/qi4j/sample/dcicargo/sample_a/communication/web/BasePage.html b/samples/dci-cargo/dcisample_a/src/main/resources/org/qi4j/sample/dcicargo/sample_a/communication/web/BasePage.html
index bdbf839..87ec4f6 100644
--- a/samples/dci-cargo/dcisample_a/src/main/resources/org/qi4j/sample/dcicargo/sample_a/communication/web/BasePage.html
+++ b/samples/dci-cargo/dcisample_a/src/main/resources/org/qi4j/sample/dcicargo/sample_a/communication/web/BasePage.html
@@ -59,7 +59,7 @@
                     <a href="https://zest.apache.org/community/get_help.html" target="_blank">Forum</a><br>
                     <a href="https://zest.apache.org/download.html" target="_blank">Download</a><br>
                     <a href="https://zest.apache.org/java/latest/howto-depend-on-zest.html" target="_blank">Maven</a><br>
-                    <a href="https://github.com/apache/zest-qi4j" target="_blank">Github</a>
+                    <a href="https://github.com/apache/zest-java" target="_blank">Github</a>
                 </td>
                 <td valign="top">
                     <a href="http://wicket.apache.org/" target="_blank">Website</a><br>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/2204d788/samples/dci-cargo/dcisample_b/src/main/resources/org/qi4j/sample/dcicargo/sample_b/communication/web/BasePage.html
----------------------------------------------------------------------
diff --git a/samples/dci-cargo/dcisample_b/src/main/resources/org/qi4j/sample/dcicargo/sample_b/communication/web/BasePage.html b/samples/dci-cargo/dcisample_b/src/main/resources/org/qi4j/sample/dcicargo/sample_b/communication/web/BasePage.html
index 75e6c5d..010b6f8 100644
--- a/samples/dci-cargo/dcisample_b/src/main/resources/org/qi4j/sample/dcicargo/sample_b/communication/web/BasePage.html
+++ b/samples/dci-cargo/dcisample_b/src/main/resources/org/qi4j/sample/dcicargo/sample_b/communication/web/BasePage.html
@@ -60,7 +60,7 @@
                     <a href="https://zest.apache.org/community/get_help.html" target="_blank">Forum</a><br>
                     <a href="https://zest.apache.org/download.html" target="_blank">Download</a><br>
                     <a href="https://zest.apache.org/java/latest/howto-depend-on-zest.html" target="_blank">Maven</a><br>
-                    <a href="https://github.com/apache/zest-qi4j" target="_blank">Github</a>
+                    <a href="https://github.com/apache/zest-java" target="_blank">Github</a>
                 </td>
                 <td valign="top">
                     <a href="http://wicket.apache.org/" target="_blank">Website</a><br>


[47/50] zest-java git commit: Merge branch 'bug/ZEST-107' into develop

Posted by pa...@apache.org.
Merge branch 'bug/ZEST-107' into develop

Closes #2 Github Pull-Request


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5d3d759d
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5d3d759d
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5d3d759d

Branch: refs/heads/master
Commit: 5d3d759d5b88431a9db901a8b83c23027bdffb22
Parents: 2982826 7b00650
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 17:10:24 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:10:24 2015 +0200

----------------------------------------------------------------------
 .../entitystore/helpers/JSONEntityState.java    |   7 +-
 .../helpers/JSONMapEntityStoreMixin.java        |   3 +-
 core/testsupport/build.gradle                   |   4 +-
 .../cache/AbstractEntityStoreWithCacheTest.java | 165 +++++++++++++++++++
 .../org/qi4j/test/cache/MemoryCacheImpl.java    | 142 ++++++++++++++++
 .../qi4j/test/cache/MemoryCachePoolMixin.java   |  82 +++++++++
 .../qi4j/test/cache/MemoryCachePoolService.java |  37 +++++
 .../test/entity/AbstractEntityStoreTest.java    |  27 +++
 .../org/qi4j/test/cache/MemoryCacheTest.java    |  32 ++++
 .../file/FileEntityStoreWithCacheTest.java      |  42 +++++
 .../HazelcastEntityStoreWithCacheTest.java      |  40 +++++
 .../jclouds/JCloudsWithCacheTest.java           |  39 +++++
 .../jdbm/JdbmEntityStoreWithCacheTest.java      |  54 ++++++
 .../LevelDBEntityStoreWithCacheTest.java        |  46 ++++++
 .../memory/MemoryEntityStoreWithCacheTest.java  |  35 ++++
 .../MongoMapEntityStoreWithCacheTest.java       |  83 ++++++++++
 .../redis/RedisMapEntityStoreWithCacheTest.java |  78 +++++++++
 .../riak/RiakMapEntityStoreWithCacheTest.java   |  76 +++++++++
 18 files changed, 984 insertions(+), 8 deletions(-)
----------------------------------------------------------------------



[26/50] zest-java git commit: Solr Idx/Query: remove javadoc offending constructor from internal code

Posted by pa...@apache.org.
Solr Idx/Query: remove javadoc offending constructor from internal code

I keep getting javadoc errors/crashs about
org.apache.lucene.util.AttributeSource.AttributeFactory.

Got them while checking the source distribution as part of ZEST-25.

As this class sits in an *internal* package and the offending ctor is
not used, this commit simply removes it.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/fed3d192
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/fed3d192
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/fed3d192

Branch: refs/heads/master
Commit: fed3d1921c38ddc971c8dd43f3bfa974b8dda41a
Parents: 6a0a317
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 14:43:38 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 14:43:38 2015 +0200

----------------------------------------------------------------------
 .../org/qi4j/index/solr/internal/SingleTokenTokenizer.java     | 6 ------
 1 file changed, 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/fed3d192/extensions/indexing-solr/src/main/java/org/qi4j/index/solr/internal/SingleTokenTokenizer.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-solr/src/main/java/org/qi4j/index/solr/internal/SingleTokenTokenizer.java b/extensions/indexing-solr/src/main/java/org/qi4j/index/solr/internal/SingleTokenTokenizer.java
index d0dc646..f8c7770 100644
--- a/extensions/indexing-solr/src/main/java/org/qi4j/index/solr/internal/SingleTokenTokenizer.java
+++ b/extensions/indexing-solr/src/main/java/org/qi4j/index/solr/internal/SingleTokenTokenizer.java
@@ -20,7 +20,6 @@ package org.qi4j.index.solr.internal;
 
 import org.apache.lucene.analysis.WhitespaceTokenizer;
 import org.apache.lucene.util.AttributeSource;
-import org.apache.lucene.util.AttributeSource.AttributeFactory;  // required by Javadocs!!!
 
 import java.io.Reader;
 
@@ -37,11 +36,6 @@ public class SingleTokenTokenizer
       super( source, in );
    }
 
-   public SingleTokenTokenizer( AttributeFactory factory, Reader in )
-   {
-      super( factory, in );
-   }
-
    @Override
    protected boolean isTokenChar( char c )
    {


[03/50] zest-java git commit: Build, minor edits

Posted by pa...@apache.org.
Build, minor edits


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/7b827e6e
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/7b827e6e
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/7b827e6e

Branch: refs/heads/master
Commit: 7b827e6e0b15e9199249ce0721c145a2a7586472
Parents: 3a2f6c9
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 14:21:01 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 14:21:01 2015 +0200

----------------------------------------------------------------------
 .../valueserialization-jackson/build.gradle     |  2 +-
 .../src/test/resources/logback-test.xml         | 34 -------------------
 .../valueserialization-orgjson/build.gradle     |  2 +-
 extensions/valueserialization-stax/build.gradle |  2 +-
 .../src/test/resources/logback-test.xml         | 35 --------------------
 5 files changed, 3 insertions(+), 72 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b827e6e/extensions/valueserialization-jackson/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/build.gradle b/extensions/valueserialization-jackson/build.gradle
index f821472..616e01b 100644
--- a/extensions/valueserialization-jackson/build.gradle
+++ b/extensions/valueserialization-jackson/build.gradle
@@ -29,7 +29,7 @@ dependencies {
     testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
 
     testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
-    testRuntime libraries.logback
+    testRuntime libraries.slf4j_simple
 
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b827e6e/extensions/valueserialization-jackson/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/src/test/resources/logback-test.xml b/extensions/valueserialization-jackson/src/test/resources/logback-test.xml
deleted file mode 100644
index 22be2c1..0000000
--- a/extensions/valueserialization-jackson/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<configuration>
-
-    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%-5level %logger{24} - %msg%n</Pattern>
-        </layout>
-    </appender>
-
-    <root level="info">
-        <appender-ref ref="stdout" />
-    </root>
-
-    <logger name="org.qi4j.spi.value" level="trace"/>
-    <logger name="org.qi4j.test.value" level="trace"/>
-    <logger name="org.qi4j.stateserializer" level="trace"/>
-
-</configuration>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b827e6e/extensions/valueserialization-orgjson/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/build.gradle b/extensions/valueserialization-orgjson/build.gradle
index a06c1de..a919f4e 100644
--- a/extensions/valueserialization-orgjson/build.gradle
+++ b/extensions/valueserialization-orgjson/build.gradle
@@ -28,7 +28,7 @@ dependencies {
     testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
 
     testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
-    testRuntime libraries.logback
+    testRuntime libraries.slf4j_simple
 
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b827e6e/extensions/valueserialization-stax/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/build.gradle b/extensions/valueserialization-stax/build.gradle
index c89c7a1..ea05136 100644
--- a/extensions/valueserialization-stax/build.gradle
+++ b/extensions/valueserialization-stax/build.gradle
@@ -29,7 +29,7 @@ dependencies {
     testCompile project(":org.qi4j.core:org.qi4j.core.testsupport")
 
     testRuntime project(":org.qi4j.core:org.qi4j.core.runtime")
-    testRuntime libraries.logback
+    testRuntime libraries.slf4j_simple
 
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b827e6e/extensions/valueserialization-stax/src/test/resources/logback-test.xml
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/test/resources/logback-test.xml b/extensions/valueserialization-stax/src/test/resources/logback-test.xml
deleted file mode 100644
index 199f328..0000000
--- a/extensions/valueserialization-stax/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-  
-  http://www.apache.org/licenses/LICENSE-2.0
-  
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-<configuration>
-
-    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
-        <layout class="ch.qos.logback.classic.PatternLayout">
-            <Pattern>%-5level %logger{24} - %msg%n</Pattern>
-        </layout>
-    </appender>
-
-    <root level="info">
-        <appender-ref ref="stdout" />
-    </root>
-
-    <logger name="org.qi4j.spi.value" level="debug"/>
-    <logger name="org.qi4j.test.value" level="debug"/>
-    <logger name="org.qi4j.valueserializer" level="debug"/>
-    <logger name="org.qi4j.valueserialization" level="debug"/>
-
-</configuration>
\ No newline at end of file


[17/50] zest-java git commit: ZEST-100 Release process documentation draft progress

Posted by pa...@apache.org.
ZEST-100 Release process documentation draft progress


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/6e05a6f2
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/6e05a6f2
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/6e05a6f2

Branch: refs/heads/master
Commit: 6e05a6f23c23bf5a18e6a48f5defd3729c3c39b5
Parents: 1e569f9
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 17:51:44 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 18:27:07 2015 +0200

----------------------------------------------------------------------
 .../src/docs/tutorials/howto-build-system.txt   |   8 +-
 .../docs/tutorials/howto-releasing-apache.txt   | 191 ++++++++++++++-----
 2 files changed, 144 insertions(+), 55 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/6e05a6f2/manual/src/docs/tutorials/howto-build-system.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-build-system.txt b/manual/src/docs/tutorials/howto-build-system.txt
index f5e3a2b..aa72a98 100644
--- a/manual/src/docs/tutorials/howto-build-system.txt
+++ b/manual/src/docs/tutorials/howto-build-system.txt
@@ -171,7 +171,7 @@ They can be run with the following Gradle command:
 Results will then be available in the test reports.
 
 
-== Releasing the Zest™ SDK ==
+== Build for releases ==
 
 IMPORTANT: Remember that if a +version+ property is not defined, the build system will refuse to make a release and upload.
 
@@ -201,7 +201,7 @@ This can be relaxed by adding +-x checkReleaseSpec+ arguments to gradle invocati
 === Signing ===
 
 Artifact signing is done using PGP.
-You need to provide Gradle the following properties
+You need to provide Gradle the following properties, `~/.gradle/gradle.properties` is a good place:
 
     signing.keyId=FB751943
     signing.password=foobar
@@ -233,7 +233,7 @@ For example here is how to deploy all artifacts as unsigned SNAPSHOTs to a given
 
 [source,bash]
 -----------
-./gradlew uploadArchives -Dversion=2.0-SNAPSHOT -PuploadReleaseSpec=false \
+./gradlew uploadArchives -Dversion=3.2.1-SNAPSHOT -PuploadReleaseSpec=false \
     -PuploadWagon=what:ever:wagon -PuploadRepository=http://what.ever.repository/url \
     -PuploadUsername=foo -PuploadPassword=bar
 -----------
@@ -242,7 +242,7 @@ And here is how to deploy a signed release to the local filesystem:
 
 [source,bash]
 -----------
-./gradlew uploadArchives -Dversion=2.0 -PuploadRepository=file:///path/to/local/repository
+./gradlew uploadArchives -Dversion=3.2.1 -PuploadRepository=file:///path/to/local/repository
 -----------
 
 See the http://www.gradle.org/docs/current/userguide/maven_plugin.html#wagonLibs[Gradle documentation] about

http://git-wip-us.apache.org/repos/asf/zest-java/blob/6e05a6f2/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index 636a36c..b7747a3 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -31,7 +31,6 @@ Before going further you obviously should have read the <<build-system, Build Sy
 
 
 // TODOs
-// - put the release notes on the website
 // - review commands for managing dev/release dist uploads, they may be too greedy
 
 
@@ -79,7 +78,7 @@ Ensure you can test, build and sign Zest, including artifact signing, see the <<
 
 === Install Jekyll
 
-Moreover, you will need to have a valid http://jekyllrb.com/[Jekyll] installation as the Apache Zest™ https://zest.apache.org/[website] is baked with it.
+Moreover, you will need to have a valid http://jekyllrb.com/[Jekyll] installation as the Apache Zest™ https://zest.apache.org/[website] is generated using it.
 
 
 === Setup git flow
@@ -149,24 +148,52 @@ They can be resolved by:
 See the https://issues.apache.org/jira/browse/ZEST[ZEST] project on JIRA.
 
 
-=== Prepare Release Notes
+=== Prepare Release-Notes
 
-Apache Zest™ release notes are generated from JIRA issues.
+Apache Zest™ release-notes are generated from JIRA issues.
 
-Open the target Zest™ version's release notes in https://issues.apache.org/jira/browse/ZEST/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel[JIRA] and review them.
+Open the target Zest™ version's release-notes in https://issues.apache.org/jira/browse/ZEST/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel[JIRA] and review them.
 
-JIRA can produces release notes as HTML or plain-text.
-We will use plain-text release notes in e-mails and will need to convert the HTML releases notes to Asciidoc for use in the website.
+JIRA can produces release-notes as HTML or plain-text.
+Set it up to generate plain-text release-notes.
 
-Prepare the two following files:
+We will need these in several formats.
+Starting from the plain-text one we will generate the others.
 
-- `apache-zest-java-<RELEASE-VERSION>-release-notes.txt`
-- `apache-zest-java-<RELEASE-VERSION>-release-notes.adoc`
+First save the text-plain release-notes in a file named `apache-zest-java-<RELEASE-VERSION>-release-notes.txt`.
+
+Convert to Asciidoc:
+
+[source,shell]
+----
+cat apache-zest-java-<RELEASE-VERSION>-release-notes.txt | \
+  sed -e "s/* \[ZEST-\([0-9]\)*\]/- https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1[ZEST-\1]/" | \
+  sed -e "s/^\*\*/===/" > apache-zest-java-<RELEASE-VERSION>-release-notes.adoc
+----
+
+Convert to Markdown:
+
+[source,shell]
+----
+cat apache-zest-java-<RELEASE-VERSION>-release-notes.txt | \
+  sed -e "s/* \[ZEST-\([0-9]\)*\]/- [ZEST-\1](https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1)/" | \
+  sed -e "s/^\*\*/###/" > apache-zest-java-<RELEASE-VERSION>-release-notes.md
+----
+
+You should then have the two following files:
+
+[source,shell]
+----
+.
+├── apache-zest-java-<RELEASE-VERSION>-release-notes.txt
+├── apache-zest-java-<RELEASE-VERSION>-release-notes.adoc
+└── apache-zest-java-<RELEASE-VERSION>-release-notes.md
+----
 
 We will use them later.
 
 
-=== Create a release candidate branch
+=== Create a RC branch
 
 We use `<RELEASE-VERSION>-RC#` where `RELEASE-VERSION` is the target release version and `RC#` for Release Candidate and an incremental number in case the release process has to be done several times.
 
@@ -178,21 +205,45 @@ git flow release start <RELEASE-VERSION>-RC#
 This will eventually generates a `<RELEASE-VERSION>-RC#` tag that we will rename to `<RELEASE-VERSION>` if the vote passes, see below.
 
 
-=== Build and audit distributions
+=== Audit artifacts and distributions
 
-Make a complete build:
+Make a complete build, deploying maven artifacts locally:
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+./gradlew -Dversion=<RELEASE-VERSION> -PuploadRepository="file://$(pwd)/build/repositories/zest-java" \
+    clean buildAll checkDists uploadArchives
 ----
 
-Review the release distributions in `build/distributions`.
+Review maven artifacts in `build/repositories/zest-java`.
+
+Also review the release distributions in `build/distributions` where you should find the following files:
+
+[source,shell]
+----
+.
+├── apache-zest-java-<RELEASE-VERSION>-bin.tgz
+├── apache-zest-java-<RELEASE-VERSION>-bin.tgz.MD5
+├── apache-zest-java-<RELEASE-VERSION>-bin.tgz.SHA-512
+├── apache-zest-java-<RELEASE-VERSION>-bin.tgz.asc
+├── apache-zest-java-<RELEASE-VERSION>-bin.zip
+├── apache-zest-java-<RELEASE-VERSION>-bin.zip.MD5
+├── apache-zest-java-<RELEASE-VERSION>-bin.zip.SHA-512
+├── apache-zest-java-<RELEASE-VERSION>-bin.zip.asc
+├── apache-zest-java-<RELEASE-VERSION>-src.tgz
+├── apache-zest-java-<RELEASE-VERSION>-src.tgz.MD5
+├── apache-zest-java-<RELEASE-VERSION>-src.tgz.SHA-512
+├── apache-zest-java-<RELEASE-VERSION>-src.tgz.asc
+├── apache-zest-java-<RELEASE-VERSION>-src.zip
+├── apache-zest-java-<RELEASE-VERSION>-src.zip.MD5
+├── apache-zest-java-<RELEASE-VERSION>-src.zip.SHA-512
+└── apache-zest-java-<RELEASE-VERSION>-src.zip.asc
+----
 
 If any, make the required changes, commit them and iterate.
 
 
-=== Close the release candidate branch
+=== Close the RC branch
 
 Once you are satisfied with the produced artifacts, close the release candidate branch:
 
@@ -202,7 +253,7 @@ git flow release finish <RELEASE-VERSION>-RC#
 ----
 
 
-=== Checkout the release candidate tag
+=== Checkout the RC tag
 
 To build the release candidate bits, we need to checkout the release candidate tag, that will eventually be promoted as a signed release tag, because the Apache Zest™ build system generates versionning information based on git metadata.
 
@@ -212,27 +263,27 @@ git checkout <RELEASE-VERSION>-RC#
 ----
 
 
-=== Build artifacts and distributions
+=== Build RC artifacts and distributions
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll checkDists
 ----
 
 
-=== Stage maven artifacts
+=== Stage RC maven artifacts
 
 Stage artifacts to https://repository.apache.org/[repository.apache.org] :
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> release
+./gradlew -Dversion=<RELEASE-VERSION> uploadArchives
 ----
 
 Close the staging Nexus repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage[Closing the staged repository] guide.
 
 
-=== Upload distributions
+=== Upload RC distributions
 
 Upload source and binary distributions, checksums and signatures to https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]:
 
@@ -240,12 +291,10 @@ Upload source and binary distributions, checksums and signatures to https://dist
 ----
 cp zest-java/build/distributions/* zest-dist-dev/
 cd zest-dist-dev
-svn add --force
+svn add * --force
 svn commit -m "zest: upload <RELEASE-VERSION> to dist/dev/zest"
 ----
 
-Go grab some coffee/tea/beer, this will take some time.
-
 
 == Run the vote
 
@@ -323,7 +372,7 @@ git push origin --tags
 ----
 
 
-=== Publish
+=== Publish bits
 
 Promote the staged Nexus repository so it gets synched to Maven Central by following the https://www.apache.org/dev/publishing-maven-artifacts.html#promote[Promoting a repo] guide.
 
@@ -333,28 +382,68 @@ Move the release distributions, checksums and signatures from https://dist.apach
 ----
 mv zest-dist-dev/*<RELEASE-VERSION>*.* zest-dist-release/
 cd zest-dist-dev
-svn add --force
+svn add * --force
 svn commit -m "zest: removing <RELEASE-VERSION> from dist/dev/zest as the VOTE passed"
 cd ..
 cd zest-dist-release
-svn add --force
+svn add * --force
 svn commit -m "zest: upload <RELEASE-VERSION> to dist/release/zest""
 ----
 
-Once again, go grab some coffee/tea/beer, this will take some time.
-
 
 === Wait 24 hours
 
 For mirrors to pick up the new bits.
 
 
-=== Update the download page
+=== Prepare an announcement
+
+Coordinate a press release with press@apache.org.
+
+    TODO
+
+You can reuse the release-notes content from the `txt`/`adoc`/`md` files created earlier.
+
+This annoucement will be used in a veriety of media like emails, websites etc...
+Start with a text version and once satisfied produce at least a Markdown version for the website, see below.
+
+
+=== Update the Zest™ website
 
-Edit `zest-svn/site/src/_data/releases.yml` with the new release data.
+Generate the documentation and javadoc minisite:
+
+[source,shell]
+----
+cd zest-java
+./gradlew -Dversion=<RELEASE-VERSION> archiveJavadocs manuals
+----
+
+This will automatically put all files into the `zest-svn` website repository.
+
+Create a new post on the Zest™ website by creating a new Markdown file:
+
+[source,shell]
+----
+cd zest-svn
+touch site/src/_posts/YYYY-MM-DD-apache-zest-java-<RELEASE-VERSION>.md
+open !$
+----
+
+You can reuse the Markdown formatted announcement content.
+
+
+Finally, edit `zest-svn/site/src/_data/releases.yml` with the new release data.
 Upmost is the latest.
 
-Then rebuild the website:
+You can live-preview your changes to the Zest™ website:
+
+[source,shell]
+----
+cd zest-svn
+jekyll serve
+----
+
+Once you are satisfied with the changes, build the production website:
 
 [source,shell]
 ----
@@ -366,7 +455,7 @@ And publish it:
 
 [source,shell]
 ----
-svn add --force
+svn add * --force
 svn commit -m "zest: update website"
 ----
 
@@ -385,29 +474,14 @@ Finally, send an announcement to mailto:dev@zest.apache.org[dev@] and mailto:use
 [ANNOUNCE] Released Zest (Java Edition) version <RELEASE-VERSION>
 ----
 
-The announcement email should contains the release notes as text, remember you prepared a `apache-zest-java-<RELEASE-VERSION>-release-notes.txt` file with them.
+The announcement email should contains the release-notes as text, remember they are in the `apache-zest-java-<RELEASE-VERSION>-release-notes.txt` file you created earlier.
 
 
 
 == VOTE fails
 
 
-=== Drop artifacts and distributions
-
-Drop the Nexus staging repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#drop[Dropping a repo] guide.
-
-Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]
-
-[source,shell]
-----
-cd zest-dist-dev/
-rm "*<RELEASE-VERSION>*.*"
-svn add --force
-svn commit -m "zest: dropping <RELEASE-VERSION> from dist/dev/zest as the vote failed"
-----
-
-
-=== Push git changes
+=== Record failure
 
 We keep the release candidate git history.
 It can be useful for reviewers to have access to it.
@@ -424,6 +498,21 @@ git push origin --tags
 ----
 
 
+=== Drop RC artifacts and distributions
+
+Drop the Nexus staging repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#drop[Dropping a repo] guide.
+
+Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]
+
+[source,shell]
+----
+cd zest-dist-dev/
+rm "*<RELEASE-VERSION>*.*"
+svn add * --force
+svn commit -m "zest: dropping <RELEASE-VERSION> from dist/dev/zest as the vote failed"
+----
+
+
 === Start over
 
 If a new RC is to be created, restart the process as described above.


[41/50] zest-java git commit: entity store with enabled cache test case

Posted by pa...@apache.org.
entity store with enabled cache test case


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5378de50
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5378de50
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5378de50

Branch: refs/heads/master
Commit: 5378de507b811bd59cdca069e11f6651a970ae1f
Parents: 2982826
Author: tbml <ti...@adleritech.com>
Authored: Thu Jul 23 18:05:40 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:01 2015 +0200

----------------------------------------------------------------------
 .../helpers/JSONMapEntityStoreMixin.java        |   3 +-
 .../qi4j/cache/ehcache/JSONEntityStoreTest.java | 112 +++++++++++++++++++
 2 files changed, 114 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/5378de50/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
index 47bf17f..cac8ec9 100644
--- a/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
+++ b/core/spi/src/main/java/org/qi4j/spi/entitystore/helpers/JSONMapEntityStoreMixin.java
@@ -479,7 +479,8 @@ public class JSONMapEntityStoreMixin
             {
                 String type = data.getString( JSONKeys.TYPE );
                 EntityDescriptor entityDescriptor = module.entityDescriptor( type );
-                return new JSONEntityState( currentTime, valueSerialization, identity, entityDescriptor, data );
+//                return new JSONEntityState( currentTime, valueSerialization, identity, entityDescriptor, data );
+                return new JSONEntityState( valueSerialization, data.getString( JSONKeys.VERSION ), data.getLong( JSONKeys.MODIFIED ), identity, EntityStatus.LOADED, entityDescriptor, data );
             }
             catch( JSONException e )
             {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/5378de50/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
new file mode 100644
index 0000000..13670c2
--- /dev/null
+++ b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
@@ -0,0 +1,112 @@
+package org.qi4j.cache.ehcache;
+
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.api.entity.EntityBuilder;
+import org.qi4j.api.entity.EntityComposite;
+import org.qi4j.api.property.Property;
+import org.qi4j.api.unitofwork.UnitOfWork;
+import org.qi4j.api.value.ValueSerialization;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.bootstrap.SingletonAssembler;
+import org.qi4j.entitystore.memory.MemoryEntityStoreService;
+import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
+
+import java.math.BigDecimal;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ *
+ */
+public class JSONEntityStoreTest
+{
+
+    private static SingletonAssembler assembler;
+
+    @BeforeClass
+    public static void setup()
+            throws Exception
+    {
+        assembler = new SingletonAssembler()
+        {
+            public void assemble( ModuleAssembly module )
+                    throws AssemblyException
+            {
+                module.entities(
+                        Account.class
+                );
+
+                ModuleAssembly cacheCfgModule = module.layer().application().layer("configLayer").module( "configModule" );
+
+                cacheCfgModule.services( MemoryEntityStoreService.class )
+                        .instantiateOnStartup()
+                        .visibleIn(Visibility.module);
+
+                cacheCfgModule.services( UuidIdentityGeneratorService.class ).visibleIn( Visibility.module );
+                cacheCfgModule.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+                cacheCfgModule.entities( EhCacheConfiguration.class).visibleIn(Visibility.application);
+
+                module.layer().uses( cacheCfgModule.layer() );
+
+                module.services( EhCachePoolService.class)
+                        .visibleIn(Visibility.module)
+                        .identifiedBy("ehcache");
+
+
+                new EntityTestAssembler()
+                        .visibleIn( Visibility.module)
+                        .assemble( module);
+
+            }
+        };
+
+    }
+
+    @Test
+    public void cacheJSONGlobalStateTest()
+            throws Exception
+    {
+
+        UnitOfWork uow1 = assembler.module().newUnitOfWork();
+        EntityBuilder<Account> b = uow1.newEntityBuilder(Account.class);
+
+        b.instance().name().set("account1");
+        b.instance().balance().set( BigDecimal.ZERO );
+
+        Account account1 = b.newInstance();
+
+        uow1.complete();
+
+        UnitOfWork uow2 = assembler.module().newUnitOfWork();
+        Account account2 = uow2.get(account1);
+        account2.balance().set( BigDecimal.ONE);
+        uow2.complete();
+
+        UnitOfWork uow3 = assembler.module().newUnitOfWork();
+        Account account3 = uow3.get(account1);
+        account3.balance().set( BigDecimal.TEN);
+        uow3.discard();
+
+        UnitOfWork uow4 = assembler.module().newUnitOfWork();
+        Account account4 = uow4.get(account1);
+
+        assertEquals( BigDecimal.ONE, account4.balance().get());
+
+        uow4.discard();
+    }
+
+        public interface Account
+            extends EntityComposite
+    {
+
+        Property<String> name();
+
+        Property<BigDecimal> balance();
+    }
+
+}


[22/50] zest-java git commit: Build javadocs with links to joda-time, json.org and junit apis

Posted by pa...@apache.org.
Build javadocs with links to joda-time, json.org and junit apis


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/64a38cbe
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/64a38cbe
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/64a38cbe

Branch: refs/heads/master
Commit: 64a38cbe20b0ed756138b46f4c83bac7e0c76926
Parents: d376188
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 13:55:03 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 13:55:03 2015 +0200

----------------------------------------------------------------------
 build.gradle | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/64a38cbe/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index af861b6..a397140 100644
--- a/build.gradle
+++ b/build.gradle
@@ -154,6 +154,12 @@ allprojects {
     options.docEncoding = 'UTF-8'
     options.charSet = 'UTF-8'
     options.noTimestamp = true
+    options.links = [
+      'http://docs.oracle.com/javase/7/docs/api/',
+      'http://www.joda.org/joda-time/apidocs/',
+      'http://www.json.org/javadoc/',
+      'http://junit.org/javadoc/latest/'
+    ]
     // exclude '**/internal/**'
   }
 
@@ -536,7 +542,6 @@ task javadocs( type: Javadoc ) {
   classpath = files( apiSources.collect { project ->
     project.sourceSets.main.compileClasspath
   } )
-  options.links( "http://docs.oracle.com/javase/7/docs/api/" )
   options.group( [ "Core API": [ "org.qi4j.api", "org.qi4j.api.*", "org.qi4j.io", "org.qi4j.functional" ],
                          "Core Bootstrap": [ "org.qi4j.bootstrap", "org.qi4j.bootstrap.*" ],
                          "Core SPI": [ "org.qi4j.spi", "org.qi4j.spi.*" ],


[23/50] zest-java git commit: Build now skip asciidoc tasks if not installed, except for releases

Posted by pa...@apache.org.
Build now skip asciidoc tasks if not installed, except for releases

Print a warning about installing asciidoc if skipped.
Fail for releases if asciidoc is not installed.
For ZEST-25 to allow build from source distribution without asciidoc.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/a9e1d99d
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/a9e1d99d
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/a9e1d99d

Branch: refs/heads/master
Commit: a9e1d99dabae83bbb72f8abaed050005ae7bc2d3
Parents: 64a38cb
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 13:57:07 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 13:57:07 2015 +0200

----------------------------------------------------------------------
 manual/build.gradle | 13 +++++++++++++
 1 file changed, 13 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/a9e1d99d/manual/build.gradle
----------------------------------------------------------------------
diff --git a/manual/build.gradle b/manual/build.gradle
index b81294e..3d6d8cf 100644
--- a/manual/build.gradle
+++ b/manual/build.gradle
@@ -78,3 +78,16 @@ task manuals() {
 //  dependsOn referenceManual
 //  dependsOn recipes
 }
+
+// Skip if asciidoc is not present when building a 0 or SNAPSHOT version
+[ website, archiveWebsite, copyWebsite, manuals ]*.onlyIf {
+  if( version != '0' && !version.contains( 'SNAPSHOT' ) ) {
+    return true
+  }
+  def pathDirs = System.getenv( 'PATH' ).split( File.pathSeparator )
+  def present = pathDirs.collect( { new File( it, 'asciidoc') } ).flatten().findAll( { it.isFile() } )
+  if( !present ) {
+    project.logger.warn 'Asciidoc not found, manual tasks will skip, please install http://www.methods.co.nz/asciidoc/'
+  }
+  present
+}


[25/50] zest-java git commit: ZEST-25 Add skipSigning build property set in src dist gradle.properties

Posted by pa...@apache.org.
ZEST-25 Add skipSigning build property set in src dist gradle.properties


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/6a0a317a
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/6a0a317a
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/6a0a317a

Branch: refs/heads/master
Commit: 6a0a317a199ba1d78df91a55014417a58e2836ad
Parents: 5fd949c
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 14:40:27 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 14:40:27 2015 +0200

----------------------------------------------------------------------
 build.gradle | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/6a0a317a/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index a397140..7ce80ba 100644
--- a/build.gradle
+++ b/build.gradle
@@ -59,6 +59,9 @@ project.ext {
   releaseApprovedProjects = allprojects.findAll( { p -> rootProject.releaseSpec.satisfiedBy( p ) } )
 }
 
+// Toggle signing, used by the source distribution by setting the skipSigning property in gradle.properties
+project.ext.skipSigning = rootProject.hasProperty( 'skipSigning' ) ? rootProject.skipSigning : false
+
 rat {
     onlyIf { version != '0' }
     excludes = [
@@ -329,6 +332,7 @@ allprojects {
       required { rootProject.version != '0' && uploadSigned }
       sign configurations.archives
     }
+    signArchives.onlyIf { !rootProject.skipSigning }
 
     task sourceJar( type: Jar ) {
       classifier = "sources"
@@ -744,7 +748,7 @@ task srcDistFilteredFiles() {
     // gradle.properties
     def gradlePropsFile = new File( filteredDir, 'gradle.properties' )
     gradlePropsFile.parentFile.mkdirs()
-    gradlePropsFile.text = project.file( 'gradle.properties' ).text + "\nversion=$version\n"
+    gradlePropsFile.text = project.file( 'gradle.properties' ).text + "\nskipSigning=true\n\nversion=$version\n"
   }
 }
 
@@ -855,6 +859,7 @@ signing {
   required { rootProject.version != '0' && !rootProject.version.contains( 'SNAPSHOT' ) }
   sign configurations.archives
 }
+signArchives.onlyIf { !rootProject.skipSigning }
 
 task dist( type: Copy, dependsOn: install ) {
   description "Unpack the binary distribution"


[50/50] zest-java git commit: Merge branch 'release/2.1-RC1'

Posted by pa...@apache.org.
Merge branch 'release/2.1-RC1'


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/c81602d8
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/c81602d8
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/c81602d8

Branch: refs/heads/master
Commit: c81602d89cbfed1466e774ced7864e9d2e0afd96
Parents: 74ee703 ce95ca7
Author: Paul Merlin <pa...@nosphere.org>
Authored: Tue Jul 28 12:36:40 2015 +0200
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Tue Jul 28 12:36:40 2015 +0200

----------------------------------------------------------------------
 .gitignore                                      |    2 +-
 KEYS                                            |  258 +++
 LICENSE.txt                                     |  112 +
 NOTICE.txt                                      |   15 +-
 README.txt                                      |   52 +-
 bin/git-create-remote-branch.sh                 |   13 -
 bin/migrate/develop.sh                          |   25 -
 bin/tag.sh                                      |    6 -
 build.gradle                                    |  571 ++++-
 buildSrc/build.gradle                           |   20 +-
 buildSrc/src/bin/devstatus.conf                 |   15 +
 buildSrc/src/bin/devstatus.py                   |   14 +
 buildSrc/src/bin/snippet.conf                   |   15 +
 buildSrc/src/bin/snippet.py                     |   14 +
 buildSrc/src/javadoc/overview.html              |    7 -
 buildSrc/src/main/groovy/Xslt.groovy            |   19 +
 .../org/qi4j/gradle/plugin/Documentation.groovy |  209 +-
 core/.gitignore                                 |    3 -
 core/LICENSE                                    |  177 --
 core/NOTICE                                     |   21 -
 core/api/build.gradle                           |   22 +-
 core/api/dev-status.xml                         |   16 +
 core/api/src/docs/api.txt                       |    2 +-
 core/api/src/docs/application.txt               |   14 +-
 core/api/src/docs/association.txt               |   18 +
 core/api/src/docs/composition.txt               |   10 +-
 core/api/src/docs/concern.txt                   |    6 +-
 core/api/src/docs/configuration.txt             |    4 +-
 core/api/src/docs/dependency-injection.txt      |   18 +
 core/api/src/docs/entitycomposite.txt           |    2 +-
 core/api/src/docs/indexing.txt                  |   18 +
 core/api/src/docs/metrics.txt                   |    4 +-
 core/api/src/docs/mixin.txt                     |   10 +-
 core/api/src/docs/property.txt                  |   18 +
 core/api/src/docs/query.txt                     |   18 +
 core/api/src/docs/reference/ref-api.txt         |    6 +-
 core/api/src/docs/servicecomposite.txt          |   10 +-
 core/api/src/docs/structure.txt                 |   20 +-
 core/api/src/docs/type-lookup.txt               |   21 +-
 core/api/src/docs/unitofwork.txt                |    4 +-
 core/api/src/docs/valuecomposite.txt            |    2 +-
 core/api/src/main/java/org/qi4j/api/Qi4j.java   |   15 +-
 .../org/qi4j/api/activation/Activation.java     |    2 +-
 .../qi4j/api/activation/ActivationEvent.java    |    2 +-
 .../ApplicationPassivationThread.java           |    8 +-
 .../java/org/qi4j/api/activation/package.html   |   18 +-
 .../org/qi4j/api/association/Association.java   |    7 +
 .../api/association/AssociationWrapper.java     |   28 +-
 .../qi4j/api/association/ManyAssociation.java   |   11 +
 .../api/association/ManyAssociationWrapper.java |   27 +-
 .../qi4j/api/association/NamedAssociation.java  |   13 +
 .../association/NamedAssociationWrapper.java    |   16 +-
 .../java/org/qi4j/api/association/package.html  |   16 +
 .../main/java/org/qi4j/api/cache/package.html   |   16 +
 .../java/org/qi4j/api/common/AppliesTo.java     |    2 +-
 .../org/qi4j/api/common/AppliesToFilter.java    |    6 +-
 .../main/java/org/qi4j/api/common/Optional.java |    6 +-
 .../java/org/qi4j/api/common/QualifiedName.java |    2 +-
 .../main/java/org/qi4j/api/common/TypeName.java |   18 +
 .../java/org/qi4j/api/common/UseDefaults.java   |    2 +-
 .../java/org/qi4j/api/common/Visibility.java    |    2 +-
 .../main/java/org/qi4j/api/common/package.html  |   26 +-
 .../org/qi4j/api/composite/ModelDescriptor.java |   18 +
 .../org/qi4j/api/composite/PropertyMapper.java  |   18 +
 .../composite/StatefulCompositeDescriptor.java  |   18 +
 .../java/org/qi4j/api/composite/package.html    |   16 +
 .../org/qi4j/api/concern/internal/package.html  |   16 +
 .../main/java/org/qi4j/api/concern/package.html |   16 +
 .../qi4j/api/configuration/Configuration.java   |  157 +-
 .../configuration/ConfigurationComposite.java   |    4 +-
 .../NoSuchConfigurationException.java           |   48 +
 .../org/qi4j/api/configuration/package.html     |   16 +
 .../java/org/qi4j/api/constraint/package.html   |   16 +
 .../main/java/org/qi4j/api/dataset/DataSet.java |   18 +
 .../org/qi4j/api/dataset/DataSetSource.java     |   18 +
 .../main/java/org/qi4j/api/dataset/Query.java   |   18 +
 .../api/dataset/iterable/IterableDataSet.java   |   18 +
 .../api/dataset/iterable/IterableQuery.java     |   18 +
 .../org/qi4j/api/dataset/iterable/package.html  |   16 +
 .../main/java/org/qi4j/api/dataset/package.html |   16 +
 .../qi4j/api/entity/EntityBuilderTemplate.java  |   18 +
 .../org/qi4j/api/entity/EntityReference.java    |    7 +
 .../main/java/org/qi4j/api/entity/Identity.java |    2 +-
 .../java/org/qi4j/api/entity/Lifecycle.java     |    6 +-
 .../main/java/org/qi4j/api/entity/package.html  |   16 +
 .../main/java/org/qi4j/api/event/package.html   |   16 +
 .../java/org/qi4j/api/injection/package.html    |   16 +
 .../org/qi4j/api/injection/scope/package.html   |   16 +
 .../metrics/MetricsNotSupportedException.java   |   18 +
 .../org/qi4j/api/metrics/MetricsProvider.java   |   23 +
 .../main/java/org/qi4j/api/metrics/package.html |   16 +
 .../main/java/org/qi4j/api/mixin/package.html   |   16 +
 .../main/java/org/qi4j/api/object/package.html  |   16 +
 .../api/src/main/java/org/qi4j/api/package.html |   18 +-
 .../property/InvalidPropertyTypeException.java  |   18 +
 .../org/qi4j/api/property/PropertyWrapper.java  |   20 +-
 .../java/org/qi4j/api/property/package.html     |   16 +
 .../org/qi4j/api/query/QueryExpressions.java    |    2 +-
 .../api/query/grammar/AndSpecification.java     |   18 +
 .../AssociationNotNullSpecification.java        |   18 +
 .../grammar/AssociationNullSpecification.java   |   18 +
 .../api/query/grammar/BinarySpecification.java  |   18 +
 .../query/grammar/ComparisonSpecification.java  |   18 +
 .../query/grammar/ContainsAllSpecification.java |   18 +
 .../query/grammar/ContainsSpecification.java    |   18 +
 .../qi4j/api/query/grammar/EqSpecification.java |   18 +
 .../query/grammar/ExpressionSpecification.java  |   18 +
 .../qi4j/api/query/grammar/GeSpecification.java |   18 +
 .../qi4j/api/query/grammar/GtSpecification.java |   18 +
 .../qi4j/api/query/grammar/LeSpecification.java |   18 +
 .../qi4j/api/query/grammar/LtSpecification.java |   18 +
 .../api/query/grammar/MatchesSpecification.java |   18 +
 .../qi4j/api/query/grammar/NeSpecification.java |   18 +
 .../api/query/grammar/NotSpecification.java     |   18 +
 .../qi4j/api/query/grammar/OrSpecification.java |   18 +
 .../grammar/PropertyNotNullSpecification.java   |   18 +
 .../grammar/PropertyNullSpecification.java      |   18 +
 .../api/query/grammar/PropertyReference.java    |   18 +
 .../api/query/grammar/QuerySpecification.java   |   18 +
 .../org/qi4j/api/query/grammar/Variable.java    |   18 +
 .../org/qi4j/api/query/grammar/package.html     |   16 +
 .../main/java/org/qi4j/api/query/package.html   |   16 +
 .../java/org/qi4j/api/service/Availability.java |    2 +-
 .../qi4j/api/service/IdentityDescriptor.java    |   18 +
 .../org/qi4j/api/service/ServiceFinder.java     |    2 +-
 .../org/qi4j/api/service/importer/package.html  |   16 +
 .../main/java/org/qi4j/api/service/package.html |   16 +
 .../org/qi4j/api/service/qualifier/package.html |   16 +
 .../qi4j/api/sideeffect/internal/package.html   |   16 +
 .../java/org/qi4j/api/sideeffect/package.html   |   16 +
 .../org/qi4j/api/structure/Application.java     |    2 +-
 .../api/structure/ApplicationDescriptor.java    |    2 +-
 .../main/java/org/qi4j/api/structure/Layer.java |    2 +-
 .../java/org/qi4j/api/structure/Module.java     |    4 +
 .../java/org/qi4j/api/structure/package.html    |   16 +
 .../main/java/org/qi4j/api/type/HasTypes.java   |   18 +
 .../main/java/org/qi4j/api/type/MapType.java    |   17 +
 .../java/org/qi4j/api/type/Serialization.java   |   56 +
 .../main/java/org/qi4j/api/type/package.html    |   16 +
 .../unitofwork/EntityTypeNotFoundException.java |   30 +-
 .../api/unitofwork/NoSuchEntityException.java   |   21 +-
 .../org/qi4j/api/unitofwork/UnitOfWork.java     |   78 +
 .../qi4j/api/unitofwork/UnitOfWorkOptions.java  |   18 +
 .../qi4j/api/unitofwork/UnitOfWorkTemplate.java |   18 +
 .../unitofwork/concern/UnitOfWorkConcern.java   |    1 +
 .../api/unitofwork/concern/UnitOfWorkRetry.java |   18 +
 .../qi4j/api/unitofwork/concern/package.html    |   16 +
 .../java/org/qi4j/api/unitofwork/package.html   |   16 +
 .../main/java/org/qi4j/api/usecase/package.html |   16 +
 .../java/org/qi4j/api/util/Constructors.java    |   18 +
 .../src/main/java/org/qi4j/api/util/Fields.java |   18 +
 .../main/java/org/qi4j/api/util/Methods.java    |   18 +
 .../main/java/org/qi4j/api/util/package.html    |   16 +
 .../qi4j/api/value/ValueBuilderTemplate.java    |   18 +
 .../org/qi4j/api/value/ValueSerialization.java  |    4 +
 .../org/qi4j/api/value/ValueSerializer.java     |   25 +-
 .../main/java/org/qi4j/api/value/package.html   |   16 +
 .../test/java/org/qi4j/api/OperatorsTest.java   |   18 +
 .../activation/PassivationExceptionTest.java    |    4 +-
 .../org/qi4j/api/common/QualifiedNameTest.java  |   18 +
 .../qi4j/api/concern/DocumentationSupport.java  |   18 +
 .../api/configuration/ConfigurationTest.java    |   18 +
 .../dataset/iterable/IterableDataSetTest.java   |   18 +
 .../qi4j/api/docsupport/ApplicationDocs.java    |   18 +
 .../qi4j/api/docsupport/CompositionDocs.java    |   18 +
 .../java/org/qi4j/api/docsupport/package.html   |   16 +
 .../java/org/qi4j/api/mixin/BankAccount.java    |   18 +
 .../src/test/java/org/qi4j/api/mixin/Car.java   |   18 +
 .../test/java/org/qi4j/api/mixin/Something.java |   18 +
 .../java/org/qi4j/api/mixin/SomethingMixin.java |   18 +
 .../java/org/qi4j/api/mixin/StartMixin.java     |   18 +
 .../test/java/org/qi4j/api/mixin/Startable.java |   18 +
 .../test/java/org/qi4j/api/mixin/Vehicle.java   |   18 +
 .../java/org/qi4j/api/mixin/VehicleMixin.java   |   18 +
 .../decoratorMixin/DecoratorMixinTest.java      |   18 +
 .../qi4j/api/mixin/decoratorMixin/FooModel.java |   18 +
 .../api/mixin/decoratorMixin/FooModelImpl.java  |   18 +
 .../FooModelInvocationHandler.java              |   18 +
 .../qi4j/api/mixin/decoratorMixin/View1.java    |   18 +
 .../qi4j/api/mixin/decoratorMixin/View2.java    |   18 +
 .../java/org/qi4j/api/mixin/partial/Car.java    |   18 +
 .../api/mixin/partial/CrashResultMixin.java     |   18 +
 .../org/qi4j/api/mixin/partial/Crashable.java   |   18 +
 .../qi4j/api/mixin/partial/SpeedLocation.java   |   18 +
 .../org/qi4j/api/mixin/partial/SpeedMixin.java  |   18 +
 .../org/qi4j/api/mixin/partial/Vehicle.java     |   18 +
 .../org/qi4j/api/mixin/privateMixin/Cargo.java  |   18 +
 .../qi4j/api/mixin/privateMixin/CargoMixin.java |   18 +
 .../qi4j/api/mixin/privateMixin/CargoState.java |   18 +
 .../api/unitofwork/UnitOfWorkTemplateTest.java  |   18 +
 .../api/value/ValueBuilderTemplateTest.java     |   18 +
 .../org/qi4j/api/value/ValueCompositeTest.java  |    4 +-
 .../qi4j/api/configuration/MyService.properties |   15 +
 core/bootstrap/build.gradle                     |   22 +-
 core/bootstrap/dev-status.xml                   |   16 +
 core/bootstrap/src/docs/bootstrap.txt           |  100 +-
 .../src/docs/reference/ref-bootstrap.txt        |   18 +
 .../bootstrap/ApplicationAssemblyFactory.java   |    2 +-
 .../main/java/org/qi4j/bootstrap/Assembler.java |    2 +-
 .../qi4j/bootstrap/AssemblySpecifications.java  |   18 +
 .../org/qi4j/bootstrap/BindingException.java    |    2 +-
 .../qi4j/bootstrap/ConfigurationAssembly.java   |   28 +
 .../bootstrap/ConfigurationDeclaration.java     |   87 +
 .../java/org/qi4j/bootstrap/Energy4Java.java    |    4 +-
 .../java/org/qi4j/bootstrap/EntityAssembly.java |   18 +
 .../qi4j/bootstrap/ImportedServiceAssembly.java |   18 +
 .../org/qi4j/bootstrap/InjectionException.java  |    2 +-
 .../bootstrap/InvalidInjectionException.java    |   20 +-
 .../java/org/qi4j/bootstrap/ModuleAssembly.java |   24 +
 .../java/org/qi4j/bootstrap/ObjectAssembly.java |   18 +
 .../java/org/qi4j/bootstrap/Qi4jRuntime.java    |    2 +-
 .../java/org/qi4j/bootstrap/RuntimeFactory.java |   26 +-
 .../org/qi4j/bootstrap/ServiceAssembly.java     |   18 +
 .../org/qi4j/bootstrap/ServiceDeclaration.java  |    2 +-
 .../org/qi4j/bootstrap/SingletonAssembler.java  |    2 +-
 .../org/qi4j/bootstrap/TransientAssembly.java   |   18 +
 .../java/org/qi4j/bootstrap/ValueAssembly.java  |   18 +
 .../bootstrap/builder/ApplicationBuilder.java   |   19 +-
 .../org/qi4j/bootstrap/builder/package.html     |   16 +
 .../qi4j/bootstrap/layered/LayerAssembler.java  |   29 +
 .../layered/LayeredApplicationAssembler.java    |  212 ++
 .../layered/LayeredLayerAssembler.java          |   86 +
 .../qi4j/bootstrap/layered/ModuleAssembler.java |   29 +
 .../org/qi4j/bootstrap/layered/package.html     |   21 +
 .../main/java/org/qi4j/bootstrap/package.html   |   16 +
 .../org/qi4j/bootstrap/ClassScannerTest.java    |   18 +
 .../qi4j/bootstrap/DocumentationSupport.java    |   20 +-
 .../test/java/org/qi4j/bootstrap/TestValue.java |   18 +
 .../LayeredApplicationAssemblerTest.java        |   41 +
 .../bootstrap/assembly/TestApplication.java     |   61 +
 .../assembly/config/ConfigurationLayer.java     |   33 +
 .../connectivity/ConnectivityLayer.java         |   35 +
 .../bootstrap/assembly/domain/DomainLayer.java  |   35 +
 .../assembly/domain/InvoicingModule.java        |   35 +
 .../bootstrap/assembly/domain/OrderModule.java  |   56 +
 .../assembly/infrastructure/IndexingModule.java |   44 +
 .../infrastructure/InfrastructureLayer.java     |   47 +
 .../infrastructure/SerializationModule.java     |   36 +
 .../assembly/infrastructure/StorageModule.java  |   44 +
 .../assembly/service/ServiceLayer.java          |   35 +
 .../builder/ApplicationBuilderTest.java         |    8 +-
 .../qi4j/bootstrap/somepackage/Test2Value.java  |   18 +
 core/functional/build.gradle                    |   25 +-
 core/functional/dev-status.xml                  |   16 +
 core/functional/src/docs/functional.txt         |   10 +-
 .../src/docs/reference/ref-functional.txt       |   18 +
 .../functional/HierarchicalVisitorAdapter.java  |   18 +
 .../java/org/qi4j/functional/Iterables.java     |   12 +-
 .../java/org/qi4j/functional/Visitable.java     |   18 +
 .../org/qi4j/functional/VisitableHierarchy.java |   18 +
 .../main/java/org/qi4j/functional/Visitor.java  |   18 +
 .../main/java/org/qi4j/functional/package.html  |   16 +
 .../java/org/qi4j/functional/FunctionsTest.java |   18 +
 .../functional/docsupport/FunctionalDocs.java   |   18 +
 core/io/build.gradle                            |   21 +-
 core/io/dev-status.xml                          |   16 +
 core/io/src/docs/io.txt                         |   14 +-
 core/io/src/docs/reference/ref-io.txt           |   18 +
 core/io/src/main/java/org/qi4j/io/Files.java    |   18 +
 .../src/main/java/org/qi4j/io/Transforms.java   |    2 +-
 core/io/src/main/java/org/qi4j/io/package.html  |   16 +
 .../test/java/org/qi4j/io/InputOutputTest.java  |    8 +-
 .../java/org/qi4j/io/docsupport/IoDocs.java     |   18 +
 core/runtime/build.gradle                       |   30 +-
 core/runtime/dev-status.xml                     |   16 +
 core/runtime/src/docs/reference/ref-runtime.txt |   18 +
 .../java/org/qi4j/runtime/Qi4jRuntimeImpl.java  |   36 +-
 .../runtime/activation/ActivatorsInstance.java  |    2 +-
 .../AbstractAssociationInstance.java            |   49 +-
 .../runtime/association/AssociationInfo.java    |   18 +
 .../association/AssociationInstance.java        |   13 +-
 .../association/ManyAssociationInstance.java    |   51 +-
 .../association/NamedAssociationInstance.java   |  145 +-
 .../association/NamedAssociationsModel.java     |    6 -
 .../bootstrap/ConfigurationAssemblyImpl.java    |   85 +
 .../bootstrap/ConfigurationDeclarationImpl.java |  125 +
 .../runtime/bootstrap/ModuleAssemblyImpl.java   |   70 +-
 .../composite/AbstractModifierModel.java        |    6 +-
 .../qi4j/runtime/composite/CompactLevel.java    |    4 +-
 .../runtime/composite/CompositeMethodModel.java |   10 +-
 .../composite/CompositeMethodsModel.java        |   10 +-
 .../qi4j/runtime/composite/CompositeModel.java  |   16 +-
 .../qi4j/runtime/composite/ConcernsModel.java   |    4 +-
 .../runtime/composite/FragmentClassLoader.java  |    4 +-
 .../composite/FragmentInvocationHandler.java    |    5 +-
 .../composite/FunctionStateResolver.java        |   49 +
 .../runtime/composite/GenericSpecification.java |   18 +
 .../qi4j/runtime/composite/InstancePool.java    |   18 +
 .../qi4j/runtime/composite/ProxyGenerator.java  |   18 +
 .../SideEffectInvocationHandlerResult.java      |   18 +
 .../runtime/composite/SideEffectsModel.java     |    4 +-
 .../composite/TransientBuilderInstance.java     |    2 +-
 .../runtime/composite/TransientClassLoader.java |    2 +-
 .../runtime/composite/TransientInstance.java    |   18 +-
 .../qi4j/runtime/composite/TransientModel.java  |    4 +-
 .../composite/TransientStateInstance.java       |   18 +
 .../TypedModifierInvocationHandler.java         |    8 -
 .../org/qi4j/runtime/entity/EntityInstance.java |   10 +-
 .../org/qi4j/runtime/entity/EntityModel.java    |   12 +-
 .../runtime/entity/EntityStateInstance.java     |    2 +-
 .../qi4j/runtime/injection/Dependencies.java    |   18 +
 .../qi4j/runtime/injection/DependencyModel.java |   16 +-
 .../runtime/injection/InjectedFieldModel.java   |   10 +-
 .../runtime/injection/InjectionContext.java     |   11 +-
 .../injection/ParameterizedTypeInstance.java    |   18 +
 .../InvocationInjectionProviderFactory.java     |   18 +
 .../ModifiesInjectionProviderFactory.java       |   18 +
 .../StructureInjectionProviderFactory.java      |   12 +-
 .../provider/ThisInjectionProviderFactory.java  |   18 +
 .../provider/UsesInjectionProviderFactory.java  |   21 +-
 .../org/qi4j/runtime/internal/Activator.java    |   18 +
 .../src/main/java/org/qi4j/runtime/package.html |   18 +-
 .../org/qi4j/runtime/property/PropertyInfo.java |   18 +
 .../qi4j/runtime/property/PropertyModel.java    |   21 +-
 .../ImportedServiceReferenceInstance.java       |    3 -
 .../runtime/structure/ApplicationInstance.java  |    2 +-
 .../qi4j/runtime/structure/LayerInstance.java   |   44 +-
 .../org/qi4j/runtime/structure/ModelModule.java |   89 -
 .../qi4j/runtime/structure/ModuleInstance.java  |   85 +-
 .../runtime/structure/ModuleUnitOfWork.java     |  279 ++-
 .../org/qi4j/runtime/structure/TypeLookup.java  |  176 +-
 .../runtime/structure/UsedLayersInstance.java   |   29 +-
 .../structure/VisibilitySpecification.java      |   18 +
 .../qi4j/runtime/types/ValueTypeFactory.java    |   23 +-
 .../unitofwork/EntityBuilderInstance.java       |   41 +-
 .../runtime/unitofwork/UnitOfWorkInstance.java  |   22 +-
 .../value/ManyAssociationValueState.java        |   18 +
 .../value/NamedAssociationValueState.java       |    1 -
 .../qi4j/runtime/value/ReferenceProperty.java   |   18 +
 .../runtime/value/ValueBuilderInstance.java     |    2 +-
 .../value/ValueBuilderWithPrototype.java        |  145 +-
 .../runtime/value/ValueBuilderWithState.java    |    2 +-
 .../org/qi4j/runtime/value/ValueInstance.java   |   30 +-
 .../java/org/qi4j/runtime/value/ValueModel.java |   19 +-
 .../qi4j/runtime/value/ValueStateInstance.java  |   14 +-
 .../org/qi4j/runtime/value/ValueStateModel.java |    2 +-
 .../common/UnitOfWorkCallbackEntityTest.java    |   81 -
 .../bootstrap/ApplicationAssemblerTest.java     |   18 +
 ...faceCollisionWithRelatedReturnTypesTest.java |    2 -
 ...alueCollisionWithRelatedReturnTypesTest.java |   36 +-
 .../org/qi4j/regression/qi53/IssueTest.java     |   18 +
 .../org/qi4j/regression/qi55/IssueTest.java     |   18 +
 .../org/qi4j/regression/qi65/IssueTest.java     |   18 +
 .../AppliesToOrConditionQI241Test.java          |   18 +
 .../association/AssociationEqualityTest.java    |   75 +-
 .../runtime/composite/FunctionalListTest.java   |   18 +
 .../org/qi4j/runtime/composite/QI247Test1.java  |   18 +
 .../org/qi4j/runtime/composite/QI247Test2.java  |   18 +
 .../runtime/composite/TransientAsClassTest.java |   18 +
 .../concerns/PropertyInheritanceTest.java       |   18 +
 .../constraints/ConstraintsTest.properties      |   15 +
 .../entity/EntityCompositeEqualityTest.java     |   18 +
 .../injection/InvocationInjectionTest.java      |   13 +-
 .../injection/StructureInjectionTest.java       |    4 +-
 .../org/qi4j/runtime/objects/OuterClass.java    |   18 +
 .../qi4j/runtime/query/model/Describable.java   |   18 +
 .../org/qi4j/runtime/util/AnnotationsTest.java  |   18 +
 .../runtime/value/ValueCompositeBasicsTest.java |   18 +
 .../value/ValueSerializationRegressionTest.java |   77 +
 .../runtime/value/ValueWithAssociationTest.java |  202 ++
 .../visibility/VisibilityInUnitOfWorkTest.java  |  159 ++
 .../qi4j/runtime/instantiation/My.properties    |   15 +
 .../service/HelloWorldService.properties        |   15 +
 core/spi/build.gradle                           |   21 +-
 core/spi/dev-status.xml                         |   16 +
 core/spi/src/docs/cache.txt                     |   19 +
 core/spi/src/docs/entitystore.txt               |   19 +
 core/spi/src/docs/indexing.txt                  |   19 +
 core/spi/src/docs/reference/ref-spi.txt         |   18 +
 core/spi/src/docs/spi.txt                       |    4 +-
 core/spi/src/docs/valueserialization.txt        |   21 +-
 .../memory/MemoryMapEntityStoreMixin.java       |   18 +
 .../org/qi4j/entitystore/memory/package.html    |   16 +
 .../spi/src/main/java/org/qi4j/spi/Qi4jSPI.java |   32 +-
 .../main/java/org/qi4j/spi/cache/CachePool.java |    4 +-
 .../main/java/org/qi4j/spi/cache/package.html   |   16 +
 .../java/org/qi4j/spi/entity/EntityStatus.java  |   18 +
 .../qi4j/spi/entity/NamedAssociationState.java  |    1 -
 .../main/java/org/qi4j/spi/entity/package.html  |   16 +
 .../ConcurrentModificationCheckConcern.java     |  111 +-
 .../DefaultEntityStoreUnitOfWork.java           |   18 +-
 .../EntityAlreadyExistsException.java           |    2 +-
 .../spi/entitystore/EntityStateVersions.java    |   12 +-
 .../org/qi4j/spi/entitystore/EntityStore.java   |    5 +-
 .../qi4j/spi/entitystore/EntityStoreSPI.java    |    4 +-
 .../spi/entitystore/EntityStoreUnitOfWork.java  |    9 +-
 .../ModuleEntityStoreUnitOfWork.java            |   85 +
 .../StateChangeNotificationConcern.java         |    1 +
 .../qi4j/spi/entitystore/StateCommitter.java    |   18 +
 .../entitystore/helpers/DefaultEntityState.java |   13 +-
 .../entitystore/helpers/JSONEntityState.java    |   37 +-
 .../helpers/JSONMapEntityStoreActivation.java   |   18 +
 .../helpers/JSONMapEntityStoreMixin.java        |  144 +-
 .../helpers/JSONNamedAssociationState.java      |    2 +-
 .../helpers/MapEntityStoreMixin.java            |  132 +-
 .../qi4j/spi/entitystore/helpers/package.html   |   16 +
 .../java/org/qi4j/spi/entitystore/package.html  |   16 +
 .../main/java/org/qi4j/spi/metrics/package.html |   16 +
 .../java/org/qi4j/spi/module/ModelModule.java   |  124 +
 .../java/org/qi4j/spi/module/ModuleSpi.java     |   46 +
 .../main/java/org/qi4j/spi/module/package.html  |   21 +
 .../spi/src/main/java/org/qi4j/spi/package.html |   18 +-
 .../org/qi4j/spi/query/QueryBuilderSPI.java     |   18 +
 .../java/org/qi4j/spi/query/QuerySource.java    |   18 +
 .../main/java/org/qi4j/spi/query/package.html   |   16 +
 .../main/java/org/qi4j/spi/uuid/package.html    |   16 +
 .../spi/value/ValueDeserializerAdapter.java     |   92 +-
 .../qi4j/spi/value/ValueSerializerAdapter.java  |  201 +-
 .../main/java/org/qi4j/spi/value/package.html   |   16 +
 .../orgjson/OrgJsonValueDeserializer.java       |   29 +
 .../orgjson/OrgJsonValueSerialization.java      |    2 +-
 .../valueserialization/orgjson/package.html     |   16 +
 .../helpers/JSONManyAssociationStateTest.java   |    2 -
 core/spi/src/test/resources/logback-test.xml    |   16 +
 core/testsupport/build.gradle                   |   25 +-
 core/testsupport/dev-status.xml                 |   16 +
 .../docs/reference/AbstractEntityStoreTest.txt  |   18 +
 .../docs/reference/AbstractQi4jScenarioTest.txt |   18 +
 .../src/docs/reference/AbstractQi4jTest.txt     |   18 +
 .../src/docs/reference/ref-testsupport.txt      |   18 +
 core/testsupport/src/docs/testsupport.txt       |    8 +-
 .../org/qi4j/test/AbstractQi4jBaseTest.java     |   34 +-
 .../org/qi4j/test/AbstractQi4jScenarioTest.java |   18 +-
 .../java/org/qi4j/test/AbstractQi4jTest.java    |    6 +-
 .../cache/AbstractEntityStoreWithCacheTest.java |  165 ++
 .../org/qi4j/test/cache/MemoryCacheImpl.java    |  142 ++
 .../qi4j/test/cache/MemoryCachePoolMixin.java   |   82 +
 .../qi4j/test/cache/MemoryCachePoolService.java |   37 +
 .../main/java/org/qi4j/test/cache/package.html  |   16 +
 ...bstractConfigurationDeserializationTest.java |  120 +
 .../test/entity/AbstractEntityStoreTest.java    |   27 +
 .../main/java/org/qi4j/test/entity/package.html |   16 +
 .../test/indexing/model/entities/package.html   |   16 +
 .../org/qi4j/test/indexing/model/package.html   |   16 +
 .../java/org/qi4j/test/indexing/package.html    |   16 +
 .../org/qi4j/test/mock/MockPlayerConcern.java   |   18 +
 .../org/qi4j/test/mock/internal/package.html    |   16 +
 .../main/java/org/qi4j/test/mock/package.html   |   16 +
 .../src/main/java/org/qi4j/test/package.html    |   18 +-
 .../main/java/org/qi4j/test/util/Assume.java    |   20 +-
 .../main/java/org/qi4j/test/util/package.html   |   16 +
 .../AbstractCollectionSerializationTest.java    |    1 +
 .../AbstractPlainValueSerializationTest.java    |    2 +
 ...AbstractValueCompositeSerializationTest.java |   74 +-
 .../main/java/org/qi4j/test/value/package.html  |   16 +
 .../org/qi4j/test/cache/MemoryCacheTest.java    |   32 +
 doap.rdf                                        |   44 +-
 etc/apache-rat-output-to-html.xsl               |  204 ++
 etc/header.txt                                  |   14 +
 etc/qi4j-api-checkstyle.xml                     |   21 +
 etc/qi4j-runtime-checkstyle.xml                 |   21 +
 etc/qi4j-tests-checkstyle.xml                   |   21 +
 extensions/.gitignore                           |    6 -
 extensions/LICENSE                              |  177 --
 extensions/cache-ehcache/NOTICE                 |   17 -
 extensions/cache-ehcache/build.gradle           |   23 +-
 extensions/cache-ehcache/dev-status.xml         |   16 +
 .../cache-ehcache/src/docs/cache-ehcache.txt    |   18 +
 .../qi4j/cache/ehcache/EhCachePoolMixin.java    |    2 +-
 .../qi4j/cache/ehcache/assembly/package.html    |   21 +
 .../java/org/qi4j/cache/ehcache/package.html    |   21 +
 extensions/cache-memcache/build.gradle          |   23 +-
 extensions/cache-memcache/dev-status.xml        |   16 +
 .../cache-memcache/src/docs/cache-memcache.txt  |   18 +
 .../java/org/qi4j/cache/memcache/package.html   |   16 +
 extensions/entitystore-file/NOTICE              |   16 -
 extensions/entitystore-file/build.gradle        |   21 +-
 extensions/entitystore-file/dev-status.xml      |   16 +
 .../entitystore-file/src/docs/es-file.txt       |   19 +
 .../file/FileEntityStoreConfiguration.java      |   34 +-
 .../entitystore/file/FileEntityStoreMixin.java  |   68 +-
 .../qi4j/entitystore/file/assembly/package.html |   16 +
 .../java/org/qi4j/entitystore/file/package.html |   16 +
 .../file/FileEntityStoreWithCacheTest.java      |   42 +
 extensions/entitystore-gae/NOTICE               |   16 -
 extensions/entitystore-gae/build.gradle         |   18 -
 extensions/entitystore-gae/dev-status.xml       |   19 -
 extensions/entitystore-gae/src/docs/es-gae.txt  |   13 -
 .../qi4j/entitystore/gae/GaeEntityState.java    |  451 ----
 .../gae/GaeEntityStoreActivation.java           |   40 -
 .../entitystore/gae/GaeEntityStoreMixin.java    |  104 -
 .../entitystore/gae/GaeEntityStoreService.java  |   40 -
 .../gae/GaeEntityStoreUnitOfWork.java           |  147 --
 .../entitystore/gae/GaeIdGeneratorService.java  |   62 -
 .../gae2/GaeEntityStoreActivation.java          |   43 -
 .../gae2/GaeEntityStoreConfiguration.java       |   32 -
 .../entitystore/gae2/GaeEntityStoreMixin.java   |  230 --
 .../entitystore/gae2/GaeEntityStoreService.java |   48 -
 .../GaeEntityStoreService.properties            |    5 -
 .../java/org/qi4j/entitystore/gae/readme.html   |   12 -
 extensions/entitystore-hazelcast/NOTICE         |   18 -
 extensions/entitystore-hazelcast/build.gradle   |   23 +-
 extensions/entitystore-hazelcast/dev-status.xml |   16 +
 .../src/docs/es-hazelcast.txt                   |   19 +
 .../hazelcast/HazelcastEntityStoreMixin.java    |    4 +-
 .../entitystore/hazelcast/assembly/package.html |   16 +
 .../org/qi4j/entitystore/hazelcast/package.html |   16 +
 .../HazelcastEntityStoreWithCacheTest.java      |   40 +
 .../HazelcastEntityStoreService.properties      |   15 +
 .../qi4j/entitystore/hazelcast/hazelcast.xml    |   16 +
 extensions/entitystore-jclouds/build.gradle     |   42 +-
 extensions/entitystore-jclouds/dev-status.xml   |   16 +
 .../entitystore-jclouds/src/docs/es-jclouds.txt |   19 +
 .../org/qi4j/entitystore/jclouds/package.html   |   16 +
 .../jclouds/JCloudsWithCacheTest.java           |   39 +
 extensions/entitystore-jdbm/NOTICE              |   18 -
 extensions/entitystore-jdbm/build.gradle        |   22 +-
 extensions/entitystore-jdbm/dev-status.xml      |   16 +
 .../entitystore-jdbm/src/docs/es-jdbm.txt       |   19 +
 .../qi4j/entitystore/jdbm/assembly/package.html |   16 +
 .../java/org/qi4j/entitystore/jdbm/package.html |   16 +
 .../jdbm/JdbmEntityStoreWithCacheTest.java      |   54 +
 extensions/entitystore-leveldb/build.gradle     |   23 +-
 extensions/entitystore-leveldb/dev-status.xml   |   16 +
 .../entitystore-leveldb/src/docs/es-leveldb.txt |   19 +
 .../org/qi4j/entitystore/leveldb/package.html   |   18 +-
 .../LevelDBEntityStoreWithCacheTest.java        |   46 +
 extensions/entitystore-memory/build.gradle      |   21 +-
 extensions/entitystore-memory/dev-status.xml    |   16 +
 .../entitystore-memory/src/docs/es-memory.txt   |   19 +
 .../org/qi4j/entitystore/memory/package.html    |   16 +
 .../memory/MemoryEntityStoreWithCacheTest.java  |   35 +
 extensions/entitystore-mongodb/.gitignore       |    3 -
 extensions/entitystore-mongodb/build.gradle     |   23 +-
 extensions/entitystore-mongodb/dev-status.xml   |   16 +
 .../entitystore-mongodb/src/docs/es-mongodb.txt |   19 +
 .../org/qi4j/entitystore/mongodb/package.html   |   16 +
 .../MongoMapEntityStoreWithCacheTest.java       |   83 +
 extensions/entitystore-neo4j/NOTICE.txt         |   27 -
 extensions/entitystore-neo4j/build.gradle       |   17 -
 extensions/entitystore-neo4j/dev-status.xml     |   20 -
 .../entitystore-neo4j/license-explain.txt       |   68 -
 .../licenses/neo4j-commercial.license           |    3 -
 .../licenses/neo4j-opensource.license           |  619 -----
 .../entitystore-neo4j/src/docs/es-neo4j.txt     |   35 -
 .../entitystore/neo4j/NeoConfiguration.java     |   33 -
 .../qi4j/entitystore/neo4j/NeoEntityState.java  |  293 ---
 .../entitystore/neo4j/NeoEntityStoreMixin.java  |  151 --
 .../neo4j/NeoEntityStoreService.java            |   13 -
 .../neo4j/NeoEntityStoreUnitOfWork.java         |  220 --
 .../neo4j/NeoManyAssociationState.java          |  170 --
 .../neo4j/NeoNamedAssociationState.java         |  152 --
 .../org/qi4j/entitystore/neo4j/RelTypes.java    |   12 -
 .../org/qi4j/entitystore/neo4j/package.html     |    5 -
 .../neo4j/test/SimpleNeoStoreTest.java          |   40 -
 extensions/entitystore-preferences/NOTICE       |   16 -
 extensions/entitystore-preferences/build.gradle |   34 +-
 .../entitystore-preferences/dev-status.xml      |   16 +
 .../src/docs/es-preferences.txt                 |   19 +
 .../prefs/PreferencesEntityStoreMixin.java      |   61 +-
 .../entitystore/prefs/assembly/package.html     |   16 +
 .../org/qi4j/entitystore/prefs/package.html     |   16 +
 extensions/entitystore-redis/build.gradle       |   23 +-
 extensions/entitystore-redis/dev-status.xml     |   16 +
 .../entitystore-redis/src/docs/es-redis.txt     |   19 +
 .../org/qi4j/entitystore/redis/package.html     |   16 +
 .../redis/RedisMapEntityStoreWithCacheTest.java |   78 +
 extensions/entitystore-riak/build.gradle        |   39 +-
 extensions/entitystore-riak/dev-status.xml      |   16 +
 .../entitystore-riak/src/docs/es-riak.txt       |   19 +
 .../java/org/qi4j/entitystore/riak/package.html |   16 +
 .../riak/RiakHttpMapEntityStoreTest.java        |    2 +-
 .../riak/RiakMapEntityStoreWithCacheTest.java   |   76 +
 .../riak/RiakProtobufMapEntityStoreTest.java    |    2 +-
 extensions/entitystore-sql/NOTICE               |   22 -
 extensions/entitystore-sql/build.gradle         |   23 +-
 extensions/entitystore-sql/dev-status.xml       |   16 +
 extensions/entitystore-sql/src/docs/es-sql.txt  |   19 +
 .../entitystore/sql/SQLEntityStoreMixin.java    |   73 +-
 .../qi4j/entitystore/sql/assembly/package.html  |   16 +
 .../qi4j/entitystore/sql/internal/package.html  |   16 +
 .../java/org/qi4j/entitystore/sql/package.html  |   16 +
 .../sql/DerbySQLEntityStoreTest.java            |    3 +-
 .../entitystore/sql/H2SQLEntityStoreTest.java   |    3 +-
 .../entitystore/sql/SQLiteEntityStoreTest.java  |    3 +-
 .../test/resources/derby-datasource.properties  |   15 +
 .../src/test/resources/h2-datasource.properties |   15 +
 .../src/test/resources/logback.xml              |   16 +
 .../test/resources/mysql-datasource.properties  |   15 +
 .../resources/postgresql-datasource.properties  |   15 +
 .../test/resources/sqlite-datasource.properties |   15 +
 extensions/entitystore-voldemort/NOTICE         |  163 --
 extensions/entitystore-voldemort/build.gradle   |   32 -
 extensions/entitystore-voldemort/dev-status.xml |   19 -
 .../src/docs/es-voldemort.txt                   |   13 -
 .../voldemort/VoldemortConfiguration.java       |  109 -
 .../voldemort/VoldemortEntityStoreMixin.java    |  344 ---
 .../voldemort/VoldemortEntityStoreService.java  |   50 -
 .../voldemort/assembly/VoldemortAssembler.java  |   48 -
 .../entitystore/voldemort/VoldemortTest.java    |  125 -
 .../org/qi4j/entitystore/voldemort/cluster.xml  |   38 -
 .../qi4j/entitystore/voldemort/node0.properties |  207 --
 .../qi4j/entitystore/voldemort/node1.properties |  207 --
 .../org/qi4j/entitystore/voldemort/stores.xml   |   37 -
 extensions/indexing-elasticsearch/build.gradle  |   24 +-
 .../indexing-elasticsearch/dev-status.xml       |   16 +
 .../src/docs/index-elasticsearch.txt            |   19 +
 .../ElasticSearchIndexExporter.java             |   18 +
 .../elasticsearch/ElasticSearchIndexer.java     |   64 +-
 .../index/elasticsearch/assembly/package.html   |   16 +
 .../index/elasticsearch/cluster/package.html    |   16 +
 .../index/elasticsearch/filesystem/package.html |   16 +
 .../internal/AbstractElasticSearchSupport.java  |    3 +
 .../index/elasticsearch/internal/package.html   |   16 +
 .../index/elasticsearch/memory/package.html     |   16 +
 .../org/qi4j/index/elasticsearch/package.html   |   16 +
 .../src/test/resources/logback-test.xml         |   16 +
 extensions/indexing-rdf/NOTICE                  |   42 -
 extensions/indexing-rdf/build.gradle            |   24 +-
 extensions/indexing-rdf/dev-status.xml          |   16 +
 extensions/indexing-rdf/src/docs/index-rdf.txt  |   19 +
 .../assembly/RdfNativeSesameStoreAssembler.java |    1 +
 .../org/qi4j/index/rdf/assembly/package.html    |   16 +
 .../index/rdf/indexing/RdfIndexingService.java  |    2 +-
 .../org/qi4j/index/rdf/indexing/package.html    |   16 +
 .../main/java/org/qi4j/index/rdf/package.html   |   16 +
 .../qi4j/index/rdf/query/SesameExpressions.java |   18 +
 .../qi4j/index/rdf/query/internal/package.html  |   16 +
 .../java/org/qi4j/index/rdf/query/package.html  |   16 +
 .../org/qi4j/index/rdf/ContainsAllTest.java     |   18 +
 .../java/org/qi4j/index/rdf/ContainsTest.java   |   18 +
 .../AccountServiceComposite.java                |   18 +
 extensions/indexing-solr/build.gradle           |   24 +-
 extensions/indexing-solr/dev-status.xml         |   16 +
 .../indexing-solr/src/docs/index-solr.txt       |   21 +-
 .../org/qi4j/index/solr/SolrExpressions.java    |   18 +
 .../solr/internal/SingleTokenTokenizer.java     |   23 +-
 .../internal/SingleTokenTokenizerFactory.java   |   18 +
 .../solr/internal/SolrEntityIndexerMixin.java   |    4 +-
 .../org/qi4j/index/solr/internal/package.html   |   16 +
 .../main/java/org/qi4j/index/solr/package.html  |   16 +
 .../indexing-solr/src/test/resources/schema.xml |   16 +
 .../src/test/resources/solrconfig.xml           |   16 +
 extensions/indexing-sql/NOTICE                  |   17 -
 extensions/indexing-sql/build.gradle            |   23 +-
 extensions/indexing-sql/dev-status.xml          |   16 +
 extensions/indexing-sql/instructions.txt        |   27 +-
 .../indexing-sql/src/docs/index-sql-tests.txt   |   19 +
 extensions/indexing-sql/src/docs/index-sql.txt  |   19 +
 .../org/qi4j/index/sql/assembly/package.html    |   16 +
 .../index/sql/internal/SQLEntityFinder.java     |    4 +-
 .../org/qi4j/index/sql/internal/package.html    |   16 +
 .../main/java/org/qi4j/index/sql/package.html   |   16 +
 .../qi4j/index/sql/support/api/SQLQuerying.java |   12 +-
 .../org/qi4j/index/sql/support/api/package.html |   16 +
 .../sql/support/common/RebuildingStrategy.java  |    2 +-
 .../qi4j/index/sql/support/common/package.html  |   16 +
 .../qi4j/index/sql/support/derby/package.html   |   16 +
 .../index/sql/support/postgresql/package.html   |   16 +
 .../support/skeletons/AbstractSQLIndexing.java  |    3 +-
 .../support/skeletons/AbstractSQLStartup.java   |    1 -
 .../index/sql/support/skeletons/package.html    |   16 +
 .../qi4j/index/sql/support/sqlite/package.html  |   16 +
 .../indexing-sql/src/test/resources/logback.xml |   16 +
 .../resources/postgres-datasource.properties    |   15 +
 extensions/metrics-yammer/NOTICE                |   18 -
 extensions/metrics-yammer/build.gradle          |    4 +-
 .../metrics-yammer/src/docs/metrics-yammer.txt  |   19 +
 .../qi4j/metrics/yammer/YammerMetricsMixin.java |    2 +-
 .../java/org/qi4j/metrics/yammer/package.html   |   16 +
 extensions/migration/NOTICE                     |   17 -
 extensions/migration/build.gradle               |   24 +-
 extensions/migration/dev-status.xml             |   16 +
 extensions/migration/src/docs/migration.txt     |   19 +
 .../org/qi4j/migration/assembly/package.html    |   16 +
 .../org/qi4j/migration/operation/package.html   |   16 +
 .../main/java/org/qi4j/migration/package.html   |   16 +
 extensions/reindexer/NOTICE                     |   17 -
 extensions/reindexer/build.gradle               |   21 +-
 extensions/reindexer/dev-status.xml             |   16 +
 extensions/reindexer/src/docs/reindexer.txt     |   19 +
 .../reindexer/internal/ReindexerMixin.java      |  180 +-
 .../qi4j/index/reindexer/internal/package.html  |   16 +
 .../java/org/qi4j/index/reindexer/package.html  |   16 +
 .../org/qi4j/index/reindexer/ReindexerTest.java |   11 +-
 .../jdbm/JdbmEntityStoreService.properties      |   15 +
 .../rdf/repository/rdf-indexing.properties      |   15 +
 .../valueserialization-jackson/build.gradle     |   25 +-
 .../valueserialization-jackson/dev-status.xml   |   16 +
 .../src/docs/vs-jackson.txt                     |   19 +
 .../jackson/JacksonValueDeserializer.java       |   26 +
 .../valueserialization/jackson/package.html     |   16 +
 ...JacksonConfigurationDeserializationTest.java |   36 +
 .../src/test/resources/configtest.json          |    8 +
 .../src/test/resources/logback-test.xml         |   18 -
 .../valueserialization-orgjson/build.gradle     |   25 +-
 .../valueserialization-orgjson/dev-status.xml   |   16 +
 .../src/docs/vs-orgjson.txt                     |   19 +
 .../valueserialization/orgjson/package.html     |   16 +
 ...OrgJsonConfigurationDeserializationTest.java |   36 +
 .../src/test/resources/configtest.json          |    8 +
 extensions/valueserialization-stax/build.gradle |   25 +-
 .../valueserialization-stax/dev-status.xml      |   16 +
 .../src/docs/vs-stax.txt                        |   19 +
 .../stax/StaxValueDeserializer.java             |   45 +
 .../qi4j/valueserialization/stax/package.html   |   16 +
 .../StaxConfigurationDeserializationTest.java   |   65 +
 .../src/test/resources/configtest.xml           |   48 +
 .../src/test/resources/logback-test.xml         |   19 -
 gradle.properties                               |   14 +
 gradle/wrapper/gradle-wrapper.properties        |    4 +-
 libraries.gradle                                |  192 +-
 libraries/.gitignore                            |    6 -
 libraries/LICENSE                               |  177 --
 libraries/NOTICE                                |  116 -
 libraries/alarm/build.gradle                    |   23 +-
 libraries/alarm/dev-status.xml                  |   16 +
 libraries/alarm/src/docs/alarm.txt              |    4 +-
 .../java/org/qi4j/library/alarm/package.html    |    8 +-
 .../library/alarm/AlarmHistoryImplTest.java     |    2 +-
 .../org/qi4j/library/appbrowser/Browser.java    |   19 +-
 .../library/appbrowser/BrowserException.java    |   18 +
 .../org/qi4j/library/appbrowser/Formatter.java  |   18 +
 .../library/appbrowser/FormatterFactory.java    |   18 +
 .../appbrowser/json/AbstractJsonFormatter.java  |   18 +
 .../json/ApplicationModelFormatter.java         |   18 +
 .../library/appbrowser/json/ArrayFormatter.java |   18 +
 .../json/CompositeMethodModelFormatter.java     |   18 +
 .../json/ConstructorModelFormatter.java         |   18 +
 .../appbrowser/json/EntityModelFormatter.java   |   18 +
 .../json/InjectedFieldModelFormatter.java       |   18 +
 .../appbrowser/json/JsonFormatterFactory.java   |   18 +
 .../appbrowser/json/LayerModelFormatter.java    |   18 +
 .../appbrowser/json/MixinModelFormatter.java    |   18 +
 .../appbrowser/json/ModuleModelFormatter.java   |   18 +
 .../library/appbrowser/json/NullFormatter.java  |   18 +
 .../appbrowser/json/ObjectModelFormatter.java   |   18 +
 .../appbrowser/json/ServiceModelFormatter.java  |   18 +
 .../appbrowser/json/ValueModelFormatter.java    |   18 +
 .../qi4j/library/appbrowser/AppBrowserTest.java |   19 +-
 libraries/circuitbreaker/build.gradle           |   24 +-
 libraries/circuitbreaker/dev-status.xml         |   16 +
 .../circuitbreaker/src/docs/circuitbreaker.txt  |   25 +-
 .../library/circuitbreaker/jmx/package.html     |   16 +
 .../qi4j/library/circuitbreaker/package.html    |   16 +
 .../library/circuitbreaker/service/package.html |   16 +
 .../circuitbreaker/CircuitBreakerTest.java      |    4 +-
 libraries/constraints/build.gradle              |   23 +-
 libraries/constraints/dev-status.xml            |   16 +
 libraries/constraints/src/docs/constraints.txt  |   21 +-
 .../library/constraints/ContainsConstraint.java |   18 +
 .../constraints/GreaterThanConstraint.java      |   18 +
 .../library/constraints/LessThanConstraint.java |   18 +
 .../library/constraints/MatchesConstraint.java  |   18 +
 .../constraints/MaxLengthConstraint.java        |   18 +
 .../constraints/MinLengthConstraint.java        |   18 +
 .../library/constraints/OneOfConstraint.java    |   18 +
 .../library/constraints/RangeConstraint.java    |   18 +
 .../constraints/annotation/Contains.java        |   18 +
 .../library/constraints/annotation/Email.java   |   18 +
 .../constraints/annotation/GreaterThan.java     |   18 +
 .../constraints/annotation/LessThan.java        |   18 +
 .../library/constraints/annotation/Matches.java |   18 +
 .../constraints/annotation/MaxLength.java       |   18 +
 .../constraints/annotation/MinLength.java       |   18 +
 .../library/constraints/annotation/OneOf.java   |   18 +
 .../library/constraints/annotation/Range.java   |   18 +
 .../library/constraints/annotation/package.html |   16 +
 .../org/qi4j/library/constraints/package.html   |   16 +
 .../library/constraints/TestCaseComposite.java  |    6 +-
 .../library/constraints/qi70/IssueTest.java     |   18 +
 .../qi4j/library/constraints/qi70/Sample.java   |   18 +
 .../constraints/qi70/SampleComposite.java       |   18 +
 .../library/constraints/qi70/SampleMixin.java   |   18 +
 libraries/conversion/build.gradle               |   23 +-
 libraries/conversion/dev-status.xml             |   16 +
 libraries/conversion/src/docs/conversion.txt    |   31 +-
 .../conversion/values/EntityToValue.java        |    3 +
 .../values/EntityToValueAssembler.java          |    2 +
 .../conversion/values/EntityToValueService.java |    2 +
 .../conversion/values/ValueToEntity.java        |    1 +
 .../values/ValueToEntityAssembler.java          |    2 +
 .../conversion/values/ValueToEntityMixin.java   |  339 +--
 .../conversion/values/ValueToEntityService.java |    2 +
 .../qi4j/library/conversion/values/package.html |   16 +
 libraries/cxf/build.gradle                      |   27 -
 libraries/cxf/dev-status.xml                    |   19 -
 libraries/cxf/src/docs/cxf.txt                  |   13 -
 .../java/org/qi4j/library/cxf/CxfAssembler.java |   33 -
 .../java/org/qi4j/library/cxf/JaxWsCreator.java |   26 -
 .../library/cxf/JaxWsServerFactoryInfo.java     |   48 -
 .../java/org/qi4j/library/cxf/JaxWsService.java |  128 --
 .../org/qi4j/library/cxf/NamespaceUtil.java     |   55 -
 .../org/qi4j/library/cxf/Qi4jTypeCreator.java   |   63 -
 .../qi4j/library/cxf/ValueCompositeCxfType.java |  483 ----
 .../main/java/org/qi4j/library/cxf/package.html |    9 -
 .../java/org/qi4j/library/cxf/HelloClient.java  |   43 -
 .../java/org/qi4j/library/cxf/HelloMain.java    |   42 -
 .../java/org/qi4j/library/cxf/HelloWorld.java   |   28 -
 .../org/qi4j/library/cxf/HelloWorldImpl.java    |   54 -
 .../java/org/qi4j/library/cxf/Subscription.java |   34 -
 .../test/java/org/qi4j/library/cxf/User.java    |   34 -
 .../org/qi4j/library/cxf/divs/DivPoint.java     |   51 -
 .../org/qi4j/library/cxf/divs/DivStream.java    |   40 -
 .../org/qi4j/library/cxf/divs/Dividends.java    |   26 -
 .../qi4j/library/cxf/divs/DividendsMain.java    |   65 -
 .../qi4j/library/cxf/divs/DividendsTest.java    |  139 --
 .../library/cxf/divs/ProjectedDividends.java    |  117 -
 .../cxf/divs/ProjectedDividendsService.java     |   25 -
 libraries/eventsourcing-jdbm/build.gradle       |   23 +-
 libraries/eventsourcing-jdbm/dev-status.xml     |   18 +-
 .../src/docs/eventsourcing-jdbm.txt             |   13 -
 .../domain/source/jdbm/package.html             |   16 +
 libraries/eventsourcing-rest/build.gradle       |   23 +-
 libraries/eventsourcing-rest/dev-status.xml     |   18 +-
 .../src/docs/eventsourcing-rest.txt             |   13 -
 .../domain/rest/server/package.html             |   16 +
 libraries/eventsourcing/build.gradle            |   24 +-
 libraries/eventsourcing/dev-status.xml          |   18 +-
 .../eventsourcing/src/docs/eventsourcing.txt    |  126 +-
 .../eventsourcing/application/api/package.html  |   16 +
 .../factory/ApplicationEventFactoryService.java |    6 +-
 .../application/factory/package.html            |   16 +
 .../application/replay/package.html             |   16 +
 .../application/source/helper/package.html      |   16 +
 .../MemoryApplicationEventStoreService.java     |  142 ++
 .../application/source/memory/package.html      |   21 +
 .../application/source/package.html             |   16 +
 .../bootstrap/EventsourcingAssembler.java       |   81 +
 .../eventsourcing/bootstrap/package.html        |   21 +
 .../eventsourcing/domain/api/package.html       |   16 +
 .../factory/DomainEventFactoryService.java      |    2 +-
 .../eventsourcing/domain/factory/package.html   |   16 +
 .../eventsourcing/domain/replay/package.html    |   16 +
 .../domain/source/helper/package.html           |   16 +
 .../domain/source/memory/package.html           |   16 +
 .../eventsourcing/domain/source/package.html    |   16 +
 .../eventsourcing/domain/spi/package.html       |   16 +
 .../application/ApplicationEventTest.java       |  227 ++
 .../eventsourcing/domain/DomainEventTest.java   |   18 +-
 .../domain/source/helper/EventsTest.java        |   18 +
 .../source/helper/UnitOfWorkRouterTest.java     |   18 +
 libraries/fileconfig/build.gradle               |   24 +-
 libraries/fileconfig/dev-status.xml             |   16 +
 libraries/fileconfig/src/docs/fileconfig.txt    |   21 +-
 .../fileconfig/FileConfigurationService.java    |   20 +-
 .../org/qi4j/library/fileconfig/package.html    |   16 +
 .../fileconfig/FileConfiguration_mac.properties |   15 +
 .../FileConfiguration_unix.properties           |   15 +
 .../FileConfiguration_windows.properties        |   15 +
 .../fileconfig/FileConfiguration_mac.properties |   15 +
 libraries/http/build.gradle                     |   23 +-
 libraries/http/dev-status.xml                   |   16 +
 libraries/http/src/docs/http.txt                |   27 +-
 .../java/org/qi4j/library/http/package.html     |   16 +
 .../qi4j/library/http/dns/LocalManagedDns.java  |    1 -
 ...un.net.spi.nameservice.NameServiceDescriptor |   15 +
 libraries/http/src/test/resources/logback.xml   |   16 +
 libraries/invocation-cache/build.gradle         |   23 +-
 libraries/invocation-cache/dev-status.xml       |   16 +
 .../src/docs/invocation-cache.txt               |   88 +-
 .../CacheInvocationResultSideEffect.java        |   62 -
 .../InvalidateCacheOnSettersSideEffect.java     |   53 -
 .../invocationcache/InvocationCache.java        |    3 +
 .../InvocationCacheAbstractComposite.java       |   32 -
 .../invocationcache/InvocationCacheMixin.java   |   60 -
 .../ReturnCachedValueConcern.java               |   26 +-
 .../ReturnCachedValueOnExceptionConcern.java    |   33 +-
 .../SimpleInvocationCacheMixin.java             |   69 +
 .../qi4j/library/invocationcache/package.html   |   16 +
 .../invocationcache/DocumentationSupport.java   |   51 +
 libraries/jmx/build.gradle                      |   24 +-
 libraries/jmx/dev-status.xml                    |   16 +
 libraries/jmx/src/docs/jmx.txt                  |   21 +-
 .../library/jmx/ApplicationManagerService.java  |   83 +-
 .../java/org/qi4j/library/jmx/MBeanTracker.java |   18 +
 .../java/org/qi4j/library/jmx/Qi4jMBeans.java   |    4 +-
 .../main/java/org/qi4j/library/jmx/package.html |   16 +
 libraries/lang-beanshell/README.txt             |   10 +
 libraries/lang-beanshell/build.gradle           |   14 -
 libraries/lang-beanshell/dev-status.xml         |   19 -
 libraries/lang-beanshell/licenses/lgpl.license  |  321 ---
 libraries/lang-beanshell/licenses/spl.license   |  472 ----
 .../lang-beanshell/src/docs/lang-beanshell.txt  |   13 -
 .../org/qi4j/lang/beanshell/BeanShellMixin.java |  223 --
 .../java/org/qi4j/lang/beanshell/package.html   |    5 -
 .../qi4j/lang/beanshell/BeanShellComposite.java |   23 -
 .../qi4j/lang/beanshell/BeanShellMixinTest.java |   47 -
 .../java/org/qi4j/lang/beanshell/Mixin1.java    |    6 -
 .../qi4j/lang/beanshell/BeanShellComposite.bsh  |   14 -
 libraries/lang-groovy/build.gradle              |   24 +-
 libraries/lang-groovy/dev-status.xml            |   20 +-
 libraries/lang-groovy/src/docs/lang-groovy.txt  |  108 +-
 .../main/java/org/qi4j/lang/groovy/package.html |   16 +
 .../org/qi4j/lang/groovy/GroovyComposite.java   |   23 +
 .../org/qi4j/lang/groovy/GroovyMixinTest.java   |   46 +
 .../org/qi4j/lang/groovy/HelloSpeaker.java      |   19 +
 .../qi4j/lang/groovy/HelloSpeakerMixin.groovy   |   26 +
 .../org/qi4j/lang/groovy/HelloSpeakerTest.java  |   79 +
 .../groovy/org/qi4j/lang/groovy/Mixin1.java     |   24 +
 .../org/qi4j/lang/groovy/GroovyComposite.java   |   23 -
 .../org/qi4j/lang/groovy/GroovyMixinTest.java   |   46 -
 .../java/org/qi4j/lang/groovy/HelloSpeaker.java |   26 -
 .../test/java/org/qi4j/lang/groovy/Mixin1.java  |    6 -
 .../org/qi4j/lang/groovy/HelloSpeaker.groovy    |   25 +
 .../lang/groovy/HelloSpeaker.sayHello.groovy    |   20 +
 .../org/qi4j/lang/groovy/Mixin1.groovy          |   11 +
 libraries/lang-javascript/build.gradle          |   23 +-
 libraries/lang-javascript/dev-status.xml        |   16 +
 .../src/docs/lang-javascript.txt                |   21 +-
 .../java/org/qi4j/lang/javascript/package.html  |   16 +
 .../org/qi4j/lang/javascript/DomainType.java    |   18 +
 .../org/qi4j/lang/javascript/DomainType.js      |   11 +
 libraries/lang-jruby/NOTICE                     | 2153 ------------------
 libraries/lang-jruby/README.txt                 |   10 +
 libraries/lang-jruby/build.gradle               |   15 -
 libraries/lang-jruby/dev-status.xml             |   19 -
 libraries/lang-jruby/licenses/jruby.license     |   60 -
 libraries/lang-jruby/src/docs/lang-jruby.txt    |   29 -
 .../java/org/qi4j/lang/jruby/JRubyMixin.java    |  258 ---
 .../main/java/org/qi4j/lang/jruby/package.html  |    5 -
 .../java/org/qi4j/lang/jruby/HelloSpeaker.java  |   24 -
 .../org/qi4j/lang/jruby/JRubyMixinTest.java     |   41 -
 .../java/org/qi4j/lang/jruby/MyDomainType.java  |    6 -
 .../org/qi4j/lang/jruby/MyDomainType.rb         |    5 -
 libraries/lang-scala/build.gradle               |   46 +-
 libraries/lang-scala/dev-status.xml             |   18 +-
 libraries/lang-scala/src/docs/lang-scala.txt    |  108 +
 .../org/qi4j/lang/scala/ScalaTraitMixin.java    |   68 +-
 .../main/java/org/qi4j/lang/scala/package.html  |   16 +
 .../scala/ExclamationGenericConcern.scala       |   14 +-
 .../qi4j/sample/scala/HelloThereConcern.scala   |   18 +-
 .../qi4j/sample/scala/HelloWorldComposite.scala |   13 +
 .../sample/scala/HelloWorldComposite2.scala     |   11 +
 .../sample/scala/HelloWorldCompositeTest.java   |   22 +-
 .../org/qi4j/sample/scala/HelloWorldMixin.scala |   11 +
 .../qi4j/sample/scala/HelloWorldMixin2.scala    |   15 +-
 .../qi4j/sample/scala/HelloWorldMixin3.scala    |   11 +
 .../org/qi4j/sample/scala/TestEntity.scala      |   15 +-
 .../org/qi4j/sample/scala/TestService.scala     |   15 +-
 libraries/locking/build.gradle                  |   23 +-
 libraries/locking/dev-status.xml                |   18 +-
 libraries/locking/src/docs/locking.txt          |   58 +-
 .../qi4j/library/locking/ReadLockConcern.java   |    5 +-
 .../qi4j/library/locking/WriteLockConcern.java  |   31 +-
 .../java/org/qi4j/library/locking/package.html  |   16 +
 .../library/locking/DocumentationSupport.java   |   42 +
 libraries/logging/build.gradle                  |   23 +-
 libraries/logging/dev-status.xml                |   16 +
 libraries/logging/src/docs/logging.txt          |    4 +-
 .../org/qi4j/logging/debug/DebugConcern.java    |    6 -
 .../java/org/qi4j/logging/debug/package.html    |   16 +
 .../org/qi4j/logging/debug/records/package.html |   16 +
 .../debug/service/DebugOnConsoleSideEffect.java |    2 +-
 .../debug/service/DebuggingServiceMixin.java    |    2 +-
 .../org/qi4j/logging/debug/service/package.html |   16 +
 .../qi4j/logging/log/assemblies/package.html    |   16 +
 .../main/java/org/qi4j/logging/log/package.html |   16 +
 .../org/qi4j/logging/log/records/package.html   |   16 +
 .../log/service/LoggingServiceMixin.java        |    2 +-
 .../org/qi4j/logging/log/service/package.html   |   16 +
 .../qi4j/logging/trace/assemblies/package.html  |   16 +
 .../java/org/qi4j/logging/trace/package.html    |   16 +
 .../org/qi4j/logging/trace/records/package.html |   16 +
 .../org/qi4j/logging/trace/service/package.html |   16 +
 .../java/org/qi4j/logging/view/package.html     |   16 +
 .../qi4j/logging/docsupport/LoggingDocs.java    |   18 +
 .../DebuggingServiceComposite.properties        |   15 +
 libraries/metrics/build.gradle                  |    4 +-
 libraries/metrics/dev-status.xml                |    6 +-
 libraries/metrics/src/docs/metrics.txt          |   28 +-
 .../java/org/qi4j/library/metrics/package.html  |   16 +
 .../library/metrics/DocumentationSupport.java   |   79 +
 .../org/qi4j/library/metrics/MetricsTest.java   |    7 +-
 libraries/neo4j/build.gradle                    |   14 -
 libraries/neo4j/dev-status.xml                  |   19 -
 libraries/neo4j/src/docs/neo4j.txt              |   31 -
 .../library/neo4j/EmbeddedDatabaseService.java  |   98 -
 .../java/org/qi4j/library/neo4j/package.html    |    5 -
 .../library/neo4j/DocumentationSupport.java     |   45 -
 .../neo4j/EmbeddedDatabaseServiceTest.java      |   71 -
 libraries/osgi/build.gradle                     |   23 +-
 libraries/osgi/dev-status.xml                   |   16 +
 libraries/osgi/src/docs/osgi.txt                |   27 +-
 .../org/qi4j/library/osgi/FallbackStrategy.java |   19 +-
 .../qi4j/library/osgi/OSGiEnabledService.java   |   18 +
 .../org/qi4j/library/osgi/OSGiImportInfo.java   |   18 +
 .../qi4j/library/osgi/OSGiServiceExporter.java  |   20 +-
 .../qi4j/library/osgi/OSGiServiceImporter.java  |   20 +-
 .../java/org/qi4j/library/osgi/package.html     |   16 +
 .../qi4j/library/osgi/DocumentationSupport.java |   18 +
 .../org/qi4j/library/osgi/OSGiServiceTest.java  |   18 +
 libraries/rdf/build.gradle                      |   23 +-
 libraries/rdf/dev-status.xml                    |   16 +
 libraries/rdf/src/docs/rdf.txt                  |   19 +
 .../java/org/qi4j/library/rdf/Qi4jEntity.java   |    2 +-
 .../org/qi4j/library/rdf/Qi4jEntityType.java    |    2 +-
 .../main/java/org/qi4j/library/rdf/Qi4jRdf.java |    2 +-
 .../org/qi4j/library/rdf/entity/package.html    |   16 +
 .../org/qi4j/library/rdf/model/Model2XML.java   |   18 +
 .../org/qi4j/library/rdf/model/package.html     |   16 +
 .../main/java/org/qi4j/library/rdf/package.html |   16 +
 .../rdf/repository/NativeRepositoryService.java |  301 +--
 .../qi4j/library/rdf/repository/package.html    |   16 +
 .../qi4j/library/rdf/serializer/package.html    |   16 +
 .../org/qi4j/library/rdf/Model2XMLTest.java     |   18 +
 .../rdf/entity/EntitySerializerTest.java        |   30 +-
 .../java/org/qi4j/library/rdf/entity/test.xml   |   16 +
 .../java/org/qi4j/library/rdf/entity/test2.xml  |   16 +
 .../NativeRepositoryService.properties          |   15 +
 libraries/rest-client/build.gradle              |   24 +-
 libraries/rest-client/dev-status.xml            |   16 +
 libraries/rest-client/src/docs/primer.txt       |   25 +-
 libraries/rest-client/src/docs/rest-client.txt  |   19 +
 .../library/rest/client/api/ErrorHandler.java   |   18 +
 .../library/rest/client/api/HandlerCommand.java |   18 +
 .../qi4j/library/rest/client/api/package.html   |   16 +
 .../org/qi4j/library/rest/client/package.html   |   16 +
 .../rest/client/requestwriter/package.html      |   16 +
 .../rest/client/responsereader/package.html     |   16 +
 .../qi4j/library/rest/client/spi/package.html   |   16 +
 .../library/rest/client/rest-client.properties  |   15 +
 .../ContextResourceClientFactoryTest.java       |   18 +
 .../rest/client/ContinuousIntegrationTest.java  |   18 +
 .../qi4j/library/rest/client/RssReaderTest.java |   20 +-
 .../rest/client/docsupport/RestPrimerDocs.java  |   18 +
 libraries/rest-common/build.gradle              |   41 +-
 libraries/rest-common/dev-status.xml            |   16 +
 libraries/rest-common/src/docs/rest-common.txt  |   19 +
 .../qi4j/library/rest/common/link/package.html  |   16 +
 .../org/qi4j/library/rest/common/package.html   |   16 +
 .../qi4j/library/rest/common/table/package.html |   16 +
 libraries/rest-server/build.gradle              |   24 +-
 libraries/rest-server/dev-status.xml            |   16 +
 libraries/rest-server/src/docs/rest-server.txt  |   19 +
 .../rest/server/api/ContextResource.java        |    9 +-
 .../api/InteractionConstraintsConcern.java      |   18 +
 .../rest/server/api/constraint/package.html     |   16 +
 .../library/rest/server/api/dci/package.html    |   16 +
 .../qi4j/library/rest/server/api/package.html   |   16 +
 .../library/rest/server/assembler/package.html  |   16 +
 .../restlet/ConstraintViolationMessages.java    |   18 +
 .../freemarker/ValueCompositeObjectWrapper.java |   18 +
 .../freemarker/ValueCompositeTemplateModel.java |   18 +
 .../rest/server/restlet/freemarker/package.html |   16 +
 .../library/rest/server/restlet/package.html    |   16 +
 .../requestreader/DefaultRequestReader.java     |   18 +
 .../server/restlet/requestreader/package.html   |   16 +
 .../server/restlet/responsewriter/package.html  |   16 +
 .../library/rest/server/spi/CommandResult.java  |   18 +
 .../library/rest/server/spi/RequestReader.java  |   18 +
 .../library/rest/server/spi/ResponseWriter.java |   18 +
 .../qi4j/library/rest/server/spi/package.html   |   16 +
 .../library/rest/server/rest-server.properties  |   15 +
 .../restlet/responsewriter/selectresource.htm   |   19 -
 .../server/restlet/responsewriter/table.htm     |   19 -
 .../server/restlet/responsewriter/value.htm     |   17 -
 .../src/main/resources/velocity.properties      |   15 +
 libraries/rest/build.gradle                     |   25 +-
 libraries/rest/dev-status.xml                   |   16 +
 libraries/rest/src/docs/rest.txt                |   18 +
 .../qi4j/library/rest/admin/EntityResource.java |   16 +-
 .../library/rest/admin/Qi4jServerServlet.java   |    2 +-
 .../org/qi4j/library/rest/admin/package.html    |   16 +
 .../org/qi4j/library/rest/admin/sparqlform.html |   16 +
 .../rest/src/main/resources/velocity.properties |   15 +
 .../org/qi4j/library/rest/admin/RestTest.java   |    2 +-
 libraries/scheduler/build.gradle                |   24 +-
 libraries/scheduler/dev-status.xml              |   16 +
 libraries/scheduler/src/docs/scheduler.txt      |   26 +-
 .../org/qi4j/library/scheduler/Scheduler.java   |   15 +-
 .../qi4j/library/scheduler/SchedulerMixin.java  |   30 +-
 .../library/scheduler/bootstrap/package.html    |   16 +
 .../org/qi4j/library/scheduler/package.html     |   16 +
 .../library/scheduler/schedule/Schedule.java    |    2 +-
 .../scheduler/schedule/ScheduleFactory.java     |    8 +
 .../scheduler/schedule/cron/CronSchedule.java   |    8 +-
 .../scheduler/schedule/cron/package.html        |   16 +
 .../scheduler/schedule/once/package.html        |   16 +
 .../library/scheduler/schedule/package.html     |   16 +
 .../library/scheduler/timeline/package.html     |   16 +
 .../org/qi4j/library/scheduler/FooTask.java     |    6 +-
 .../src/test/resources/logback-test.xml         |   16 +
 libraries/scheduler/test-repeatedly.sh          |   15 +
 libraries/scripting/build.gradle                |   23 +-
 libraries/scripting/dev-status.xml              |   20 +-
 .../org/qi4j/library/scripting/package.html     |   21 +
 .../library/scripting/ScriptUtilImplTest.java   |   40 +
 libraries/servlet/build.gradle                  |   26 +-
 libraries/servlet/dev-status.xml                |   16 +
 libraries/servlet/src/docs/servlet.txt          |   25 +-
 .../library/servlet/Qi4jServletSupport.java     |    2 +-
 .../lifecycle/AbstractQi4jServletBootstrap.java |    8 +-
 .../qi4j/library/servlet/lifecycle/package.html |   16 +
 .../java/org/qi4j/library/servlet/package.html  |   24 +-
 libraries/shiro-core/build.gradle               |   24 +-
 libraries/shiro-core/dev-status.xml             |   16 +
 libraries/shiro-core/src/docs/shiro.txt         |   33 +-
 .../qi4j/library/shiro/assembly/package.html    |   16 +
 .../qi4j/library/shiro/concerns/package.html    |   16 +
 .../library/shiro/domain/common/package.html    |   16 +
 .../library/shiro/domain/passwords/package.html |   16 +
 .../shiro/domain/permissions/RoleFactory.java   |   18 +
 .../shiro/domain/permissions/package.html       |   16 +
 .../org/qi4j/library/shiro/ini/package.html     |   16 +
 .../java/org/qi4j/library/shiro/package.html    |   16 +
 .../src/test/resources/logback-test.xml         |   16 +
 .../src/test/resources/standalone-shiro.ini     |   15 +
 libraries/shiro-web/build.gradle                |   24 +-
 libraries/shiro-web/dev-status.xml              |   16 +
 libraries/shiro-web/src/docs/shiro-web.txt      |   25 +-
 .../library/shiro/web/assembly/package.html     |   16 +
 .../org/qi4j/library/shiro/web/package.html     |   16 +
 .../src/test/resources/logback-test.xml         |   16 +
 .../shiro-web/src/test/resources/web-shiro.ini  |   15 +
 libraries/spring/build.gradle                   |   23 +-
 libraries/spring/dev-status.xml                 |   18 +-
 libraries/spring/src/docs/spring.txt            |   84 +-
 .../bootstrap/Qi4jApplicationBootstrap.java     |    4 +-
 .../Qi4jBootstrapBeanDefinitionParser.java      |    4 +-
 .../bootstrap/internal/application/package.html |   16 +
 .../spring/bootstrap/internal/package.html      |   16 +
 .../internal/service/ServiceFactoryBean.java    |    2 +-
 .../bootstrap/internal/service/package.html     |   16 +
 .../qi4j/library/spring/bootstrap/package.html  |   18 +-
 .../importer/SpringImporterAssembler.java       |    4 +-
 .../qi4j/library/spring/importer/package.html   |   18 +-
 .../java/org/qi4j/library/spring/package.html   |   16 +
 .../src/main/resources/META-INF/spring.handlers |   15 +
 .../src/main/resources/META-INF/spring.schemas  |   15 +
 .../org/qi4j/library/spring/spring-0.5.xsd      |   16 +
 .../qi4j/library/spring/MyZestBootstrapper.java |   49 +
 .../spring/bootstrap/TextProcessingService.java |   18 +
 .../spring/bootstrap/ToUppercaseService.java    |   18 +
 .../spring/importer/Qi4jImportServiceTest.java  |    3 +-
 .../bootstrap/Qi4jExportServiceTest-context.xml |   16 +
 .../importer/Qi4jImportServiceTest-context.xml  |   16 +
 libraries/sql-bonecp/build.gradle               |   23 +-
 libraries/sql-bonecp/dev-status.xml             |   16 +
 .../org/qi4j/library/sql/bonecp/package.html    |   16 +
 libraries/sql-c3p0/build.gradle                 |    9 -
 libraries/sql-c3p0/dev-status.xml               |   19 -
 .../c3p0/C3P0DataSourceServiceAssembler.java    |   33 -
 .../sql/c3p0/C3P0DataSourceServiceImporter.java |  100 -
 .../java/org/qi4j/library/sql/c3p0/package.html |    5 -
 libraries/sql-dbcp/build.gradle                 |   23 +-
 libraries/sql-dbcp/dev-status.xml               |   16 +
 .../java/org/qi4j/library/sql/dbcp/package.html |   16 +
 libraries/sql-liquibase/build.gradle            |   26 +-
 libraries/sql-liquibase/dev-status.xml          |   16 +
 .../org/qi4j/library/sql/liquibase/package.html |   16 +
 .../sql/liquibase/LiquibaseServiceTest.java     |    4 +-
 .../src/test/resources/changelog.xml            |   16 +
 .../test/resources/testds-liquibase.properties  |   15 +
 libraries/sql/build.gradle                      |   25 +-
 libraries/sql/dev-status.xml                    |   16 +
 libraries/sql/src/docs/sql.txt                  |   39 +-
 .../org/qi4j/library/sql/assembly/package.html  |   16 +
 .../org/qi4j/library/sql/common/package.html    |   16 +
 .../qi4j/library/sql/datasource/package.html    |   16 +
 .../DataSourceConfigurationManagerService.java  |    2 +-
 .../java/org/qi4j/library/sql/jmx/package.html  |   16 +
 .../qi4j/library/sql/DocumentationSupport.java  |   10 -
 ...taSourceConfigurationManagerServiceTest.java |    4 +-
 libraries/sql/src/test/resources/changelog.xml  |   16 +
 .../sql/src/test/resources/testds.properties    |   15 +
 .../sql/src/test/resources/testds2.properties   |   15 +
 libraries/struts2-codebehind/build.gradle       |   14 -
 libraries/struts2-codebehind/dev-status.xml     |   19 -
 .../src/docs/struts-codebehind.txt              |   13 -
 .../Qi4jCodebehindPackageProvider.java          |  723 ------
 .../bootstrap/CodebehindAssembler.java          |   18 -
 .../library/struts2/codebehind/package.html     |    5 -
 .../src/main/resources/struts-plugin.xml        |   32 -
 libraries/struts2-convention/build.gradle       |   14 -
 libraries/struts2-convention/dev-status.xml     |   19 -
 .../src/docs/struts-convention.txt              |   13 -
 .../Qi4jPackageBasedActionConfigBuilder.java    |   42 -
 .../struts2/convention/Qi4jPackageProvider.java |   32 -
 .../library/struts2/convention/package.html     |    5 -
 .../src/main/resources/struts-plugin.xml        |   12 -
 libraries/struts2-plugin/build.gradle           |   15 -
 libraries/struts2-plugin/dev-status.xml         |   19 -
 .../struts2-plugin/src/docs/struts-plugin.txt   |   13 -
 .../library/struts2/ActionConfiguration.java    |   56 -
 .../org/qi4j/library/struts2/ActionService.java |    8 -
 .../org/qi4j/library/struts2/Constants.java     |   22 -
 .../struts2/ConstraintViolationInterceptor.java |  213 --
 .../struts2/EntityCompositeConverter.java       |   54 -
 .../Qi4jApplicationBootstrapListener.java       |  118 -
 .../library/struts2/Qi4jFilterDispatcher.java   |  102 -
 .../qi4j/library/struts2/Qi4jObjectFactory.java |  241 --
 .../library/struts2/Qi4jPropertyAccessor.java   |  214 --
 .../library/struts2/UnitOfWorkInterceptor.java  |   75 -
 .../bootstrap/Struts2PluginAssembler.java       |   47 -
 .../java/org/qi4j/library/struts2/package.html  |    5 -
 .../qi4j/library/struts2/support/HasInput.java  |    8 -
 .../struts2/support/ProvidesEntityOf.java       |   10 -
 .../struts2/support/ProvidesEntityOfMixin.java  |   59 -
 .../library/struts2/support/StrutsAction.java   |    8 -
 .../struts2/support/add/ProvidesAddingOf.java   |   11 -
 .../support/add/ProvidesAddingOfMixin.java      |   70 -
 .../struts2/support/edit/ProvidesEditingOf.java |   13 -
 .../support/edit/ProvidesEditingOfMixin.java    |   45 -
 .../struts2/support/list/ProvidesListOf.java    |   10 -
 .../support/list/ProvidesListOfMixin.java       |   56 -
 .../struts2/support/view/ProvidesViewOf.java    |    9 -
 .../support/view/ProvidesViewOfMixin.java       |   27 -
 .../library/struts2/util/ClassNameFilters.java  |   37 -
 .../library/struts2/util/ClassNameMapper.java   |   12 -
 .../qi4j/library/struts2/util/ClassNames.java   |   68 -
 .../struts2/util/ParameterizedTypes.java        |   39 -
 .../src/main/resources/struts-plugin.xml        |   35 -
 .../main/resources/xwork-conversion.properties  |    1 -
 .../struts2/util/ParameterizedTypesTest.java    |   41 -
 libraries/uid/build.gradle                      |   23 +-
 libraries/uid/dev-status.xml                    |   16 +
 libraries/uid/src/docs/uid.txt                  |   19 +
 .../library/uid/sequence/assembly/package.html  |   16 +
 .../org/qi4j/library/uid/sequence/package.html  |   16 +
 .../qi4j/library/uid/uuid/assembly/package.html |   16 +
 .../java/org/qi4j/library/uid/uuid/package.html |   16 +
 libraries/uowfile/build.gradle                  |   23 +-
 libraries/uowfile/dev-status.xml                |   16 +
 libraries/uowfile/src/docs/uowfile.txt          |   19 +
 .../qi4j/library/uowfile/bootstrap/package.html |   16 +
 .../qi4j/library/uowfile/internal/package.html  |   16 +
 .../qi4j/library/uowfile/plural/package.html    |   16 +
 .../qi4j/library/uowfile/singular/package.html  |   16 +
 .../qi4j/library/uowfile/HasUoWFileTest.java    |    2 +
 .../qi4j/library/uowfile/HasUoWFilesTest.java   |    2 +
 libraries/wrapper/gradle-wrapper.jar            |  Bin 12292 -> 0 bytes
 libraries/wrapper/gradle-wrapper.properties     |   11 -
 manual/build.gradle                             |   51 +-
 manual/src/conf/asciidoc.conf                   |   15 +
 manual/src/conf/docbook.conf                    |   15 +
 manual/src/conf/docbook45.conf                  |   15 +
 manual/src/conf/linkedimages.conf               |   15 +
 manual/src/conf/xhtml.conf                      |   15 +
 manual/src/docs/reference/docinfo.xml           |   20 +-
 manual/src/docs/reference/index.txt             |   21 +-
 manual/src/docs/tutorials/docinfo.xml           |   20 +-
 .../tutorials/howto-assembly-application.txt    |   18 +-
 .../src/docs/tutorials/howto-build-system.txt   |  133 +-
 .../docs/tutorials/howto-configure-service.txt  |    8 +-
 .../tutorials/howto-contextual-fragments.txt    |    2 +-
 .../src/docs/tutorials/howto-create-concern.txt |   25 +-
 .../docs/tutorials/howto-create-constraint.txt  |   21 +-
 .../src/docs/tutorials/howto-create-entity.txt  |   16 +-
 .../docs/tutorials/howto-create-sideeffect.txt  |   25 +-
 .../src/docs/tutorials/howto-depend-on-qi4j.txt |  180 --
 .../src/docs/tutorials/howto-depend-on-zest.txt |  193 ++
 .../tutorials/howto-invocation-annotation.txt   |   78 +
 .../tutorials/howto-leverage-properties.txt     |    8 +-
 .../docs/tutorials/howto-releasing-apache.txt   |  635 ++++++
 manual/src/docs/tutorials/howto-use-io.txt      |    8 +-
 .../src/docs/tutorials/howto-writing-docs.txt   |   40 +-
 manual/src/docs/userguide/core.txt              |   47 +-
 manual/src/docs/userguide/docinfo.xml           |   16 +
 manual/src/docs/userguide/extensions.txt        |   35 +-
 manual/src/docs/userguide/faq.txt               |   23 +-
 manual/src/docs/userguide/glossary.txt          |   59 +-
 manual/src/docs/userguide/index.txt             |   21 +-
 manual/src/docs/userguide/libraries.txt         |   72 +-
 manual/src/docs/userguide/preface.txt           |   35 +-
 manual/src/docs/userguide/tools.txt             |   27 +-
 manual/src/docs/website/docinfo.xml             |   16 +
 manual/src/docs/website/downloads/1.0.txt       |   30 -
 manual/src/docs/website/downloads/1.1.txt       |   30 -
 manual/src/docs/website/downloads/1.2.txt       |   30 -
 manual/src/docs/website/downloads/1.3.txt       |   30 -
 manual/src/docs/website/downloads/1.4.1.txt     |   30 -
 manual/src/docs/website/downloads/1.4.txt       |   30 -
 manual/src/docs/website/downloads/downloads.txt |   35 -
 manual/src/docs/website/home.txt                |   47 +-
 manual/src/docs/website/index.txt               |   19 +
 manual/src/docs/website/intro.txt               |   19 +
 manual/src/docs/website/javadocs.txt            |   59 +-
 manual/src/docs/website/junitReport.txt         |   19 +
 manual/src/docs/website/news/20071113.txt       |   12 -
 manual/src/docs/website/news/20080130.txt       |   13 -
 manual/src/docs/website/news/20080414.txt       |    4 -
 manual/src/docs/website/news/20080606.txt       |    4 -
 manual/src/docs/website/news/20080808.txt       |   16 -
 manual/src/docs/website/news/20080915.txt       |   20 -
 manual/src/docs/website/news/20080919.txt       |    4 -
 manual/src/docs/website/news/20081117.txt       |   13 -
 manual/src/docs/website/news/20090109.txt       |    4 -
 manual/src/docs/website/news/20090110.txt       |   14 -
 manual/src/docs/website/news/20090219.txt       |    8 -
 manual/src/docs/website/news/20090220.txt       |    6 -
 manual/src/docs/website/news/20090420.txt       |    4 -
 manual/src/docs/website/news/20090510.txt       |   10 -
 manual/src/docs/website/news/20090903.txt       |   19 -
 manual/src/docs/website/news/20100125-2.txt     |   15 -
 manual/src/docs/website/news/20100125.txt       |    9 -
 manual/src/docs/website/news/20100128.txt       |   20 -
 manual/src/docs/website/news/20100617.txt       |   29 -
 manual/src/docs/website/news/20100830.txt       |    8 -
 manual/src/docs/website/news/20100918.txt       |   16 -
 manual/src/docs/website/news/20101023.txt       |   73 -
 manual/src/docs/website/news/20110221.txt       |   75 -
 manual/src/docs/website/news/20110415.txt       |  103 -
 manual/src/docs/website/news/20110806.txt       |   18 -
 manual/src/docs/website/news/20120215.txt       |   16 -
 manual/src/docs/website/news/20120502.txt       |   21 -
 manual/src/docs/website/news/20120525.txt       |   41 -
 manual/src/docs/website/news/news.txt           |  100 -
 manual/src/docs/website/related.txt             |   23 +-
 manual/src/docs/website/resources/css/qi4j.css  |   19 +
 manual/src/docs/website/resources/css/style.css |    3 +
 manual/src/docs/website/samples.txt             |   54 +-
 manual/src/docs/website/tutorials.txt           |   52 +-
 manual/src/docs/website/xsl/chunked.xsl         |   11 +-
 manual/src/docs/website/xsl/head.xsl            |   18 +-
 .../org/qi4j/manual/recipes/assemble/Docs.java  |   18 +
 .../org/qi4j/manual/recipes/assemble/Main.java  |   22 +-
 .../manual/recipes/concern/AnyMixinType.java    |   18 +
 .../recipes/concern/InventoryConcern.java       |   18 +
 .../qi4j/manual/recipes/concern/LineItem.java   |   18 +
 .../manual/recipes/concern/MyAnnotation.java    |   18 +
 .../recipes/concern/MyAppliesToFilter.java      |   18 +
 .../recipes/concern/MyGenericConcern.java       |   18 +
 .../org/qi4j/manual/recipes/concern/Order.java  |   18 +
 .../recipes/contextualFragments/TraceAll.java   |   18 +
 .../manual/recipes/createConstraint/Dialer.java |   18 +
 .../createConstraint/DialerComposite.java       |   18 +
 .../createConstraint/HasPhoneNumber.java        |   18 +
 .../ParameterViolationConcern.java              |   18 +
 .../recipes/createConstraint/PhoneNumber.java   |   18 +
 .../createConstraint/PhoneNumberConstraint.java |   18 +
 .../PhoneNumberParameterViolationConcern.java   |   18 +
 .../manual/recipes/createEntity/Accident.java   |   18 +
 .../recipes/createEntity/AccidentValue.java     |   18 +
 .../qi4j/manual/recipes/createEntity/Car.java   |   18 +
 .../manual/recipes/createEntity/CarEntity.java  |   18 +
 .../recipes/createEntity/CarEntityFactory.java  |   18 +
 .../createEntity/CarEntityFactoryMixin.java     |   18 +
 .../createEntity/CarEntityFactoryService.java   |   18 +
 .../qi4j/manual/recipes/createEntity/Main.java  |   18 +
 .../recipes/createEntity/Manufacturer.java      |   18 +
 .../createEntity/ManufacturerEntity.java        |   18 +
 .../createEntity/ManufacturerRepository.java    |   18 +
 .../ManufacturerRepositoryMixin.java            |   18 +
 .../ManufacturerRepositoryService.java          |   18 +
 .../recipes/createEntity/MyAssembler.java       |   18 +
 .../java/org/qi4j/manual/recipes/io/Docs.java   |   18 +
 .../qi4j/manual/recipes/properties/Book.java    |   18 +
 .../manual/recipes/properties/BookFactory.java  |   18 +
 .../manual/recipes/properties/SwingInfo.java    |   18 +
 .../manual/recipes/properties/SwingPanel.java   |   18 +
 .../manual/recipes/properties/pojo/Book.java    |   18 +
 .../recipes/properties/pojo/MutableBook.java    |   18 +
 .../recipes/sideeffects/AnyMixinType.java       |   18 +
 .../manual/recipes/sideeffects/Confirmable.java |   18 +
 .../manual/recipes/sideeffects/HasCustomer.java |   18 +
 .../recipes/sideeffects/HasLineItems.java       |   18 +
 .../recipes/sideeffects/HasSequenceNumber.java  |   18 +
 .../sideeffects/MailNotifySideEffect.java       |   18 +
 .../recipes/sideeffects/MyAnnotation.java       |   18 +
 .../recipes/sideeffects/MyAppliesToFilter.java  |   18 +
 .../sideeffects/MyGenericSideEffect.java        |   18 +
 .../qi4j/manual/recipes/sideeffects/Order.java  |   18 +
 .../manual/recipes/sideeffects/OrderEntity.java |   18 +
 .../manual/travel/ExpediaService.properties     |   15 +
 .../main/java/org/qi4j/manual/travel/Main.java  |   18 +
 .../qi4j/manual/travel/OrbitzService.properties |   15 +
 .../java/org/qi4j/manual/travel/TravelPlan.java |   18 +
 .../manual/travel/TravelPlanConfiguration.java  |   18 +
 .../org/qi4j/manual/travel/TravelPlanMixin.java |   18 +
 .../qi4j/manual/travel/TravelPlanService.java   |   18 +
 .../manual/travel/TravelPlanService.properties  |   15 +
 .../resources/css/progressive-enhancement.css   |   18 +
 manual/src/resources/images/logo-standard.png   |  Bin 11108 -> 10455 bytes
 .../src/resources/js/progressive-enhancement.js |   80 +-
 .../schemas/2008/dev-status/1/dev-status.xsd    |   16 +
 manual/src/xsl/chunked-basic.xsl                |   16 +
 manual/src/xsl/chunked-offline.xsl              |   16 +
 manual/src/xsl/common.xsl                       |   16 +
 manual/src/xsl/disqus-footer.xsl                |   18 +-
 manual/src/xsl/fo.xsl                           |   16 +
 manual/src/xsl/footer.xsl                       |   18 +-
 manual/src/xsl/head-offline.xsl                 |   16 +
 manual/src/xsl/html-params.xsl                  |   16 +
 manual/src/xsl/offline-footer.xsl               |   16 +
 manual/src/xsl/syntaxhighlight.xsl              |   16 +
 manual/src/xsl/text.xsl                         |   16 +
 manual/src/xsl/xhtml.xsl                        |   16 +
 maven-compat.gradle                             |  457 ++--
 samples/dci-cargo/README.txt                    |    2 +-
 samples/dci-cargo/dcisample_a/build.gradle      |   53 +-
 .../dcicargo/pathfinder_a/api/package.html      |   16 +
 .../dcicargo/pathfinder_a/internal/package.html |   16 +
 .../sample/dcicargo/pathfinder_a/package.html   |   16 +
 .../bootstrap/DCISampleApplication_a.java       |    2 +-
 .../sample_a/bootstrap/assembly/Assembler.java  |    8 +-
 .../communication/query/BookingQueries.java     |    2 +-
 .../shipping/booking/RouteException.java        |   18 +
 .../infrastructure/WicketQi4jApplication.java   |   20 +-
 .../infrastructure/model/EntityModel.java       |    4 +-
 .../infrastructure/model/QueryModel.java        |    4 +-
 .../infrastructure/model/ReadOnlyModel.java     |    2 +-
 .../src/main/resources/log4j.properties         |   15 +
 .../sample_a/communication/web/BasePage.html    |   26 +-
 .../web/booking/BookNewCargoPage.html           |   16 +
 .../web/booking/BookingBasePage.html            |   16 +
 .../web/booking/CargoDetailsPage.html           |   16 +
 .../web/booking/CargoListPage.html              |   16 +
 .../web/booking/ChangeDestinationPage.html      |   16 +
 .../web/booking/RouteCargoPage.html             |   16 +
 .../communication/web/booking/RoutePanel.html   |   16 +
 .../web/handling/RegisterHandlingEventPage.html |   16 +
 .../RegisterHandlingEventPage.properties        |   15 +
 .../web/tracking/HandlingHistoryPanel.html      |   16 +
 .../tracking/HandlingHistoryPanel.properties    |   15 +
 .../web/tracking/NextHandlingEventPanel.html    |   16 +
 .../tracking/NextHandlingEventPanel.properties  |   15 +
 .../web/tracking/TrackCargoPage.html            |   16 +
 .../web/tracking/TrackCargoPage.properties      |   15 +
 .../infrastructure/wicket/link/LinkPanel.html   |   16 +
 .../wicket/prevnext/PrevNext.html               |   16 +
 .../infrastructure/wicket/tabs/TabsPanel.html   |   16 +
 .../dcisample_a/src/main/webapp/WEB-INF/web.xml |   17 +-
 .../src/main/webapp/css/prev-next.css           |   18 +
 .../dcisample_a/src/main/webapp/css/style.css   |   19 +
 .../dcisample_a/src/main/webapp/css/tabs.css    |   19 +
 samples/dci-cargo/dcisample_b/build.gradle      |   53 +-
 .../dcicargo/pathfinder_b/api/package.html      |   16 +
 .../pathfinder_b/internal/GraphDAO.java         |    4 -
 .../internal/GraphTraversalServiceImpl.java     |    4 -
 .../dcicargo/pathfinder_b/internal/package.html |   16 +
 .../sample/dcicargo/pathfinder_b/package.html   |   16 +
 .../bootstrap/DCISampleApplication_b.java       |    2 +-
 .../sample_b/bootstrap/assembly/Assembler.java  |    6 +-
 .../communication/query/BookingQueries.java     |    2 +-
 .../communication/query/dto/CargoDTO.java       |    2 +-
 .../query/dto/HandlingEventDTO.java             |    2 +-
 .../inspection/event/InspectArrivedCargo.java   |    2 +-
 .../inspection/event/InspectCargoInCustoms.java |    2 +-
 .../inspection/event/InspectClaimedCargo.java   |    2 +-
 .../inspection/event/InspectReceivedCargo.java  |    2 +-
 .../inspection/event/InspectUnhandledCargo.java |    2 +-
 .../inspection/event/InspectUnloadedCargo.java  |    2 +-
 .../infrastructure/WicketQi4jApplication.java   |   20 +-
 .../sample_b/infrastructure/conversion/DTO.java |    2 +-
 .../infrastructure/model/EntityModel.java       |    8 +-
 .../infrastructure/model/QueryModel.java        |    4 +-
 .../infrastructure/model/ReadOnlyModel.java     |    2 +-
 .../src/main/resources/log4j.properties         |   15 +
 .../sample_b/communication/web/BasePage.html    |   26 +-
 .../web/booking/BookNewCargoPage.html           |   16 +
 .../web/booking/BookingBasePage.html            |   16 +
 .../web/booking/CargoDetailsPage.html           |   16 +
 .../web/booking/CargoListPage.html              |   16 +
 .../web/booking/ChangeDestinationPage.html      |   16 +
 .../web/booking/ReRouteCargoPage.html           |   16 +
 .../web/booking/RouteCargoPage.html             |   16 +
 .../communication/web/booking/RoutePanel.html   |   16 +
 .../IncidentLoggingApplicationMockupPage.html   |   16 +
 ...identLoggingApplicationMockupPage.properties |   15 +
 .../web/tracking/HandlingHistoryPanel.html      |   16 +
 .../tracking/HandlingHistoryPanel.properties    |   15 +
 .../web/tracking/NextHandlingEventPanel.html    |   16 +
 .../tracking/NextHandlingEventPanel.properties  |   15 +
 .../web/tracking/TrackCargoPage.html            |   16 +
 .../web/tracking/TrackCargoPage.properties      |   15 +
 .../infrastructure/wicket/link/LinkPanel.html   |   16 +
 .../wicket/prevnext/PrevNext.html               |   16 +
 .../infrastructure/wicket/tabs/TabsPanel.html   |   16 +
 .../dcisample_b/src/main/webapp/WEB-INF/web.xml |   17 +-
 .../src/main/webapp/css/prev-next.css           |   18 +
 .../dcisample_b/src/main/webapp/css/style.css   |   19 +
 .../dcisample_b/src/main/webapp/css/tabs.css    |   19 +
 samples/dci/build.gradle                        |   23 +-
 .../qi4j/dci/moneytransfer/context/Role.java    |   18 +
 .../samples/cargo/app1/model/cargo/Cargo.java   |   18 +
 samples/forum/build.gradle                      |   23 +-
 .../samples/forum/assembler/ForumAssembler.java |   27 +-
 .../org/qi4j/samples/forum/context/Context.java |   18 +
 .../org/qi4j/samples/forum/context/Events.java  |   18 +
 .../samples/forum/context/EventsService.java    |   18 +
 .../forum/context/account/UpdateProfile.java    |   18 +
 .../administration/BoardAdministration.java     |   18 +
 .../administration/ForumAdministration.java     |   18 +
 .../administration/ForumsAdministration.java    |   18 +
 .../administration/ModeratorAdministration.java |   18 +
 .../ModeratorsAdministration.java               |   18 +
 .../administration/UsersAdministration.java     |   18 +
 .../qi4j/samples/forum/context/login/Login.java |   18 +
 .../context/moderation/ModerationContext.java   |   18 +
 .../forum/context/signup/Registration.java      |   18 +
 .../samples/forum/context/signup/Signup.java    |   18 +
 .../samples/forum/context/view/ViewBoard.java   |   18 +
 .../samples/forum/context/view/ViewForum.java   |   18 +
 .../samples/forum/context/view/ViewPost.java    |   18 +
 .../samples/forum/context/view/ViewTopic.java   |   18 +
 .../qi4j/samples/forum/data/Administrators.java |   18 +
 .../org/qi4j/samples/forum/data/Moderators.java |   18 +
 .../qi4j/samples/forum/data/entity/Board.java   |   18 +
 .../qi4j/samples/forum/data/entity/Forum.java   |   18 +
 .../qi4j/samples/forum/data/entity/Forums.java  |   18 +
 .../qi4j/samples/forum/data/entity/Post.java    |   18 +
 .../qi4j/samples/forum/data/entity/Topic.java   |   18 +
 .../qi4j/samples/forum/data/entity/User.java    |   18 +
 .../qi4j/samples/forum/data/entity/Users.java   |   18 +
 .../forum/domainevent/DomainCommandResult.java  |   18 +
 .../samples/forum/domainevent/DomainEvent.java  |   18 +
 .../forum/domainevent/DomainEventValue.java     |   18 +
 .../forum/domainevent/ParameterValue.java       |   18 +
 .../qi4j/samples/forum/rest/ForumRestlet.java   |   18 +
 .../forum/rest/resource/RootResource.java       |   18 +
 .../administration/AdministrationResource.java  |   18 +
 .../resource/administration/ForumsResource.java |   18 +
 .../resource/administration/UsersResource.java  |   18 +
 .../rest/resource/forum/BoardResource.java      |   18 +
 .../rest/resource/forum/ForumResource.java      |   18 +
 .../rest/resource/forum/ForumsResource.java     |   18 +
 .../rest/resource/login/LoginResource.java      |   18 +
 .../rest/resource/signup/SignupResource.java    |   18 +
 .../samples/forum/service/BootstrapData.java    |   18 +
 samples/forum/src/main/webapp/WEB-INF/web.xml   |   16 +
 .../java/org/qi4j/samples/forum/web/Main.java   |   18 +
 samples/rental/build.gradle                     |   21 +-
 .../qi4j/sample/rental/web/QuikitServlet.java   |    4 +-
 .../resources/org/qi4j/sample/rental/index.html |   16 +
 .../org/qi4j/sample/rental/web/BookingPage.html |   16 +
 .../org/qi4j/sample/rental/web/MainPage.html    |   16 +
 .../src/main/resources/resolve.properties       |   15 +
 samples/rental/src/main/webapp/WEB-INF/web.xml  |   16 +
 samples/sql-support/build.gradle                |   23 +-
 .../java/org/qi4j/sample/sqlsupport/Main.java   |    2 +-
 .../resources/entitystore-postgresql.properties |   15 +
 .../src/main/resources/indexing-sql.properties  |   15 +
 .../sql-support/src/main/resources/logback.xml  |   25 -
 .../postgresql-es-datasource.properties         |   15 +
 .../postgresql-index-datasource.properties      |   15 +
 samples/struts2Hello/build.gradle               |   18 -
 .../org/qi4j/library/struts2/example/Item.java  |    8 -
 .../library/struts2/example/JettyLauncher.java  |   32 -
 .../qi4j/library/struts2/example/Nameable.java  |    9 -
 .../struts2/example/actions/AddItem.java        |   21 -
 .../struts2/example/actions/EditItem.java       |   23 -
 .../example/actions/HelloWorldAction.java       |   72 -
 .../struts2/example/actions/IndexAction.java    |   65 -
 .../struts2/example/actions/ListItems.java      |   18 -
 .../example/converters/DateConverter.java       |   59 -
 .../listener/ExampleBootstrapListener.java      |   79 -
 .../src/main/resources/log4j.properties         |   15 -
 .../src/main/resources/struts.properties        |   19 -
 .../struts2Hello/src/main/resources/struts.xml  |   40 -
 .../src/main/webapp/WEB-INF/decorators.xml      |   18 -
 .../src/main/webapp/WEB-INF/decorators/main.jsp |   75 -
 .../src/main/webapp/WEB-INF/dwr.xml             |   19 -
 .../src/main/webapp/WEB-INF/sitemesh.xml        |   50 -
 .../src/main/webapp/WEB-INF/web.xml             |   70 -
 samples/struts2Hello/src/main/webapp/index.jsp  |    1 -
 .../src/main/webapp/jsp/addItem.jsp             |   15 -
 .../src/main/webapp/jsp/editItem.jsp            |   15 -
 .../src/main/webapp/jsp/helloWorld.jsp          |   15 -
 .../struts2Hello/src/main/webapp/jsp/index.jsp  |   17 -
 .../src/main/webapp/jsp/listItems.jsp           |   20 -
 .../src/main/webapp/styles/forms.css            |  133 --
 .../src/main/webapp/styles/layout-1col.css      |   37 -
 .../main/webapp/styles/layout-navleft-1col.css  |   41 -
 .../main/webapp/styles/layout-navleft-2col.css  |   49 -
 .../main/webapp/styles/layout-navtop-1col.css   |   42 -
 .../main/webapp/styles/layout-navtop-3col.css   |   53 -
 .../webapp/styles/layout-navtop-localleft.css   |   46 -
 .../webapp/styles/layout-navtop-subright.css    |   46 -
 .../src/main/webapp/styles/layout.css           |  150 --
 .../src/main/webapp/styles/main.css             |   21 -
 .../src/main/webapp/styles/nav-horizontal.css   |   95 -
 .../src/main/webapp/styles/nav-vertical.css     |   99 -
 .../src/main/webapp/styles/tools.css            |   84 -
 .../src/main/webapp/styles/typo.css             |  236 --
 samples/swing/build.gradle                      |   23 +-
 .../lib/swing/binding/example/CityValue.java    |   18 +
 .../lib/swing/binding/example/CountryValue.java |   18 +
 .../internal/AssociationFocusLostListener.java  |   18 +
 .../binding/internal/BoundAssociation.java      |    7 +
 .../binding/internal/BoundManyAssociation.java  |   25 +
 .../binding/internal/BoundNamedAssociation.java |   31 +
 .../swing/binding/internal/BoundProperty.java   |   11 +-
 .../internal/PropertyFocusLostListener.java     |   18 +
 settings.gradle                                 |   47 +-
 src/bin-dist/NOTICE.txt                         |    5 +
 src/bin-dist/README.txt                         |   50 +
 src/javadoc/overview.html                       |   23 +
 tests/complex/gae/build.gradle                  |   18 -
 .../java/org/qi4j/test/gae/GaeTestServlet.java  |  126 -
 .../main/java/org/qi4j/test/gae/UnitTests.java  |   36 -
 .../java/org/qi4j/test/gae2/GaeTestServlet.java |  126 -
 .../main/java/org/qi4j/test/gae2/UnitTests.java |   43 -
 .../gae2/GaeEntityStoreService.properties       |    5 -
 tests/complex/gae/web/WEB-INF/appengine-web.xml |    5 -
 tests/complex/gae/web/WEB-INF/web.xml           |   28 -
 tests/complex/gae/web/index.jsp                 |   12 -
 tests/performance/build.gradle                  |   28 +-
 .../test/performance/entitystore/package.html   |   16 +
 .../CompositeCreationPerformanceTest.java       |    2 +-
 .../perf/resources/derby-datasource.properties  |   15 +
 .../performance/src/perf/resources/logback.xml  |   16 +
 .../jdbm/JdbmEntityStoreService.properties      |   15 +
 .../rdf/repository/rdf-indexing.properties      |   15 +
 .../resources/postgresql-datasource.properties  |   15 +
 tests/regression/build.gradle                   |   23 +-
 .../org/qi4j/test/regression/Regressions.java   |   18 +
 tools/entity-viewer/build.gradle                |   19 -
 tools/entity-viewer/dev-status.xml              |   20 -
 tools/entity-viewer/src/docs/entity-viewer.txt  |   27 -
 .../swing/entityviewer/EntityViewer.form        |   60 -
 .../swing/entityviewer/EntityViewer.java        |  301 ---
 .../swing/entityviewer/PropertiesPanel.java     |  104 -
 .../library/swing/entityviewer/TreePanel.java   |  120 -
 .../library/swing/entityviewer/package.html     |    5 -
 .../entityviewer/sample/ApplicationSample.java  |  158 --
 tools/envisage/build.gradle                     |   25 +-
 tools/envisage/dev-status.xml                   |   16 +
 tools/envisage/src/docs/envisage.txt            |   21 +-
 .../java/org/qi4j/envisage/EnvisageFrame.form   |   16 +
 .../src/main/java/org/qi4j/envisage/Main.java   |    1 -
 .../java/org/qi4j/envisage/detail/APIPane.form  |   16 +
 .../qi4j/envisage/detail/DependencyPane.form    |   16 +
 .../org/qi4j/envisage/detail/GeneralPane.form   |   16 +
 .../qi4j/envisage/detail/ImportedByPane.form    |   16 +
 .../org/qi4j/envisage/detail/MethodPane.form    |   16 +
 .../java/org/qi4j/envisage/detail/SPIPane.form  |   16 +
 .../detail/ServiceConfigurationPane.form        |   16 +
 .../qi4j/envisage/detail/ServiceUsagePane.form  |   16 +
 .../org/qi4j/envisage/detail/StatePane.form     |   16 +
 .../java/org/qi4j/envisage/detail/package.html  |   16 +
 .../java/org/qi4j/envisage/event/package.html   |   16 +
 .../java/org/qi4j/envisage/graph/GraphPane.java |    2 -
 .../org/qi4j/envisage/graph/StackedLayout.java  |    2 -
 .../java/org/qi4j/envisage/graph/package.html   |   16 +
 .../main/java/org/qi4j/envisage/package.html    |   16 +
 .../java/org/qi4j/envisage/print/PDFWriter.java |    2 -
 .../java/org/qi4j/envisage/print/package.html   |   16 +
 .../org/qi4j/envisage/tree/TreeModelPane.java   |    1 -
 .../java/org/qi4j/envisage/tree/package.html    |   16 +
 .../java/org/qi4j/envisage/util/package.html    |   16 +
 .../org/qi4j/envisage/EnvisageFrame.properties  |   15 +
 .../org/qi4j/envisage/detail/APIPane.properties |   15 +
 .../envisage/detail/DependencyPane.properties   |   15 +
 .../envisage/detail/DetailModelPane.properties  |   15 +
 .../qi4j/envisage/detail/GeneralPane.properties |   15 +
 .../envisage/detail/ImportedByPane.properties   |   15 +
 .../qi4j/envisage/detail/MethodPane.properties  |   15 +
 .../org/qi4j/envisage/detail/SPIPane.properties |   15 +
 .../detail/ServiceConfigurationPane.properties  |   15 +
 .../envisage/detail/ServiceUsagePane.properties |   15 +
 .../qi4j/envisage/detail/StatePane.properties   |   15 +
 .../tree/TreeModelCellRenderer.properties       |   15 +
 .../qi4j/envisage/tree/TreeModelPane.properties |   15 +
 tools/model-detail/build.gradle                 |   23 +-
 tools/model-detail/dev-status.xml               |   16 +
 .../qi4j/tools/model/descriptor/package.html    |   16 +
 .../java/org/qi4j/tools/model/util/package.html |   16 +
 tools/qidea/TODO                                |    1 -
 tools/qidea/build.gradle                        |   23 +-
 .../plugin/idea/common/facet/Qi4jFacetType.java |    2 +-
 .../common/facet/ui/Qi4jFacetEditorTab.java     |    2 +-
 ...teConcernFromMixinTypeOrCompositeAction.java |   18 +
 .../src/main/resources/META-INF/plugin.xml      |   26 +-
 .../j2ee/GenericConcernOf.java.html             |   16 +
 ...nsAnnotationDeclaredCorrectlyInspection.html |   16 +
 .../AddConcernOnType/description.html           |   16 +
 .../resource/Qi4jResourceBundle.properties      |   15 +
 tools/shell/build.gradle                        |   23 +-
 tools/shell/src/bin/qi4j                        |   15 +
 .../templates/defaultproject/project.properties |   15 +
 .../org/qi4j/tools/shell/AbstractCommand.java   |   18 +
 .../main/java/org/qi4j/tools/shell/Command.java |   18 +
 .../java/org/qi4j/tools/shell/FileUtils.java    |   18 +
 .../qi4j/tools/shell/HelpNeededException.java   |   18 +
 .../main/java/org/qi4j/tools/shell/Main.java    |   20 +-
 .../qi4j/tools/shell/create/CreateProject.java  |   18 +
 .../org/qi4j/tools/shell/help/HelpCommand.java  |   18 +
 tutorials/cargo/build.gradle                    |   23 +-
 .../java/org/qi4j/tutorials/cargo/package.html  |   20 +-
 .../org/qi4j/tutorials/cargo/step1/package.html |   22 +-
 .../org/qi4j/tutorials/cargo/step2/package.html |   20 +-
 tutorials/composites/build.gradle               |   25 +-
 tutorials/composites/src/docs/step1.txt         |   23 +-
 tutorials/composites/src/docs/step2.txt         |   23 +-
 tutorials/composites/src/docs/step3.txt         |   19 +
 tutorials/composites/src/docs/step4.txt         |   19 +
 tutorials/composites/src/docs/step5.txt         |   25 +-
 tutorials/composites/src/docs/step6.txt         |   19 +
 tutorials/composites/src/docs/step7.txt         |   27 +-
 tutorials/composites/src/docs/step8.txt         |   23 +-
 tutorials/composites/src/docs/step9.txt         |   23 +-
 .../composites/src/docs/tut-composites.txt      |   29 +-
 .../org/qi4j/tutorials/composites/package.html  |   23 +-
 .../composites/tutorial1/HelloWorld.java        |   18 +
 .../tutorials/composites/tutorial1/package.html |   18 +-
 .../tutorial10/HelloWorldComposite.java         |   18 +
 .../composites/tutorial10/HelloWorldMixin.java  |   18 +
 .../composites/tutorial10/HelloWorldState.java  |   18 +
 .../composites/tutorial2/HelloWorld.java        |   18 +
 .../tutorial2/HelloWorldBehaviour.java          |   18 +
 .../composites/tutorial2/HelloWorldMixin.java   |   18 +
 .../composites/tutorial2/HelloWorldState.java   |   20 +-
 .../tutorials/composites/tutorial2/package.html |   20 +-
 .../composites/tutorial3/HelloWorld.java        |   18 +
 .../tutorial3/HelloWorldBehaviour.java          |   18 +
 .../tutorial3/HelloWorldComposite.java          |   18 +
 .../composites/tutorial3/HelloWorldMixin.java   |   20 +-
 .../composites/tutorial3/HelloWorldState.java   |   20 +-
 .../tutorials/composites/tutorial3/package.html |   16 +
 .../composites/tutorial4/HelloWorld.java        |   18 +
 .../tutorial4/HelloWorldBehaviour.java          |   18 +
 .../tutorial4/HelloWorldBehaviourMixin.java     |   18 +
 .../tutorial4/HelloWorldComposite.java          |   18 +
 .../composites/tutorial4/HelloWorldState.java   |   20 +-
 .../tutorial4/HelloWorldStateMixin.java         |   18 +
 .../tutorials/composites/tutorial4/package.html |   16 +
 .../composites/tutorial5/HelloWorld.java        |   18 +
 .../tutorial5/HelloWorldBehaviour.java          |   18 +
 .../tutorial5/HelloWorldBehaviourConcern.java   |   18 +
 .../tutorial5/HelloWorldBehaviourMixin.java     |   18 +
 .../tutorial5/HelloWorldComposite.java          |   18 +
 .../composites/tutorial5/HelloWorldState.java   |   18 +
 .../tutorial5/HelloWorldStateMixin.java         |   18 +
 .../tutorials/composites/tutorial5/package.html |   26 +-
 .../composites/tutorial6/HelloWorld.java        |   18 +
 .../tutorial6/HelloWorldBehaviour.java          |   18 +
 .../tutorial6/HelloWorldBehaviourConcern.java   |   18 +
 .../tutorial6/HelloWorldBehaviourMixin.java     |   18 +
 .../tutorial6/HelloWorldComposite.java          |   18 +
 .../composites/tutorial6/HelloWorldState.java   |   18 +
 .../tutorial6/HelloWorldStateMixin.java         |   18 +
 .../tutorials/composites/tutorial6/package.html |   16 +
 .../composites/tutorial7/HelloWorld.java        |   18 +
 .../tutorial7/HelloWorldBehaviour.java          |   18 +
 .../tutorial7/HelloWorldBehaviourMixin.java     |   18 +
 .../HelloWorldBehaviourSideEffect.java          |   18 +
 .../tutorial7/HelloWorldComposite.java          |   18 +
 .../composites/tutorial7/HelloWorldState.java   |   18 +
 .../tutorial7/HelloWorldStateMixin.java         |   18 +
 .../tutorials/composites/tutorial7/package.html |   24 +-
 .../tutorial8/HelloWorldBehaviour.java          |   18 +
 .../tutorial8/HelloWorldBehaviourMixin.java     |   20 +-
 .../tutorial8/HelloWorldComposite.java          |   18 +
 .../composites/tutorial8/HelloWorldState.java   |   18 +
 .../tutorial8/HelloWorldStateMixin.java         |   18 +
 .../tutorials/composites/tutorial8/package.html |   20 +-
 .../tutorial9/HelloWorldBehaviour.java          |   18 +
 .../tutorial9/HelloWorldBehaviourMixin.java     |   18 +
 .../tutorial9/HelloWorldComposite.java          |   18 +
 .../composites/tutorial9/HelloWorldState.java   |   18 +
 .../tutorials/composites/tutorial9/package.html |   20 +-
 .../composites/src/main/javadoc/overview.html   |   26 +-
 .../composites/tutorial1/HelloWorldTest.java    |   18 +
 .../composites/tutorial10/HelloWorldTest.java   |   18 +
 .../composites/tutorial2/HelloWorldTest.java    |   18 +
 .../composites/tutorial3/HelloWorldTest.java    |   18 +
 .../composites/tutorial4/HelloWorldTest.java    |   18 +
 .../composites/tutorial5/HelloWorldTest.java    |   18 +
 .../composites/tutorial6/HelloWorldTest.java    |   18 +
 .../composites/tutorial7/HelloWorldTest.java    |   18 +
 .../composites/tutorial8/HelloWorldTest.java    |   18 +
 .../composites/tutorial9/HelloWorldTest.java    |   18 +
 tutorials/hello/build.gradle                    |    4 +-
 tutorials/introduction/build.gradle             |   23 +-
 tutorials/introduction/src/docs/background.txt  |   33 +-
 tutorials/introduction/src/docs/highlights.txt  |   25 +-
 tutorials/introduction/src/docs/qi4j-cop.txt    |   23 +-
 .../introduction/src/docs/state-modeling.txt    |   35 +-
 .../what-is-composite-oriented-programming.txt  |   27 +-
 .../introduction/src/docs/whats-an-object.txt   |   33 +-
 .../org/qi4j/demo/intro/StateModelingDocs.java  |   18 +
 .../org/qi4j/demo/intro/WhatsAnObjectDocs.java  |   18 +
 tutorials/introduction/tenminutes/LICENSE       |  177 --
 tutorials/introduction/tenminutes/NOTICE        |   17 -
 tutorials/introduction/tenminutes/build.gradle  |   23 +-
 .../tenminutes/src/docs/ten-minutes.txt         |   49 +-
 tutorials/introduction/thirtyminutes/LICENSE    |  177 --
 tutorials/introduction/thirtyminutes/NOTICE     |   17 -
 .../introduction/thirtyminutes/build.gradle     |   23 +-
 .../thirtyminutes/src/docs/thirty-minutes.txt   |   45 +-
 .../demo/thirtyminutes/ThirtyMinutesDocs.java   |   18 +
 tutorials/introduction/twohours/LICENSE         |  177 --
 tutorials/introduction/twohours/NOTICE          |   17 -
 .../twohours/src/docs/two-hours.txt             |   27 +-
 tutorials/introduction/twominutes/LICENSE       |  177 --
 tutorials/introduction/twominutes/NOTICE        |   17 -
 tutorials/introduction/twominutes/build.gradle  |   23 +-
 .../twominutes/src/docs/two-minutes.txt         |   31 +-
 .../main/java/org/qi4j/demo/twominute/Main.java |   18 +
 .../java/org/qi4j/demo/twominute/Speaker.java   |   18 +
 .../org/qi4j/demo/twominute/SpeakerMixin.java   |   18 +
 tutorials/services/build.gradle                 |   23 +-
 tutorials/services/src/docs/step1.txt           |   23 +-
 tutorials/services/src/docs/step2.txt           |   21 +-
 tutorials/services/src/docs/step3.txt           |   25 +-
 tutorials/services/src/docs/tut-services.txt    |   25 +-
 .../qi4j/tutorials/services/step1/package.html  |   20 +-
 .../qi4j/tutorials/services/step2/Library.java  |   18 +
 .../services/step2/LibraryService.java          |   18 +
 .../qi4j/tutorials/services/step2/package.html  |   18 +-
 .../qi4j/tutorials/services/step3/Library.java  |   18 +
 .../services/step3/LibraryService.java          |   18 +
 .../qi4j/tutorials/services/step3/package.html  |   22 +-
 .../qi4j/tutorials/services/step4/Library.java  |   18 +
 .../services/step4/LibraryService.java          |   18 +
 .../qi4j/tutorials/services/step5/Library.java  |   18 +
 .../services/step5/LibraryService.java          |   18 +
 .../qi4j/tutorials/services/step6/Library.java  |   18 +
 .../services/step6/LibraryService.java          |   18 +
 .../services/step4/LibraryService.properties    |   15 +
 .../services/step5/LibraryService.properties    |   15 +
 .../tutorials/services/step6/Library.properties |   15 +
 1803 files changed, 31256 insertions(+), 23022 deletions(-)
----------------------------------------------------------------------



[02/50] zest-java git commit: EventSourcing: licensing, formatting, some fixes in documentation

Posted by pa...@apache.org.
EventSourcing: licensing, formatting, some fixes in documentation


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/3a2f6c94
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/3a2f6c94
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/3a2f6c94

Branch: refs/heads/master
Commit: 3a2f6c948faf2c1a10b9f4d8c20b18578a7d99be
Parents: 80c2895
Author: Paul Merlin <pa...@apache.org>
Authored: Sun Jul 19 18:38:33 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sun Jul 19 18:38:33 2015 +0200

----------------------------------------------------------------------
 libraries/eventsourcing-jdbm/dev-status.xml     |   2 +-
 libraries/eventsourcing-rest/dev-status.xml     |   2 +-
 libraries/eventsourcing/dev-status.xml          |   2 +-
 .../eventsourcing/src/docs/eventsourcing.txt    |  41 ++++----
 .../MemoryApplicationEventStoreService.java     |  78 ++++++++------
 .../bootstrap/EventsourcingAssembler.java       |  45 +++++---
 .../application/ApplicationEventTest.java       | 102 ++++++++++---------
 .../src/docs/tutorials/howto-build-system.txt   |   4 +-
 manual/src/docs/userguide/libraries.txt         |   8 --
 9 files changed, 159 insertions(+), 125 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing-jdbm/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-jdbm/dev-status.xml b/libraries/eventsourcing-jdbm/dev-status.xml
index 73eb6db..5adebd7 100644
--- a/libraries/eventsourcing-jdbm/dev-status.xml
+++ b/libraries/eventsourcing-jdbm/dev-status.xml
@@ -24,7 +24,7 @@
     <codebase>beta</codebase>
 
     <!-- none, brief, good, complete -->
-    <documentation>none</documentation>
+    <documentation>brief</documentation>
 
     <!-- none, some, good, complete -->
     <unittests>some</unittests>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing-rest/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing-rest/dev-status.xml b/libraries/eventsourcing-rest/dev-status.xml
index 73eb6db..5adebd7 100644
--- a/libraries/eventsourcing-rest/dev-status.xml
+++ b/libraries/eventsourcing-rest/dev-status.xml
@@ -24,7 +24,7 @@
     <codebase>beta</codebase>
 
     <!-- none, brief, good, complete -->
-    <documentation>none</documentation>
+    <documentation>brief</documentation>
 
     <!-- none, some, good, complete -->
     <unittests>some</unittests>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing/dev-status.xml
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/dev-status.xml b/libraries/eventsourcing/dev-status.xml
index 73eb6db..5adebd7 100644
--- a/libraries/eventsourcing/dev-status.xml
+++ b/libraries/eventsourcing/dev-status.xml
@@ -24,7 +24,7 @@
     <codebase>beta</codebase>
 
     <!-- none, brief, good, complete -->
-    <documentation>none</documentation>
+    <documentation>brief</documentation>
 
     <!-- none, some, good, complete -->
     <unittests>some</unittests>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing/src/docs/eventsourcing.txt
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/docs/eventsourcing.txt b/libraries/eventsourcing/src/docs/eventsourcing.txt
index d6a6263..6936ea5 100644
--- a/libraries/eventsourcing/src/docs/eventsourcing.txt
+++ b/libraries/eventsourcing/src/docs/eventsourcing.txt
@@ -25,26 +25,27 @@
 source=libraries/eventsourcing/dev-status.xml
 --------------
 
-The Event Sourcing Library supports generating, storing and replying two types of events: application-events and domain-events.
+The Event Sourcing Library supports generating, storing and replaying two types of events: application-events and domain-events.
 
-Application events are bound to usecase and are produced by execution of specific methods (ones with ApplicationEvent as their first parameter).
-Each application event holds information about usecase, method name and json serialized values of method parameters.
+Application events are bound to Usecase and are produced by execution of specific methods (ones with `ApplicationEvent` as their first parameter).
+Each application event holds information about Usecase, method name and JSON serialized values of method parameters.
 
-Domain events are bound to entity instances and are produced by execution of annotated (see @DomainEvent) method that belongs to EntityComposite.
-Each domain event (see DomainEventValue) holds information about entity type, identity, method name and json serialized values of method parameters.
+Domain events are bound to entity instances and are produced by execution of annotated (see `@DomainEvent`) methods that belongs to `EntityComposite`.
+Each domain event (see `DomainEventValue`) holds information about entity type, identity, method name and JSON serialized values of method parameters.
 
-Both application and domain events are captured during UnitOfWork lifetime and are stored in event store after successfully completed UnitOfWork as collection together (see UnitOfWorkDomainEventsValue and TransactionApplicationEvents).
+Both application and domain events are captured during `UnitOfWork` lifetime and are stored in `EventStore` after successfully completed `UnitOfWork` as collection together (see `UnitOfWorkDomainEventsValue` and `TransactionApplicationEvents`).
 
-There is support for replying events. When events are replied the same code is executed but no new events are generated.
+There is support for replaying events.
+When events are replayed the same code is executed but no new events are generated.
 
-There are helper classes that enables a service to easily track event feed, and
-for domain events there is event router that allow specify specification->receiver routes.
+There are helper classes that enables a service to easily track events feed, and for domain events there is `EventRouter` that allow to specify specification->receiver routes.
 
 include::../../build/docs/buildinfo/artifact.txt[]
 
 *JDBM backed store*
 
-Event store supports indexed and streamed access to events feed. There is in-memory and JDBM backed implementation.
+EventStore supports indexed and streamed access to events feed.
+There is in-memory and JDBM backed implementations.
 
 [devstatus]
 --------------
@@ -55,7 +56,7 @@ include::../../../eventsourcing-jdbm/build/docs/buildinfo/artifact.txt[]
 
 *REST access*
 
-For remote access to feed there is eventsourcing-rest library that exposes events as Atom feeds.
+For remote access to feed there is `eventsourcing-rest` library that exposes events as Atom feeds.
 
 [devstatus]
 --------------
@@ -75,21 +76,23 @@ source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/appl
 tag=assemblyAE
 ----
 
-configure application events store:
+Configure application events store:
 [snippet,java]
 ----
 source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
 tag=storeAE
 ----
 
-Actual method on composite which execution emits application event. First parameter is null on "normal" execution. If it is not null, then the method call is a replay of previously created events.
+Actual method on composite which execution emits application event.
+First parameter is `null` on "normal" execution.
+If it is not `null`, then the method call is a replay of previously created events.
 [snippet,java]
 ----
 source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
 tag=methodAE
 ----
 
-to enable execution capturing, you have to configure composite with concern:
+To enable execution capturing, you have to configure composite with concern:
 [snippet,java]
 ----
 source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
@@ -106,7 +109,7 @@ source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/doma
 tag=assemblyDE
 ----
 
-configure domain events store:
+Configure domain events store:
 
 [snippet,java]
 ----
@@ -114,19 +117,19 @@ source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/doma
 tag=storeDE
 ----
 
-annotate your entity state changing methods. Event methods may only change state. They may not fail or thrown exceptions:
+Annotate your entity state changing methods.
+Event methods may only change state.
+They may not fail or thrown exceptions:
 [snippet,java]
 ----
 source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/domain/DomainEventTest.java
 tag=methodDE
 ----
 
-to enable method execution capturing, you have to configure entity with concern:
+To enable method execution capturing, you have to configure entity with concern:
 
 [snippet,java]
 ----
 source=libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/domain/DomainEventTest.java
 tag=concernDE
 ----
-
-

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
index 698607f..cce6cf4 100644
--- a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
+++ b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.qi4j.library.eventsourcing.application.source.memory;
 
 import org.qi4j.api.activation.Activators;
@@ -14,89 +32,89 @@ import org.qi4j.library.eventsourcing.domain.api.UnitOfWorkDomainEventsValue;
 import java.io.IOException;
 import java.util.*;
 
-
 /**
  * In-Memory ApplicationEventStore. Mainly used for testing.
  */
-@Mixins(MemoryApplicationEventStoreService.MemoryStoreMixin.class)
-@Activators(ApplicationEventStoreActivation.Activator.class)
+@Mixins( MemoryApplicationEventStoreService.MemoryStoreMixin.class )
+@Activators( ApplicationEventStoreActivation.Activator.class )
 public interface MemoryApplicationEventStoreService
-        extends ApplicationEventSource, ApplicationEventStore, ApplicationEventStream, ApplicationEventStoreActivation, ServiceComposite
+    extends ApplicationEventSource, ApplicationEventStore, ApplicationEventStream, ApplicationEventStoreActivation, ServiceComposite
 {
-
     abstract class MemoryStoreMixin
-            extends AbstractApplicationEventStoreMixin
-            implements ApplicationEventSource, ApplicationEventStoreActivation
+        extends AbstractApplicationEventStoreMixin
+        implements ApplicationEventSource, ApplicationEventStoreActivation
     {
-
         // This list holds all transactions
         private LinkedList<TransactionApplicationEvents> store = new LinkedList<TransactionApplicationEvents>();
 
         @Override
-        public Input<TransactionApplicationEvents, IOException> transactionsAfter(final long afterTimestamp, final long maxTransactions)
+        public Input<TransactionApplicationEvents, IOException> transactionsAfter( final long afterTimestamp, final long maxTransactions )
         {
             return new Input<TransactionApplicationEvents, IOException>()
             {
                 @Override
-                public <ReceiverThrowableType extends Throwable> void transferTo(Output<? super TransactionApplicationEvents, ReceiverThrowableType> output) throws IOException, ReceiverThrowableType
+                public <ReceiverThrowableType extends Throwable> void transferTo( Output<? super TransactionApplicationEvents, ReceiverThrowableType> output )
+                    throws IOException, ReceiverThrowableType
                 {
                     // Lock store first
                     lock.lock();
                     try
                     {
-                        output.receiveFrom(new Sender<TransactionApplicationEvents, IOException>()
+                        output.receiveFrom( new Sender<TransactionApplicationEvents, IOException>()
                         {
                             @Override
-                            public <ReceiverThrowableType extends Throwable> void sendTo(Receiver<? super TransactionApplicationEvents, ReceiverThrowableType> receiver) throws ReceiverThrowableType, IOException
+                            public <ReceiverThrowableType extends Throwable> void sendTo( Receiver<? super TransactionApplicationEvents, ReceiverThrowableType> receiver )
+                                throws ReceiverThrowableType, IOException
                             {
                                 Iterator<TransactionApplicationEvents> iterator = store.iterator();
 
                                 long count = 0;
 
-                                while (iterator.hasNext() && count < maxTransactions)
+                                while( iterator.hasNext() && count < maxTransactions )
                                 {
                                     TransactionApplicationEvents next = iterator.next();
-                                    if (next.timestamp().get() > afterTimestamp)
+                                    if( next.timestamp().get() > afterTimestamp )
                                     {
-                                        receiver.receive(next);
+                                        receiver.receive( next );
                                         count++;
                                     }
                                 }
                             }
                         });
-                    } finally
+                    }
+                    finally
                     {
                         lock.unlock();
                     }
                 }
             };
-
         }
 
         @Override
-        public Input<TransactionApplicationEvents, IOException> transactionsBefore(final long beforeTimestamp, final long maxTransactions)
+        public Input<TransactionApplicationEvents, IOException> transactionsBefore( final long beforeTimestamp, final long maxTransactions )
         {
             return new Input<TransactionApplicationEvents, IOException>()
             {
                 @Override
-                public <ReceiverThrowableType extends Throwable> void transferTo(Output<? super TransactionApplicationEvents, ReceiverThrowableType> output) throws IOException, ReceiverThrowableType
+                public <ReceiverThrowableType extends Throwable> void transferTo( Output<? super TransactionApplicationEvents, ReceiverThrowableType> output )
+                    throws IOException, ReceiverThrowableType
                 {
                     // Lock store first
                     lock.lock();
                     try
                     {
-                        output.receiveFrom(new Sender<TransactionApplicationEvents, IOException>()
+                        output.receiveFrom( new Sender<TransactionApplicationEvents, IOException>()
                         {
                             @Override
-                            public <ReceiverThrowableType extends Throwable> void sendTo(Receiver<? super TransactionApplicationEvents, ReceiverThrowableType> receiver) throws ReceiverThrowableType, IOException
+                            public <ReceiverThrowableType extends Throwable> void sendTo( Receiver<? super TransactionApplicationEvents, ReceiverThrowableType> receiver )
+                                throws ReceiverThrowableType, IOException
                             {
-
                                 ListIterator<TransactionApplicationEvents> iterator = store.listIterator();
 
-                                while (iterator.hasNext())
+                                while( iterator.hasNext() )
                                 {
                                     TransactionApplicationEvents next = iterator.next();
-                                    if (next.timestamp().get() >= beforeTimestamp)
+                                    if( next.timestamp().get() >= beforeTimestamp )
                                     {
                                         break;
                                     }
@@ -104,29 +122,27 @@ public interface MemoryApplicationEventStoreService
 
                                 long count = 0;
 
-                                while (iterator.hasPrevious() && count < maxTransactions)
+                                while( iterator.hasPrevious() && count < maxTransactions )
                                 {
                                     TransactionApplicationEvents next = iterator.previous();
-                                    receiver.receive(next);
+                                    receiver.receive( next );
                                     count++;
                                 }
                             }
                         });
-                    } finally
+                    }
+                    finally
                     {
                         lock.unlock();
                     }
                 }
             };
-
         }
 
         @Override
-        protected void storeEvents(TransactionApplicationEvents transactionDomain) throws IOException
+        protected void storeEvents( TransactionApplicationEvents transactionDomain ) throws IOException
         {
             store.add(transactionDomain);
         }
-
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/EventsourcingAssembler.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/EventsourcingAssembler.java b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/EventsourcingAssembler.java
index 26d1af0..228d6de 100644
--- a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/EventsourcingAssembler.java
+++ b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/EventsourcingAssembler.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.qi4j.library.eventsourcing.bootstrap;
 
 import org.qi4j.bootstrap.Assemblers;
@@ -12,12 +30,9 @@ import org.qi4j.library.eventsourcing.domain.api.UnitOfWorkDomainEventsValue;
 import org.qi4j.library.eventsourcing.domain.factory.CurrentUserUoWPrincipal;
 import org.qi4j.library.eventsourcing.domain.factory.DomainEventFactoryService;
 
-
 public class EventsourcingAssembler
-        extends Assemblers.Visibility<EventsourcingAssembler>
+    extends Assemblers.Visibility<EventsourcingAssembler>
 {
-
-
     private boolean domainEvents;
     private boolean applicationEvents;
 
@@ -41,28 +56,26 @@ public class EventsourcingAssembler
         return this;
     }
 
-
     @Override
     public void assemble(ModuleAssembly module) throws AssemblyException
     {
-
-        if (domainEvents)
+        if( domainEvents )
         {
-            module.values(DomainEventValue.class, UnitOfWorkDomainEventsValue.class);
-            module.services(DomainEventFactoryService.class).visibleIn(visibility());
+            module.values( DomainEventValue.class, UnitOfWorkDomainEventsValue.class );
+            module.services( DomainEventFactoryService.class).visibleIn(visibility() );
         }
 
-        if (applicationEvents)
+        if( applicationEvents )
         {
-            module.values(ApplicationEvent.class, TransactionApplicationEvents.class);
-            module.services(ApplicationEventFactoryService.class).visibleIn(visibility());
+            module.values( ApplicationEvent.class, TransactionApplicationEvents.class );
+            module.services( ApplicationEventFactoryService.class ).visibleIn( visibility() );
         }
 
-        if (uowPrincipal)
+        if( uowPrincipal )
         {
-            module.importedServices(CurrentUserUoWPrincipal.class).importedBy(ImportedServiceDeclaration.NEW_OBJECT);
-            module.objects(CurrentUserUoWPrincipal.class);
+            module.importedServices( CurrentUserUoWPrincipal.class )
+                .importedBy( ImportedServiceDeclaration.NEW_OBJECT );
+            module.objects( CurrentUserUoWPrincipal.class );
         }
-
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java b/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
index 480b7f3..f566db8 100644
--- a/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
+++ b/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
@@ -1,3 +1,21 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package org.qi4j.library.eventsourcing.application;
 
 import org.junit.Test;
@@ -43,17 +61,14 @@ import static org.junit.Assert.assertEquals;
  * Subscription is not stored in domain model but is available via application events feed.
  */
 public class ApplicationEventTest
-        extends AbstractQi4jTest
+    extends AbstractQi4jTest
 {
-
     @Service
     ApplicationEventSource eventSource;
 
-
     @Override
-    public void assemble(ModuleAssembly module) throws AssemblyException
+    public void assemble( ModuleAssembly module ) throws AssemblyException
     {
-
         // START SNIPPET: assemblyAE
         new EventsourcingAssembler()
                 .withApplicationEvents()
@@ -62,16 +77,16 @@ public class ApplicationEventTest
         // END SNIPPET: assemblyAE
 
         // START SNIPPET: storeAE
-        module.services(MemoryApplicationEventStoreService.class);
+        module.services( MemoryApplicationEventStoreService.class );
         // END SNIPPET: storeAE
 
-        new EntityTestAssembler().assemble(module);
+        new EntityTestAssembler().assemble( module );
 
         // START SNIPPET: concernAE
-        module.transients(Users.class).withConcerns(ApplicationEventCreationConcern.class);
+        module.transients( Users.class ).withConcerns( ApplicationEventCreationConcern.class );
         // END SNIPPET: concernAE
 
-        module.entities(UserEntity.class);
+        module.entities( UserEntity.class );
 
     }
 
@@ -79,83 +94,84 @@ public class ApplicationEventTest
     @Test
     public void testApplicationEvent() throws UnitOfWorkCompletionException, IOException
     {
-        Users users = module.newTransient(Users.class);
+        Users users = module.newTransient( Users.class );
 
         Principal administratorPrincipal = new Principal()
         {
+            @Override
             public String getName()
             {
                 return "administrator";
             }
         };
 
-        UnitOfWork uow1 = module.newUnitOfWork(UsecaseBuilder.newUsecase("User signup"));
-        uow1.setMetaInfo(administratorPrincipal);
-        users.signup(null, "user1", Arrays.asList("news1", "news2"));
+        UnitOfWork uow1 = module.newUnitOfWork( UsecaseBuilder.newUsecase( "User signup" ) );
+        uow1.setMetaInfo( administratorPrincipal );
+        users.signup( null, "user1", Arrays.asList( "news1", "news2" ) );
         uow1.complete();
 
         UnitOfWork uow2 = module.newUnitOfWork();
-        uow2.setMetaInfo(administratorPrincipal);
-        users.signup(null, "user2", Collections.EMPTY_LIST);
+        uow2.setMetaInfo( administratorPrincipal );
+        users.signup( null, "user2", Collections.EMPTY_LIST );
         uow2.complete();
 
         UnitOfWork uow3 = module.newUnitOfWork();
-        uow3.setMetaInfo(administratorPrincipal);
-        users.signup(null, "user3", Collections.singletonList("news1"));
+        uow3.setMetaInfo( administratorPrincipal );
+        users.signup( null, "user3", Collections.singletonList( "news1" ) );
         uow3.complete();
 
 
         // receive events from uow2 and later forwards
         EventsInbox afterInbox = new EventsInbox();
-        eventSource.transactionsAfter(uow2.currentTime() - 1, Integer.MAX_VALUE).transferTo(afterInbox);
+        eventSource.transactionsAfter( uow2.currentTime() - 1, Integer.MAX_VALUE ).transferTo( afterInbox );
 
-        assertEquals(2, afterInbox.getEvents().size());
+        assertEquals( 2, afterInbox.getEvents().size() );
 
-        ApplicationEvent signupEvent2 = afterInbox.getEvents().get(0).events().get().get(0);
+        ApplicationEvent signupEvent2 = afterInbox.getEvents().get( 0 ).events().get().get( 0 );
 
-        assertEquals("signup", signupEvent2.name().get());
-        assertEquals("user2", ApplicationEventParameters.getParameter(signupEvent2, "param1"));
-        assertEquals("[]", ApplicationEventParameters.getParameter(signupEvent2, "param2"));
+        assertEquals( "signup", signupEvent2.name().get() );
+        assertEquals( "user2", ApplicationEventParameters.getParameter( signupEvent2, "param1" ) );
+        assertEquals( "[]", ApplicationEventParameters.getParameter( signupEvent2, "param2" ) );
 
         // receive events from uow2 backwards
         EventsInbox beforeInbox = new EventsInbox();
-        eventSource.transactionsBefore(uow3.currentTime(), Integer.MAX_VALUE).transferTo(beforeInbox);
+        eventSource.transactionsBefore( uow3.currentTime(), Integer.MAX_VALUE ).transferTo( beforeInbox );
 
-        assertEquals(2, beforeInbox.getEvents().size());
+        assertEquals( 2, beforeInbox.getEvents().size() );
 
-        ApplicationEvent signupEvent1 = beforeInbox.getEvents().get(1).events().get().get(0);
+        ApplicationEvent signupEvent1 = beforeInbox.getEvents().get( 1 ).events().get().get( 0 );
 
-        assertEquals("signup", signupEvent1.name().get());
-        assertEquals("user1", ApplicationEventParameters.getParameter(signupEvent1, "param1"));
-        assertEquals("[\"news1\",\"news2\"]", ApplicationEventParameters.getParameter(signupEvent1, "param2"));
+        assertEquals( "signup", signupEvent1.name().get());
+        assertEquals( "user1", ApplicationEventParameters.getParameter( signupEvent1, "param1" ) );
+        assertEquals( "[\"news1\",\"news2\"]", ApplicationEventParameters.getParameter( signupEvent1, "param2" ) );
 
 
     }
 
     static class EventsInbox implements Output<TransactionApplicationEvents, RuntimeException>
     {
-
         private List<TransactionApplicationEvents> events = new LinkedList<>();
 
         @Override
-        public <SenderThrowableType extends Throwable> void receiveFrom(Sender<? extends TransactionApplicationEvents, SenderThrowableType> sender) throws RuntimeException, SenderThrowableType
+        public <SenderThrowableType extends Throwable> void receiveFrom( Sender<? extends TransactionApplicationEvents, SenderThrowableType> sender )
+            throws RuntimeException, SenderThrowableType
         {
             try
             {
-                sender.sendTo(new Receiver<TransactionApplicationEvents, Throwable>()
+                sender.sendTo( new Receiver<TransactionApplicationEvents, Throwable>()
                 {
                     @Override
-                    public void receive(TransactionApplicationEvents item) throws Throwable
+                    public void receive( TransactionApplicationEvents item ) throws Throwable
                     {
                         events.add(item);
                     }
                 });
 
-            } catch (Throwable throwable)
+            }
+            catch( Throwable throwable )
             {
                 throwable.printStackTrace();
             }
-
         }
 
         public List<TransactionApplicationEvents> getEvents()
@@ -165,30 +181,27 @@ public class ApplicationEventTest
     }
 
     // START SNIPPET: methodAE
-    @Mixins(Users.Mixin.class)
+    @Mixins( Users.Mixin.class )
     public interface Users extends TransientComposite
     {
-
-        void signup(@Optional ApplicationEvent evt, String username, List<String> mailinglists);
+        void signup( @Optional ApplicationEvent evt, String username, List<String> mailinglists );
         // END SNIPPET: methodAE
 
         abstract class Mixin implements Users
         {
-
             @Structure
             UnitOfWorkFactory uowFactory;
 
             @Override
-            public void signup(ApplicationEvent evt, String username, List<String> mailinglists)
+            public void signup( ApplicationEvent evt, String username, List<String> mailinglists )
             {
                 if (evt == null)
                 {
                     UnitOfWork uow = uowFactory.currentUnitOfWork();
 
-                    EntityBuilder<UserEntity> builder = uow.newEntityBuilder(UserEntity.class);
-                    builder.instance().username().set(username);
+                    EntityBuilder<UserEntity> builder = uow.newEntityBuilder( UserEntity.class );
+                    builder.instance().username().set( username );
                     builder.newInstance();
-
                 }
             }
         }
@@ -197,10 +210,7 @@ public class ApplicationEventTest
     public interface UserEntity
             extends EntityComposite
     {
-
         @UseDefaults
         Property<String> username();
-
     }
-
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/manual/src/docs/tutorials/howto-build-system.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-build-system.txt b/manual/src/docs/tutorials/howto-build-system.txt
index 2fa78b5..f5e3a2b 100644
--- a/manual/src/docs/tutorials/howto-build-system.txt
+++ b/manual/src/docs/tutorials/howto-build-system.txt
@@ -131,11 +131,11 @@ If a +version+ property is not defined, the build system will refuse to make a r
 
 == Tests ==
 
+NOTE: See the https://builds.apache.org/view/S-Z/view/Zest/[Zest™ Continuous Integration] for current tests results
+
 Unit and integration tests are located near the code under test.
 You'll find theses tests across the whole SDK.
 
-NOTE: See the https://builds.apache.org/view/S-Z/view/Zest/[Zest™ Continuous Integration] for current tests results
-
 === Unit tests requiring external services ===
 
 Among unit tests, some require an external service to be run.

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3a2f6c94/manual/src/docs/userguide/libraries.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/userguide/libraries.txt b/manual/src/docs/userguide/libraries.txt
index 7157e37..b13ac39 100644
--- a/manual/src/docs/userguide/libraries.txt
+++ b/manual/src/docs/userguide/libraries.txt
@@ -63,14 +63,6 @@ include::../../../../libraries/eventsourcing/src/docs/eventsourcing.txt[]
 
 :leveloffset: 2
 
-include::../../../../libraries/eventsourcing-jdbm/src/docs/eventsourcing-jdbm.txt[]
-
-:leveloffset: 2
-
-include::../../../../libraries/eventsourcing-rest/src/docs/eventsourcing-rest.txt[]
-
-:leveloffset: 2
-
 include::../../../../libraries/fileconfig/src/docs/fileconfig.txt[]
 
 :leveloffset: 2


[33/50] zest-java git commit: ZEST-25 More predictable go-offline helpers in binary distribution

Posted by pa...@apache.org.
ZEST-25 More predictable go-offline helpers in binary distribution

They now respect dependency resolution/substitution strategies in place
in the Zest build.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/26a169d8
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/26a169d8
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/26a169d8

Branch: refs/heads/master
Commit: 26a169d8a74505ad64dd31cb92ff3838132756fc
Parents: f2aeede
Author: Paul Merlin <pa...@apache.org>
Authored: Thu Jul 23 11:39:01 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Thu Jul 23 11:39:01 2015 +0200

----------------------------------------------------------------------
 build.gradle     | 20 +++++++++++---------
 libraries.gradle |  4 ++++
 2 files changed, 15 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/26a169d8/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index eb89fc1..7da47d6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -610,14 +610,11 @@ task generateBinDistGoOfflineHelpers {
 
     def handledDeps = []
     releaseApprovedProjects.each { p ->
-      p.configurations.runtime.allDependencies.each { dep ->
-        def depCoords = "${dep.group}:${dep.name}:${dep.version}"
-        if( !dep.group.startsWith( 'org.qi4j' ) && !handledDeps.contains( depCoords ) ) {
-
-          goOfflineGradle += "  download '$depCoords'\n"
-
-          goOfflinePom += "    <dependency><groupId>${dep.group}</groupId><artifactId>${dep.name}</artifactId><version>${dep.version}</version></dependency>\n"
-
+      p.configurations.runtime.incoming.resolutionResult.allComponents.each { comp ->
+        def depCoords = "${comp.moduleVersion.group}:${comp.moduleVersion.name}:${comp.moduleVersion.version}"
+        if( !comp.moduleVersion.group.startsWith( 'org.qi4j' ) && !handledDeps.contains( depCoords ) ) {
+          goOfflineGradle += "  download( '$depCoords' ) { transitive = false }\n"
+          goOfflinePom += "    <dependency><groupId>${comp.moduleVersion.group}</groupId><artifactId>${comp.moduleVersion.name}</artifactId><version>${comp.moduleVersion.version}</version></dependency>\n"
           handledDeps << depCoords
         }
       }
@@ -646,7 +643,10 @@ task download( type: Copy ) {
       <execution>
         <id>go-offline-jars</id><phase>validate</phase>
         <goals><goal>copy-dependencies</goal></goals>
-        <configuration><outputDirectory>\${project.basedir}/dependencies</outputDirectory></configuration>
+        <configuration>
+          <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
+          <excludeTransitive>true</excludeTransitive>
+        </configuration>
       </execution>
       <execution>
         <id>go-offline-sources</id><phase>validate</phase>
@@ -654,6 +654,7 @@ task download( type: Copy ) {
         <configuration>
           <classifier>sources</classifier><failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
           <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
+          <excludeTransitive>true</excludeTransitive>
         </configuration>
       </execution>
       <execution>
@@ -662,6 +663,7 @@ task download( type: Copy ) {
         <configuration>
           <classifier>javadoc</classifier><failOnMissingClassifierArtifact>false</failOnMissingClassifierArtifact>
           <outputDirectory>\${project.basedir}/dependencies</outputDirectory>
+          <excludeTransitive>true</excludeTransitive>
         </configuration>
       </execution>
     </executions>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/26a169d8/libraries.gradle
----------------------------------------------------------------------
diff --git a/libraries.gradle b/libraries.gradle
index 100213a..c02a901 100644
--- a/libraries.gradle
+++ b/libraries.gradle
@@ -269,6 +269,10 @@ allprojects {
         if( dep.requested.module == 'commons-sandbox-parent' && dep.requested.version == '3-SNAPSHOT') {
           dep.useTarget group: dep.requested.group, name: dep.requested.module, version: '3'
         }
+        // GSON 2.3 POM is invalid, use 2.3.1 instead .. see https://github.com/google/gson/issues/588
+        if( dep.requested.group == 'com.google.code.gson' && dep.requested.module == 'gson' && dep.requested.version == '2.3' ) {
+          dep.useTarget group: dep.requested.group, name: dep.requested.module, version: '2.3.1'
+        }
         // Findbugs Annotation is LGPL, use https://github.com/stephenc/findbugs-annotations which is
         // Apache 2 licensed instead
         if( dep.requested.group == 'net.sourceforge.findbugs' && dep.requested.module == 'annotations' ) {


[15/50] zest-java git commit: ZEST-25 Checksum distributions

Posted by pa...@apache.org.
ZEST-25 Checksum distributions

The build actually did checksum distributions when uploading them to a
maven repository. But we also need md5 & sha-512 checksums for archival
at the ASF.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/df2bf67b
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/df2bf67b
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/df2bf67b

Branch: refs/heads/master
Commit: df2bf67b11b47ff30026e2f5fc00c3e53b0b9f13
Parents: 8098667
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 17:47:37 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 17:47:37 2015 +0200

----------------------------------------------------------------------
 build.gradle | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/df2bf67b/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 84c43e0..6918d0a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -828,6 +828,20 @@ task tarBinaries( type: Tar, dependsOn: buildAll ) {
   with binDistImage
 }
 
+// Checksum distributions
+tasks.withType( Zip ) { task ->
+  task.doLast {
+    ant.checksum file: task.archivePath, algorithm: 'MD5'
+    ant.checksum file: task.archivePath, algorithm: 'SHA-512'
+  }
+}
+tasks.withType( Tar ) { task ->
+  task.doLast {
+    ant.checksum file: task.archivePath, algorithm: 'MD5'
+    ant.checksum file: task.archivePath, algorithm: 'SHA-512'
+  }
+}
+
 artifacts {
   archives zipSources, tarSources, zipBinaries, tarBinaries
 }


[45/50] zest-java git commit: ZEST-107 Tests with Cache of EntityStores supporting Cache SPI

Posted by pa...@apache.org.
ZEST-107 Tests with Cache of EntityStores supporting Cache SPI

All but PreferencesES and SQLES.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/7b006504
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/7b006504
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/7b006504

Branch: refs/heads/master
Commit: 7b006504e0ea8e0d274b7c4a1f7f225561d4898f
Parents: 4a1788b
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 17:07:06 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:02 2015 +0200

----------------------------------------------------------------------
 .../file/FileEntityStoreWithCacheTest.java      | 42 ++++++++++
 .../HazelcastEntityStoreWithCacheTest.java      | 40 ++++++++++
 .../jclouds/JCloudsWithCacheTest.java           | 39 +++++++++
 .../jdbm/JdbmEntityStoreWithCacheTest.java      | 54 +++++++++++++
 .../LevelDBEntityStoreWithCacheTest.java        | 46 +++++++++++
 .../memory/MemoryEntityStoreWithCacheTest.java  | 35 +++++++++
 .../MongoMapEntityStoreWithCacheTest.java       | 83 ++++++++++++++++++++
 .../redis/RedisMapEntityStoreWithCacheTest.java | 78 ++++++++++++++++++
 .../riak/RiakMapEntityStoreWithCacheTest.java   | 76 ++++++++++++++++++
 9 files changed, 493 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-file/src/test/java/org/qi4j/entitystore/file/FileEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-file/src/test/java/org/qi4j/entitystore/file/FileEntityStoreWithCacheTest.java b/extensions/entitystore-file/src/test/java/org/qi4j/entitystore/file/FileEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..4fd31a5
--- /dev/null
+++ b/extensions/entitystore-file/src/test/java/org/qi4j/entitystore/file/FileEntityStoreWithCacheTest.java
@@ -0,0 +1,42 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.file;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.file.assembly.FileEntityStoreAssembler;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class FileEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        module.services( FileConfigurationService.class );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new FileEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-hazelcast/src/test/java/org/qi4j/entitystore/hazelcast/HazelcastEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-hazelcast/src/test/java/org/qi4j/entitystore/hazelcast/HazelcastEntityStoreWithCacheTest.java b/extensions/entitystore-hazelcast/src/test/java/org/qi4j/entitystore/hazelcast/HazelcastEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..8b8f032
--- /dev/null
+++ b/extensions/entitystore-hazelcast/src/test/java/org/qi4j/entitystore/hazelcast/HazelcastEntityStoreWithCacheTest.java
@@ -0,0 +1,40 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.hazelcast;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.hazelcast.assembly.HazelcastEntityStoreAssembler;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class HazelcastEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new HazelcastEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-jclouds/src/test/java/org/qi4j/entitystore/jclouds/JCloudsWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jclouds/src/test/java/org/qi4j/entitystore/jclouds/JCloudsWithCacheTest.java b/extensions/entitystore-jclouds/src/test/java/org/qi4j/entitystore/jclouds/JCloudsWithCacheTest.java
new file mode 100644
index 0000000..ab473c7
--- /dev/null
+++ b/extensions/entitystore-jclouds/src/test/java/org/qi4j/entitystore/jclouds/JCloudsWithCacheTest.java
@@ -0,0 +1,39 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.jclouds;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class JCloudsWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new JCloudsMapEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-jdbm/src/test/java/org/qi4j/entitystore/jdbm/JdbmEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jdbm/src/test/java/org/qi4j/entitystore/jdbm/JdbmEntityStoreWithCacheTest.java b/extensions/entitystore-jdbm/src/test/java/org/qi4j/entitystore/jdbm/JdbmEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..f5ded45
--- /dev/null
+++ b/extensions/entitystore-jdbm/src/test/java/org/qi4j/entitystore/jdbm/JdbmEntityStoreWithCacheTest.java
@@ -0,0 +1,54 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.jdbm;
+
+import org.junit.Before;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.entitystore.jdbm.assembly.JdbmEntityStoreAssembler;
+import org.qi4j.library.fileconfig.FileConfiguration;
+import org.qi4j.library.fileconfig.FileConfigurationDataWiper;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class JdbmEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Before
+    public void testDataCleanup()
+    {
+        FileConfiguration fileConfig = module.findService( FileConfiguration.class ).get();
+        FileConfigurationDataWiper.registerApplicationPassivationDataWiper( fileConfig, application );
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+
+        ModuleAssembly config = module.layer().module( "config" );
+        config.services( FileConfigurationService.class ).visibleIn( Visibility.layer ).instantiateOnStartup();
+        new EntityTestAssembler().assemble( config );
+
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new JdbmEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-leveldb/src/test/java/org/qi4j/entitystore/leveldb/LevelDBEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-leveldb/src/test/java/org/qi4j/entitystore/leveldb/LevelDBEntityStoreWithCacheTest.java b/extensions/entitystore-leveldb/src/test/java/org/qi4j/entitystore/leveldb/LevelDBEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..71b7bdf
--- /dev/null
+++ b/extensions/entitystore-leveldb/src/test/java/org/qi4j/entitystore/leveldb/LevelDBEntityStoreWithCacheTest.java
@@ -0,0 +1,46 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.leveldb;
+
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.library.fileconfig.FileConfigurationService;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class LevelDBEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().visibleIn( Visibility.module ).assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+
+        module.services( FileConfigurationService.class );
+
+        new LevelDBEntityStoreAssembler().
+            withConfig( config, Visibility.layer ).
+            identifiedBy( "java-leveldb-entitystore" ).
+            assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-memory/src/test/java/org/qi4j/entitystore/memory/MemoryEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-memory/src/test/java/org/qi4j/entitystore/memory/MemoryEntityStoreWithCacheTest.java b/extensions/entitystore-memory/src/test/java/org/qi4j/entitystore/memory/MemoryEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..3a1c72c
--- /dev/null
+++ b/extensions/entitystore-memory/src/test/java/org/qi4j/entitystore/memory/MemoryEntityStoreWithCacheTest.java
@@ -0,0 +1,35 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.memory;
+
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+public class MemoryEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new MemoryEntityStoreAssembler().assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-mongodb/src/test/java/org/qi4j/entitystore/mongodb/MongoMapEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-mongodb/src/test/java/org/qi4j/entitystore/mongodb/MongoMapEntityStoreWithCacheTest.java b/extensions/entitystore-mongodb/src/test/java/org/qi4j/entitystore/mongodb/MongoMapEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..7daec24
--- /dev/null
+++ b/extensions/entitystore-mongodb/src/test/java/org/qi4j/entitystore/mongodb/MongoMapEntityStoreWithCacheTest.java
@@ -0,0 +1,83 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.mongodb;
+
+import com.mongodb.Mongo;
+import org.junit.BeforeClass;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+import static org.qi4j.test.util.Assume.assumeConnectivity;
+
+/**
+ * Test the MongoMapEntityStoreService usage with a CachePool.
+ * <p>Installing mongodb and starting it should suffice as the test use mongodb defaults: 127.0.0.1:27017</p>
+ */
+public class MongoMapEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @BeforeClass
+    public static void beforeRedisMapEntityStoreTests()
+    {
+        assumeConnectivity( "localhost", 27017 );
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+
+        new OrgJsonValueSerializationAssembler().assemble( module );
+
+        new MongoMapEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+
+        MongoEntityStoreConfiguration mongoConfig = config.forMixin( MongoEntityStoreConfiguration.class ).declareDefaults();
+        mongoConfig.writeConcern().set( MongoEntityStoreConfiguration.WriteConcern.FSYNC_SAFE );
+        mongoConfig.database().set( "qi4j:test" );
+        mongoConfig.collection().set( "qi4j:test:entities" );
+    }
+
+    private Mongo mongo;
+    private String dbName;
+
+    @Override
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        MongoMapEntityStoreService es = module.findService( MongoMapEntityStoreService.class ).get();
+        mongo = es.mongoInstanceUsed();
+        dbName = es.dbInstanceUsed().getName();
+
+    }
+
+    @Override
+    public void tearDown()
+        throws Exception
+    {
+        mongo.dropDatabase( dbName );
+        super.tearDown();
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-redis/src/test/java/org/qi4j/entitystore/redis/RedisMapEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-redis/src/test/java/org/qi4j/entitystore/redis/RedisMapEntityStoreWithCacheTest.java b/extensions/entitystore-redis/src/test/java/org/qi4j/entitystore/redis/RedisMapEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..ab15743
--- /dev/null
+++ b/extensions/entitystore-redis/src/test/java/org/qi4j/entitystore/redis/RedisMapEntityStoreWithCacheTest.java
@@ -0,0 +1,78 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.redis;
+
+import org.junit.BeforeClass;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+
+import static org.qi4j.test.util.Assume.assumeConnectivity;
+
+public class RedisMapEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @BeforeClass
+    public static void beforeRedisMapEntityStoreTests()
+    {
+        assumeConnectivity( "localhost", 6379 );
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new RedisMapEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+
+    private JedisPool jedisPool;
+
+    @Override
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        RedisMapEntityStoreService es = module.findService( RedisMapEntityStoreService.class ).get();
+        jedisPool = es.jedisPool();
+
+    }
+
+    @Override
+    public void tearDown()
+        throws Exception
+    {
+        Jedis jedis = jedisPool.getResource();
+        try
+        {
+            jedis.flushDB();
+        }
+        finally
+        {
+            jedisPool.returnResource( jedis );
+        }
+        super.tearDown();
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b006504/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakMapEntityStoreWithCacheTest.java b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..5a0e6b3
--- /dev/null
+++ b/extensions/entitystore-riak/src/test/java/org/qi4j/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
@@ -0,0 +1,76 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.entitystore.riak;
+
+import com.basho.riak.client.IRiakClient;
+import com.basho.riak.client.bucket.Bucket;
+import org.junit.BeforeClass;
+import org.qi4j.api.common.Visibility;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.EntityTestAssembler;
+import org.qi4j.test.cache.AbstractEntityStoreWithCacheTest;
+import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+
+import static org.qi4j.test.util.Assume.assumeConnectivity;
+
+public class RiakMapEntityStoreWithCacheTest
+    extends AbstractEntityStoreWithCacheTest
+{
+    @BeforeClass
+    public static void beforeRiakProtobufMapEntityStoreTests()
+    {
+        assumeConnectivity( "localhost", 8087 );
+    }
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        ModuleAssembly config = module.layer().module( "config" );
+        new EntityTestAssembler().assemble( config );
+        new OrgJsonValueSerializationAssembler().assemble( module );
+        new RiakProtobufMapEntityStoreAssembler().withConfig( config, Visibility.layer ).assemble( module );
+    }
+
+    private IRiakClient riakClient;
+    private String bucketKey;
+
+    @Override
+    public void setUp()
+        throws Exception
+    {
+        super.setUp();
+        RiakMapEntityStoreService es = module.findService( RiakMapEntityStoreService.class ).get();
+        riakClient = es.riakClient();
+        bucketKey = es.bucket();
+    }
+
+    @Override
+    public void tearDown()
+        throws Exception
+    {
+        // Riak don't expose bucket deletion in its API so we empty the Zest Entities bucket.
+        Bucket bucket = riakClient.fetchBucket( bucketKey ).execute();
+        for( String key : bucket.keys() )
+        {
+            bucket.delete( key ).execute();
+        }
+        super.tearDown();
+    }
+}


[37/50] zest-java git commit: ZEST-100 Minor changes

Posted by pa...@apache.org.
ZEST-100 Minor changes


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/0b097442
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/0b097442
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/0b097442

Branch: refs/heads/master
Commit: 0b0974426162805de006ef297ba1a4ae728c3103
Parents: 19a9ab2
Author: Paul Merlin <pa...@apache.org>
Authored: Sat Jul 25 12:59:45 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sat Jul 25 12:59:45 2015 +0200

----------------------------------------------------------------------
 .../docs/tutorials/howto-releasing-apache.txt   | 26 +++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/0b097442/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index d8e459b..f529318 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -370,9 +370,11 @@ The changelog for this release can be found here: https://issues.apache.org/jira
 
 Tag: https://git-wip-us.apache.org/repos/asf?p=zest-java.git;a=tag;h=cc0f8211bf47b2df72a6239c9fdcd1d6906ea246
 
-The artifacts to be voted on are located here: https://dist.apache.org/repos/dist/dev/zest/
+The distributions to be voted on are located here: https://dist.apache.org/repos/dist/dev/zest/
 
-Release artifacts are signed with the following key: https://dist.apache.org/repos/dist/dev/zest/KEYS
+Convenience artifacts in a maven repository are staged here: https://repository.apache.org/content/groups/staging/org/qi4j/
+
+Release distributions and convenience artifacts are signed with the following key: https://dist.apache.org/repos/dist/dev/zest/KEYS
 
 Please vote on releasing this package as Apache Zest (Java Edition) <RELEASE-VERSION>.
 
@@ -396,12 +398,30 @@ After the vote is over, send a "RESULT" email to the list with the subject line:
 [RESULT][VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
 ----
 
-Votes on whether a package is ready to be released use majority approval -- i.e., at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes.
+Here is a sample template:
+
+[source,text]
+----
+To: "Zest Developers List" <de...@zest.apache.org>
+CC: "Zest Project Management Committee List" <pr...@zest.apache.org>
+Subject: [RESULT][VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+
+Hi,
 
+The vote has passed|failed with the following result:
+
++1 (binding): <<list of names>>
++1 (non binding): <<list of names>>
+
+I will promote|drop the distributions and artifacts.
+----
+
+Votes on whether a package is ready to be released use majority approval -- i.e., at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes.
 
 
 == VOTE passes
 
+
 === Seal the release
 
 Create and sign the release git tag from the unsigned release candidate tag:


[27/50] zest-java git commit: ZEST-25 Add missing files into source distribution

Posted by pa...@apache.org.
ZEST-25 Add missing files into source distribution


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/e48c4e5e
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/e48c4e5e
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/e48c4e5e

Branch: refs/heads/master
Commit: e48c4e5eb02d37478e890823dbf03d46aa2dab27
Parents: fed3d19
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 15:05:49 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 15:05:49 2015 +0200

----------------------------------------------------------------------
 build.gradle | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/e48c4e5e/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 7ce80ba..36086f0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -687,6 +687,7 @@ def srcDistFilesImages = copySpec {
   include 'gradle/**'
   include 'etc/**'
   include 'buildSrc/**'
+  include 'src/**'
   releaseApprovedProjects.each { p ->
     def relPath = new File( project.projectDir.toURI().relativize( p.projectDir.toURI() ).toString() )
     include "$relPath/**"


[40/50] zest-java git commit: cache clone test, split

Posted by pa...@apache.org.
cache clone test, split


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/965c7694
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/965c7694
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/965c7694

Branch: refs/heads/master
Commit: 965c7694285daa1fab346bd73298419e3f3af09f
Parents: 5378de5
Author: tbml <ti...@adleritech.com>
Authored: Fri Jul 24 06:53:32 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:01 2015 +0200

----------------------------------------------------------------------
 .../qi4j/cache/ehcache/JSONEntityStoreTest.java | 32 +++++++++++++++++---
 1 file changed, 27 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/965c7694/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
index 13670c2..14250ce 100644
--- a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
+++ b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
@@ -68,7 +68,7 @@ public class JSONEntityStoreTest
     }
 
     @Test
-    public void cacheJSONGlobalStateTest()
+    public void cached_NEW_State()
             throws Exception
     {
 
@@ -78,22 +78,44 @@ public class JSONEntityStoreTest
         b.instance().name().set("account1");
         b.instance().balance().set( BigDecimal.ZERO );
 
-        Account account1 = b.newInstance();
+        String accountId = b.newInstance().identity().get();
 
         uow1.complete();
 
         UnitOfWork uow2 = assembler.module().newUnitOfWork();
-        Account account2 = uow2.get(account1);
+        Account account2 = uow2.get(Account.class, accountId);
+        account2.balance().set( BigDecimal.ONE);
+        uow2.complete();
+
+    }
+
+    @Test
+    public void globalStateClone()
+            throws Exception
+    {
+
+        UnitOfWork uow1 = assembler.module().newUnitOfWork();
+        EntityBuilder<Account> b = uow1.newEntityBuilder(Account.class);
+
+        b.instance().name().set("account1");
+        b.instance().balance().set( BigDecimal.ZERO );
+
+        String accountId = b.newInstance().identity().get();
+
+        uow1.complete();
+
+        UnitOfWork uow2 = assembler.module().newUnitOfWork();
+        Account account2 = uow2.get( Account.class, accountId);
         account2.balance().set( BigDecimal.ONE);
         uow2.complete();
 
         UnitOfWork uow3 = assembler.module().newUnitOfWork();
-        Account account3 = uow3.get(account1);
+        Account account3 = uow3.get( Account.class, accountId);
         account3.balance().set( BigDecimal.TEN);
         uow3.discard();
 
         UnitOfWork uow4 = assembler.module().newUnitOfWork();
-        Account account4 = uow4.get(account1);
+        Account account4 = uow4.get( Account.class, accountId);
 
         assertEquals( BigDecimal.ONE, account4.balance().get());
 


[10/50] zest-java git commit: ZEST-100 Release process documentation draft

Posted by pa...@apache.org.
ZEST-100 Release process documentation draft


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/049fb594
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/049fb594
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/049fb594

Branch: refs/heads/master
Commit: 049fb594885b4f51059239ff7fd7832e1687f1ec
Parents: 5612308
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 21:54:30 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 21:54:30 2015 +0200

----------------------------------------------------------------------
 .../docs/tutorials/howto-releasing-apache.txt   | 235 +++++++++++++++++++
 manual/src/docs/website/tutorials.txt           |   5 +
 2 files changed, 240 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/049fb594/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
new file mode 100644
index 0000000..f60dc3a
--- /dev/null
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -0,0 +1,235 @@
+///////////////////////////////////////////////////////////////
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+///////////////////////////////////////////////////////////////
+
+[[releasing-apache,Releasing Zest]]
+= Releasing Zest™
+
+This tutorial is intended for Apache Zest™ commiters who want to release a new version of Apache Zest™ (Java Edition) at The Apache Software Foundation.
+It describes the tools and processes of a typical release.
+
+It is intended to be a recommendation of best practices for the Apache Zest™ project.
+The instructions provided here are consistent with, but not a replacement for the https://www.apache.org/dev/release.html[ASF Release Guidelines].
+
+Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
+
+
+// Inspirations
+// https://commons.apache.org/releases/prepare.html
+// https://wiki.apache.org/logging/Log4j2ReleaseGuide
+// https://accumulo.apache.org/releasing.html
+
+
+== Preparing a release
+
+=== Select a Release Manager
+
+A Zest committer (normally one of the development team) should post an email to the development list proposing that a release be made and nominating a release manager.
+Typically, the proposer volunteers as the release manager and it passes by https://www.apache.org/foundation/glossary.html#LazyConsensus[lazy consensus].
+
+
+=== Ensure your setup is ready
+
+
+Clone/checkout all needed repositories, next to each other:
+
+    mkdir zest-repos
+    cd zest-repos
+    git clone .... zest-java
+    svn checkout https://... zest-svn
+    svn checkout https://... zest-dist-dev
+    svn checkout https://... zest-dist-release
+
+You should then get the following directory tree:
+
+    .
+    └── zest-repos
+        ├── zest-java
+        ├── zest-svn
+        ├── zest-dist-dev       # Release candidate distri
+        └── zest-dist-release
+
+Ensure you can test, build and sign Zest, including artifact signing, see the <<build-system, Build System>> tutorial.
+
+Moreover, you will need to have a valid http://jekyllrb.com/[Jekyll] installation as the Apache Zest™ https://zest.apache.org/[website] is baked with it.
+
+Ensure you can sign git tags.
+
+    TODO DOCUMENT!
+
+
+=== Update the `KEYS` file if needed.
+
+    TODO DOCUMENT!
+
+
+== Creating a Release Candidate
+
+=== Resolve JIRA issues
+
+Resolve all issues on that version!
+They can be resolved by:
+
+- fixing
+- marking them as `INVALID` or `WONTFIX`
+- changing their fix version to another unreleased version
+
+See the https://issues.apache.org/jira/browse/ZEST[ZEST] project on JIRA.
+
+
+=== Prepare Release Notes
+
+Apache Zest™ release notes are generated from JIRA issues.
+
+Open the target Zest™ version's release notes in https://issues.apache.org/jira/browse/ZEST/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel[JIRA] and review them.
+
+    TODO DO SOMETHING WITH RELEASE NOTES!!!!!
+
+
+=== Create a release branch
+
+    git flow release start <RELEASE-VERSION>-RC#
+
+
+=== Make a complete check
+
+Make a complete build:
+
+    ./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+
+Review the release distributions in `build/distributions`.
+
+If any, make the required changes, commit them and iterate.
+
+=== Close the release branch
+
+    git flow release finish <RELEASE-VERSION>-RC#
+
+=== Checkout the release candidate tag
+
+This is necessary because built artifacts include git metadata.
+
+    git checkout <RELEASE-VERSION>-RC#
+
+=== Build artifacts and distributions
+
+    ./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+
+=== Stage maven artifacts
+
+Stage artifacts to https://repository.apache.org/[repository.apache.org] :
+
+    ./gradlew -Dversion=<RELEASE-VERSION> release
+
+Close the staging Nexus repository:
+
+    TODO DOCUMENT!
+
+
+=== Upload distributions
+
+Upload source and binary distributions, checksums and signatures to https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]:
+
+    TODO DOCUMENT!
+
+
+== Run the vote
+
+Send a "VOTE" to the mailto:dev@zest.apache.org[developer mailing list] including links to release artifacts. A VOTE always contains two parts. Send an email to the developer mailing list with the subject line:
+
+    [VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+
+After the vote is over, send a "RESULT" email to the list with the subject line:
+
+    [RESULT][VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+
+Votes on whether a package is ready to be released use majority approval -- i.e., at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes.
+
+
+== VOTE passes
+
+=== Seal the release
+
+Rename and sign the git tag
+
+    TODO DOCUMENT!
+
+Push all git changes:
+
+    cd zest-java
+    git checkout master
+    git push origin master
+    git checkout develop
+    git push origin master
+    git push --tags
+
+
+=== Publish
+
+Publish the Nexus repository.
+
+    TODO DOCUMENT!
+
+Move the release distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest] to https://dist.apache.org/repos/dist/release/zest/[dist.apache.org/repos/dist/release/zest]
+
+    TODO DOCUMENT!
+    
+
+=== Wait 24 hours
+
+For mirrors to pick up the new bits.
+
+
+=== Update the download page
+
+Edit `zest-svn/site/src/_data/releases.yml` with the new release data.
+Upmost is the latest.
+
+Then rebuild the website:
+
+    cd zest-svn
+    jekyll build
+
+And publish it:
+
+    svn add --force
+    svn commit -m "zest: update website"
+
+=== Register the release
+
+Finally, register the new release at https://reporter.apache.org/[reporter.apache.org]
+
+
+=== Announce
+
+Send an announcement to mailto:dev@zest.apache.org[dev@] and mailto:users@zest.apache.org[users@] mailing lists. Email announcements should have the subject line:
+
+    [ANNOUNCE] Released Zest (Java Edition) version <RELEASE-VERSION>
+
+
+== VOTE fails
+
+Drop the Nexus staging repository.
+
+    TODO DOCUMENT!
+
+Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]
+
+    TODO DOCUMENT!
+
+Drop your local `zest-java` clone and start over.

http://git-wip-us.apache.org/repos/asf/zest-java/blob/049fb594/manual/src/docs/website/tutorials.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/website/tutorials.txt b/manual/src/docs/website/tutorials.txt
index 9d752f5..256d8e8 100644
--- a/manual/src/docs/website/tutorials.txt
+++ b/manual/src/docs/website/tutorials.txt
@@ -74,6 +74,7 @@ This last set of tutorials you'll learn how to build the Zest™ SDK from source
 
 - <<build-system>>
 - <<community-docs>>
+- <<releasing-apache>>
 
 
 :leveloffset: 2
@@ -153,3 +154,7 @@ include::../tutorials/howto-build-system.txt[]
 include::../tutorials/howto-writing-docs.txt[]
 
 :leveloffset: 2
+
+include::../tutorials/howto-releasing-apache.txt[]
+
+:leveloffset: 2


[30/50] zest-java git commit: Attempt to fix compilation with OpenJDK 8 in PropertyModel

Posted by pa...@apache.org.
Attempt to fix compilation with OpenJDK 8 in PropertyModel

Previously tested working with:
- Oracle Java 7u75
- Oracle Java 8u45 to 8u51

But failed on builds.apache.org using OpenJDK 8
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/f91e712d
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/f91e712d
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/f91e712d

Branch: refs/heads/master
Commit: f91e712d77d75b324f886aca6a31656b1bad7377
Parents: ed865c6
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 18:03:15 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 18:03:15 2015 +0200

----------------------------------------------------------------------
 .../src/main/java/org/qi4j/runtime/property/PropertyModel.java     | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/f91e712d/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java b/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
index 3d38927..2e8b2ce 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/property/PropertyModel.java
@@ -172,7 +172,7 @@ public class PropertyModel
         {
             if( valueType instanceof ValueCompositeType )
             {
-                return module.newValue( first( valueType().types() ) );
+                return module.newValue( (Class<?>) first( valueType().types() ) );
             }
             else
             {


[39/50] zest-java git commit: ZEST-24 Fix POM content customization

Posted by pa...@apache.org.
ZEST-24 Fix POM content customization


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/29828264
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/29828264
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/29828264

Branch: refs/heads/master
Commit: 298282644b7b4a5109a1bb27cd8f3254fc290a06
Parents: 59e9d86
Author: Paul Merlin <pa...@apache.org>
Authored: Sat Jul 25 14:33:10 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sat Jul 25 14:33:10 2015 +0200

----------------------------------------------------------------------
 build.gradle        |   2 +-
 maven-compat.gradle | 470 ++++++++++++++++++++++++-----------------------
 2 files changed, 238 insertions(+), 234 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/29828264/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 55b1208..f342ad4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -45,7 +45,6 @@ apply plugin: 'idea'
 apply plugin: 'signing'
 apply plugin: 'maven'
 apply plugin: 'maven-publish-auth'
-apply from: 'maven-compat.gradle'
 apply plugin: 'project-report'
 apply from: 'libraries.gradle'
 apply plugin: 'org.nosphere.apache.rat'
@@ -425,6 +424,7 @@ allprojects {
       }
     }
   }
+  apply from: "$rootProject.projectDir/maven-compat.gradle"
   apply plugin: 'maven-publish-auth' // Bug in maven-publish-auth require apply after uploadArchives setup
 
   idea.module.iml {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/29828264/maven-compat.gradle
----------------------------------------------------------------------
diff --git a/maven-compat.gradle b/maven-compat.gradle
index c2fec45..0387818 100644
--- a/maven-compat.gradle
+++ b/maven-compat.gradle
@@ -17,262 +17,266 @@
  * under the License.
  */
 
-apply plugin: 'maven'
-
 // See http://maven.apache.org/pom/asf/
 
-pom {
+uploadArchives {
+  repositories.mavenDeployer {
 
-  project {
-    url 'https://zest.apache.org/'
-    organization {
-      name 'The Apache Software Foundation'
-      url 'https://apache.org/'
-    }
-    inceptionYear '2007'
-    issueManagement {
-      system 'jira'
-      url 'https://issues.apache.org/jira/browse/ZEST'
-    }
-    scm {
-      url "https://github.com/apache/zest-qi4j"
-      connection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-qi4j.git"
-      developerConnection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-qi4j.git"
-    }
-    licenses {
-      license {
-        name 'Apache License, version 2.0.'
-        url 'http://www.apache.org/licenses/LICENSE-2.0'
-      }
-    }
-    mailingLists {
-      mailingList {
-        name 'Users List'
-        subscribe 'users-subscribe@zest.apache.org'
-        unsubscribe 'users-unsubscribe@zest.apache.org'
-        post 'users@zest.apache.org'
-        archive 'https://mail-archives.apache.org/mod_mbox/zest-users/'
-        otherArchives {
-          otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
-        }
-      }
-      mailingList {
-        name 'Development List'
-        subscribe 'dev-subscribe@zest.apache.org'
-        unsubscribe 'dev-unsubscribe@zest.apache.org'
-        post 'dev@zest.apache.org'
-        archive 'https://mail-archives.apache.org/mod_mbox/zest-dev/'
-        otherArchives {
-          otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
-        }
-      }
-      mailingList {
-        name 'Commits List'
-        subscribe 'commits-subscribe@zest.apache.org'
-        unsubscribe 'commits-unsubscribe@zest.apache.org'
-        post 'commits@zest.apache.org'
-        archive 'https://mail-archives.apache.org/mod_mbox/zest-commits/'
-        otherArchives {
-          otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
-        }
-      }
-    }
-    developers {
-      developer {
-        id 'niclas@hedhman.org'
-        name 'Niclas Hedhman'
-        email 'niclas@hedhman.org'
-        roles {
-          role 'Core Team'
+    pom {
+
+      project {
+        url 'https://zest.apache.org/'
+        organization {
+          name 'The Apache Software Foundation'
+          url 'https://apache.org/'
         }
-        organizationUrl 'http://www.qi4j.org'
-        timezone 'UTC+8'
-      }
-      developer {
-        id 'rickardoberg'
-        name 'Rickard \u00F6berg'
-        email 'rickard.oberg@jayway.se'
-        roles {
-          role 'Core Team'
+        inceptionYear '2007'
+        issueManagement {
+          system 'jira'
+          url 'https://issues.apache.org/jira/browse/ZEST'
         }
-        url 'http://www.neotechnology.com'
-        organization 'Neo Technology AB'
-        organizationUrl 'http://www.neotechnology.com'
-        timezone 'UTC+8'
-      }
-      developer {
-        id 'edward.yakop@gmail.com'
-        name 'Edward Yakop'
-        email 'efy@codedragons.com'
-        roles {
-          role 'Core Team'
+        scm {
+          url "https://github.com/apache/zest-java"
+          connection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-java.git"
+          developerConnection "scm:git:https://git-wip-us.apache.org/repos/asf/zest-java.git"
         }
-        organizationUrl 'http://www.qi4j.org'
-        timezone 'UTC+8'
-      }
-      developer {
-        id 'adreghiciu@gmail.com'
-        name 'Alin Dreghiciu'
-        email 'adreghiciu@codedragons.com'
-        roles {
-          role 'Core Team'
+        licenses {
+          license {
+            name 'Apache License, version 2.0.'
+            url 'http://www.apache.org/licenses/LICENSE-2.0'
+          }
         }
-        organizationUrl 'http://www.qi4j.org'
-        timezone 'UTC+2'
-      }
-      developer {
-        id 'mesirii'
-        name 'Michael Hunger'
-        email 'qi4j@jexp.de'
-        roles {
-          role 'Core Team'
+        mailingLists {
+          mailingList {
+            name 'Users List'
+            subscribe 'users-subscribe@zest.apache.org'
+            unsubscribe 'users-unsubscribe@zest.apache.org'
+            post 'users@zest.apache.org'
+            archive 'https://mail-archives.apache.org/mod_mbox/zest-users/'
+            otherArchives {
+              otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
+            }
+          }
+          mailingList {
+            name 'Development List'
+            subscribe 'dev-subscribe@zest.apache.org'
+            unsubscribe 'dev-unsubscribe@zest.apache.org'
+            post 'dev@zest.apache.org'
+            archive 'https://mail-archives.apache.org/mod_mbox/zest-dev/'
+            otherArchives {
+              otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
+            }
+          }
+          mailingList {
+            name 'Commits List'
+            subscribe 'commits-subscribe@zest.apache.org'
+            unsubscribe 'commits-unsubscribe@zest.apache.org'
+            post 'commits@zest.apache.org'
+            archive 'https://mail-archives.apache.org/mod_mbox/zest-commits/'
+            otherArchives {
+              otherArchive 'https://www.apache.org/foundation/mailinglists.html#archives'
+            }
+          }
         }
-        timezone 'CET'
-      }
+        developers {
+          developer {
+            id 'niclas@hedhman.org'
+            name 'Niclas Hedhman'
+            email 'niclas@hedhman.org'
+            roles {
+              role 'Core Team'
+            }
+            organizationUrl 'http://www.qi4j.org'
+            timezone 'UTC+8'
+          }
+          developer {
+            id 'rickardoberg'
+            name 'Rickard \u00F6berg'
+            email 'rickard.oberg@jayway.se'
+            roles {
+              role 'Core Team'
+            }
+            url 'http://www.neotechnology.com'
+            organization 'Neo Technology AB'
+            organizationUrl 'http://www.neotechnology.com'
+            timezone 'UTC+8'
+          }
+          developer {
+            id 'edward.yakop@gmail.com'
+            name 'Edward Yakop'
+            email 'efy@codedragons.com'
+            roles {
+              role 'Core Team'
+            }
+            organizationUrl 'http://www.qi4j.org'
+            timezone 'UTC+8'
+          }
+          developer {
+            id 'adreghiciu@gmail.com'
+            name 'Alin Dreghiciu'
+            email 'adreghiciu@codedragons.com'
+            roles {
+              role 'Core Team'
+            }
+            organizationUrl 'http://www.qi4j.org'
+            timezone 'UTC+2'
+          }
+          developer {
+            id 'mesirii'
+            name 'Michael Hunger'
+            email 'qi4j@jexp.de'
+            roles {
+              role 'Core Team'
+            }
+            timezone 'CET'
+          }
 
-      developer {
-        id "muhdkamil"
-        name "Muhd Kamil bin Mohd Baki"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC+8"
-      }
+          developer {
+            id "muhdkamil"
+            name "Muhd Kamil bin Mohd Baki"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC+8"
+          }
 
-      developer {
-        id "ops4j@leangen.net"
-        name "David Leangen"
-        organization "Bioscene"
-        email "ops4j@leangen.net"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC+9"
-      }
+          developer {
+            id "ops4j@leangen.net"
+            name "David Leangen"
+            organization "Bioscene"
+            email "ops4j@leangen.net"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC+9"
+          }
 
-      developer {
-        id "sonny.gill@jayway.net"
-        name "Sonny Gill"
-        email "sonny.public@gmail.com"
-        roles {
-          role 'Community Team'
-        }
-        timezone "UTC+8"
-      }
+          developer {
+            id "sonny.gill@jayway.net"
+            name "Sonny Gill"
+            email "sonny.public@gmail.com"
+            roles {
+              role 'Community Team'
+            }
+            timezone "UTC+8"
+          }
 
-      developer {
-        id "taowen"
-        name "Tao Wen"
-        organization ""
-        email "taowen@gmail.com"
-        roles {
-          role 'Community Team'
-        }
-        timezone "UTC+8"
-      }
+          developer {
+            id "taowen"
+            name "Tao Wen"
+            organization ""
+            email "taowen@gmail.com"
+            roles {
+              role 'Community Team'
+            }
+            timezone "UTC+8"
+          }
 
-      developer {
-        id "thobe"
-        name "Tobias Ivarsson"
-        email "tobias@neotechnology.com"
-        url "http://www.neotechnology.com"
-        organization "NeoTechnology"
-        organizationUrl "http://www.neotechnology.com"
-        roles {
-          role "Platform Team"
-        }
-        timezone "CET"
-      }
+          developer {
+            id "thobe"
+            name "Tobias Ivarsson"
+            email "tobias@neotechnology.com"
+            url "http://www.neotechnology.com"
+            organization "NeoTechnology"
+            organizationUrl "http://www.neotechnology.com"
+            roles {
+              role "Platform Team"
+            }
+            timezone "CET"
+          }
 
-      developer {
-        id "boon"
-        name "Lan Boon Ping"
-        email "boonping81@gmail.com"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC+8"
-      }
+          developer {
+            id "boon"
+            name "Lan Boon Ping"
+            email "boonping81@gmail.com"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC+8"
+          }
 
-      developer {
-        id "jan.kronquist@gmail.com"
-        name "Jan Kronquist"
-        email "jan.kronquist@gmail.com"
-        organization "Jayway"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "CET"
-      }
+          developer {
+            id "jan.kronquist@gmail.com"
+            name "Jan Kronquist"
+            email "jan.kronquist@gmail.com"
+            organization "Jayway"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "CET"
+          }
 
-      developer {
-        id "nmwael"
-        name "Nino Saturnino Martinez Vazquez Wael"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "CET"
-      }
+          developer {
+            id "nmwael"
+            name "Nino Saturnino Martinez Vazquez Wael"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "CET"
+          }
 
-      developer {
-        id "peter@neubauer.se"
-        name "Peter Neubauer"
-        email "peter@neubauer.se"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "CET"
-      }
+          developer {
+            id "peter@neubauer.se"
+            name "Peter Neubauer"
+            email "peter@neubauer.se"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "CET"
+          }
 
-      developer {
-        id "rwallace"
-        name "Richard Wallace"
-        email "rwallace@thewallacepack.net"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC-7"
-      }
+          developer {
+            id "rwallace"
+            name "Richard Wallace"
+            email "rwallace@thewallacepack.net"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC-7"
+          }
 
-      developer {
-        id "siannyhalim@gmail.com"
-        name "Sianny Halim"
-        email "siannyhalim@gmail.com"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC+8"
-      }
+          developer {
+            id "siannyhalim@gmail.com"
+            name "Sianny Halim"
+            email "siannyhalim@gmail.com"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC+8"
+          }
 
-      developer {
-        id "paul@nosphere.org"
-        name "Paul Merlin"
-        email "paul@nosphere.org"
-        roles {
-          role 'Core Team'
-        }
-        timezone "CET"
-      }
+          developer {
+            id "paul@nosphere.org"
+            name "Paul Merlin"
+            email "paul@nosphere.org"
+            roles {
+              role 'Core Team'
+            }
+            timezone "CET"
+          }
 
-      developer {
-        id "stas.dev+qi4j@gmail.com"
-        name "Stanislav Muhametsin"
-        email "stas.dev+qi4j@gmail.com"
-        roles {
-          role 'Platform Team'
-        }
-        timezone "UTC+2"
-      }
+          developer {
+            id "stas.dev+qi4j@gmail.com"
+            name "Stanislav Muhametsin"
+            email "stas.dev+qi4j@gmail.com"
+            roles {
+              role 'Platform Team'
+            }
+            timezone "UTC+2"
+          }
 
-      developer {
-        id "tonny"
-        name "Tonny Kohar"
-        roles {
-          role "Community Team"
+          developer {
+            id "tonny"
+            name "Tonny Kohar"
+            roles {
+              role "Community Team"
+            }
+            email "tonny.kohar@gmail.com"
+            timezone "UTC+7"
+          }
         }
-        email "tonny.kohar@gmail.com"
-        timezone "UTC+7"
       }
     }
-  }
+
+  }  
 }


[11/50] zest-java git commit: Build: fix typo

Posted by pa...@apache.org.
Build: fix typo


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/2e2bdbe7
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/2e2bdbe7
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/2e2bdbe7

Branch: refs/heads/master
Commit: 2e2bdbe7f5e4098d24e6a7cd5d7202d241173bd3
Parents: 049fb59
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 21:55:46 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 21:55:46 2015 +0200

----------------------------------------------------------------------
 build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/2e2bdbe7/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index ba4a4f1..9dd16a3 100644
--- a/build.gradle
+++ b/build.gradle
@@ -831,7 +831,7 @@ artifacts {
 }
 
 signing {
-  required { rootProject.version != '0' && !rootProject.contains( 'SNAPSHOT' ) }
+  required { rootProject.version != '0' && !rootProject.version.contains( 'SNAPSHOT' ) }
   sign configurations.archives
 }
 


[36/50] zest-java git commit: ZEST-100 Release howto refinements

Posted by pa...@apache.org.
ZEST-100 Release howto refinements


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/19a9ab2a
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/19a9ab2a
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/19a9ab2a

Branch: refs/heads/master
Commit: 19a9ab2a77e9b2e24a6f3d4cf9a2994c2d2b652e
Parents: 2204d78
Author: Paul Merlin <pa...@apache.org>
Authored: Sat Jul 25 01:12:07 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sat Jul 25 01:12:07 2015 +0200

----------------------------------------------------------------------
 build.gradle                                    |   4 +-
 manual/build.gradle                             |   8 +-
 .../src/docs/tutorials/howto-build-system.txt   |  15 ++
 .../docs/tutorials/howto-releasing-apache.txt   | 218 ++++++++++++-------
 4 files changed, 166 insertions(+), 79 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/19a9ab2a/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 7da47d6..301c25a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -562,11 +562,11 @@ task archiveJavadocs(type: Copy ) {
 
   if( rootProject.version == '0' || rootProject.version.contains( "SNAPSHOT" ) )
   {
-    into( "$rootProject.projectDir/../zest-svn/site/content/java/develop/javadocs/" )
+    into( "$rootProject.projectDir/../zest-web/site/content/java/develop/javadocs/" )
   }
   else
   {
-    into( "$rootProject.projectDir/../zest-svn/site/content/java/$version/javadocs/" )
+    into( "$rootProject.projectDir/../zest-web/site/content/java/$version/javadocs/" )
   }
   from( 'build/docs/javadoc/' )
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/19a9ab2a/manual/build.gradle
----------------------------------------------------------------------
diff --git a/manual/build.gradle b/manual/build.gradle
index 403dd27..c754880 100644
--- a/manual/build.gradle
+++ b/manual/build.gradle
@@ -54,11 +54,11 @@ task archiveWebsite( type: Copy ) {
   dependsOn website
   if( rootProject.version == '0' || rootProject.version.contains( "SNAPSHOT" ) )
   {
-    into( "$rootProject.projectDir/../zest-svn/site/content/java/develop" )
+    into( "$rootProject.projectDir/../zest-web/site/content/java/develop" )
   }
   else
   {
-    into( "$rootProject.projectDir/../zest-svn/site/content/java/$version" )
+    into( "$rootProject.projectDir/../zest-web/site/content/java/$version" )
   }
   from( 'build/docs/website/' )
 }
@@ -67,8 +67,8 @@ task copyWebsite( type: Copy ) {
   dependsOn archiveWebsite
   if( rootProject.version != '0' && !rootProject.version.contains( "SNAPSHOT" ) )
   {
-    from( "$rootProject.projectDir/../zest-svn/site/content/java/$version/" )
-    into( "$rootProject.projectDir/../zest-svn/site/content/java/latest/" )
+    from( "$rootProject.projectDir/../zest-web/site/content/java/$version/" )
+    into( "$rootProject.projectDir/../zest-web/site/content/java/latest/" )
   }
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/19a9ab2a/manual/src/docs/tutorials/howto-build-system.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-build-system.txt b/manual/src/docs/tutorials/howto-build-system.txt
index aa72a98..ab2d3fa 100644
--- a/manual/src/docs/tutorials/howto-build-system.txt
+++ b/manual/src/docs/tutorials/howto-build-system.txt
@@ -171,6 +171,21 @@ They can be run with the following Gradle command:
 Results will then be available in the test reports.
 
 
+== Documentation generation ==
+
+The build generates a documentation minisite:
+
+[source,bash]
+-----------
+./gradlew -p manual website
+-----------
+
+Output is in `~/manual/build/docs/website`.
+
+You'll need Asciidoc and docbook-xsl installed.
+
+
+
 == Build for releases ==
 
 IMPORTANT: Remember that if a +version+ property is not defined, the build system will refuse to make a release and upload.

http://git-wip-us.apache.org/repos/asf/zest-java/blob/19a9ab2a/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index e56d2f4..d8e459b 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -20,19 +20,17 @@
 [[releasing-apache,Releasing Zest]]
 = Releasing Zest™
 
-This tutorial is intended for Apache Zest™ commiters who want to release a new version of Apache Zest™ (Java Edition) at The Apache Software Foundation.
-It describes the tools and processes of a typical release.
-
-It is intended to be a recommendation of best practices for the Apache Zest™ project.
-The instructions provided here are consistent with, but not a replacement for the https://www.apache.org/dev/release.html[ASF Release Guidelines].
-
 [WARNING]
 ====
 You need a unix-like environment to actually perform the release process.
 This tutorial is known to work on Linux and Mac.
 ====
 
-Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
+This tutorial is intended for Apache Zest™ commiters who want to release a new version of Apache Zest™ (Java Edition) at The Apache Software Foundation.
+It describes the tools and processes of a typical release.
+
+It is intended to be a recommendation of best practices for the Apache Zest™ project.
+The instructions provided here are consistent with, but not a replacement for the https://www.apache.org/dev/release.html[ASF Release Guidelines].
 
 
 
@@ -54,9 +52,13 @@ Clone/checkout all needed repositories, next to each other:
 mkdir zest-repos
 cd zest-repos
 git clone https://git-wip-us.apache.org/repos/asf/zest-java.git zest-java
-svn checkout https://svn.apache.org/repos/asf/zest/ zest-svn
-svn checkout https://dist.apache.org/repos/dist/dev/zest/ zest-dist-dev
-svn checkout https://dist.apache.org/repos/dist/release/zest/ zest-dist-release
+svn checkout https://svn.apache.org/repos/asf/zest/ zest-web
+svn checkout --depth empty https://dist.apache.org/repos/dist/ zest-dist
+cd zest-dist
+svn update --set-depth immediates dev
+svn update --set-depth immediates release
+svn update --set-depth infinity dev/zest
+svn update --set-depth infinity release/zest
 ----
 
 You should then get the following directory tree:
@@ -66,15 +68,34 @@ You should then get the following directory tree:
 .
 └── zest-repos
     ├── zest-java           # Apache Zest™ (Java Edition) source
-    ├── zest-svn            # https://zest.apache.org/ website
-    ├── zest-dist-dev       # Releases candidate distributions
-    └── zest-dist-release   # Releases distributions
+    ├── zest-web            # https://zest.apache.org/ website
+    └── zest-dist
+        ├── dev
+        |   └── zest        # Releases candidate distributions
+        └── release
+            └── zest        # Releases distributions
 ----
 
 
+[TIP]
+====
+From now on, all command line snippets start from the `zest-repos` directory.
+====
+
+
 === Build Apache Zest™ (Java Edition)
 
-Ensure you can test, build and sign Zest, including artifact signing, see the <<build-system, Build System>> tutorial.
+Ensure you can test, build Apache Zest™ (Java Edition), including the documentation minisite generation using Asciidoc and artifact signing.
+
+Here is what should pass before going further:
+
+[source,shell]
+----
+cd zest-java
+./gradlew -Dversion="<RELEASE-VERSION>" website signArchives
+----
+
+See the <<build-system, Build System>> tutorial for details.
 
 
 === Install Jekyll
@@ -105,31 +126,28 @@ See the https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work[Git Tools - S
 See the Apache https://www.apache.org/dev/publishing-maven-artifacts.html[Publishing Maven Artifacts] guide and the Apache Zest™ (Java Edition) <<build-system,Build System>> tutorial.
 
 
-=== Update the `KEYS` file if needed.
+=== Update the `KEYS` files if needed.
 
-The reference `KEYS` file can be found at the `zest-java` repository's root.
+The reference `KEYS` file can be found at the `zest-java` repository's root, that is `zest-java/KEYS`.
+Ensure that it contains your public key.
 
-Diff the ones present in the `dev` and `release` distribution areas:
+Next, diff it against the ones present in the `dev` and `release` distribution areas:
 
 [source,shell]
 ----
-diff zest-java/KEYS zest-dist-dev/KEYS
-diff zest-java/KEYS zest-dist-release/KEYS
+diff zest-java/KEYS zest-dist/dev/zest/KEYS
+diff zest-java/KEYS zest-dist/release/zest/KEYS
 ----
 
 And update them if needed:
 
 [source,shell]
 ----
-cp zest-java/KEYS zest-dist-dev/KEYS
-cp zest-java/KEYS zest-dist-release/KEYS
-cd zest-dist-dev
-svn add KEYS
-svn commit -m "zest: updating KEYS in dist/dev/zest"
-cd ..
-cd zest-dist-release
-svn add KEYS
-svn commit -m "zest: updating KEYS in dist/release/zest"
+cp zest-java/KEYS zest-dist/dev/zest/KEYS
+cp zest-java/KEYS zest-dist/release/zest/KEYS
+cd zest-dist/dev/zest
+svn add dev/zest/KEYS release/zest/KEYS
+svn commit -m "zest: updating Zest KEYS"
 ----
 
 
@@ -168,21 +186,21 @@ Convert to Asciidoc:
 
 [source,shell]
 ----
-cat apache-zest-java-<RELEASE-VERSION>-release-notes.txt | \
+cat "apache-zest-java-<RELEASE-VERSION>-release-notes.txt" | \
   sed -e "s/* \[ZEST-\([0-9]\)*\]/- https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1[ZEST-\1]/" | \
-  sed -e "s/^\*\*/===/" > apache-zest-java-<RELEASE-VERSION>-release-notes.adoc
+  sed -e "s/^\*\*/===/" > "apache-zest-java-<RELEASE-VERSION>-release-notes.adoc"
 ----
 
 Convert to Markdown:
 
 [source,shell]
 ----
-cat apache-zest-java-<RELEASE-VERSION>-release-notes.txt | \
+cat "apache-zest-java-<RELEASE-VERSION>-release-notes.txt" | \
   sed -e "s/* \[ZEST-\([0-9]\)*\]/- [ZEST-\1](https:\/\/issues.apache.org\/jira\/browse\/ZEST-\1)/" | \
-  sed -e "s/^\*\*/###/" > apache-zest-java-<RELEASE-VERSION>-release-notes.md
+  sed -e "s/^\*\*/###/" > "apache-zest-java-<RELEASE-VERSION>-release-notes.md"
 ----
 
-You should then have the two following files:
+You should then have the following files:
 
 [source,shell]
 ----
@@ -201,10 +219,11 @@ We use `<RELEASE-VERSION>-RC#` where `RELEASE-VERSION` is the target release ver
 
 [source,shell]
 ----
-git flow release start <RELEASE-VERSION>-RC#
+cd zest-java
+git flow release start "<RELEASE-VERSION>-RC#"
 ----
 
-This will eventually generates a `<RELEASE-VERSION>-RC#` tag that we will rename to `<RELEASE-VERSION>` if the vote passes, see below.
+This will eventually generates a `<RELEASE-VERSION>-RC#` tag that we will amend with a `<RELEASE-VERSION>` signed tag if the vote passes, see below.
 
 
 === Audit artifacts and distributions
@@ -213,8 +232,9 @@ Make a complete build, deploying maven artifacts locally:
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> -PuploadRepository="file://$(pwd)/build/repositories/zest-java" \
-    clean buildAll checkDists uploadArchives
+cd zest-java
+./gradlew -Dversion="<RELEASE-VERSION>" -PuploadRepository="file://$(pwd)/build/repositories/zest-java" \
+    clean assemble checkDists uploadArchives
 ----
 
 Review maven artifacts in `build/repositories/zest-java`.
@@ -251,7 +271,8 @@ Once you are satisfied with the produced artifacts, close the release candidate
 
 [source,shell]
 ----
-git flow release finish <RELEASE-VERSION>-RC#
+cd zest-java
+git flow release finish "<RELEASE-VERSION>-RC#"
 ----
 
 
@@ -261,7 +282,8 @@ To build the release candidate bits, we need to checkout the release candidate t
 
 [source,shell]
 ----
-git checkout <RELEASE-VERSION>-RC#
+cd zest-java
+git checkout "<RELEASE-VERSION>-RC#"
 ----
 
 
@@ -269,7 +291,8 @@ git checkout <RELEASE-VERSION>-RC#
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll checkDists
+cd zest-java
+./gradlew -Dversion="<RELEASE-VERSION>" clean assemble
 ----
 
 
@@ -279,7 +302,8 @@ Stage artifacts to https://repository.apache.org/[repository.apache.org] :
 
 [source,shell]
 ----
-./gradlew -Dversion=<RELEASE-VERSION> uploadArchives
+cd zest-java
+./gradlew -Dversion="<RELEASE-VERSION>" uploadArchives
 ----
 
 Close the staging Nexus repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage[Closing the staged repository] guide.
@@ -287,13 +311,39 @@ Close the staging Nexus repository by following the https://www.apache.org/dev/p
 
 === Upload RC distributions
 
-Upload source and binary distributions, checksums and signatures to https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]:
+Source and binary distributions, checksums and signatures must be uploaded to https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest].
+This build created these in the `buid/distributions` directory, named `apache-zest-java-<RELEASE-VERSION>-[src|bin]*.*`.
+As this release still is a simple candidate, we'll rename them before upload to advertise this in their names.
 
 [source,shell]
 ----
-cp zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src* zest-dist-dev/
-cp zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin* zest-dist-dev/
-cd zest-dist-dev
+# Source ZIP
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.zip" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.zip.MD5" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.MD5"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.zip.SHA-512" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.SHA-512"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.zip.asc" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.asc"
+# Source TAR.GZ
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.tgz" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.tgz.MD5" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.MD5"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.tgz.SHA-512" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.SHA-512"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src.tgz.asc" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.asc"
+# Binary ZIP
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.zip" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.zip.MD5" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.MD5"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.zip.SHA-512" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.SHA-512"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.zip.asc" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.asc"
+# Binary TAR.GZ
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.tgz" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.tgz.MD5" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.MD5"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.tgz.SHA-512" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.SHA-512"
+cp "zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin.tgz.asc" "zest-dist/dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.asc"
+----
+
+And then upload them:
+
+[source,shell]
+----
+cd zest-dist/dev/zest
 svn add * --force
 svn commit -m "zest: upload <RELEASE-VERSION> to dist/dev/zest"
 ----
@@ -359,7 +409,7 @@ Create and sign the release git tag from the unsigned release candidate tag:
 [source,shell]
 ----
 cd zest-java
-git tag -s <RELEASE-VERSION> <RELEASE-VERSION>-RC#
+git tag -s "<RELEASE-VERSION>" "<RELEASE-VERSION>-RC#"
 ----
 
 Push all git changes:
@@ -379,19 +429,39 @@ git push origin --tags
 
 Promote the staged Nexus repository so it gets synched to Maven Central by following the https://www.apache.org/dev/publishing-maven-artifacts.html#promote[Promoting a repo] guide.
 
-Move the release distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest] to https://dist.apache.org/repos/dist/release/zest/[dist.apache.org/repos/dist/release/zest]
+Move the release distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[zest-dist/dev/zest] to https://dist.apache.org/repos/dist/release/zest/[zest-dist/release/zest]:
 
 [source,shell]
 ----
-mv zest-dist-dev/apache-zest-java-<RELEASE-VERSION>-src* zest-dist-release/
-mv zest-dist-dev/apache-zest-java-<RELEASE-VERSION>-bin* zest-dist-release/
-cd zest-dist-dev
-svn add * --force
-svn commit -m "zest: removing <RELEASE-VERSION> from dist/dev/zest as the VOTE passed"
-cd ..
-cd zest-dist-release
-svn add * --force
-svn commit -m "zest: upload <RELEASE-VERSION> to dist/release/zest""
+cd zest-dist
+# Source ZIP
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.zip"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.MD5" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.zip.MD5"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.SHA-512" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.zip.SHA-512"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.zip.asc" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.zip.asc"
+# Source TAR.GZ
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.tgz"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.MD5" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.tgz.MD5"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.SHA-512" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.tgz.SHA-512"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-src.tgz.asc" "release/zest/apache-zest-java-<RELEASE-VERSION>-src.tgz.asc"
+# Binary ZIP
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.zip"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.MD5" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.zip.MD5"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.SHA-512" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.zip.SHA-512"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.zip.asc" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.zip.asc"
+# Binary TAR.GZ
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.tgz"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.MD5" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.tgz.MD5"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.SHA-512" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.tgz.SHA-512"
+svn move "dev/zest/apache-zest-java-<RELEASE-VERSION>-RC#-bin.tgz.asc" "release/zest/apache-zest-java-<RELEASE-VERSION>-bin.tgz.asc"
+----
+
+And upload them:
+
+[source,shell]
+----
+cd zest-dist
+svn commit -m "zest: <RELEASE-VERSION>-RC# vote passed, promoted as <RELEASE-VERSION> release"
 ----
 
 
@@ -408,8 +478,8 @@ Coordinate a press release with press@apache.org.
 
 You can reuse the release-notes content from the `txt`/`adoc`/`md` files created earlier.
 
-This annoucement will be used in a veriety of media like emails, websites etc...
-Start with a text version and once satisfied produce at least a Markdown version for the website, see below.
+This annoucement will be used in a variety of media like emails, websites etc...
+Start with a text version and once satisfied create at least a Markdown version for the website, see below.
 
 
 === Update the Zest™ website
@@ -419,25 +489,25 @@ Generate the documentation and javadoc minisite:
 [source,shell]
 ----
 cd zest-java
-./gradlew -Dversion=<RELEASE-VERSION> archiveJavadocs manuals
+./gradlew -Dversion="<RELEASE-VERSION>" archiveJavadocs manuals
 ----
 
-This will automatically put all files into the `zest-svn` website repository.
+This will automatically put all files into the `zest-web` website repository.
 
 Create a new post on the Zest™ website by creating a new Markdown file:
 
 [source,shell]
 ----
-cd zest-svn
-touch site/src/_posts/YYYY-MM-DD-apache-zest-java-<RELEASE-VERSION>.md
+cd zest-web
+touch "site/src/_posts/YYYY-MM-DD-apache-zest-java-<RELEASE-VERSION>.md"
 open !$
 ----
 
 You can reuse the Markdown formatted announcement content.
 
-Add the new released version in `zest-svn/site/content/java/versions.json` below the `latest` entry:
+Add the new released version in `zest-web/site/content/java/versions.json` below the `latest` entry:
 
-[source,json]
+[source,js]
 ----
 {
     "develop": "develop",
@@ -448,10 +518,10 @@ Add the new released version in `zest-svn/site/content/java/versions.json` below
 }
 ----
 
-Finally, edit `zest-svn/site/src/_data/releases.yml` with the new release data.
+Finally, edit `zest-web/site/src/_data/releases.yml` with the new release data.
 Upmost is the latest:
 
-[source,yaml]
+[source,text]
 ----
 - version: <RELEASE-VERSION>
   announcement: YYYY/MM/DD/apache-zest-java-<RELEASE-VERSION>
@@ -459,19 +529,21 @@ Upmost is the latest:
   pgpId: FB751943
 ----
 
-You can live-preview your changes to the Zest™ website:
+You can run the Zest™ website locally:
 
 [source,shell]
 ----
-cd zest-svn
+cd zest-web
 jekyll serve
 ----
 
+Open http://127.0.0.1:4000/[http://127.0.0.1:4000/] to live-preview your changes.
+
 Once you are satisfied with the changes, build the production website:
 
 [source,shell]
 ----
-cd zest-svn
+cd zest-web
 jekyll build
 ----
 
@@ -526,14 +598,14 @@ git push origin --tags
 
 Drop the Nexus staging repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#drop[Dropping a repo] guide.
 
-Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]
+Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[zest-dist/dev/zest]
 
 [source,shell]
 ----
-cd zest-dist-dev/
-rm "*<RELEASE-VERSION>*.*"
+cd zest-dist/dev/zest/
+rm "*<RELEASE-VERSION>-RC#*.*"
 svn add * --force
-svn commit -m "zest: dropping <RELEASE-VERSION> from dist/dev/zest as the vote failed"
+svn commit -m "zest: dropping <RELEASE-VERSION>-RC# from dist/dev/zest as the vote failed"
 ----
 
 


[07/50] zest-java git commit: Update DOAP file to be on par with https://zest.apache.org/doap.rdf

Posted by pa...@apache.org.
Update DOAP file to be on par with https://zest.apache.org/doap.rdf


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/06d80149
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/06d80149
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/06d80149

Branch: refs/heads/master
Commit: 06d80149bf41c0ac4b441350b4056a9dbd5c55af
Parents: bb14d5b
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 16:52:49 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 16:52:49 2015 +0200

----------------------------------------------------------------------
 doap.rdf | 38 ++++++++++++++++++--------------------
 1 file changed, 18 insertions(+), 20 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/06d80149/doap.rdf
----------------------------------------------------------------------
diff --git a/doap.rdf b/doap.rdf
index 5c24e5f..537a6a0 100644
--- a/doap.rdf
+++ b/doap.rdf
@@ -1,4 +1,5 @@
 <?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl"?>
 <!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
@@ -15,8 +16,6 @@
   See the License for the specific language governing permissions and
   limitations under the License.
 -->
-
-<?xml-stylesheet type="text/xsl"?>
 <rdf:RDF xml:lang="en"
          xmlns="http://usefulinc.com/ns/doap#" 
          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
@@ -34,29 +33,28 @@
     <created>2008-12-17</created>
     <license rdf:resource="http://usefulinc.com/doap/licenses/asl20" />
     <name>Apache Zest</name>
-    <homepage rdf:resource="http://zest.apache.org/" />
-    <asfext:pmc rdf:resource="http://zest.apache.org/" />
-    <shortdesc>Apache Zest is an open source platform for composite oriented programming.</shortdesc>
-    <description>Apache Zest is an open source platform for composite oriented programming. Zest is home for Qi4j,
-    the composite oriented programming platform for Java, and Qi4Net a port to the .NET CLR.
-    Composite oriented programming allows developers to work with 'fragments', smaller than classes, and 'compose'
-    fragments into larger 'composites' which acts like the regular objects. Zest also tackles the enforcement
-    of application composition, i.e. composites are declared in modules, modules are contained in layers and access
-    between layers are controlled/enforced.
-    </description>
-    <bug-database rdf:resource="http://issues.apache.org/jira/browse/ZEST" />
-    <mailing-list rdf:resource="http://zest.apache.org/community/get_help.html" />
-    <download-page rdf:resource="http://zest.apache.org/download.html" />
-
+    <homepage rdf:resource="https://zest.apache.org/" />
+    <asfext:pmc rdf:resource="https://zest.apache.org" />
+    <shortdesc>Apache Zest is a community based effort exploring Composite Oriented Programming for domain centric application development.</shortdesc>
+    <description>Apache Zest is a community based effort exploring Composite Oriented Programming for domain centric application development. This includes evolved concepts from Aspect Oriented Programming, Dependency Injection and Domain Driven Design. Composite Oriented Programming allows developers to work with 'fragments', smaller than classes, and 'compose' fragments into larger 'composites' which acts like the regular objects. Zest also tackles the enforcement of application composition, i.e. composites are declared in modules, modules are contained in layers and access between layers are controlled/enforced. Apache Zest™ (Java Edition), first Apache Zest sub-project, is an implementation of Composite Oriented Programming, using the standard Java platform, without the use of any pre-processors or new language elements. Everything you know from Java still applies and you can leverage both your experience and toolkits to become more productive with Composite Oriented Programmi
 ng today.</description>    
+    <bug-database rdf:resource="https://issues.apache.org/jira/browse/ZEST" />
+    <mailing-list rdf:resource="https://www.apache.org/foundation/mailinglists.html" />
+    <download-page rdf:resource="https://zest.apache.org/download.html" />
     <programming-language>Java</programming-language>
     <programming-language>C#</programming-language>
-    <programming-language>JavaScript</programming-language>
-    <programming-language>Ruby</programming-language>
     <programming-language>Scala</programming-language>
-    <category rdf:resource="http://projects.apache.org/category/osgi" />
+    <programming-language>Groovy</programming-language>
+    <programming-language>JavaScript</programming-language>
+    <category rdf:resource="http://projects.apache.org/category/library" />
+    <repository>
+      <SVNRepository>
+        <location rdf:resource="http://svn.apache.org/repos/asf/zest/"/>
+        <browse rdf:resource="http://svn.apache.org/viewcvs.cgi/zest/"/>
+      </SVNRepository>
+    </repository>
     <repository>
       <GitRepository>
-        <location rdf:resource="https://github.com/apache/zest-qi4j.git"/>
+        <location rdf:resource="https://git-wip-us.apache.org/repos/asf/zest-qi4j.git"/>
         <browse rdf:resource="https://github.com/apache/zest-qi4j"/>
       </GitRepository>
     </repository>


[19/50] zest-java git commit: ZEST-100 Enhanced ‘Prepare Release-Notes’ section

Posted by pa...@apache.org.
ZEST-100 Enhanced ‘Prepare Release-Notes’ section


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/c597e286
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/c597e286
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/c597e286

Branch: refs/heads/master
Commit: c597e286ffc86af0cd58ab3ae52abdd749dca19b
Parents: 8e40571
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 11:32:09 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 11:32:09 2015 +0200

----------------------------------------------------------------------
 manual/src/docs/tutorials/howto-releasing-apache.txt | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/c597e286/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index e587066..bd22cec 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -161,6 +161,7 @@ We will need these in several formats.
 Starting from the plain-text one we will generate the others.
 
 First save the text-plain release-notes in a file named `apache-zest-java-<RELEASE-VERSION>-release-notes.txt`.
+A good place for this file would be in the `zest-repos` directory created earlier, alongside all repositories.
 
 Convert to Asciidoc:
 


[29/50] zest-java git commit: ZEST-25 checkSrcDist task now run ‘check assemble’ inside source dist

Posted by pa...@apache.org.
ZEST-25 checkSrcDist task now run ‘check assemble’ inside source dist


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/ed865c6a
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/ed865c6a
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/ed865c6a

Branch: refs/heads/master
Commit: ed865c6af6711c8a5dcc317ff6deee4021840723
Parents: 57a1858
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 15:55:54 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 15:55:54 2015 +0200

----------------------------------------------------------------------
 README.txt   | 4 ++--
 build.gradle | 7 ++-----
 2 files changed, 4 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/ed865c6a/README.txt
----------------------------------------------------------------------
diff --git a/README.txt b/README.txt
index 8cedbd6..d460a77 100644
--- a/README.txt
+++ b/README.txt
@@ -49,9 +49,9 @@ installation.
 If you want to build the Zest™ manual, then you also need a valid Asciidoc
 (http://www.methods.co.nz/asciidoc/) installation.
 
-Here is how to run a full build:
+Here is how to run a full build with checks:
 
-    ./gradlew buildAll
+    ./gradlew check assemble
 
 Read the Zest™ Build System tutorial for more details:
 https://zest.apache.org/java/latest/build-system.html

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ed865c6a/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index a5fd847..4125350 100644
--- a/build.gradle
+++ b/build.gradle
@@ -870,9 +870,6 @@ task dist( type: Copy, dependsOn: install ) {
 }
 
 // Tasks for source and binary distributions checks
-// - Run the check task of this very build inside the source distribution
-// - Rat the binary distribution (not pulled by checkDists as it takes ages to complete)
-// - Use the dependencies download facility of the binary distribution to "go offline"
 def unpackedSrcDistDir = file( "build/unpacked-distributions/src/apache-zest-java-$version-src" )
 def unpackedBinDistDir = file( "build/unpacked-distributions/bin/apache-zest-java-$version-bin" )
 task unpackSrcDist( type: Copy ) {
@@ -882,10 +879,10 @@ task unpackSrcDist( type: Copy ) {
   into 'build/unpacked-distributions/src'
 }
 task checkSrcDist( type: GradleBuild, dependsOn: unpackSrcDist ) {
-  description = "Check the source distribution by running the 'check' task inside"
+  description = "Check the source distribution by running the 'check' and 'assemble' tasks inside"
   group = "distributions"
   buildFile = "$unpackedSrcDistDir/build.gradle"
-  tasks = [ 'check' ]
+  tasks = [ 'check', 'assemble' ]
 }
 task unpackBinDist( type: Copy, dependsOn: buildAll ) {
   description "Unpack the binary distribution"


[06/50] zest-java git commit: ValueSerialization tests: comment arrayOfValues as it is not supported

Posted by pa...@apache.org.
ValueSerialization tests: comment arrayOfValues as it is not supported

Commented Property<SomeValue[]> usage in
AbstractValueCompositeSerializationTest as arrays are not supported.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/bb14d5b0
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/bb14d5b0
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/bb14d5b0

Branch: refs/heads/master
Commit: bb14d5b07dbc0a3a3a45a11d77d308d2d3129b9f
Parents: eaeba9c
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 16:51:42 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 16:51:42 2015 +0200

----------------------------------------------------------------------
 .../qi4j/test/value/AbstractValueCompositeSerializationTest.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/bb14d5b0/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
index 71135a0..82947e9 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
@@ -171,7 +171,7 @@ public abstract class AbstractValueCompositeSerializationTest
 
         proto.stringValueMap().get().put( "foo", anotherValue1 );
         proto.another().set( anotherValue1 );
-        proto.arrayOfValues().set( new AnotherValue[] { anotherValue1, anotherValue2, anotherValue3 } );
+        // proto.arrayOfValues().set( new AnotherValue[] { anotherValue1, anotherValue2, anotherValue3 } );
         proto.serializable().set( new SerializableObject() );
         proto.foo().set( module.newValue( FooValue.class ) );
         proto.fooValue().set( module.newValue( FooValue.class ) );
@@ -261,7 +261,7 @@ public abstract class AbstractValueCompositeSerializationTest
 
         Property<AnotherValue> another();
 
-        Property<AnotherValue[]> arrayOfValues();
+        // Property<AnotherValue[]> arrayOfValues();
 
         @Optional
         Property<AnotherValue> anotherNull();


[08/50] zest-java git commit: EventSourcing: fix Memory EventStore backward source & stabilize test

Posted by pa...@apache.org.
EventSourcing: fix Memory EventStore backward source & stabilize test


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/9f02f2ca
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/9f02f2ca
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/9f02f2ca

Branch: refs/heads/master
Commit: 9f02f2ca05ff778df7200880dc941dd645576aa3
Parents: 06d8014
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 17:32:15 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 17:32:15 2015 +0200

----------------------------------------------------------------------
 .../MemoryApplicationEventStoreService.java     | 22 +++++++----------
 .../application/ApplicationEventTest.java       | 25 ++++++++++++++------
 2 files changed, 26 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/9f02f2ca/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
index cce6cf4..6fa2bce 100644
--- a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
+++ b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/MemoryApplicationEventStoreService.java
@@ -109,25 +109,19 @@ public interface MemoryApplicationEventStoreService
                             public <ReceiverThrowableType extends Throwable> void sendTo( Receiver<? super TransactionApplicationEvents, ReceiverThrowableType> receiver )
                                 throws ReceiverThrowableType, IOException
                             {
-                                ListIterator<TransactionApplicationEvents> iterator = store.listIterator();
+                                Iterator<TransactionApplicationEvents> iterator = store.descendingIterator();
 
-                                while( iterator.hasNext() )
+                                long count = 0;
+
+                                while( iterator.hasNext() && count < maxTransactions )
                                 {
                                     TransactionApplicationEvents next = iterator.next();
-                                    if( next.timestamp().get() >= beforeTimestamp )
+                                    if( next.timestamp().get() < beforeTimestamp )
                                     {
-                                        break;
+                                        receiver.receive( next );
+                                        count++;
                                     }
                                 }
-
-                                long count = 0;
-
-                                while( iterator.hasPrevious() && count < maxTransactions )
-                                {
-                                    TransactionApplicationEvents next = iterator.previous();
-                                    receiver.receive( next );
-                                    count++;
-                                }
                             }
                         });
                     }
@@ -142,7 +136,7 @@ public interface MemoryApplicationEventStoreService
         @Override
         protected void storeEvents( TransactionApplicationEvents transactionDomain ) throws IOException
         {
-            store.add(transactionDomain);
+            store.add( transactionDomain );
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/9f02f2ca/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java b/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
index f566db8..7ccf0a2 100644
--- a/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
+++ b/libraries/eventsourcing/src/test/java/org/qi4j/library/eventsourcing/application/ApplicationEventTest.java
@@ -92,7 +92,7 @@ public class ApplicationEventTest
 
 
     @Test
-    public void testApplicationEvent() throws UnitOfWorkCompletionException, IOException
+    public void testApplicationEvent() throws Exception
     {
         Users users = module.newTransient( Users.class );
 
@@ -107,20 +107,23 @@ public class ApplicationEventTest
 
         UnitOfWork uow1 = module.newUnitOfWork( UsecaseBuilder.newUsecase( "User signup" ) );
         uow1.setMetaInfo( administratorPrincipal );
-        users.signup( null, "user1", Arrays.asList( "news1", "news2" ) );
+        users.signup( null, "user1", Arrays.asList( "news-a", "news-b" ) );
         uow1.complete();
 
+        Thread.sleep( 1 ); // For UoWs not getting the same `currentTime`
+
         UnitOfWork uow2 = module.newUnitOfWork();
         uow2.setMetaInfo( administratorPrincipal );
         users.signup( null, "user2", Collections.EMPTY_LIST );
         uow2.complete();
 
+        Thread.sleep( 1 ); // For UoWs not getting the same `currentTime`
+
         UnitOfWork uow3 = module.newUnitOfWork();
         uow3.setMetaInfo( administratorPrincipal );
-        users.signup( null, "user3", Collections.singletonList( "news1" ) );
+        users.signup( null, "user3", Collections.singletonList( "news-c" ) );
         uow3.complete();
 
-
         // receive events from uow2 and later forwards
         EventsInbox afterInbox = new EventsInbox();
         eventSource.transactionsAfter( uow2.currentTime() - 1, Integer.MAX_VALUE ).transferTo( afterInbox );
@@ -128,24 +131,32 @@ public class ApplicationEventTest
         assertEquals( 2, afterInbox.getEvents().size() );
 
         ApplicationEvent signupEvent2 = afterInbox.getEvents().get( 0 ).events().get().get( 0 );
+        ApplicationEvent signupEvent3 = afterInbox.getEvents().get( 1 ).events().get().get( 0 );
 
         assertEquals( "signup", signupEvent2.name().get() );
         assertEquals( "user2", ApplicationEventParameters.getParameter( signupEvent2, "param1" ) );
         assertEquals( "[]", ApplicationEventParameters.getParameter( signupEvent2, "param2" ) );
 
+        assertEquals( "signup", signupEvent3.name().get() );
+        assertEquals( "user3", ApplicationEventParameters.getParameter( signupEvent3, "param1" ) );
+        assertEquals( "[\"news-c\"]", ApplicationEventParameters.getParameter( signupEvent3, "param2" ) );
+
         // receive events from uow2 backwards
         EventsInbox beforeInbox = new EventsInbox();
         eventSource.transactionsBefore( uow3.currentTime(), Integer.MAX_VALUE ).transferTo( beforeInbox );
 
         assertEquals( 2, beforeInbox.getEvents().size() );
 
+        signupEvent2 = beforeInbox.getEvents().get( 0 ).events().get().get( 0 );
         ApplicationEvent signupEvent1 = beforeInbox.getEvents().get( 1 ).events().get().get( 0 );
 
+        assertEquals( "signup", signupEvent2.name().get() );
+        assertEquals( "user2", ApplicationEventParameters.getParameter( signupEvent2, "param1" ) );
+        assertEquals( "[]", ApplicationEventParameters.getParameter( signupEvent2, "param2" ) );
+
         assertEquals( "signup", signupEvent1.name().get());
         assertEquals( "user1", ApplicationEventParameters.getParameter( signupEvent1, "param1" ) );
-        assertEquals( "[\"news1\",\"news2\"]", ApplicationEventParameters.getParameter( signupEvent1, "param2" ) );
-
-
+        assertEquals( "[\"news-a\",\"news-b\"]", ApplicationEventParameters.getParameter( signupEvent1, "param2" ) );
     }
 
     static class EventsInbox implements Output<TransactionApplicationEvents, RuntimeException>


[21/50] zest-java git commit: ZEST-100 Fix commands for dev/release dist uploads, they were too greedy

Posted by pa...@apache.org.
ZEST-100 Fix commands for dev/release dist uploads, they were too greedy


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/d3761888
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/d3761888
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/d3761888

Branch: refs/heads/master
Commit: d37618885b5f9d44804356c683e05762a87c13d6
Parents: ba94c73
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 13:53:06 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 13:53:06 2015 +0200

----------------------------------------------------------------------
 manual/src/docs/tutorials/howto-releasing-apache.txt | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/d3761888/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index 009d2ca..04fcdfb 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -32,9 +32,6 @@ You need a unix-like environment to actually perform the release process.
 This tutorial is known to work on Linux and Mac.
 ====
 
-
-// TODOs
-// - review commands for managing dev/release dist uploads, they may be too greedy
 Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
 
 
@@ -294,7 +291,8 @@ Upload source and binary distributions, checksums and signatures to https://dist
 
 [source,shell]
 ----
-cp zest-java/build/distributions/* zest-dist-dev/
+cp zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-src* zest-dist-dev/
+cp zest-java/build/distributions/apache-zest-java-<RELEASE-VERSION>-bin* zest-dist-dev/
 cd zest-dist-dev
 svn add * --force
 svn commit -m "zest: upload <RELEASE-VERSION> to dist/dev/zest"
@@ -385,7 +383,8 @@ Move the release distributions, checksums and signatures from https://dist.apach
 
 [source,shell]
 ----
-mv zest-dist-dev/*<RELEASE-VERSION>*.* zest-dist-release/
+mv zest-dist-dev/apache-zest-java-<RELEASE-VERSION>-src* zest-dist-release/
+mv zest-dist-dev/apache-zest-java-<RELEASE-VERSION>-bin* zest-dist-release/
 cd zest-dist-dev
 svn add * --force
 svn commit -m "zest: removing <RELEASE-VERSION> from dist/dev/zest as the VOTE passed"


[16/50] zest-java git commit: ZEST-25 & ZEST-40 Rename dists form qi4j-sdk-* to apache-zest-java-*

Posted by pa...@apache.org.
ZEST-25 & ZEST-40 Rename dists form qi4j-sdk-* to apache-zest-java-*


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/1e569f97
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/1e569f97
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/1e569f97

Branch: refs/heads/master
Commit: 1e569f972c087fc3e5258b22066af75e298150a0
Parents: df2bf67
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 17:50:31 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 17:50:31 2015 +0200

----------------------------------------------------------------------
 build.gradle | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/1e569f97/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 6918d0a..af861b6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -749,7 +749,7 @@ def srcDistFilteredFilesImage = copySpec {
 }
 
 def srcDistImage = copySpec {
-  into "qi4j-sdk-$version"
+  into "apache-zest-java-$version-src"
   with srcDistFilesImages
   with srcDistFilteredFilesImage
 }
@@ -794,7 +794,7 @@ def binDistNoticesImage = copySpec {
 }
 
 def binDistImage = copySpec {
-  into "qi4j-sdk-$version"
+  into "apache-zest-java-$version-bin"
   with binDistNoticesImage
   with docsImage
   with reportsDistImage
@@ -803,26 +803,26 @@ def binDistImage = copySpec {
 }
 
 task zipSources( type: Zip ) {
-  baseName = 'qi4j-sdk'
+  baseName = 'apache-zest-java'
   with srcDistImage
   classifier = 'src'
 }
 
 task tarSources( type: Tar ) {
-  baseName = 'qi4j-sdk'
+  baseName = 'apache-zest-java'
   with srcDistImage
   compression = Compression.GZIP
   classifier = 'src'
 }
 
 task zipBinaries( type: Zip, dependsOn: buildAll ) {
-  baseName = 'qi4j-sdk'
+  baseName = 'apache-zest-java'
   classifier = 'bin'
   with binDistImage
 }
 
 task tarBinaries( type: Tar, dependsOn: buildAll ) {
-  baseName = 'qi4j-sdk'
+  baseName = 'apache-zest-java'
   classifier = 'bin'
   compression = Compression.GZIP
   with binDistImage
@@ -862,8 +862,8 @@ task dist( type: Copy, dependsOn: install ) {
 // - Run the check task of this very build inside the source distribution
 // - Rat the binary distribution (not pulled by checkDists as it takes ages to complete)
 // - Use the dependencies download facility of the binary distribution to "go offline"
-def unpackedSrcDistDir = file( "build/unpacked-distributions/src/qi4j-sdk-$version" )
-def unpackedBinDistDir = file( "build/unpacked-distributions/bin/qi4j-sdk-$version" )
+def unpackedSrcDistDir = file( "build/unpacked-distributions/src/apache-zest-java-$version-src" )
+def unpackedBinDistDir = file( "build/unpacked-distributions/bin/apache-zest-java-$version-bin" )
 task unpackSrcDist( type: Copy ) {
   description "Unpack the source distribution"
   group = "distributions"


[31/50] zest-java git commit: ZEST-25 Fix wrong folder for javadocs in binary distribution

Posted by pa...@apache.org.
ZEST-25 Fix wrong folder for javadocs in binary distribution

Links in the included website were broken.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/2626287c
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/2626287c
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/2626287c

Branch: refs/heads/master
Commit: 2626287c7d2f3637888bc9f2e45bee39d336d750
Parents: f91e712
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 20:08:12 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 20:08:12 2015 +0200

----------------------------------------------------------------------
 build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/2626287c/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 4125350..eb89fc1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -541,7 +541,7 @@ task javadocs( type: Javadoc ) {
   source apiSources.collect { project ->
     project.sourceSets.main.allJava
   }
-  destinationDir = new File( "" + buildDir + '/docs/javadoc' )
+  destinationDir = project.file( "$project.docsDir/javadocs" )
   // Might need a classpath
   classpath = files( apiSources.collect { project ->
     project.sourceSets.main.compileClasspath


[12/50] zest-java git commit: ZEST-100 Release process documentation draft progress

Posted by pa...@apache.org.
ZEST-100 Release process documentation draft progress


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/83062452
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/83062452
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/83062452

Branch: refs/heads/master
Commit: 83062452fe76449cd210232e2af97753157a6e73
Parents: 2e2bdbe
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 12:18:24 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 12:18:24 2015 +0200

----------------------------------------------------------------------
 .../docs/tutorials/howto-releasing-apache.txt   | 317 +++++++++++++++----
 1 file changed, 256 insertions(+), 61 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/83062452/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index f60dc3a..636a36c 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -29,57 +29,114 @@ The instructions provided here are consistent with, but not a replacement for th
 Before going further you obviously should have read the <<build-system, Build System>> tutorial and already built Zest™ from source, signing included.
 
 
-// Inspirations
-// https://commons.apache.org/releases/prepare.html
-// https://wiki.apache.org/logging/Log4j2ReleaseGuide
-// https://accumulo.apache.org/releasing.html
+
+// TODOs
+// - put the release notes on the website
+// - review commands for managing dev/release dist uploads, they may be too greedy
+
 
 
 == Preparing a release
 
+
 === Select a Release Manager
 
 A Zest committer (normally one of the development team) should post an email to the development list proposing that a release be made and nominating a release manager.
 Typically, the proposer volunteers as the release manager and it passes by https://www.apache.org/foundation/glossary.html#LazyConsensus[lazy consensus].
 
 
-=== Ensure your setup is ready
-
+=== Clone/Checkout all repositories
 
 Clone/checkout all needed repositories, next to each other:
 
-    mkdir zest-repos
-    cd zest-repos
-    git clone .... zest-java
-    svn checkout https://... zest-svn
-    svn checkout https://... zest-dist-dev
-    svn checkout https://... zest-dist-release
+[source,shell]
+----
+mkdir zest-repos
+cd zest-repos
+git clone https://git-wip-us.apache.org/repos/asf/zest-qi4j.git zest-java
+svn checkout https://svn.apache.org/repos/asf/zest/ zest-svn
+svn checkout https://dist.apache.org/repos/dist/dev/zest/ zest-dist-dev
+svn checkout https://dist.apache.org/repos/dist/release/zest/ zest-dist-release
+----
 
 You should then get the following directory tree:
 
-    .
-    └── zest-repos
-        ├── zest-java
-        ├── zest-svn
-        ├── zest-dist-dev       # Release candidate distri
-        └── zest-dist-release
+[source,text]
+----
+.
+└── zest-repos
+    ├── zest-java           # Apache Zest™ (Java Edition) source
+    ├── zest-svn            # https://zest.apache.org/ website
+    ├── zest-dist-dev       # Releases candidate distributions
+    └── zest-dist-release   # Releases distributions
+----
+
+
+=== Build Apache Zest™ (Java Edition)
 
 Ensure you can test, build and sign Zest, including artifact signing, see the <<build-system, Build System>> tutorial.
 
+
+=== Install Jekyll
+
 Moreover, you will need to have a valid http://jekyllrb.com/[Jekyll] installation as the Apache Zest™ https://zest.apache.org/[website] is baked with it.
 
+
+=== Setup git flow
+
+`git-flow` is a git extension that add git commands to easily use the git flow branching model the Apache Zest™ project follows.
+See the https://github.com/nvie/gitflow/wiki/Installation[installation instructions].
+
+
+=== Setup git signing
+
 Ensure you can sign git tags.
 
-    TODO DOCUMENT!
+[source,shell]
+----
+git config --global user.signingkey <YOUR-PGP-ID>
+----
+
+See the https://git-scm.com/book/tr/v2/Git-Tools-Signing-Your-Work[Git Tools - Signing Your Work] section of the Git book.
+
+
+=== Setup Apache Nexus credentials
+
+See the Apache https://www.apache.org/dev/publishing-maven-artifacts.html[Publishing Maven Artifacts] guide and the Apache Zest™ (Java Edition) <<build-system,Build System>> tutorial.
 
 
 === Update the `KEYS` file if needed.
 
-    TODO DOCUMENT!
+The reference `KEYS` file can be found at the `zest-java` repository's root.
+
+Diff the ones present in the `dev` and `release` distribution areas:
+
+[source,shell]
+----
+diff zest-java/KEYS zest-dist-dev/KEYS
+diff zest-java/KEYS zest-dist-release/KEYS
+----
+
+And update them if needed:
+
+[source,shell]
+----
+cp zest-java/KEYS zest-dist-dev/KEYS
+cp zest-java/KEYS zest-dist-release/KEYS
+cd zest-dist-dev
+svn add KEYS
+svn commit -m "zest: updating KEYS in dist/dev/zest"
+cd ..
+cd zest-dist-release
+svn add KEYS
+svn commit -m "zest: updating KEYS in dist/release/zest"
+----
+
 
 
 == Creating a Release Candidate
 
+
 === Resolve JIRA issues
 
 Resolve all issues on that version!
@@ -98,97 +155,194 @@ Apache Zest™ release notes are generated from JIRA issues.
 
 Open the target Zest™ version's release notes in https://issues.apache.org/jira/browse/ZEST/?selectedTab=com.atlassian.jira.jira-projects-plugin:roadmap-panel[JIRA] and review them.
 
-    TODO DO SOMETHING WITH RELEASE NOTES!!!!!
+JIRA can produces release notes as HTML or plain-text.
+We will use plain-text release notes in e-mails and will need to convert the HTML releases notes to Asciidoc for use in the website.
+
+Prepare the two following files:
 
+- `apache-zest-java-<RELEASE-VERSION>-release-notes.txt`
+- `apache-zest-java-<RELEASE-VERSION>-release-notes.adoc`
 
-=== Create a release branch
+We will use them later.
 
-    git flow release start <RELEASE-VERSION>-RC#
 
+=== Create a release candidate branch
 
-=== Make a complete check
+We use `<RELEASE-VERSION>-RC#` where `RELEASE-VERSION` is the target release version and `RC#` for Release Candidate and an incremental number in case the release process has to be done several times.
+
+[source,shell]
+----
+git flow release start <RELEASE-VERSION>-RC#
+----
+
+This will eventually generates a `<RELEASE-VERSION>-RC#` tag that we will rename to `<RELEASE-VERSION>` if the vote passes, see below.
+
+
+=== Build and audit distributions
 
 Make a complete build:
 
-    ./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+[source,shell]
+----
+./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+----
 
 Review the release distributions in `build/distributions`.
 
 If any, make the required changes, commit them and iterate.
 
-=== Close the release branch
 
-    git flow release finish <RELEASE-VERSION>-RC#
+=== Close the release candidate branch
+
+Once you are satisfied with the produced artifacts, close the release candidate branch:
+
+[source,shell]
+----
+git flow release finish <RELEASE-VERSION>-RC#
+----
+
 
 === Checkout the release candidate tag
 
-This is necessary because built artifacts include git metadata.
+To build the release candidate bits, we need to checkout the release candidate tag, that will eventually be promoted as a signed release tag, because the Apache Zest™ build system generates versionning information based on git metadata.
+
+[source,shell]
+----
+git checkout <RELEASE-VERSION>-RC#
+----
 
-    git checkout <RELEASE-VERSION>-RC#
 
 === Build artifacts and distributions
 
-    ./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+[source,shell]
+----
+./gradlew -Dversion=<RELEASE-VERSION> clean check buildAll
+----
+
 
 === Stage maven artifacts
 
 Stage artifacts to https://repository.apache.org/[repository.apache.org] :
 
-    ./gradlew -Dversion=<RELEASE-VERSION> release
-
-Close the staging Nexus repository:
+[source,shell]
+----
+./gradlew -Dversion=<RELEASE-VERSION> release
+----
 
-    TODO DOCUMENT!
+Close the staging Nexus repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#close-stage[Closing the staged repository] guide.
 
 
 === Upload distributions
 
 Upload source and binary distributions, checksums and signatures to https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]:
 
-    TODO DOCUMENT!
+[source,shell]
+----
+cp zest-java/build/distributions/* zest-dist-dev/
+cd zest-dist-dev
+svn add --force
+svn commit -m "zest: upload <RELEASE-VERSION> to dist/dev/zest"
+----
+
+Go grab some coffee/tea/beer, this will take some time.
 
 
 == Run the vote
 
 Send a "VOTE" to the mailto:dev@zest.apache.org[developer mailing list] including links to release artifacts. A VOTE always contains two parts. Send an email to the developer mailing list with the subject line:
 
-    [VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+[source,text]
+----
+[VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+----
+
+Here is a sample template:
+
+[source,text]
+----
+Dear community,
+
+I am happy to start the VOTE thread for Apache Zest (Java Edition) <RELEASE-VERSION>!
+
+The changelog for this release can be found here: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12316820&version=12332997
+
+Tag: https://git-wip-us.apache.org/repos/asf?p=zest-qi4j.git;a=tag;h=cc0f8211bf47b2df72a6239c9fdcd1d6906ea246
+
+The artifacts to be voted on are located here: https://dist.apache.org/repos/dist/dev/zest/
+
+Release artifacts are signed with the following key: https://dist.apache.org/repos/dist/dev/zest/KEYS
+
+Please vote on releasing this package as Apache Zest (Java Edition) <RELEASE-VERSION>.
+
+The vote is open for the next 72 hours and passes if a majority of at least three +1 PMC votes are cast and there must be more positive than negative votes.
+
+[ ] +1 Release Apache Zest (Java Edition) <RELEASE-VERSION>
+[ ]  0 I don't have a strong opinion about this, but I assume it's ok
+[ ] -1 Do not release Apache Zest (Java Edition) <RELEASE-VERSION> because...
+
+Here is my vote:
+
++1 (binding)
+
+Cheers
+----
 
 After the vote is over, send a "RESULT" email to the list with the subject line:
 
-    [RESULT][VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+[source,text]
+----
+[RESULT][VOTE] Release Zest (Java Edition) version <RELEASE-VERSION>
+----
 
 Votes on whether a package is ready to be released use majority approval -- i.e., at least three PMC members must vote affirmatively for release, and there must be more positive than negative votes.
 
 
+
 == VOTE passes
 
 === Seal the release
 
-Rename and sign the git tag
+Create and sign the release git tag from the unsigned release candidate tag:
 
-    TODO DOCUMENT!
+[source,shell]
+----
+cd zest-java
+git tag -s <RELEASE-VERSION> <RELEASE-VERSION>-RC#
+----
 
 Push all git changes:
 
-    cd zest-java
-    git checkout master
-    git push origin master
-    git checkout develop
-    git push origin master
-    git push --tags
+[source,shell]
+----
+cd zest-java
+git checkout master
+git push origin master
+git checkout develop
+git push origin master
+git push origin --tags
+----
 
 
 === Publish
 
-Publish the Nexus repository.
-
-    TODO DOCUMENT!
+Promote the staged Nexus repository so it gets synched to Maven Central by following the https://www.apache.org/dev/publishing-maven-artifacts.html#promote[Promoting a repo] guide.
 
 Move the release distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest] to https://dist.apache.org/repos/dist/release/zest/[dist.apache.org/repos/dist/release/zest]
 
-    TODO DOCUMENT!
-    
+[source,shell]
+----
+mv zest-dist-dev/*<RELEASE-VERSION>*.* zest-dist-release/
+cd zest-dist-dev
+svn add --force
+svn commit -m "zest: removing <RELEASE-VERSION> from dist/dev/zest as the VOTE passed"
+cd ..
+cd zest-dist-release
+svn add --force
+svn commit -m "zest: upload <RELEASE-VERSION> to dist/release/zest""
+----
+
+Once again, go grab some coffee/tea/beer, this will take some time.
+
 
 === Wait 24 hours
 
@@ -202,34 +356,75 @@ Upmost is the latest.
 
 Then rebuild the website:
 
-    cd zest-svn
-    jekyll build
+[source,shell]
+----
+cd zest-svn
+jekyll build
+----
 
 And publish it:
 
-    svn add --force
-    svn commit -m "zest: update website"
+[source,shell]
+----
+svn add --force
+svn commit -m "zest: update website"
+----
+
 
 === Register the release
 
-Finally, register the new release at https://reporter.apache.org/[reporter.apache.org]
+Register the new release at https://reporter.apache.org/[reporter.apache.org]
 
 
 === Announce
 
-Send an announcement to mailto:dev@zest.apache.org[dev@] and mailto:users@zest.apache.org[users@] mailing lists. Email announcements should have the subject line:
+Finally, send an announcement to mailto:dev@zest.apache.org[dev@] and mailto:users@zest.apache.org[users@] mailing lists. Email announcements should have the subject line:
+
+[source,text]
+----
+[ANNOUNCE] Released Zest (Java Edition) version <RELEASE-VERSION>
+----
+
+The announcement email should contains the release notes as text, remember you prepared a `apache-zest-java-<RELEASE-VERSION>-release-notes.txt` file with them.
 
-    [ANNOUNCE] Released Zest (Java Edition) version <RELEASE-VERSION>
 
 
 == VOTE fails
 
-Drop the Nexus staging repository.
 
-    TODO DOCUMENT!
+=== Drop artifacts and distributions
+
+Drop the Nexus staging repository by following the https://www.apache.org/dev/publishing-maven-artifacts.html#drop[Dropping a repo] guide.
 
 Drop distributions, checksums and signatures from https://dist.apache.org/repos/dist/dev/zest/[dist.apache.org/repos/dist/dev/zest]
 
-    TODO DOCUMENT!
+[source,shell]
+----
+cd zest-dist-dev/
+rm "*<RELEASE-VERSION>*.*"
+svn add --force
+svn commit -m "zest: dropping <RELEASE-VERSION> from dist/dev/zest as the vote failed"
+----
+
+
+=== Push git changes
+
+We keep the release candidate git history.
+It can be useful for reviewers to have access to it.
+Remember, we created a release candidate branch and tags, no signed release tag.
+
+[source,shell]
+----
+cd zest-java
+git checkout master
+git push origin master
+git checkout develop
+git push origin master
+git push origin --tags
+----
+
+
+=== Start over
+
+If a new RC is to be created, restart the process as described above.
 
-Drop your local `zest-java` clone and start over.


[18/50] zest-java git commit: ZEST-100 Better ‘Update the Zest website’ section

Posted by pa...@apache.org.
ZEST-100 Better ‘Update the Zest website’ section


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/8e405717
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/8e405717
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/8e405717

Branch: refs/heads/master
Commit: 8e405717ef3ef8d2e3d09fc0389448d36b298329
Parents: 6e05a6f
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 11:30:39 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 11:30:39 2015 +0200

----------------------------------------------------------------------
 .../docs/tutorials/howto-releasing-apache.txt   | 22 +++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/8e405717/manual/src/docs/tutorials/howto-releasing-apache.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-releasing-apache.txt b/manual/src/docs/tutorials/howto-releasing-apache.txt
index b7747a3..e587066 100644
--- a/manual/src/docs/tutorials/howto-releasing-apache.txt
+++ b/manual/src/docs/tutorials/howto-releasing-apache.txt
@@ -431,9 +431,29 @@ open !$
 
 You can reuse the Markdown formatted announcement content.
 
+Add the new released version in `zest-svn/site/content/java/versions.json` below the `latest` entry:
+
+[source,json]
+----
+{
+    "develop": "develop",
+    "latest": "latest",
+    "<RELEASE-VERSION>", "<RELEASE-VERSION>",
+    "2.0": "2.0",
+    "<=1.4.x": "1.4"
+}
+----
 
 Finally, edit `zest-svn/site/src/_data/releases.yml` with the new release data.
-Upmost is the latest.
+Upmost is the latest:
+
+[source,yaml]
+----
+- version: <RELEASE-VERSION>
+  announcement: YYYY/MM/DD/apache-zest-java-<RELEASE-VERSION>
+  signer: John Doe
+  pgpId: FB751943
+----
 
 You can live-preview your changes to the Zest™ website:
 


[05/50] zest-java git commit: ValueSerialization tests: better DateTime construction for equality test

Posted by pa...@apache.org.
ValueSerialization tests: better DateTime construction for equality test


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/eaeba9ca
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/eaeba9ca
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/eaeba9ca

Branch: refs/heads/master
Commit: eaeba9cac092c059b91afa93ab5989aa44a6bdc6
Parents: 3e3e89d
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 16:48:14 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 16:48:14 2015 +0200

----------------------------------------------------------------------
 .../qi4j/test/value/AbstractPlainValueSerializationTest.java    | 2 ++
 .../test/value/AbstractValueCompositeSerializationTest.java     | 5 ++++-
 2 files changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/eaeba9ca/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
index a99b1f2..218cca6 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractPlainValueSerializationTest.java
@@ -190,6 +190,8 @@ public abstract class AbstractPlainValueSerializationTest
     @Test
     public void givenDateTimeValueWhenSerializingAndDeserializingExpectEquals()
     {
+        // We specify the TimeZone explicitely here so that serialized/deserialized is equals
+        // See https://github.com/JodaOrg/joda-time/issues/106
         String serialized = valueSerialization.serialize( new DateTime( "2020-03-04T13:24:35", forOffsetHours( 1 ) ) );
         assertThat( serialized, equalTo( "2020-03-04T13:24:35.000+01:00" ) );
         DateTime deserialized = valueSerialization.deserialize( DateTime.class, serialized );

http://git-wip-us.apache.org/repos/asf/zest-java/blob/eaeba9ca/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
index 4bece76..71135a0 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
@@ -24,6 +24,7 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import org.joda.time.DateTime;
+import org.joda.time.DateTimeZone;
 import org.joda.time.LocalDate;
 import org.joda.time.LocalDateTime;
 import org.junit.Before;
@@ -152,7 +153,9 @@ public abstract class AbstractValueCompositeSerializationTest
         proto.string2().set( "/Foo/bar" );
         proto.number().set( 42L );
         proto.date().set( new Date() );
-        proto.dateTime().set( new DateTime() );
+        // We specify the TimeZone explicitely here so that serialized/deserialized is equals
+        // See https://github.com/JodaOrg/joda-time/issues/106
+        proto.dateTime().set( new DateTime( "2020-03-04T13:24:35", DateTimeZone.forOffsetHours( 1 ) ) );
         proto.localDate().set( new LocalDate() );
         proto.localDateTime().set( new LocalDateTime() );
         proto.entityReference().set( EntityReference.parseEntityReference( "12345" ) );


[44/50] zest-java git commit: ZEST-107 Moved issue test to core/testsupport/AbstractEntityStoreTest

Posted by pa...@apache.org.
ZEST-107 Moved issue test to core/testsupport/AbstractEntityStoreTest


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/12622af2
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/12622af2
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/12622af2

Branch: refs/heads/master
Commit: 12622af224963294fea405cff9cf96b200fb12e4
Parents: 14cbf30
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 16:27:03 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:02 2015 +0200

----------------------------------------------------------------------
 .../test/entity/AbstractEntityStoreTest.java    |  27 ++++
 .../qi4j/cache/ehcache/JSONEntityStoreTest.java | 134 -------------------
 2 files changed, 27 insertions(+), 134 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/12622af2/core/testsupport/src/main/java/org/qi4j/test/entity/AbstractEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/entity/AbstractEntityStoreTest.java b/core/testsupport/src/main/java/org/qi4j/test/entity/AbstractEntityStoreTest.java
index 4549826..f78f932 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/entity/AbstractEntityStoreTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/entity/AbstractEntityStoreTest.java
@@ -53,6 +53,7 @@ import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
 import org.qi4j.test.AbstractQi4jTest;
 
 import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.CoreMatchers.not;
 import static org.joda.time.DateTimeZone.UTC;
 import static org.junit.Assert.assertThat;
@@ -455,6 +456,32 @@ public abstract class AbstractEntityStoreTest
         }
     }
 
+    @Test
+    public void givenEntityStoredLoadedChangedWhenUnitOfWorkDiscardsThenDontStoreState()
+        throws UnitOfWorkCompletionException
+    {
+        UnitOfWork unitOfWork = module.newUnitOfWork();
+        try
+        {
+            String identity = createEntity( unitOfWork ).identity().get();
+            unitOfWork.complete();
+
+            unitOfWork = module.newUnitOfWork();
+            TestEntity entity = unitOfWork.get( TestEntity.class, identity );
+            assertThat( entity.intValue().get(), is( 42 ) );
+            entity.intValue().set( 23 );
+            unitOfWork.discard();
+
+            unitOfWork = module.newUnitOfWork();
+            entity = unitOfWork.get( TestEntity.class, identity );
+            assertThat( entity.intValue().get(), is( 42 ) );
+        }
+        finally
+        {
+            unitOfWork.discard();
+        }
+    }
+
     public interface TestEntity
         extends EntityComposite
     {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/12622af2/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java b/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
deleted file mode 100644
index 14250ce..0000000
--- a/extensions/cache-ehcache/src/test/java/org/qi4j/cache/ehcache/JSONEntityStoreTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-package org.qi4j.cache.ehcache;
-
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.qi4j.api.common.Visibility;
-import org.qi4j.api.entity.EntityBuilder;
-import org.qi4j.api.entity.EntityComposite;
-import org.qi4j.api.property.Property;
-import org.qi4j.api.unitofwork.UnitOfWork;
-import org.qi4j.api.value.ValueSerialization;
-import org.qi4j.bootstrap.AssemblyException;
-import org.qi4j.bootstrap.ModuleAssembly;
-import org.qi4j.bootstrap.SingletonAssembler;
-import org.qi4j.entitystore.memory.MemoryEntityStoreService;
-import org.qi4j.spi.uuid.UuidIdentityGeneratorService;
-import org.qi4j.test.EntityTestAssembler;
-import org.qi4j.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-import java.math.BigDecimal;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- *
- */
-public class JSONEntityStoreTest
-{
-
-    private static SingletonAssembler assembler;
-
-    @BeforeClass
-    public static void setup()
-            throws Exception
-    {
-        assembler = new SingletonAssembler()
-        {
-            public void assemble( ModuleAssembly module )
-                    throws AssemblyException
-            {
-                module.entities(
-                        Account.class
-                );
-
-                ModuleAssembly cacheCfgModule = module.layer().application().layer("configLayer").module( "configModule" );
-
-                cacheCfgModule.services( MemoryEntityStoreService.class )
-                        .instantiateOnStartup()
-                        .visibleIn(Visibility.module);
-
-                cacheCfgModule.services( UuidIdentityGeneratorService.class ).visibleIn( Visibility.module );
-                cacheCfgModule.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-                cacheCfgModule.entities( EhCacheConfiguration.class).visibleIn(Visibility.application);
-
-                module.layer().uses( cacheCfgModule.layer() );
-
-                module.services( EhCachePoolService.class)
-                        .visibleIn(Visibility.module)
-                        .identifiedBy("ehcache");
-
-
-                new EntityTestAssembler()
-                        .visibleIn( Visibility.module)
-                        .assemble( module);
-
-            }
-        };
-
-    }
-
-    @Test
-    public void cached_NEW_State()
-            throws Exception
-    {
-
-        UnitOfWork uow1 = assembler.module().newUnitOfWork();
-        EntityBuilder<Account> b = uow1.newEntityBuilder(Account.class);
-
-        b.instance().name().set("account1");
-        b.instance().balance().set( BigDecimal.ZERO );
-
-        String accountId = b.newInstance().identity().get();
-
-        uow1.complete();
-
-        UnitOfWork uow2 = assembler.module().newUnitOfWork();
-        Account account2 = uow2.get(Account.class, accountId);
-        account2.balance().set( BigDecimal.ONE);
-        uow2.complete();
-
-    }
-
-    @Test
-    public void globalStateClone()
-            throws Exception
-    {
-
-        UnitOfWork uow1 = assembler.module().newUnitOfWork();
-        EntityBuilder<Account> b = uow1.newEntityBuilder(Account.class);
-
-        b.instance().name().set("account1");
-        b.instance().balance().set( BigDecimal.ZERO );
-
-        String accountId = b.newInstance().identity().get();
-
-        uow1.complete();
-
-        UnitOfWork uow2 = assembler.module().newUnitOfWork();
-        Account account2 = uow2.get( Account.class, accountId);
-        account2.balance().set( BigDecimal.ONE);
-        uow2.complete();
-
-        UnitOfWork uow3 = assembler.module().newUnitOfWork();
-        Account account3 = uow3.get( Account.class, accountId);
-        account3.balance().set( BigDecimal.TEN);
-        uow3.discard();
-
-        UnitOfWork uow4 = assembler.module().newUnitOfWork();
-        Account account4 = uow4.get( Account.class, accountId);
-
-        assertEquals( BigDecimal.ONE, account4.balance().get());
-
-        uow4.discard();
-    }
-
-        public interface Account
-            extends EntityComposite
-    {
-
-        Property<String> name();
-
-        Property<BigDecimal> balance();
-    }
-
-}


[04/50] zest-java git commit: ZEST-69 Fix and assert NamedAssociation equals/hashcode & serialization

Posted by pa...@apache.org.
ZEST-69 Fix and assert NamedAssociation equals/hashcode & serialization


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/3e3e89d8
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/3e3e89d8
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/3e3e89d8

Branch: refs/heads/master
Commit: 3e3e89d824772095925cbc89a1868abbdadb2bd6
Parents: 7b827e6
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 14:31:27 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 16:44:46 2015 +0200

----------------------------------------------------------------------
 .../runtime/entity/EntityStateInstance.java     |  2 +-
 .../value/NamedAssociationValueState.java       | 21 ------
 .../org/qi4j/runtime/value/ValueInstance.java   | 12 ++++
 .../qi4j/runtime/value/ValueStateInstance.java  |  5 +-
 .../org/qi4j/runtime/value/ValueStateModel.java |  2 +-
 .../association/AssociationEqualityTest.java    | 75 ++++++++++++++++++--
 .../qi4j/spi/value/ValueSerializerAdapter.java  |  2 +-
 ...AbstractValueCompositeSerializationTest.java | 14 +++-
 .../stax/StaxValueDeserializer.java             | 16 +++--
 9 files changed, 110 insertions(+), 39 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/main/java/org/qi4j/runtime/entity/EntityStateInstance.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/entity/EntityStateInstance.java b/core/runtime/src/main/java/org/qi4j/runtime/entity/EntityStateInstance.java
index d44a3f9..505509b 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/entity/EntityStateInstance.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/entity/EntityStateInstance.java
@@ -248,7 +248,7 @@ public final class EntityStateInstance
             constraints.checkConstraints( association.get() );
         }
 
-        // TODO Should ManyAssociations be checked too?
+        // TODO Should ManyAssociations and NamedAssociations be checked too?
     }
 
     private Map<AccessibleObject, Object> state()

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/main/java/org/qi4j/runtime/value/NamedAssociationValueState.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/value/NamedAssociationValueState.java b/core/runtime/src/main/java/org/qi4j/runtime/value/NamedAssociationValueState.java
index 694be18..4f3030d 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/value/NamedAssociationValueState.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/value/NamedAssociationValueState.java
@@ -81,25 +81,4 @@ public class NamedAssociationValueState
     {
         return references.keySet().iterator();
     }
-
-    @Override
-    public boolean equals( Object o )
-    {
-        if( this == o )
-        {
-            return true;
-        }
-        if( o == null || getClass() != o.getClass() )
-        {
-            return false;
-        }
-        NamedAssociationValueState strings = (NamedAssociationValueState) o;
-        return references.equals( strings.references );
-    }
-
-    @Override
-    public int hashCode()
-    {
-        return references.hashCode();
-    }
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/main/java/org/qi4j/runtime/value/ValueInstance.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueInstance.java b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueInstance.java
index fc7c95e..3b11c04 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueInstance.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueInstance.java
@@ -21,6 +21,7 @@ import org.qi4j.api.composite.CompositeInstance;
 import org.qi4j.api.value.ValueComposite;
 import org.qi4j.runtime.association.AssociationModel;
 import org.qi4j.runtime.association.ManyAssociationModel;
+import org.qi4j.runtime.association.NamedAssociationModel;
 import org.qi4j.runtime.composite.MixinsInstance;
 import org.qi4j.runtime.composite.TransientInstance;
 import org.qi4j.runtime.property.PropertyInstance;
@@ -124,6 +125,12 @@ public final class ValueInstance
             state().manyAssociationFor( associationDescriptor.accessor() )
                 .setAssociationInfo( associationDescriptor.getBuilderInfo() );
         }
+
+        for( NamedAssociationModel associationDescriptor : descriptor().state().namedAssociations() )
+        {
+            state().namedAssociationFor( associationDescriptor.accessor() )
+                .setAssociationInfo( associationDescriptor.getBuilderInfo() );
+        }
     }
 
     /**
@@ -148,6 +155,11 @@ public final class ValueInstance
         {
             state().manyAssociationFor( associationDescriptor.accessor() ).setAssociationInfo( associationDescriptor );
         }
+
+        for( NamedAssociationModel associationDescriptor : descriptor().state().namedAssociations() )
+        {
+            state().namedAssociationFor( associationDescriptor.accessor() ).setAssociationInfo( associationDescriptor );
+        }
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateInstance.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateInstance.java b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateInstance.java
index 3d41470..c66734f 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateInstance.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateInstance.java
@@ -25,7 +25,6 @@ import java.util.List;
 import java.util.Map;
 import org.qi4j.api.association.AssociationDescriptor;
 import org.qi4j.api.association.AssociationStateHolder;
-import org.qi4j.api.association.NamedAssociation;
 import org.qi4j.api.entity.EntityReference;
 import org.qi4j.api.property.PropertyDescriptor;
 import org.qi4j.runtime.association.AssociationInfo;
@@ -181,7 +180,7 @@ public final class ValueStateInstance
 
     @Override
     @SuppressWarnings( "unchecked" )
-    public <T> NamedAssociation<T> namedAssociationFor( AccessibleObject accessor )
+    public <T> NamedAssociationInstance<T> namedAssociationFor( AccessibleObject accessor )
     {
         NamedAssociationInstance<T> namedAssociation = (NamedAssociationInstance<T>) namedAssociations.get( accessor );
 
@@ -194,7 +193,7 @@ public final class ValueStateInstance
     }
 
     @Override
-    public Iterable<? extends NamedAssociation<?>> allNamedAssociations()
+    public Iterable<? extends NamedAssociationInstance<?>> allNamedAssociations()
     {
         return namedAssociations.values();
     }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateModel.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateModel.java b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateModel.java
index d3f8060..76e4bb8 100644
--- a/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateModel.java
+++ b/core/runtime/src/main/java/org/qi4j/runtime/value/ValueStateModel.java
@@ -105,7 +105,7 @@ public final class ValueStateModel
     }
 
     @Override
-    public Iterable<? extends AssociationDescriptor> namedAssociations()
+    public Iterable<NamedAssociationModel> namedAssociations()
     {
         return namedAssociationsModel.namedAssociations();
     }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/runtime/src/test/java/org/qi4j/runtime/association/AssociationEqualityTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/qi4j/runtime/association/AssociationEqualityTest.java b/core/runtime/src/test/java/org/qi4j/runtime/association/AssociationEqualityTest.java
index 1c3852e..7aabc8c 100644
--- a/core/runtime/src/test/java/org/qi4j/runtime/association/AssociationEqualityTest.java
+++ b/core/runtime/src/test/java/org/qi4j/runtime/association/AssociationEqualityTest.java
@@ -20,6 +20,7 @@ import org.junit.Test;
 import org.qi4j.api.association.Association;
 import org.qi4j.api.association.AssociationDescriptor;
 import org.qi4j.api.association.ManyAssociation;
+import org.qi4j.api.association.NamedAssociation;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.unitofwork.UnitOfWork;
 import org.qi4j.api.value.ValueBuilder;
@@ -33,7 +34,7 @@ import static org.hamcrest.CoreMatchers.not;
 import static org.junit.Assert.assertThat;
 
 /**
- * Assert that Association and ManyAssociation equals/hashcode methods combine AssociationDescriptor and State.
+ * Assert that Association, ManyAssociation and NamedAssociation equals/hashcode methods combine AssociationDescriptor and State.
  */
 public class AssociationEqualityTest
     extends AbstractQi4jTest
@@ -62,6 +63,8 @@ public class AssociationEqualityTest
         Association<AnEntity> anEntity();
 
         ManyAssociation<AnEntity> manyEntities();
+
+        NamedAssociation<AnEntity> namedEntities();
     }
 
     public interface OtherWithAssociations
@@ -71,6 +74,8 @@ public class AssociationEqualityTest
         Association<AnEntity> anEntity();
 
         ManyAssociation<AnEntity> manyEntities();
+
+        NamedAssociation<AnEntity> namedEntities();
     }
 
     //
@@ -87,10 +92,12 @@ public class AssociationEqualityTest
             SomeWithAssociations some = buildSomeWithAssociation( anEntity );
             AssociationDescriptor someAssocDesc = qi4j.api().associationDescriptorFor( some.anEntity() );
             AssociationDescriptor someManyAssocDesc = qi4j.api().associationDescriptorFor( some.manyEntities() );
+            AssociationDescriptor someNamedAssocDesc = qi4j.api().associationDescriptorFor( some.namedEntities() );
 
             SomeWithAssociations some2 = buildSomeWithAssociation( anEntity );
             AssociationDescriptor some2AssocDesc = qi4j.api().associationDescriptorFor( some2.anEntity() );
             AssociationDescriptor some2ManyAssocDesc = qi4j.api().associationDescriptorFor( some2.manyEntities() );
+            AssociationDescriptor some2NamedAssocDesc = qi4j.api().associationDescriptorFor( some2.namedEntities() );
 
             assertThat( "AssociationDescriptor equal",
                         someAssocDesc,
@@ -104,6 +111,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociationDescriptor hashcode equal",
                         someManyAssocDesc.hashCode(),
                         equalTo( some2ManyAssocDesc.hashCode() ) );
+            assertThat( "NamedAssociationDescriptor equal",
+                        someNamedAssocDesc,
+                        equalTo( some2NamedAssocDesc ) );
+            assertThat( "NamedAssociationDescriptor hashcode equal",
+                        someNamedAssocDesc.hashCode(),
+                        equalTo( some2NamedAssocDesc.hashCode() ) );
         }
         finally
         {
@@ -120,10 +133,12 @@ public class AssociationEqualityTest
             SomeWithAssociations some = buildSomeWithAssociation( uow.newEntity( AnEntity.class ) );
             AssociationDescriptor someAssocDesc = qi4j.api().associationDescriptorFor( some.anEntity() );
             AssociationDescriptor someManyAssocDesc = qi4j.api().associationDescriptorFor( some.manyEntities() );
+            AssociationDescriptor someNamedAssocDesc = qi4j.api().associationDescriptorFor( some.namedEntities() );
 
             SomeWithAssociations some2 = buildSomeWithAssociation( uow.newEntity( AnEntity.class ) );
             AssociationDescriptor some2AssocDesc = qi4j.api().associationDescriptorFor( some2.anEntity() );
             AssociationDescriptor some2ManyAssocDesc = qi4j.api().associationDescriptorFor( some2.manyEntities() );
+            AssociationDescriptor some2NamedAssocDesc = qi4j.api().associationDescriptorFor( some2.namedEntities() );
 
             assertThat( "AssociationDescriptor equal",
                         someAssocDesc,
@@ -137,6 +152,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociationDescriptor hashcode equal",
                         someManyAssocDesc.hashCode(),
                         equalTo( some2ManyAssocDesc.hashCode() ) );
+            assertThat( "NamedAssociationDescriptor equal",
+                        someNamedAssocDesc,
+                        equalTo( some2NamedAssocDesc ) );
+            assertThat( "NamedAssociationDescriptor hashcode equal",
+                        someNamedAssocDesc.hashCode(),
+                        equalTo( some2NamedAssocDesc.hashCode() ) );
         }
         finally
         {
@@ -155,10 +176,12 @@ public class AssociationEqualityTest
             SomeWithAssociations some = buildSomeWithAssociation( anEntity );
             AssociationDescriptor someAssocDesc = qi4j.api().associationDescriptorFor( some.anEntity() );
             AssociationDescriptor someManyAssocDesc = qi4j.api().associationDescriptorFor( some.manyEntities() );
+            AssociationDescriptor someNamedAssocDesc = qi4j.api().associationDescriptorFor( some.namedEntities() );
 
             OtherWithAssociations other = buildOtherWithAssociation( anEntity );
             AssociationDescriptor otherAssocDesc = qi4j.api().associationDescriptorFor( other.anEntity() );
-            AssociationDescriptor some2ManyAssocDesc = qi4j.api().associationDescriptorFor( other.manyEntities() );
+            AssociationDescriptor otherManyAssocDesc = qi4j.api().associationDescriptorFor( other.manyEntities() );
+            AssociationDescriptor otherNamedAssocDesc = qi4j.api().associationDescriptorFor( other.namedEntities() );
 
             assertThat( "AssociationDescriptor not equal",
                         someAssocDesc,
@@ -168,10 +191,16 @@ public class AssociationEqualityTest
                         not( equalTo( otherAssocDesc.hashCode() ) ) );
             assertThat( "ManyAssociationDescriptor not equal",
                         someManyAssocDesc,
-                        not( equalTo( some2ManyAssocDesc ) ) );
+                        not( equalTo( otherManyAssocDesc ) ) );
             assertThat( "ManyAssociationDescriptor hashcode not equal",
                         someManyAssocDesc.hashCode(),
-                        not( equalTo( some2ManyAssocDesc.hashCode() ) ) );
+                        not( equalTo( otherManyAssocDesc.hashCode() ) ) );
+            assertThat( "NamedAssociationDescriptor not equal",
+                        someNamedAssocDesc,
+                        not( equalTo( otherNamedAssocDesc ) ) );
+            assertThat( "NamedAssociationDescriptor hashcode not equal",
+                        someNamedAssocDesc.hashCode(),
+                        not( equalTo( otherNamedAssocDesc.hashCode() ) ) );
         }
         finally
         {
@@ -203,6 +232,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation State hashcode not equal",
                         some.manyEntities().toList().hashCode(),
                         not( equalTo( some2.manyEntities().toList().hashCode() ) ) );
+            assertThat( "NamedAssociation State not equal",
+                        some.namedEntities().toMap(),
+                        not( equalTo( some2.namedEntities().toMap() ) ) );
+            assertThat( "NamedAssociation State hashcode not equal",
+                        some.namedEntities().toMap().hashCode(),
+                        not( equalTo( some2.namedEntities().toMap().hashCode() ) ) );
         }
         finally
         {
@@ -233,6 +268,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation State hashcode equal",
                         some.manyEntities().toList().hashCode(),
                         equalTo( other.manyEntities().toList().hashCode() ) );
+            assertThat( "NamedAssociation State equal",
+                        some.namedEntities().toMap(),
+                        equalTo( other.namedEntities().toMap() ) );
+            assertThat( "NamedAssociation State hashcode equal",
+                        some.namedEntities().toMap().hashCode(),
+                        equalTo( other.namedEntities().toMap().hashCode() ) );
         }
         finally
         {
@@ -266,6 +307,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation hashcode equal",
                         some.manyEntities().hashCode(),
                         equalTo( some2.manyEntities().hashCode() ) );
+            assertThat( "NamedAssociation equal",
+                        some.namedEntities(),
+                        equalTo( some2.namedEntities() ) );
+            assertThat( "NamedAssociation hashcode equal",
+                        some.namedEntities().hashCode(),
+                        equalTo( some2.namedEntities().hashCode() ) );
         }
         finally
         {
@@ -294,6 +341,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation hashcode not equal",
                         some.manyEntities().hashCode(),
                         not( equalTo( some2.manyEntities().hashCode() ) ) );
+            assertThat( "NamedAssociation not equal",
+                        some.namedEntities(),
+                        not( equalTo( some2.namedEntities() ) ) );
+            assertThat( "NamedAssociation hashcode not equal",
+                        some.namedEntities().hashCode(),
+                        not( equalTo( some2.namedEntities().hashCode() ) ) );
         }
         finally
         {
@@ -324,6 +377,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation hashcode not equal",
                         some.manyEntities().hashCode(),
                         not( equalTo( other.manyEntities().hashCode() ) ) );
+            assertThat( "NamedAssociation not equal",
+                        some.namedEntities(),
+                        not( equalTo( other.namedEntities() ) ) );
+            assertThat( "NamedAssociation hashcode not equal",
+                        some.namedEntities().hashCode(),
+                        not( equalTo( other.namedEntities().hashCode() ) ) );
         }
         finally
         {
@@ -352,6 +411,12 @@ public class AssociationEqualityTest
             assertThat( "ManyAssociation hashcode not equal",
                         some.manyEntities().hashCode(),
                         not( equalTo( other.manyEntities().hashCode() ) ) );
+            assertThat( "NamedAssociation not equal",
+                        some.namedEntities(),
+                        not( equalTo( other.namedEntities() ) ) );
+            assertThat( "NamedAssociation hashcode not equal",
+                        some.namedEntities().hashCode(),
+                        not( equalTo( other.namedEntities().hashCode() ) ) );
         }
         finally
         {
@@ -369,6 +434,7 @@ public class AssociationEqualityTest
             ValueBuilder<SomeWithAssociations> builder = module.newValueBuilder( SomeWithAssociations.class );
             builder.prototype().anEntity().set( associated );
             builder.prototype().manyEntities().add( associated );
+            builder.prototype().namedEntities().put( "someKey", associated );
             some = builder.newInstance();
         }
         return some;
@@ -381,6 +447,7 @@ public class AssociationEqualityTest
             ValueBuilder<OtherWithAssociations> builder = module.newValueBuilder( OtherWithAssociations.class );
             builder.prototype().anEntity().set( associated );
             builder.prototype().manyEntities().add( associated );
+            builder.prototype().namedEntities().put( "someKey", associated );
             some = builder.newInstance();
         }
         return some;

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
----------------------------------------------------------------------
diff --git a/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java b/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
index 004745a..6f17569 100644
--- a/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
+++ b/core/spi/src/main/java/org/qi4j/spi/value/ValueSerializerAdapter.java
@@ -479,7 +479,7 @@ public abstract class ValueSerializerAdapter<OutputType>
                 onFieldStart( output, name );
                 onValueStart( output );
                 EntityReference ref = namedAssociation.referenceOf( name );
-                onValue( output, ( (Identity) namedAssociation.get( name ) ).identity().get() );
+                onValue( output, ref.identity() );
                 onValueEnd( output );
                 onFieldEnd( output );
             }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
index 01d2f51..4bece76 100644
--- a/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
+++ b/core/testsupport/src/main/java/org/qi4j/test/value/AbstractValueCompositeSerializationTest.java
@@ -32,6 +32,7 @@ import org.junit.Test;
 import org.junit.rules.TestName;
 import org.qi4j.api.association.Association;
 import org.qi4j.api.association.ManyAssociation;
+import org.qi4j.api.association.NamedAssociation;
 import org.qi4j.api.common.Optional;
 import org.qi4j.api.common.UseDefaults;
 import org.qi4j.api.common.Visibility;
@@ -58,7 +59,6 @@ import static org.junit.Assert.assertThat;
 /**
  * Assert that ValueSerialization behaviour on ValueComposites is correct.
  */
-// TODO Assert Association, ManyAssociation and NamedAssociation serialization behaviour!
 // TODO Assert Arrays behaviour!
 // TODO Assert Generics behaviour!
 public abstract class AbstractValueCompositeSerializationTest
@@ -105,7 +105,7 @@ public abstract class AbstractValueCompositeSerializationTest
             SomeValue some2 = module.newValueFromSerializedState( SomeValue.class, stateString );
 
             assertThat( "Same value toString", some.toString(), equalTo( some2.toString() ) );
-//            assertThat( "Same value", some, equalTo( some2 ) );
+            assertThat( "Same value", some, equalTo( some2 ) );
             assertThat( "Same JSON value toString", stateString, equalTo( some2.toString() ) );
             assertThat( "Same JSON value", some.customFoo().get() instanceof CustomFooValue, is( true ) );
             assertThat( "Same JSON value explicit", some.customFooValue().get() instanceof CustomFooValue, is( true ) );
@@ -193,6 +193,10 @@ public abstract class AbstractValueCompositeSerializationTest
         proto.barManyAssociation().add( buildBarEntity( "bazar TWO in barManyAssociation" ) );
         proto.barEntityManyAssociation().add( buildBarEntity( "bazar ONE in barEntityManyAssociation" ) );
         proto.barEntityManyAssociation().add( buildBarEntity( "bazar TWO in barEntityManyAssociation" ) );
+        proto.barNamedAssociation().put( "bazar", buildBarEntity( "bazar in barNamedAssociation" ) );
+        proto.barNamedAssociation().put( "cathedral", buildBarEntity( "cathedral in barNamedAssociation" ) );
+        proto.barEntityNamedAssociation().put( "bazar", buildBarEntity( "bazar in barEntityNamedAssociation" ) );
+        proto.barEntityNamedAssociation().put( "cathedral", buildBarEntity( "cathedral in barEntityNamedAssociation" ) );
 
         return builder.newInstance();
     }
@@ -309,6 +313,12 @@ public abstract class AbstractValueCompositeSerializationTest
         ManyAssociation<Bar> barManyAssociation();
 
         ManyAssociation<BarEntity> barEntityManyAssociation();
+
+        NamedAssociation<Bar> barNamedAssociationEmpty();
+
+        NamedAssociation<Bar> barNamedAssociation();
+
+        NamedAssociation<BarEntity> barEntityNamedAssociation();
     }
 
     public interface SpecificCollection

http://git-wip-us.apache.org/repos/asf/zest-java/blob/3e3e89d8/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueDeserializer.java
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueDeserializer.java b/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueDeserializer.java
index 2051eb7..6c61ffb 100644
--- a/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueDeserializer.java
+++ b/extensions/valueserialization-stax/src/main/java/org/qi4j/valueserialization/stax/StaxValueDeserializer.java
@@ -432,14 +432,18 @@ public class StaxValueDeserializer
         {
             return;
         }
-        NodeList entriesNodes = inputNode.getChildNodes();
-        for( int idx = 0; idx < entriesNodes.getLength(); idx++ )
+        if( !"object".equals( inputNode.getLocalName() ) )
         {
-            Node entryNode = entriesNodes.item( idx );
-            String key  = ((Element) entryNode).getTagName();
-            V value = getObjectFieldValue( entryNode, "value", valueDeserializer );
-            if( key != null )
+            throw new ValueSerializationException( "Expected an <object/> but got " + inputNode );
+        }
+        NodeList fieldsNodes = inputNode.getChildNodes();
+        for( int idx = 0; idx < fieldsNodes.getLength(); idx++ )
+        {
+            Node fieldNode = fieldsNodes.item( idx );
+            String key = getDirectChildNode( fieldNode, "name" ).getTextContent();
+            if( key != null && key.length() > 0 )
             {
+                V value = getObjectFieldValue( inputNode, key, valueDeserializer );
                 map.put( key, value );
             }
         }


[43/50] zest-java git commit: ZEST-107 Introduce AbstractEntityStoreWithCacheTest in core/testsupport

Posted by pa...@apache.org.
ZEST-107 Introduce AbstractEntityStoreWithCacheTest in core/testsupport

Reuse all tests from AbstractEntityStoreTest adding a MemoryCachePool to
the assembly (overridable).


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/4a1788b0
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/4a1788b0
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/4a1788b0

Branch: refs/heads/master
Commit: 4a1788b0706867a2c2e588bd5bc403433a386583
Parents: ef1dcd5
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 27 16:32:09 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 27 17:09:02 2015 +0200

----------------------------------------------------------------------
 .../cache/AbstractEntityStoreWithCacheTest.java | 165 +++++++++++++++++++
 1 file changed, 165 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/4a1788b0/core/testsupport/src/main/java/org/qi4j/test/cache/AbstractEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/qi4j/test/cache/AbstractEntityStoreWithCacheTest.java b/core/testsupport/src/main/java/org/qi4j/test/cache/AbstractEntityStoreWithCacheTest.java
new file mode 100644
index 0000000..0d3de54
--- /dev/null
+++ b/core/testsupport/src/main/java/org/qi4j/test/cache/AbstractEntityStoreWithCacheTest.java
@@ -0,0 +1,165 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.qi4j.test.cache;
+
+import org.junit.Test;
+import org.qi4j.api.common.Optional;
+import org.qi4j.api.injection.scope.Service;
+import org.qi4j.api.unitofwork.UnitOfWorkCompletionException;
+import org.qi4j.bootstrap.AssemblyException;
+import org.qi4j.bootstrap.ModuleAssembly;
+import org.qi4j.test.entity.AbstractEntityStoreTest;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+/**
+ * Assert Cache behaviour when used by an EntityStore.
+ * <p>
+ * Use an in-memory CachePool by default, implement the <code>assembleCachePool</code> method to override.
+ */
+public abstract class AbstractEntityStoreWithCacheTest
+    extends AbstractEntityStoreTest
+{
+    @Optional @Service MemoryCachePoolService cachePool;
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        super.assemble( module );
+        assembleCachePool( module );
+    }
+
+    protected void assembleCachePool( ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.services( MemoryCachePoolService.class );
+    }
+
+    @Test
+    public void whenNewEntityThenCanFindEntityAndCorrectValues()
+        throws Exception
+    {
+        super.whenNewEntityThenCanFindEntityAndCorrectValues();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 1 ) );
+            assertThat( cache.puts(), is( 1 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void whenRemovedEntityThenCannotFindEntity()
+        throws Exception
+    {
+        super.whenRemovedEntityThenCannotFindEntity();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 0 ) );
+            assertThat( cache.gets(), is( 2 ) );
+            assertThat( cache.puts(), is( 1 ) );
+            assertThat( cache.removes(), is( 1 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void givenEntityIsNotModifiedWhenUnitOfWorkCompletesThenDontStoreState()
+        throws UnitOfWorkCompletionException
+    {
+        super.givenEntityIsNotModifiedWhenUnitOfWorkCompletesThenDontStoreState();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 2 ) );
+            assertThat( cache.puts(), is( 1 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void givenPropertyIsModifiedWhenUnitOfWorkCompletesThenStoreState()
+        throws UnitOfWorkCompletionException
+    {
+        super.givenPropertyIsModifiedWhenUnitOfWorkCompletesThenStoreState();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 2 ) );
+            assertThat( cache.puts(), is( 2 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void givenManyAssociationIsModifiedWhenUnitOfWorkCompletesThenStoreState()
+        throws UnitOfWorkCompletionException
+    {
+        super.givenManyAssociationIsModifiedWhenUnitOfWorkCompletesThenStoreState();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 2 ) );
+            assertThat( cache.puts(), is( 2 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void givenConcurrentUnitOfWorksWhenUoWCompletesThenCheckConcurrentModification()
+        throws UnitOfWorkCompletionException
+    {
+        super.givenConcurrentUnitOfWorksWhenUoWCompletesThenCheckConcurrentModification();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 4 ) );
+            assertThat( cache.puts(), is( 2 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+
+    @Test
+    public void givenEntityStoredLoadedChangedWhenUnitOfWorkDiscardsThenDontStoreState()
+        throws UnitOfWorkCompletionException
+    {
+        super.givenEntityStoredLoadedChangedWhenUnitOfWorkDiscardsThenDontStoreState();
+        if( cachePool != null )
+        {
+            MemoryCacheImpl<?> cache = cachePool.singleCache();
+            assertThat( cache.size(), is( 1 ) );
+            assertThat( cache.gets(), is( 2 ) );
+            assertThat( cache.puts(), is( 1 ) );
+            assertThat( cache.removes(), is( 0 ) );
+            assertThat( cache.exists(), is( 0 ) );
+        }
+    }
+}


[09/50] zest-java git commit: Build: do not sign src & bin snapshot distributions

Posted by pa...@apache.org.
Build: do not sign src & bin snapshot distributions


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5612308f
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5612308f
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5612308f

Branch: refs/heads/master
Commit: 5612308f67d932db5a64d778eec12df0dfc3ba0e
Parents: 9f02f2c
Author: Paul Merlin <pa...@apache.org>
Authored: Mon Jul 20 21:12:30 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Mon Jul 20 21:12:30 2015 +0200

----------------------------------------------------------------------
 build.gradle | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/5612308f/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index d4a90aa..ba4a4f1 100644
--- a/build.gradle
+++ b/build.gradle
@@ -831,6 +831,7 @@ artifacts {
 }
 
 signing {
+  required { rootProject.version != '0' && !rootProject.contains( 'SNAPSHOT' ) }
   sign configurations.archives
 }
 


[28/50] zest-java git commit: ZEST-25 Add skipAsciidocIfAbsent build property set in src dist gradle.properties

Posted by pa...@apache.org.
ZEST-25 Add skipAsciidocIfAbsent build property set in src dist gradle.properties


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/57a18582
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/57a18582
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/57a18582

Branch: refs/heads/master
Commit: 57a18582d1b2b9d1cbda77fc1cd5e525f0da447b
Parents: e48c4e5
Author: Paul Merlin <pa...@apache.org>
Authored: Wed Jul 22 15:20:01 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Wed Jul 22 15:20:01 2015 +0200

----------------------------------------------------------------------
 build.gradle        |  2 +-
 manual/build.gradle | 13 ++++++++-----
 2 files changed, 9 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/57a18582/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 36086f0..a5fd847 100644
--- a/build.gradle
+++ b/build.gradle
@@ -749,7 +749,7 @@ task srcDistFilteredFiles() {
     // gradle.properties
     def gradlePropsFile = new File( filteredDir, 'gradle.properties' )
     gradlePropsFile.parentFile.mkdirs()
-    gradlePropsFile.text = project.file( 'gradle.properties' ).text + "\nskipSigning=true\n\nversion=$version\n"
+    gradlePropsFile.text = project.file( 'gradle.properties' ).text + "\nskipSigning=true\nskipAsciidocIfAbsent=true\n\nversion=$version\n"
   }
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/57a18582/manual/build.gradle
----------------------------------------------------------------------
diff --git a/manual/build.gradle b/manual/build.gradle
index 3d6d8cf..403dd27 100644
--- a/manual/build.gradle
+++ b/manual/build.gradle
@@ -79,15 +79,18 @@ task manuals() {
 //  dependsOn recipes
 }
 
-// Skip if asciidoc is not present when building a 0 or SNAPSHOT version
+// Skip if asciidoc is not found in PATH when building a 0 or SNAPSHOT version,
+// or if skipAsciidocIfAbsent property is set and asciidoc is not found in PATH
 [ website, archiveWebsite, copyWebsite, manuals ]*.onlyIf {
-  if( version != '0' && !version.contains( 'SNAPSHOT' ) ) {
-    return true
-  }
+  def skipAsciidocIfAbsent = rootProject.hasProperty( 'skipAsciidocIfAbsent' ) ? rootProject.skipAsciidocIfAbsent : false
   def pathDirs = System.getenv( 'PATH' ).split( File.pathSeparator )
   def present = pathDirs.collect( { new File( it, 'asciidoc') } ).flatten().findAll( { it.isFile() } )
+  if( !skipAsciidocIfAbsent && version != '0' && !version.contains( 'SNAPSHOT' ) ) {
+    project.logger.debug 'Asciidoc tasks forced because version is no-0 and no-SNAPSHOT, hope you have Asciidoc installed'
+    return true
+  }
   if( !present ) {
-    project.logger.warn 'Asciidoc not found, manual tasks will skip, please install http://www.methods.co.nz/asciidoc/'
+    project.logger.warn 'Asciidoc not found in PATH, manual tasks will skip, please install http://www.methods.co.nz/asciidoc/'
   }
   present
 }


[49/50] zest-java git commit: ZEST-25 Better dependencies resolution for bin dist go-offline helpers

Posted by pa...@apache.org.
ZEST-25 Better dependencies resolution for bin dist go-offline helpers

Now apply the Zest resolution strategy before generation so there’s no
surprise when using the helpers.

Note that as some of our modules depends on != versions of some
artifacts, the resolution strategy flatten this using the most up to
date versions.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/ce95ca7d
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/ce95ca7d
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/ce95ca7d

Branch: refs/heads/master
Commit: ce95ca7d4a2ff35031be66fc0923f29e9b15d500
Parents: 7b8fd18
Author: Paul Merlin <pa...@nosphere.org>
Authored: Tue Jul 28 12:16:01 2015 +0200
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Tue Jul 28 12:16:01 2015 +0200

----------------------------------------------------------------------
 build.gradle     | 20 +++++++++++---------
 libraries.gradle | 12 ++++++++++++
 2 files changed, 23 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/ce95ca7d/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 2e0a4e4..d7666e6 100644
--- a/build.gradle
+++ b/build.gradle
@@ -632,15 +632,17 @@ task generateBinDistGoOfflineHelpers {
     goOfflineGradle += '}\ndependencies {\n'
     goOfflinePom += '  </repositories>\n  <dependencies>\n'
 
-    def handledDeps = []
-    releaseApprovedProjects.each { p ->
-      p.configurations.runtime.incoming.resolutionResult.allComponents.each { comp ->
-        def depCoords = "${comp.moduleVersion.group}:${comp.moduleVersion.name}:${comp.moduleVersion.version}"
-        if( !comp.moduleVersion.group.startsWith( 'org.qi4j' ) && !handledDeps.contains( depCoords ) ) {
-          goOfflineGradle += "  download( '$depCoords' ) { transitive = false }\n"
-          goOfflinePom += "    <dependency><groupId>${comp.moduleVersion.group}</groupId><artifactId>${comp.moduleVersion.name}</artifactId><version>${comp.moduleVersion.version}</version></dependency>\n"
-          handledDeps << depCoords
-        }
+    // Do the global dependency resolution here so there won't be any suprise when using the helpers
+    // This also allow to apply the resolution strategy defined in libraries.gradle
+    // WARN some of our modules depends on != versions of some artifacts, this resolution flatten this using the most up to date
+    def allRuntimeDeps = releaseApprovedProjects.collect{ it.configurations.runtime.allDependencies }.flatten()
+    rootProject.configurations.create( 'goOfflineHelpers' )
+    rootProject.dependencies { allRuntimeDeps.each{ goOfflineHelpers it } }
+    rootProject.configurations.goOfflineHelpers.incoming.resolutionResult.allComponents.each { comp ->
+      def depCoords = "${comp.moduleVersion.group}:${comp.moduleVersion.name}:${comp.moduleVersion.version}"
+      if( !comp.moduleVersion.group.startsWith( 'org.qi4j' ) ) {
+        goOfflineGradle += "  download( '$depCoords' ) { transitive = false }\n"
+        goOfflinePom += "    <dependency><groupId>${comp.moduleVersion.group}</groupId><artifactId>${comp.moduleVersion.name}</artifactId><version>${comp.moduleVersion.version}</version></dependency>\n"
       }
     }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/ce95ca7d/libraries.gradle
----------------------------------------------------------------------
diff --git a/libraries.gradle b/libraries.gradle
index c02a901..1507bc8 100644
--- a/libraries.gradle
+++ b/libraries.gradle
@@ -261,6 +261,18 @@ allprojects {
         if( dep.requested.group == 'org.slf4j' ) {
           dep.useTarget group: dep.requested.group, name: dep.requested.module, version: slf4jVersion
         }
+        // Always resolve ASM to the same version
+        if( dep.requested.group == 'org.ow2.asm' ) {
+          dep.useTarget group: dep.requested.group, name: dep.requested.module, version: asmVersion
+        }
+        // Always resolve OSGi to the same version
+        if( dep.requested.group == 'org.osgi' ) {
+          dep.useTarget group: dep.requested.group, name: dep.requested.module, version: osgiVersion
+        }
+        // Always resolve Jackson to the same version
+        if( dep.requested.group.startsWith( 'com.fasterxml.jackson' ) ) {
+          dep.useTarget group: dep.requested.group, name: dep.requested.module, version: jacksonVersion
+        }
         // woodstox:wstx-asl is broken (no pom), use org.codehaus.woodstox:wstx-asl instead
         if( dep.requested.group == 'woodstox' && dep.requested.module == 'wstx-asl' ) {
           dep.useTarget group: 'org.codehaus.woodstox', name: 'wstx-asl', version: dep.requested.version


[38/50] zest-java git commit: ZEST-24 Fix release deployment Nexus URL for proper staging, see INFRA-10046

Posted by pa...@apache.org.
ZEST-24 Fix release deployment Nexus URL for proper staging, see INFRA-10046


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/59e9d867
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/59e9d867
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/59e9d867

Branch: refs/heads/master
Commit: 59e9d867fccda23c5e179a3a65f1beae102a6a15
Parents: 0b09744
Author: Paul Merlin <pa...@apache.org>
Authored: Sat Jul 25 13:00:34 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Sat Jul 25 13:00:34 2015 +0200

----------------------------------------------------------------------
 build.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/59e9d867/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 301c25a..55b1208 100644
--- a/build.gradle
+++ b/build.gradle
@@ -197,7 +197,7 @@ allprojects {
   // By default RELEASES and SNAPSHOTS are uploaded to Apache Nexus
   // Target repository can be overriden by setting the uploadRepository property
   def releasesRepositoryName = "apache.releases.https"
-  def releasesRepository = "https://repository.apache.org/content/repositories/releases"
+  def releasesRepository = "https://repository.apache.org/service/local/staging/deploy/maven2"
   def snapshotsRepositoryName = "apache.snapshots.https"
   def snapshotsRepository = "https://repository.apache.org/content/repositories/snapshots"
   def uploadRepositoryName = rootProject.hasProperty('uploadRepositoryName') \


[13/50] zest-java git commit: EventSourcing: add missing javadoc package.html

Posted by pa...@apache.org.
EventSourcing: add missing javadoc package.html


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/8938d545
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/8938d545
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/8938d545

Branch: refs/heads/master
Commit: 8938d545dbade6cef5d6c24e27498c47b0d68705
Parents: 8306245
Author: Paul Merlin <pa...@apache.org>
Authored: Tue Jul 21 12:28:34 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Tue Jul 21 12:28:34 2015 +0200

----------------------------------------------------------------------
 .../application/source/memory/package.html      | 21 ++++++++++++++++++++
 .../eventsourcing/bootstrap/package.html        | 21 ++++++++++++++++++++
 2 files changed, 42 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/8938d545/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/package.html
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/package.html b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/package.html
new file mode 100644
index 0000000..b92be93
--- /dev/null
+++ b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/application/source/memory/package.html
@@ -0,0 +1,21 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html>
+    <body>
+        <h2>EventSourcing in-memory EventStore.</h2>
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/8938d545/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/package.html
----------------------------------------------------------------------
diff --git a/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/package.html b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/package.html
new file mode 100644
index 0000000..2b9376f
--- /dev/null
+++ b/libraries/eventsourcing/src/main/java/org/qi4j/library/eventsourcing/bootstrap/package.html
@@ -0,0 +1,21 @@
+<!--
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+-->
+<html>
+    <body>
+        <h2>EventSourcing Assembly.</h2>
+    </body>
+</html>
\ No newline at end of file


[34/50] zest-java git commit: ZEST-25 Add note in README about docbook-xsl for asciidoc processing

Posted by pa...@apache.org.
ZEST-25 Add note in README about docbook-xsl for asciidoc processing


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/5f4712d5
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/5f4712d5
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/5f4712d5

Branch: refs/heads/master
Commit: 5f4712d51430877ab910d209b42743ad044ebe19
Parents: 26a169d
Author: Paul Merlin <pa...@apache.org>
Authored: Fri Jul 24 09:36:21 2015 +0200
Committer: Paul Merlin <pa...@apache.org>
Committed: Fri Jul 24 09:36:21 2015 +0200

----------------------------------------------------------------------
 README.txt                                       | 4 ++--
 manual/src/docs/tutorials/howto-writing-docs.txt | 3 +++
 2 files changed, 5 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/5f4712d5/README.txt
----------------------------------------------------------------------
diff --git a/README.txt b/README.txt
index d460a77..dcbe6df 100644
--- a/README.txt
+++ b/README.txt
@@ -46,8 +46,8 @@ Building Apache Zest
 To build Zest™ from sources you only need to have a valid Java JDK >= 7
 installation.
 
-If you want to build the Zest™ manual, then you also need a valid Asciidoc
-(http://www.methods.co.nz/asciidoc/) installation.
+If you want to build the Zest™ manual, then you also need valid Asciidoc
+(http://www.methods.co.nz/asciidoc/) and Docbook-XSL installations.
 
 Here is how to run a full build with checks:
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/5f4712d5/manual/src/docs/tutorials/howto-writing-docs.txt
----------------------------------------------------------------------
diff --git a/manual/src/docs/tutorials/howto-writing-docs.txt b/manual/src/docs/tutorials/howto-writing-docs.txt
index 27e0ef9..d5eb13e 100644
--- a/manual/src/docs/tutorials/howto-writing-docs.txt
+++ b/manual/src/docs/tutorials/howto-writing-docs.txt
@@ -27,6 +27,9 @@ The documents use the asciidoc format, see:
 
 The cheatsheet is really useful!
 
+You need to install `asciidoc` and `docbook-xsl`.
+
+
 [[community-docs-overall-flow,Documentation Flow]]
 == Overall Flow ==
 


[48/50] zest-java git commit: ZEST-25 Add missing header to generated go-offline helpers in bin dist

Posted by pa...@apache.org.
ZEST-25 Add missing header to generated go-offline helpers in bin dist


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/7b8fd18f
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/7b8fd18f
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/7b8fd18f

Branch: refs/heads/master
Commit: 7b8fd18fcf342d46fd6f9164c1b870c4d62e0368
Parents: 5d3d759
Author: Paul Merlin <pa...@nosphere.org>
Authored: Tue Jul 28 11:36:36 2015 +0200
Committer: Paul Merlin <pa...@nosphere.org>
Committed: Tue Jul 28 11:36:36 2015 +0200

----------------------------------------------------------------------
 build.gradle   | 36 ++++++++++++++++++++++++++++++------
 etc/header.txt | 14 ++++++++++++++
 2 files changed, 44 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b8fd18f/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index f342ad4..2e0a4e4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -582,29 +582,53 @@ task buildAll( dependsOn: [
     ':org.qi4j.manual:website'
 ] ) { }
 
+// Generate license headers with comment styles
+def licenseHeader_wrap( base, top, left, bottom ) {
+  ( top ? "$top\n" : '' ) + base.readLines().collect{ "${left}${it}" }.join( '\n' ) + '\n' + ( bottom ? "$bottom\n" : '' )
+}
+def licenseHeader( flavour ) {
+  def base = project.file( 'etc/header.txt' ).text
+  def header
+  switch( flavour ) {
+    case 'java': case 'groovy': case 'scala': case 'js':
+      header = licenseHeader_wrap( base, '/*', ' * ', ' */' ) ; break
+    case 'xml': case 'html':
+      header = licenseHeader_wrap( base, '<!--', '  ', '-->' ) ; break
+    case 'txt': case 'shell': case 'python': case 'ruby':
+      header = licenseHeader_wrap( base, null, '# ', null ) ; break
+    case 'adoc': case 'asciidoc':
+      header = licenseHeader_wrap( base, null, '// ', null ) ; break
+    default:
+      header = base
+  }
+  header
+}
+
 task generateBinDistGoOfflineHelpers {
   def goOfflineGradleFile = file( 'build/go-offline-helpers/go-offline.gradle' )
   def goOfflinePomFile = file( 'build/go-offline-helpers/go-offline.pom')
   outputs.files goOfflineGradleFile
   outputs.files goOfflinePomFile
   doLast {
-    
-    def goOfflineGradle = '// This gradle build file has the sole purpose of downloading all dependencies in this directory.\n'
+
+    def goOfflineGradle = licenseHeader( 'java' )
+    goOfflineGradle += '// This gradle build file has the sole purpose of downloading all dependencies in a directory relative to this file named \'dependencies\'.\n'
     goOfflineGradle += '// Use the following command: gradle -b go-offline.gradle download\n'
     goOfflineGradle += 'apply plugin: \'java\'\nconfigurations { download }\nrepositories {\n'
-    def goOfflinePom = '<project>\n  <modelVersion>4.0.0</modelVersion>\n'
+    def goOfflinePom = licenseHeader( 'xml' )
+    goOfflinePom += '<project>\n  <modelVersion>4.0.0</modelVersion>\n'
     goOfflinePom += "  <groupId>org.qi4j</groupId>\n  <artifactId>go-offline-helper</artifactId>\n  <version>$version</version>\n"
     goOfflinePom += '  <packaging>pom</packaging>\n'
-    goOfflinePom += '  <!--\n  This pom has the sole purpose of downloading all dependencies in this directory.\n'
+    goOfflinePom += '  <!--\n  This pom has the sole purpose of downloading all dependencies in a directory relative to this file named \'dependencies\'.\n'
     goOfflinePom += '  Use the following command:\n\n  mvn -f go-offline.pom validate\n  -->\n  <repositories>\n'
-    
+
     def repoCount = 1
     repos_urls.each { repo_url ->
       goOfflineGradle += "  maven { url '${repo_url.value}' }\n"
       goOfflinePom += "    <repository><id>go-offline-repo-$repoCount</id><url>${repo_url.value}</url></repository>\n"
       repoCount++
     }
-    
+
     goOfflineGradle += '}\ndependencies {\n'
     goOfflinePom += '  </repositories>\n  <dependencies>\n'
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/7b8fd18f/etc/header.txt
----------------------------------------------------------------------
diff --git a/etc/header.txt b/etc/header.txt
new file mode 100644
index 0000000..9f4ff31
--- /dev/null
+++ b/etc/header.txt
@@ -0,0 +1,14 @@
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+   http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file