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 2016/12/24 10:29:25 UTC

[13/19] zest-java git commit: build: detangle buildSrc

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/buildSrc/src/test/groovy/org/apache/polygene/gradle/tasks/ExecLoggedTest.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/test/groovy/org/apache/polygene/gradle/tasks/ExecLoggedTest.groovy b/buildSrc/src/test/groovy/org/apache/polygene/gradle/tasks/ExecLoggedTest.groovy
new file mode 100644
index 0000000..aca2f72
--- /dev/null
+++ b/buildSrc/src/test/groovy/org/apache/polygene/gradle/tasks/ExecLoggedTest.groovy
@@ -0,0 +1,84 @@
+/*
+ *  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.apache.polygene.gradle.tasks
+
+import org.gradle.internal.os.OperatingSystem
+import org.gradle.process.ExecSpec
+import org.gradle.testfixtures.ProjectBuilder
+import org.junit.Rule
+import org.junit.rules.TemporaryFolder
+import spock.lang.IgnoreIf
+import spock.lang.Specification
+
+@IgnoreIf( { OperatingSystem.current().isWindows() } )
+class ExecLoggedTest extends Specification
+{
+  @Rule
+  final TemporaryFolder tmpDir = new TemporaryFolder();
+  File script
+
+  def setup()
+  {
+    script = tmpDir.newFile( 'script.sh' ) << '''
+      #!/bin/sh
+      echo STDOUT
+      echo STDERR 1>&2
+    '''.stripIndent().trim()
+  }
+
+  def "ExecLogged.execLogged()"()
+  {
+    given:
+    def project = ProjectBuilder.builder().build()
+    def out = tmpDir.newFile 'out.txt'
+    def err = tmpDir.newFile 'err.txt'
+
+    when:
+    ExecLogged.execLogged project, out, err, { ExecSpec spec ->
+      spec.workingDir = tmpDir.root
+      spec.commandLine 'sh', script.absolutePath
+    }
+
+    then:
+    out.text == 'STDOUT\n'
+    err.text == 'STDERR\n'
+  }
+
+  def "ExecLogged Task"()
+  {
+    given:
+    def project = ProjectBuilder.builder().build()
+    def out = tmpDir.newFile 'out.txt'
+    def err = tmpDir.newFile 'err.txt'
+    def task = project.tasks.create( 'test', ExecLogged ) { ExecLogged task ->
+      task.workingDir = tmpDir.root
+      task.stdoutFile = out
+      task.stderrFile = err
+      task.commandLine 'sh', script.absolutePath
+    }
+
+    when:
+    // WARN ProjectBuilder is not meant to run tasks, should use TestKit instead
+    // But that's enough for testing ExecLogged and much more faster
+    task.execute()
+
+    then:
+    out.text == 'STDOUT\n'
+    err.text == 'STDERR\n'
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/core/api/build.gradle
----------------------------------------------------------------------
diff --git a/core/api/build.gradle b/core/api/build.gradle
index db05b19..df4ad7c 100644
--- a/core/api/build.gradle
+++ b/core/api/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-core'
+
 jar { manifest { name = "Apache Polygene\u2122 Core API" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/core/bootstrap/build.gradle
----------------------------------------------------------------------
diff --git a/core/bootstrap/build.gradle b/core/bootstrap/build.gradle
index ae37429..f005d2b 100644
--- a/core/bootstrap/build.gradle
+++ b/core/bootstrap/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-core'
+
 jar { manifest { name = "Apache Polygene\u2122 Core Bootstrap" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/core/runtime/build.gradle
----------------------------------------------------------------------
diff --git a/core/runtime/build.gradle b/core/runtime/build.gradle
index 5324662..9e1be8f 100644
--- a/core/runtime/build.gradle
+++ b/core/runtime/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-core'
+
 jar { manifest { name = "Apache Polygene\u2122 Core Runtime" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/core/spi/build.gradle
----------------------------------------------------------------------
diff --git a/core/spi/build.gradle b/core/spi/build.gradle
index 7aa42b4..8d1af06 100644
--- a/core/spi/build.gradle
+++ b/core/spi/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-core'
+
 jar { manifest { name = "Apache Polygene\u2122 Core SPI" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/core/testsupport/build.gradle
----------------------------------------------------------------------
diff --git a/core/testsupport/build.gradle b/core/testsupport/build.gradle
index 932d44a..bde2c50 100644
--- a/core/testsupport/build.gradle
+++ b/core/testsupport/build.gradle
@@ -18,7 +18,9 @@
  *
  */
 
-jar { manifest { name = "Apache Polygene\u2122 Core TestSupport" } }
+apply plugin: 'polygene-core'
+
+jar { manifest { name = "Apache Polygene\u2122 Core Test Support" } }
 
 dependencies {
   compile polygene.core.bootstrap

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/distributions/build.gradle
----------------------------------------------------------------------
diff --git a/distributions/build.gradle b/distributions/build.gradle
new file mode 100644
index 0000000..a3b9f0d
--- /dev/null
+++ b/distributions/build.gradle
@@ -0,0 +1,2 @@
+
+apply plugin: 'polygene-distributions'

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/distributions/src/bin-dist/NOTICE.txt
----------------------------------------------------------------------
diff --git a/distributions/src/bin-dist/NOTICE.txt b/distributions/src/bin-dist/NOTICE.txt
new file mode 100644
index 0000000..998fdf8
--- /dev/null
+++ b/distributions/src/bin-dist/NOTICE.txt
@@ -0,0 +1,5 @@
+Apache Polygene\u2122 (Java Edition) SDK Binary Distribution
+Copyright 2015 The Apache Software Foundation.
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/distributions/src/bin-dist/README.txt
----------------------------------------------------------------------
diff --git a/distributions/src/bin-dist/README.txt b/distributions/src/bin-dist/README.txt
new file mode 100644
index 0000000..b2d104d
--- /dev/null
+++ b/distributions/src/bin-dist/README.txt
@@ -0,0 +1,50 @@
+
+Welcome to the world of Apache Polygene
+   - Composite Oriented Programming on the Java platform.
+
+
+This Apache Polygene\u2122 Binary Distribution contains everything you need to
+create Polygene\u2122 applications.
+
+
+Polygene\u2122 (then Polygene\u2122) started in 2007, and is still in heavy development
+at the Apache Software Foundation. We would like
+developers around the world to participate in the advancement of this
+cool, new and challenging technology. We are especially interested in
+people willing to help improve the SDK, samples, tutorials, documentation
+and other supporting material.
+
+Please see https://polygene.apache.org for more information.
+
+
+Licensing
+---------
+All Apache Polygene\u2122 code is licensed under an Apache License.
+
+Third-Party Dependencies may be licensed under other terms. The only
+required dependencies are SLF4J (MIT Licence), ASM (BSD Licence) and
+Joda-Time (Apache Licence).
+
+Finally, Polygene\u2122 TestSupport depends on JUnit 4.x and its dependencies, which
+is also not included in the SDK itself, as it is present among most Java
+developers.
+
+
+Dependencies not included
+-------------------------
+The binary distributions contains Polygene\u2122 artifacts only to keep the download
+size small. Each Polygene\u2122 artifact comes with a file prefixed ..-runtime-deps.txt
+that contains the list of its dependencies. Moreover, at the binary
+distribution's root, you'll find both Maven (go-offline.pom) and Gradle
+(go-offline.gradle) build files whoses sole purpose is to easily download all
+needed dependencies jars. Instructions are given into theses files.
+
+If you prefer to use a dependency management system, go to:
+https://polygene.apache.org/java/latest/howto-depend-on-polygene.html
+
+
+Thank you for trying out Apache Polygene\u2122 and Composite Oriented Programming.
+
+
+-- Apache Polygene\u2122 Team
+

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/distributions/src/src-dist/README.txt
----------------------------------------------------------------------
diff --git a/distributions/src/src-dist/README.txt b/distributions/src/src-dist/README.txt
new file mode 100644
index 0000000..a27ea07
--- /dev/null
+++ b/distributions/src/src-dist/README.txt
@@ -0,0 +1,64 @@
+
+Welcome to the world of Apache Polygene
+   - Composite Oriented Programming on the Java platform.
+
+
+This Apache Polygene\u2122 Source Distribution contains everything you need to
+create Polygene\u2122 applications.
+
+
+Polygene\u2122 started in 2007, and is still in heavy development under the umbrella of
+the Apache Polygene\u2122 project at the Apache Software Foundation. We would like
+developers around the world to participate in the advancement of this
+cool, new and challenging technology. We are especially interested in
+people willing to help improve the SDK, samples, tutorials, documentation
+and other supporting material.
+
+Please see https://polygene.apache.org for more information.
+
+
+Licensing
+---------
+All Polygene\u2122 code is licensed under an Apache License.
+
+Third-Party Dependencies may be licensed under other terms. The only
+required dependencies are SLF4J (MIT Licence), ASM (BSD Licence) and
+Joda-Time (Apache Licence).
+
+Finally, Polygene\u2122 TestSupport depends on JUnit 4.x and its dependencies, which
+is also not included in the SDK itself, as it is present among most Java
+developers.
+
+
+Dependencies not included
+-------------------------
+The source distribution contains Polygene\u2122 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
+dependencies are cached by Gradle.
+
+If you prefer to use a dependency management system, go to:
+https://polygene.apache.org/java/latest/howto-depend-on-polygene.html
+
+
+Building Apache Polygene
+---------------------
+To build Polygene\u2122 from sources you only need to have a valid Java JDK >= 7
+installation.
+
+If you want to build the Polygene\u2122 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:
+
+    ./gradlew check assemble
+
+Read the Polygene\u2122 Build System tutorial for more details:
+https://polygene.apache.org/java/latest/build-system.html
+
+
+Thank you for trying out Apache Polygene\u2122 and Composite Oriented Programming.
+
+
+-- Apache Polygene\u2122 Team
+

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/cache-ehcache/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/cache-ehcache/build.gradle b/extensions/cache-ehcache/build.gradle
index 9845cb1..2e7ae19 100644
--- a/extensions/cache-ehcache/build.gradle
+++ b/extensions/cache-ehcache/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Ehcache Cache Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension: EhCache" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/cache-memcache/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/cache-memcache/build.gradle b/extensions/cache-memcache/build.gradle
index 597c41c..03cf403 100644
--- a/extensions/cache-memcache/build.gradle
+++ b/extensions/cache-memcache/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Memcache Cache Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Cache - Memcache" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-file/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-file/build.gradle b/extensions/entitystore-file/build.gradle
index 83789b2..a1b6378 100644
--- a/extensions/entitystore-file/build.gradle
+++ b/extensions/entitystore-file/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - File system" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-geode/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-geode/build.gradle b/extensions/entitystore-geode/build.gradle
index 79ef02b..146993c 100644
--- a/extensions/entitystore-geode/build.gradle
+++ b/extensions/entitystore-geode/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Geode EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Geode" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-hazelcast/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-hazelcast/build.gradle b/extensions/entitystore-hazelcast/build.gradle
index bf88c81..15c84b2 100644
--- a/extensions/entitystore-hazelcast/build.gradle
+++ b/extensions/entitystore-hazelcast/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Hazelcast EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Hazelcast" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-jclouds/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jclouds/build.gradle b/extensions/entitystore-jclouds/build.gradle
index 32a56d2..5e29bf0 100644
--- a/extensions/entitystore-jclouds/build.gradle
+++ b/extensions/entitystore-jclouds/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 JClouds EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - JClouds" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-jdbm/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jdbm/build.gradle b/extensions/entitystore-jdbm/build.gradle
index 822686f..60f68a5 100644
--- a/extensions/entitystore-jdbm/build.gradle
+++ b/extensions/entitystore-jdbm/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 JDBM EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - JDBM" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-leveldb/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-leveldb/build.gradle b/extensions/entitystore-leveldb/build.gradle
index cd98455..1da5d20 100644
--- a/extensions/entitystore-leveldb/build.gradle
+++ b/extensions/entitystore-leveldb/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 LevelDB EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - LevelDB" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-memory/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-memory/build.gradle b/extensions/entitystore-memory/build.gradle
index 4833d92..72b45e6 100644
--- a/extensions/entitystore-memory/build.gradle
+++ b/extensions/entitystore-memory/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Memory" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-mongodb/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-mongodb/build.gradle b/extensions/entitystore-mongodb/build.gradle
index 5b78435..425485d 100644
--- a/extensions/entitystore-mongodb/build.gradle
+++ b/extensions/entitystore-mongodb/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 MongoDB EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - MongoDB" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-preferences/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-preferences/build.gradle b/extensions/entitystore-preferences/build.gradle
index 1339e8e..f1e418f 100644
--- a/extensions/entitystore-preferences/build.gradle
+++ b/extensions/entitystore-preferences/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Preferences EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Preferences" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-redis/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-redis/build.gradle b/extensions/entitystore-redis/build.gradle
index 44a0dd6..f59654f 100644
--- a/extensions/entitystore-redis/build.gradle
+++ b/extensions/entitystore-redis/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Redis EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Redis" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-riak/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/build.gradle b/extensions/entitystore-riak/build.gradle
index 7b6de87..b0354c7 100644
--- a/extensions/entitystore-riak/build.gradle
+++ b/extensions/entitystore-riak/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Riak EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - Riak" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/entitystore-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/build.gradle b/extensions/entitystore-sql/build.gradle
index f8b494a..89f890d 100644
--- a/extensions/entitystore-sql/build.gradle
+++ b/extensions/entitystore-sql/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 SQL EntityStore Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - EntityStore - SQL" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/indexing-elasticsearch/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/build.gradle b/extensions/indexing-elasticsearch/build.gradle
index 7d5089c..580e673 100644
--- a/extensions/indexing-elasticsearch/build.gradle
+++ b/extensions/indexing-elasticsearch/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 ElasticSearch Index/Query Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Index/Query - ElasticSearch" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/indexing-rdf/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-rdf/build.gradle b/extensions/indexing-rdf/build.gradle
index 44ec675..e8295ed 100644
--- a/extensions/indexing-rdf/build.gradle
+++ b/extensions/indexing-rdf/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 RDF Index/Query Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Index/Query - RDF" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/indexing-solr/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-solr/build.gradle b/extensions/indexing-solr/build.gradle
index 6cd924e..141c23d 100644
--- a/extensions/indexing-solr/build.gradle
+++ b/extensions/indexing-solr/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Solr Indexing Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Indexing - Solr" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/indexing-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/build.gradle b/extensions/indexing-sql/build.gradle
index e1403a3..7a3ac86 100644
--- a/extensions/indexing-sql/build.gradle
+++ b/extensions/indexing-sql/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 SQL Indexing Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Indexing - SQL" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/metrics-codahale/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/metrics-codahale/build.gradle b/extensions/metrics-codahale/build.gradle
index 8221b66..800aa19 100644
--- a/extensions/metrics-codahale/build.gradle
+++ b/extensions/metrics-codahale/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Codahale Metrics Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Metrics - Codahale" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/migration/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/migration/build.gradle b/extensions/migration/build.gradle
index 57ec29e..bcb3099 100644
--- a/extensions/migration/build.gradle
+++ b/extensions/migration/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Migration Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - Migration" }}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/reindexer/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/reindexer/build.gradle b/extensions/reindexer/build.gradle
index 67f9341..510cd60 100644
--- a/extensions/reindexer/build.gradle
+++ b/extensions/reindexer/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 jar { manifest { description = "Apache Polygene\u2122 Reindexer Extension" } }
 
 dependencies {

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/valueserialization-jackson/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-jackson/build.gradle b/extensions/valueserialization-jackson/build.gradle
index 156a63e..17ac4b5 100644
--- a/extensions/valueserialization-jackson/build.gradle
+++ b/extensions/valueserialization-jackson/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 Jackson ValueSerialization Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - ValueSerialization - Jackson" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/valueserialization-orgjson/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-orgjson/build.gradle b/extensions/valueserialization-orgjson/build.gradle
index 170fa1a..5a2d61e 100644
--- a/extensions/valueserialization-orgjson/build.gradle
+++ b/extensions/valueserialization-orgjson/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 org.json ValueSerialization Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - ValueSerialization - org.json" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/extensions/valueserialization-stax/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/valueserialization-stax/build.gradle b/extensions/valueserialization-stax/build.gradle
index f2bce54..f60e6be 100644
--- a/extensions/valueserialization-stax/build.gradle
+++ b/extensions/valueserialization-stax/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-extension'
+
 description = "Apache Polygene\u2122 StaX ValueSerialization Extension"
 
 jar { manifest { name = "Apache Polygene\u2122 Extension - ValueSerialization - StaX" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/gradle.properties
----------------------------------------------------------------------
diff --git a/gradle.properties b/gradle.properties
index 84409fc..ee0e41c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -15,5 +15,5 @@
 #  See the License for the specific language governing permissions and
 #  limitations under the License.
 #
-#
-#
+
+org.gradle.jvmargs=-Xms2g -Xmx2g

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/alarm/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/alarm/build.gradle b/libraries/alarm/build.gradle
index 4afecaf..e9fa455 100644
--- a/libraries/alarm/build.gradle
+++ b/libraries/alarm/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Alarm Library provides industrial automation style alarm point workflow semantics."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Alarm - APi" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/circuitbreaker/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/circuitbreaker/build.gradle b/libraries/circuitbreaker/build.gradle
index 31112b5..6720e0c 100644
--- a/libraries/circuitbreaker/build.gradle
+++ b/libraries/circuitbreaker/build.gradle
@@ -19,6 +19,8 @@
  */
 import org.apache.polygene.gradle.TaskGroups
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Circuit Breaker Library provides a framework for connecting external resources, so that they can be disabled during re-play of events."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Circuit Breaker" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/constraints/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/constraints/build.gradle b/libraries/constraints/build.gradle
index 3c125e0..6e11bb1 100644
--- a/libraries/constraints/build.gradle
+++ b/libraries/constraints/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Constraint Library provides common set of constraints."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Constraints"}}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/fileconfig/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/fileconfig/build.gradle b/libraries/fileconfig/build.gradle
index 11899a9..2547cc0 100644
--- a/libraries/fileconfig/build.gradle
+++ b/libraries/fileconfig/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 File Configuration Library provides platform specific file locations."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - FileConfig" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/http/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/http/build.gradle b/libraries/http/build.gradle
index fb7b4ec..864b51f 100644
--- a/libraries/http/build.gradle
+++ b/libraries/http/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Http Library provides embedded Jetty for Apache Polygene\u2122 application use."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Http" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/invocation-cache/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/invocation-cache/build.gradle b/libraries/invocation-cache/build.gradle
index 317d41f..5dcbb2e 100644
--- a/libraries/invocation-cache/build.gradle
+++ b/libraries/invocation-cache/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Invocation Cache Library provides caching framework for methods."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Invocation Cache" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/jmx/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/jmx/build.gradle b/libraries/jmx/build.gradle
index 3f7543d..c0bbd80 100644
--- a/libraries/jmx/build.gradle
+++ b/libraries/jmx/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-library'
 
 description = "Apache Polygene\u2122 JMX Library provides Java Management Extension (JMX) integration for Apache Polygene\u2122 applications."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/lang-groovy/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/lang-groovy/build.gradle b/libraries/lang-groovy/build.gradle
index 640f708..8634868 100644
--- a/libraries/lang-groovy/build.gradle
+++ b/libraries/lang-groovy/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Groovy Library allows for Mixins to be implemented in Groovy scripts instead of directly in compiled Java."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Scripting - Groovy" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/lang-javascript/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/lang-javascript/build.gradle b/libraries/lang-javascript/build.gradle
index eee1a59..1d301e3 100644
--- a/libraries/lang-javascript/build.gradle
+++ b/libraries/lang-javascript/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 JavaScript Library allows for Mixins to be implemented in JavaScript instead of directly in compiled Java."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Scripting - JavaScript" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/locking/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/locking/build.gradle b/libraries/locking/build.gradle
index eda2aa0..3dfad3f 100644
--- a/libraries/locking/build.gradle
+++ b/libraries/locking/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Locking Library provides lock management for methods."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Locking" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/logging/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/logging/build.gradle b/libraries/logging/build.gradle
index b985f05..f45c676 100644
--- a/libraries/logging/build.gradle
+++ b/libraries/logging/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Logging Library provides an advanced logging framework which separates trace, debug and log systems."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Logging" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/metrics/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/metrics/build.gradle b/libraries/metrics/build.gradle
index bd32c34..606b655 100644
--- a/libraries/metrics/build.gradle
+++ b/libraries/metrics/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Metrics Library."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Metrics" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/osgi/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/osgi/build.gradle b/libraries/osgi/build.gradle
index 4cad02e..c762482 100644
--- a/libraries/osgi/build.gradle
+++ b/libraries/osgi/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 OSGi Library provides integration of OSGi and Apache Polygene\u2122, so that services in each system can be shared."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - OSGi Integration" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/rdf/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rdf/build.gradle b/libraries/rdf/build.gradle
index 276dd10..627d454 100644
--- a/libraries/rdf/build.gradle
+++ b/libraries/rdf/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 RDF Library provides commonalities of various RDF based services in Apache Polygene\u2122, such as RDF Indexing."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - RDF" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/rest-client/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest-client/build.gradle b/libraries/rest-client/build.gradle
index 934d7f5..33cb81f 100644
--- a/libraries/rest-client/build.gradle
+++ b/libraries/rest-client/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 REST Client Library provides a client library for the Apache Polygene\u2122 REST Server library"
 
 jar { manifest { name = "Apache Polygene\u2122 Library - REST Client" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/rest-common/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest-common/build.gradle b/libraries/rest-common/build.gradle
index 4d5616e..7b8f0d8 100644
--- a/libraries/rest-common/build.gradle
+++ b/libraries/rest-common/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 REST Library provides various Restlet resources that can be used to expose Apache Polygene\u2122 entities and indexes. Mostly for debugging."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - REST" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/rest-server/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest-server/build.gradle b/libraries/rest-server/build.gradle
index 4e186aa..9a2a472 100644
--- a/libraries/rest-server/build.gradle
+++ b/libraries/rest-server/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 REST Server Library provides a server component for building REST API's based on usecases"
 
 jar { manifest { name = "Apache Polygene\u2122 Library - REST server" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/rest/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/rest/build.gradle b/libraries/rest/build.gradle
index 109d7f3..27d8532 100644
--- a/libraries/rest/build.gradle
+++ b/libraries/rest/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 REST Library provides various Restlet resources that can be used to expose Apache Polygene\u2122 entities and indexes. Mostly for debugging."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - REST" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/restlet/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/restlet/build.gradle b/libraries/restlet/build.gradle
index f8f6a6e..35cd1d9 100644
--- a/libraries/restlet/build.gradle
+++ b/libraries/restlet/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-library'
 
 description = "Apache Polygene\u2122 Restlet Library provides automatic CRUD resources as well as custom resources integrated to Polygene."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/scripting/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/scripting/build.gradle b/libraries/scripting/build.gradle
index 9e61c0a..e1a1794 100644
--- a/libraries/scripting/build.gradle
+++ b/libraries/scripting/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Common Scripting Library contains common classes across scripting implementations."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Scripting - Common" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/servlet/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/servlet/build.gradle b/libraries/servlet/build.gradle
index cba7aa4..62a026e 100644
--- a/libraries/servlet/build.gradle
+++ b/libraries/servlet/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Servlet Library provides integration of Apache Polygene\u2122 into web applications."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Servlet" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/shiro-core/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/shiro-core/build.gradle b/libraries/shiro-core/build.gradle
index eb6ac1a..e554474 100644
--- a/libraries/shiro-core/build.gradle
+++ b/libraries/shiro-core/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Shiro Library integrates Apache Shiro security framework into Apache Polygene\u2122."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Shiro Core" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/shiro-web/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/shiro-web/build.gradle b/libraries/shiro-web/build.gradle
index e8048e1..3bcf9c6 100644
--- a/libraries/shiro-web/build.gradle
+++ b/libraries/shiro-web/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Shiro Library integrates Apache Shiro security framework into Apache Polygene\u2122. This bundle provides Servlet support."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Shiro Web" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/spring/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/spring/build.gradle b/libraries/spring/build.gradle
index 7f0062a..9d70d05 100644
--- a/libraries/spring/build.gradle
+++ b/libraries/spring/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 Spring Library allows for tight integration of Spring Framework and Apache Polygene\u2122 applications."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - Spring" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/sql-bonecp/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/sql-bonecp/build.gradle b/libraries/sql-bonecp/build.gradle
index 66db83b..013b74f 100644
--- a/libraries/sql-bonecp/build.gradle
+++ b/libraries/sql-bonecp/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 SQL BoneCP Library provides BoneCP support."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - SQL BoneCP" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/sql-dbcp/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/sql-dbcp/build.gradle b/libraries/sql-dbcp/build.gradle
index 73c9cce..2ac3f7d 100644
--- a/libraries/sql-dbcp/build.gradle
+++ b/libraries/sql-dbcp/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 SQL DBCP Library provides DBCP support."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - SQL DBCP" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/sql-liquibase/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/sql-liquibase/build.gradle b/libraries/sql-liquibase/build.gradle
index 55f6789..319cad1 100644
--- a/libraries/sql-liquibase/build.gradle
+++ b/libraries/sql-liquibase/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 SQL Liquibase Library provides Liquibase support."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - SQL Liquibase" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/sql/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/sql/build.gradle b/libraries/sql/build.gradle
index 9e52d2d..57aa378 100644
--- a/libraries/sql/build.gradle
+++ b/libraries/sql/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 SQL Library provides SQL support."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - SQL" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/uid/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/uid/build.gradle b/libraries/uid/build.gradle
index 807703b..5ff2621 100644
--- a/libraries/uid/build.gradle
+++ b/libraries/uid/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 UID Library contains various Identity generation services."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - UID" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/libraries/uowfile/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/uowfile/build.gradle b/libraries/uowfile/build.gradle
index 0a5524a..7e29df3 100644
--- a/libraries/uowfile/build.gradle
+++ b/libraries/uowfile/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-library'
+
 description = "Apache Polygene\u2122 UoWFile Library provides file operations binding to UoWs."
 
 jar { manifest { name = "Apache Polygene\u2122 Library - UoWFile" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/manual/build.gradle
----------------------------------------------------------------------
diff --git a/manual/build.gradle b/manual/build.gradle
index fed0e29..e76f7cf 100644
--- a/manual/build.gradle
+++ b/manual/build.gradle
@@ -15,9 +15,8 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-import org.apache.polygene.gradle.doc.ManualPlugin
 
-apply plugin: ManualPlugin
+apply plugin: 'polygene-manual'
 
 description = "Apache Polygene\u2122 Manuals and Website."
 
@@ -27,6 +26,6 @@ dependencies {
   compile polygene.library( 'logging' )
 
   runtime polygene.core.runtime
-  runtime( libraries.logback )
+  runtime libraries.logback
 }
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/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 0d4240c..04edd91 100644
--- a/manual/src/docs/tutorials/howto-build-system.txt
+++ b/manual/src/docs/tutorials/howto-build-system.txt
@@ -20,7 +20,7 @@
 [[build-system,Build System]]
 = Polygene\u2122 Build System =
 
-This tutorial is intended for developpers who want to build the Polygene\u2122 SDK themselves.
+This tutorial is intended for developers who want to build the Polygene\u2122 SDK themselves.
 It describe the Polygene\u2122 SDK Build System from compilation to publication of artifacts for consumption by other
 applications.
 
@@ -45,71 +45,94 @@ Build System configuration is done through Gradle properties.
 This can be done in many ways, see
 http://gradle.org/docs/current/userguide/tutorial_this_and_that.html#sec:gradle_properties_and_system_properties[Gradle properties and system properties].
 
+== Main tasks ==
 
-== Root project tasks ==
+The Polygene\u2122 SDK project has tasks that work with the whole SDK.
 
-The Polygene\u2122 SDK root project has tasks that work with the whole SDK.
-The default build, triggered when running gradle without any command line arguments, compiles the code and run the
-tests, but nothing else.
-A quick way to check that nothing broke.
-
-Here are some of theses global tasks we defined:
-
-goOffline::
+downloadDependencies::
 +
 --
 Resolve, download and cache all needed dependencies.
 Useful to go offline.
 --
 
-clean::
+./gradlew::
++
+--
+The default build, triggered when running gradle without any command line arguments, compiles the code and run the
+tests, but nothing else. A quick way to check that nothing broke.
+--
+
+./gradlew clean::
 +
 --
 Clean up of all build output and restore the code base to a fresh state.
 --
 
-check::
+./gradlew assemble::
++
+--
+Produces all the archives, javadocs, manuals and website content.
+Global output is generated into +distributions/build+.
+--
+
+./gradlew check::
 +
 --
 Run the tests and other checks like checkstyle.
-Reports are generated in +build/reports+.
+Global reports are generated in +reports/build/reports+.
 --
 
-install::
+./gradlew build::
 +
 --
-Is roughly the same as Maven's install goal.
-It produces the test reports, javadocs and installs all the Jars into the local disk repository, for consumption
-by other applications.
+Equivalent to `./gradlew assemble check`
 --
 
-buildAll::
+./gradlew checkDistributions::
 +
 --
-Produces all the archives, javadocs, manuals and website content.
-The output is generated to +build+.
+Run global checks against the assembled distributions.
+Can take a while.
 --
 
-release::
+install::
 +
 --
-Uploads the release artifacts to the distribution servers and creates the release output into the
-+build/distributions+ directory.
+Is roughly the same as Maven's install goal.
+It produces the test reports, javadocs and installs all the Jars into the local disk repository, for consumption
+by other applications.
 --
 
 
-== Submodules tasks ==
+== Other tasks ==
 
 In addition to that, some submodules have specific tasks.
-To see all available tasks on a submodule issue the following command:
+To see all available tasks, issue the following command:
+
+[source,bash]
+----
+./gradlew tasks
+----
+
+All available tasks from all modules of the SDK are shown.
+If you want to narrow your exploration to submodules use the following:
 
 [source,bash]
 ----
-./gradlew -p tests/performance tasks
+./gradlew :test:performance:tasks
+./gradlew :release:tasks
 ----
 
-This example will output all gradle tasks available in the +tests/performance+ module where you should find
-the +performanceTest+ task that run the Polygene\u2122 performance test suite.
+These examples will respectively output all gradle tasks available in the +:tests:performance+ module where you should find
+the +performanceTest+ task that runs the Polygene\u2122 performance test suite and the +:release+ module tasks.
+
++tasks+ itself is a task, in the same way we can target module(s) with tasks, e.g.:
+
+[source,bash]
+----
+./gradlew :core:check :libraries:alarm:check
+----
 
 
 == Versions ==
@@ -127,11 +150,12 @@ To build a particular version, you specify a +version+ property on the command-l
 -----------
 
 If a +version+ property is not defined, the build system will refuse to make a release and upload.
+It will also try hard to do less and not get in your way.
 
 
 == Tests ==
 
-NOTE: See the https://builds.apache.org/view/S-Z/view/Polygene/[Polygene\u2122 Continuous Integration] for current tests results
+NOTE: See the https://builds.apache.org/view/P/view/Polygene/[Polygene\u2122 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.
@@ -141,7 +165,7 @@ You'll find theses tests across the whole SDK.
 Among unit tests, some require an external service to be run.
 For example, the MongoDB EntityStore extension requires an actual MongoDB server to run its tests.
 
-NOTE: The HTML test reports generated by Gradle show skipped tests.
+NOTE: The HTML test reports generated by Gradle shows skipped tests.
 
 All thoses tests should be part of the default build and check if the service is available at its default location
 on +localhost+ and skip if not.
@@ -165,7 +189,7 @@ They can be run with the following Gradle command:
 
 [source,bash]
 -----------
-./gradlew :org.apache.polygene.tests:org.apache.polygene.test.performance:performanceTest
+./gradlew :tests:performance:performanceTest
 -----------
 
 Results will then be available in the test reports.
@@ -177,7 +201,7 @@ The build generates a documentation minisite:
 
 [source,bash]
 -----------
-./gradlew -p manual website
+./gradlew :manual:assemble
 -----------
 
 Output is in `~/manual/build/docs/website`.

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/release/build.gradle
----------------------------------------------------------------------
diff --git a/release/build.gradle b/release/build.gradle
new file mode 100644
index 0000000..8675f08
--- /dev/null
+++ b/release/build.gradle
@@ -0,0 +1,2 @@
+
+apply plugin: 'polygene-release'

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/reports/build.gradle
----------------------------------------------------------------------
diff --git a/reports/build.gradle b/reports/build.gradle
new file mode 100644
index 0000000..6eea3d8
--- /dev/null
+++ b/reports/build.gradle
@@ -0,0 +1,2 @@
+
+apply plugin: 'polygene-reports'

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/reports/src/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/reports/src/javadoc/overview.html b/reports/src/javadoc/overview.html
new file mode 100644
index 0000000..9530721
--- /dev/null
+++ b/reports/src/javadoc/overview.html
@@ -0,0 +1,26 @@
+<!--
+  ~  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>
+        <h3>Welcome to the Apache Polygene\u2122 (Java Edition) SDK Javadoc.</h3>
+        <p>Apache Polygene\u2122 is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD.</p>
+        <p><a href="https://polygene.apache.org" target="_blank">polygene.apache.org</a></p>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/samples/dci/build.gradle
----------------------------------------------------------------------
diff --git a/samples/dci/build.gradle b/samples/dci/build.gradle
index c5e97c9..6226cc6 100644
--- a/samples/dci/build.gradle
+++ b/samples/dci/build.gradle
@@ -18,6 +18,7 @@
  *
  */
 
+apply plugin: 'polygene-sample'
 
 description = "Sample of how DCI (Data, Context & Interaction) pattern is implemented with Apache Polygene\u2122."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/samples/forum/build.gradle
----------------------------------------------------------------------
diff --git a/samples/forum/build.gradle b/samples/forum/build.gradle
index 2cde092..7986214 100644
--- a/samples/forum/build.gradle
+++ b/samples/forum/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-sample'
 
 description = "Sample of how to build a web forum"
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/samples/rental/build.gradle
----------------------------------------------------------------------
diff --git a/samples/rental/build.gradle b/samples/rental/build.gradle
index 88adfc4..fca63d8 100644
--- a/samples/rental/build.gradle
+++ b/samples/rental/build.gradle
@@ -18,10 +18,9 @@
  *
  */
 
-plugins {
-  id 'war'
-  id "org.akhikhl.gretty" version "1.4.0"
-}
+apply plugin: 'polygene-sample'
+apply plugin: 'war'
+apply plugin: 'jetty'
 
 description = "Sample of implementation of a Car Rental application."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/samples/sql-support/build.gradle
----------------------------------------------------------------------
diff --git a/samples/sql-support/build.gradle b/samples/sql-support/build.gradle
index 6e3c607..e0c3f21 100644
--- a/samples/sql-support/build.gradle
+++ b/samples/sql-support/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-sample'
 
 description = "SQL Support Sample."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/samples/swing/build.gradle
----------------------------------------------------------------------
diff --git a/samples/swing/build.gradle b/samples/swing/build.gradle
index 2bf5c10..fa69db5 100644
--- a/samples/swing/build.gradle
+++ b/samples/swing/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-sample'
 
 description = "Sample of how to use the Swing bindings."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/settings.gradle
----------------------------------------------------------------------
diff --git a/settings.gradle b/settings.gradle
index d789e08..9044fd6 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -16,6 +16,8 @@
  *  limitations under the License.
  */
 
+apply plugin: 'polygene-settings'
+
 rootProject.name = 'polygene-java'
 
 include 'core:api',
@@ -77,16 +79,12 @@ include 'core:api',
         'extensions:valueserialization-orgjson',
         'extensions:valueserialization-jackson',
         'extensions:valueserialization-stax',
-        'manual',
-        'samples:dci',
-        'samples:forum',
-        'samples:rental',
-        'samples:sql-support',
-        'samples:swing',
         'tools:model-detail',
         'tools:envisage',
         'tools:shell',
 //        'tools:qidea',
+        'tests:regression',
+        'tests:performance',
         'tutorials:cargo',
         'tutorials:composites',
         'tutorials:hello',
@@ -96,5 +94,10 @@ include 'core:api',
         'tutorials:introduction:thirtyminutes',
 //        'tutorials:introduction:twohours',
         'tutorials:services',
-        'tests:regression',
-        'tests:performance'
+        'samples:dci',
+        'samples:forum',
+        'samples:rental',
+        'samples:sql-support',
+        'samples:swing'
+
+include 'manual', 'reports', 'distributions', 'release'

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/src/bin-dist/NOTICE.txt
----------------------------------------------------------------------
diff --git a/src/bin-dist/NOTICE.txt b/src/bin-dist/NOTICE.txt
deleted file mode 100644
index 998fdf8..0000000
--- a/src/bin-dist/NOTICE.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Apache Polygene\u2122 (Java Edition) SDK Binary Distribution
-Copyright 2015 The Apache Software Foundation.
-
-This product includes software developed at
-The Apache Software Foundation (http://www.apache.org/).

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/src/bin-dist/README.txt
----------------------------------------------------------------------
diff --git a/src/bin-dist/README.txt b/src/bin-dist/README.txt
deleted file mode 100644
index b2d104d..0000000
--- a/src/bin-dist/README.txt
+++ /dev/null
@@ -1,50 +0,0 @@
-
-Welcome to the world of Apache Polygene
-   - Composite Oriented Programming on the Java platform.
-
-
-This Apache Polygene\u2122 Binary Distribution contains everything you need to
-create Polygene\u2122 applications.
-
-
-Polygene\u2122 (then Polygene\u2122) started in 2007, and is still in heavy development
-at the Apache Software Foundation. We would like
-developers around the world to participate in the advancement of this
-cool, new and challenging technology. We are especially interested in
-people willing to help improve the SDK, samples, tutorials, documentation
-and other supporting material.
-
-Please see https://polygene.apache.org for more information.
-
-
-Licensing
----------
-All Apache Polygene\u2122 code is licensed under an Apache License.
-
-Third-Party Dependencies may be licensed under other terms. The only
-required dependencies are SLF4J (MIT Licence), ASM (BSD Licence) and
-Joda-Time (Apache Licence).
-
-Finally, Polygene\u2122 TestSupport depends on JUnit 4.x and its dependencies, which
-is also not included in the SDK itself, as it is present among most Java
-developers.
-
-
-Dependencies not included
--------------------------
-The binary distributions contains Polygene\u2122 artifacts only to keep the download
-size small. Each Polygene\u2122 artifact comes with a file prefixed ..-runtime-deps.txt
-that contains the list of its dependencies. Moreover, at the binary
-distribution's root, you'll find both Maven (go-offline.pom) and Gradle
-(go-offline.gradle) build files whoses sole purpose is to easily download all
-needed dependencies jars. Instructions are given into theses files.
-
-If you prefer to use a dependency management system, go to:
-https://polygene.apache.org/java/latest/howto-depend-on-polygene.html
-
-
-Thank you for trying out Apache Polygene\u2122 and Composite Oriented Programming.
-
-
--- Apache Polygene\u2122 Team
-

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/src/javadoc/overview.html
----------------------------------------------------------------------
diff --git a/src/javadoc/overview.html b/src/javadoc/overview.html
deleted file mode 100644
index 9530721..0000000
--- a/src/javadoc/overview.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--
-  ~  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>
-        <h3>Welcome to the Apache Polygene\u2122 (Java Edition) SDK Javadoc.</h3>
-        <p>Apache Polygene\u2122 is a framework for domain centric application development, including evolved concepts from AOP, DI and DDD.</p>
-        <p><a href="https://polygene.apache.org" target="_blank">polygene.apache.org</a></p>
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/performance/build.gradle
----------------------------------------------------------------------
diff --git a/tests/performance/build.gradle b/tests/performance/build.gradle
index 8124869..a8613ad 100644
--- a/tests/performance/build.gradle
+++ b/tests/performance/build.gradle
@@ -15,7 +15,9 @@
  *  See the License for the specific language governing permissions and
  *  limitations under the License.
  */
-import org.apache.polygene.gradle.performance.PerformanceTestsPlugin
+import org.apache.polygene.gradle.structure.tests.PerformanceTestsPlugin
+
+apply plugin: 'polygene-test'
 
 description = "Apache Polygene\u2122 Performance Test Suite."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/regression/build.gradle
----------------------------------------------------------------------
diff --git a/tests/regression/build.gradle b/tests/regression/build.gradle
index 895be0f..3db1de8 100644
--- a/tests/regression/build.gradle
+++ b/tests/regression/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-test'
+
 description = "Apache Polygene\u2122 Regression Tests are added by community members who find bugs and typically reported via Jira issues. These tests are not run as part of the normal build, but is accessible from './gradlew regression' to allow builds to still work."
 
 jar { manifest { name = "Apache Polygene\u2122 Tests - Regression" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/regression/src/main/java/org/apache/polygene/test/regression/ConcernsOnPropertyTest.java
----------------------------------------------------------------------
diff --git a/tests/regression/src/main/java/org/apache/polygene/test/regression/ConcernsOnPropertyTest.java b/tests/regression/src/main/java/org/apache/polygene/test/regression/ConcernsOnPropertyTest.java
new file mode 100644
index 0000000..7ecdfd5
--- /dev/null
+++ b/tests/regression/src/main/java/org/apache/polygene/test/regression/ConcernsOnPropertyTest.java
@@ -0,0 +1,115 @@
+/*
+ *  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.apache.polygene.test.regression;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import org.junit.Assert;
+import org.junit.Test;
+import org.apache.polygene.api.composite.TransientBuilder;
+import org.apache.polygene.api.composite.TransientComposite;
+import org.apache.polygene.api.concern.ConcernOf;
+import org.apache.polygene.api.concern.Concerns;
+import org.apache.polygene.api.property.Property;
+import org.apache.polygene.api.sideeffect.SideEffectOf;
+import org.apache.polygene.api.sideeffect.SideEffects;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.test.AbstractPolygeneTest;
+
+
+public class ConcernsOnPropertyTest
+    extends AbstractPolygeneTest
+{
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.transients( CarComposite.class );
+    }
+
+    @Test
+    public void whenConcernOnPropertyThenConcernIsInvoked()
+    {
+        TransientBuilder<Car> builder = transientBuilderFactory.newTransientBuilder( Car.class );
+        Car prototype = builder.prototypeFor( Car.class );
+        prototype.manufacturer().set( "Volvo" );
+        Car car = builder.newInstance();
+        Assert.assertEquals( "Concern on Property methods.", "Simon says: Volvo", car.manufacturer().get() );
+    }
+
+    public interface CarComposite
+        extends Car, TransientComposite
+    {
+    }
+
+    public interface Car
+    {
+        Manufacturer manufacturer();
+    }
+
+    @SideEffects( SystemOutSideEffect.class )
+    @Concerns( SimonSays.class )
+    public interface Manufacturer
+        extends Property<String>
+    {
+    }
+
+    public class SimonSays
+        extends ConcernOf<InvocationHandler>
+        implements InvocationHandler
+    {
+
+        public Object invoke( Object o, Method method, Object[] objects )
+            throws Throwable
+        {
+            Object result = next.invoke( o, method, objects );
+            if( result instanceof String )
+            {
+                return "Simon says: " + result;
+            }
+            return result;
+        }
+    }
+
+    public class SystemOutSideEffect
+        extends SideEffectOf<InvocationHandler>
+        implements InvocationHandler
+    {
+
+        public Object invoke( Object o, Method method, Object[] objects )
+            throws Throwable
+        {
+            try
+            {
+                Object result = this.result.invoke( o, method, objects );
+                if( result instanceof String )
+                {
+                    System.out.println( "[INFO] " + result );
+                }
+                return result;
+            }
+            catch( Exception e )
+            {
+                e.printStackTrace( System.out );
+                throw e;
+            }
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/regression/src/main/java/org/apache/polygene/test/regression/Regressions.java
----------------------------------------------------------------------
diff --git a/tests/regression/src/main/java/org/apache/polygene/test/regression/Regressions.java b/tests/regression/src/main/java/org/apache/polygene/test/regression/Regressions.java
deleted file mode 100644
index 169017b..0000000
--- a/tests/regression/src/main/java/org/apache/polygene/test/regression/Regressions.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- *  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.apache.polygene.test.regression;
-
-/**
- * Placeholder class to prevent the build to fail when no source code.
- */
-public final class Regressions
-{
-    private Regressions()
-    {
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/regression/src/main/java/org/apache/polygene/test/regression/niclas2/ConcernsOnPropertyTest.java
----------------------------------------------------------------------
diff --git a/tests/regression/src/main/java/org/apache/polygene/test/regression/niclas2/ConcernsOnPropertyTest.java b/tests/regression/src/main/java/org/apache/polygene/test/regression/niclas2/ConcernsOnPropertyTest.java
deleted file mode 100644
index 1875a1e..0000000
--- a/tests/regression/src/main/java/org/apache/polygene/test/regression/niclas2/ConcernsOnPropertyTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- *  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.apache.polygene.test.regression.niclas2;
-
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import org.junit.Assert;
-import org.junit.Test;
-import org.apache.polygene.api.composite.TransientBuilder;
-import org.apache.polygene.api.composite.TransientComposite;
-import org.apache.polygene.api.concern.ConcernOf;
-import org.apache.polygene.api.concern.Concerns;
-import org.apache.polygene.api.property.Property;
-import org.apache.polygene.api.sideeffect.SideEffectOf;
-import org.apache.polygene.api.sideeffect.SideEffects;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.test.AbstractPolygeneTest;
-
-
-public class ConcernsOnPropertyTest
-    extends AbstractPolygeneTest
-{
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.transients( CarComposite.class );
-    }
-
-    @Test
-    public void whenConcernOnPropertyThenConcernIsInvoked()
-    {
-        TransientBuilder<Car> builder = transientBuilderFactory.newTransientBuilder( Car.class );
-        Car prototype = builder.prototypeFor( Car.class );
-        prototype.manufacturer().set( "Volvo" );
-        Car car = builder.newInstance();
-        Assert.assertEquals( "Concern on Property methods.", "Simon says: Volvo", car.manufacturer().get() );
-    }
-
-    public interface CarComposite
-        extends Car, TransientComposite
-    {
-    }
-
-    public interface Car
-    {
-        Manufacturer manufacturer();
-    }
-
-    @SideEffects( SystemOutSideEffect.class )
-    @Concerns( SimonSays.class )
-    public interface Manufacturer
-        extends Property<String>
-    {
-    }
-
-    public class SimonSays
-        extends ConcernOf<InvocationHandler>
-        implements InvocationHandler
-    {
-
-        public Object invoke( Object o, Method method, Object[] objects )
-            throws Throwable
-        {
-            Object result = next.invoke( o, method, objects );
-            if( result instanceof String )
-            {
-                return "Simon says: " + result;
-            }
-            return result;
-        }
-    }
-
-    public class SystemOutSideEffect
-        extends SideEffectOf<InvocationHandler>
-        implements InvocationHandler
-    {
-
-        public Object invoke( Object o, Method method, Object[] objects )
-            throws Throwable
-        {
-            try
-            {
-                Object result = this.result.invoke( o, method, objects );
-                if( result instanceof String )
-                {
-                    System.out.println( "[INFO] " + result );
-                }
-                return result;
-            }
-            catch( Exception e )
-            {
-                e.printStackTrace( System.out );
-                throw e;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tests/unit/README.txt
----------------------------------------------------------------------
diff --git a/tests/unit/README.txt b/tests/unit/README.txt
deleted file mode 100644
index f3e97da..0000000
--- a/tests/unit/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-
-You will not find Unit Tests here.
-
-By the nature of unit tests, they are located near the actual code
-under src/test/java in each code source tree.
-
-

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tools/envisage/build.gradle
----------------------------------------------------------------------
diff --git a/tools/envisage/build.gradle b/tools/envisage/build.gradle
index 1ed01f5..edfac7a 100644
--- a/tools/envisage/build.gradle
+++ b/tools/envisage/build.gradle
@@ -1,5 +1,3 @@
-import org.apache.polygene.gradle.TaskGroups
-
 /*
  *  Licensed to the Apache Software Foundation (ASF) under one
  *  or more contributor license agreements.  See the NOTICE file
@@ -19,6 +17,9 @@ import org.apache.polygene.gradle.TaskGroups
  *
  *
  */
+import org.apache.polygene.gradle.TaskGroups
+
+apply plugin: 'polygene-tool'
 
 description = "Visualizer of a Apache Polygene\u2122 Application Structure."
 

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tools/model-detail/build.gradle
----------------------------------------------------------------------
diff --git a/tools/model-detail/build.gradle b/tools/model-detail/build.gradle
index 65ac7b1..a97d179 100644
--- a/tools/model-detail/build.gradle
+++ b/tools/model-detail/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tool'
+
 description = "Detailled Model of a Apache Polygene\u2122 Application Structure."
 
 jar { manifest { name = "Apache Polygene\u2122 Model Detail" }}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tools/qidea/build.gradle
----------------------------------------------------------------------
diff --git a/tools/qidea/build.gradle b/tools/qidea/build.gradle
index 2383515..1be3352 100644
--- a/tools/qidea/build.gradle
+++ b/tools/qidea/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tool'
+
 description = "IntelliJ IDEA Plugin for Apache Polygene\u2122 development."
 
 jar { manifest { name = "Apache Polygene\u2122 IDEA plugin" }}

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tools/shell/build.gradle
----------------------------------------------------------------------
diff --git a/tools/shell/build.gradle b/tools/shell/build.gradle
index 49397cf..1ec559f 100644
--- a/tools/shell/build.gradle
+++ b/tools/shell/build.gradle
@@ -18,6 +18,7 @@
  *
  */
 
+apply plugin: 'polygene-tool'
 apply plugin: 'application'
 
 description = "Command line tools for building Apache Polygene\u2122 applications."
@@ -30,6 +31,9 @@ jar {
   }
 }
 
+[ distZip, distTar ].each { dist -> dist.classifier = 'bin' }
+distTar.compression = Compression.GZIP
+
 dependencies {
   testRuntime libraries.logback
 }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tools/shell/src/dist/bin/polygene-boot
----------------------------------------------------------------------
diff --git a/tools/shell/src/dist/bin/polygene-boot b/tools/shell/src/dist/bin/polygene-boot
index 5c0306a..4fcc7d5 100644
--- a/tools/shell/src/dist/bin/polygene-boot
+++ b/tools/shell/src/dist/bin/polygene-boot
@@ -63,7 +63,7 @@ else
 
     # Figure out if we are executing from within the SDK or the QuickStart
     if [ -f libs/$JARNAME ] ; then
-        JARFILE=libs/$JARNAME
+        JARFILE=libs/org/apache/polygene/tools/org.apache.polygene.tool.shell/@version@/$JARNAME
     else
         if [ -f bin/$JARNAME ] ; then
             JARFILE=bin/$JARNAME

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/cargo/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/cargo/build.gradle b/tutorials/cargo/build.gradle
index ca2479f..1cbc50a 100644
--- a/tutorials/cargo/build.gradle
+++ b/tutorials/cargo/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "Tutorial on how to convert existing application into a Apache Polygene\u2122 one, step-by-step."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - Cargo" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/composites/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/composites/build.gradle b/tutorials/composites/build.gradle
index 55b7a4f..ca1f6ee 100644
--- a/tutorials/composites/build.gradle
+++ b/tutorials/composites/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "Basic tutorial on how to covert a simple 'Hello World' application to Apache Polygene\u2122, using more and more features for each step."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - Composites" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/hello/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/hello/build.gradle b/tutorials/hello/build.gradle
index ef714da..86e2fcc 100644
--- a/tutorials/hello/build.gradle
+++ b/tutorials/hello/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "Basic tutorial on how to covert a simple 'Hello World' application to Apache Polygene\u2122, using more and more features for each step."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - Composites" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/introduction/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/introduction/build.gradle b/tutorials/introduction/build.gradle
index 35e231e..665d16f 100644
--- a/tutorials/introduction/build.gradle
+++ b/tutorials/introduction/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "An Introduction to Apache Polygene\u2122 in its simplest form."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - Introduction" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/introduction/tenminutes/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/introduction/tenminutes/build.gradle b/tutorials/introduction/tenminutes/build.gradle
index 3cf3389..60092ea 100644
--- a/tutorials/introduction/tenminutes/build.gradle
+++ b/tutorials/introduction/tenminutes/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "A 10-minute Introduction Tutorial to Apache Polygene\u2122 in its simplest form."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - 10 minute Introduction" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/introduction/thirtyminutes/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/introduction/thirtyminutes/build.gradle b/tutorials/introduction/thirtyminutes/build.gradle
index dc0eeba..ed2acc7 100644
--- a/tutorials/introduction/thirtyminutes/build.gradle
+++ b/tutorials/introduction/thirtyminutes/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "A 30-minute Introduction Tutorial to Apache Polygene\u2122 in its simplest form."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - 30 minute Introduction" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/introduction/twominutes/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/introduction/twominutes/build.gradle b/tutorials/introduction/twominutes/build.gradle
index f953cd0..1158065 100644
--- a/tutorials/introduction/twominutes/build.gradle
+++ b/tutorials/introduction/twominutes/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "A 2-minute Introduction Tutorial to Apache Polygene\u2122 in its simplest form."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - 2 minute Introduction" } }

http://git-wip-us.apache.org/repos/asf/zest-java/blob/de73010f/tutorials/services/build.gradle
----------------------------------------------------------------------
diff --git a/tutorials/services/build.gradle b/tutorials/services/build.gradle
index 116af6f..c863a54 100644
--- a/tutorials/services/build.gradle
+++ b/tutorials/services/build.gradle
@@ -18,6 +18,8 @@
  *
  */
 
+apply plugin: 'polygene-tutorial'
+
 description = "Tutorial on how to use Apache Polygene\u2122 service concept."
 
 jar { manifest { name = "Apache Polygene\u2122 Tutorial - Services" } }