You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@polygene.apache.org by ni...@apache.org on 2017/03/19 09:03:40 UTC

[1/6] polygene-java git commit: Introducing another level of questions and consequences, the 'applicationm type'.

Repository: polygene-java
Updated Branches:
  refs/heads/develop ed4cca574 -> cfd38626c


Introducing another level of questions and consequences, the 'applicationm type'.


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

Branch: refs/heads/develop
Commit: ab83f189725082cdb476d149f4ee41a69d378f52
Parents: 01949a6
Author: niclas <ni...@spicter.com>
Authored: Tue Mar 14 07:16:26 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Tue Mar 14 07:16:26 2017 +0800

----------------------------------------------------------------------
 tools/generator-polygene/app/index.js           | 20 ++-------
 .../app/templates/CommandLineApplication/app.js | 14 ++++++
 .../RestApiModule/web.xml.tmpl                  | 46 --------------------
 .../InfrastructureLayer/CachingModule/module.js |  1 +
 .../app/templates/RestAPIApplication/app.js     | 19 ++++++++
 .../templates/RestAPIApplication/web.xml.tmpl   | 46 ++++++++++++++++++++
 .../CommandLineModule/module.js                 | 12 +++++
 .../templates/UserInterfaceLayer/bootstrap.tmpl | 41 +++++++++++++++++
 .../app/templates/UserInterfaceLayer/layer.js   | 10 +++++
 .../app/templates/buildtool/gradle-app.tmpl     |  9 ++--
 .../app/templates/buildtool/settings.tmpl       |  7 ++-
 11 files changed, 156 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/index.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/index.js b/tools/generator-polygene/app/index.js
index b1a12c1..30186f4 100644
--- a/tools/generator-polygene/app/index.js
+++ b/tools/generator-polygene/app/index.js
@@ -67,7 +67,6 @@ module.exports = generators.Base.extend(
                 polygene.caching = polygene.caching ? polygene.caching : null;
                 polygene.serialization = polygene.serialization ? polygene.serialization : null;
             }
-            assignFunctions(polygene);
         },
 
         prompting: function () {
@@ -198,30 +197,17 @@ module.exports = generators.Base.extend(
                         this.log('Serialization:', answers.serialization);
                         this.log('Features:', answers.features);
                         polygene = answers;
-                        // polygene.name = answers.name;
-                        // polygene.entitystore = answers.entitystore;
-                        // polygene.indexing = answers.indexing;
-                        // polygene.caching = answers.caching;
-                        // polygene.serialization = answers.serialization;
-                        // polygene.metrics = answers.metrics;
-                        // polygene.packageName = answers.packageName;
-                        // polygene.features = answers.features;
                     }.bind(this)
                 );
             }
         },
 
         writing: function () {
+            assignFunctions(polygene);
             polygene.javaPackageDir = polygene.packageName.replace(/[.]/g, '/');
             polygene.ctx = this;
-            fs.readdir(__dirname + "/templates", function (err, files) {
-                files.forEach(function (directory) {
-                    if (directory.endsWith("Layer")) {
-                        var layer = require(__dirname + '/templates/' + directory + '/layer.js');
-                        layer.write(polygene);
-                    }
-                });
-            });
+            var app = require(__dirname + '/templates/' + polygene.applicationtype.replace(/ /g, '') + 'Application/app.js');
+            app.write(polygene);
             var buildToolChain = require(__dirname + '/templates/buildtool/build.js');
             buildToolChain.write(polygene);
             if (this.options.export) {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/CommandLineApplication/app.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/CommandLineApplication/app.js b/tools/generator-polygene/app/templates/CommandLineApplication/app.js
new file mode 100644
index 0000000..83648f6
--- /dev/null
+++ b/tools/generator-polygene/app/templates/CommandLineApplication/app.js
@@ -0,0 +1,14 @@
+module.exports = {
+
+    write: function (p) {
+        copyLayer("Configuration");
+        copyLayer("Infrastructure");
+        copyLayer("Domain");
+        copyLayer("UserInterface");
+    }
+};
+
+function copyLayer(layerName) {
+    var layer = require(__dirname + '/../' + layerName + 'Layer/layer.js');
+    layer.write(polygene);
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/ConnectivityLayer/RestApiModule/web.xml.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/ConnectivityLayer/RestApiModule/web.xml.tmpl b/tools/generator-polygene/app/templates/ConnectivityLayer/RestApiModule/web.xml.tmpl
deleted file mode 100644
index d650933..0000000
--- a/tools/generator-polygene/app/templates/ConnectivityLayer/RestApiModule/web.xml.tmpl
+++ /dev/null
@@ -1,46 +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.
-  ~
-  ~
-%><?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/javaee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
-         version="2.5">
-
-    <display-name><%= polygene.name %></display-name>
-<% if( polygene.hasFeature( "security" ) { %>
-    <listener>
-        <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
-    </listener>
-<% } %>
-<% if( polygene.hasFeature( "security" ) { %>
-    <filter>
-        <filter-name>ShiroFilter</filter-name>
-        <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
-    </filter>
-<% } %>
-<% if( polygene.hasFeature( "security" ) { %>
-    <-- Filter all web requests.  This filter mapping is typically declared
-        before all others to ensure any other filters are secured as well: -->
-    <filter-mapping>
-        <filter-name>ShiroFilter</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-<% } %>
-
-</web-app>

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/InfrastructureLayer/CachingModule/module.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/InfrastructureLayer/CachingModule/module.js b/tools/generator-polygene/app/templates/InfrastructureLayer/CachingModule/module.js
index 474899c..fdc99b0 100644
--- a/tools/generator-polygene/app/templates/InfrastructureLayer/CachingModule/module.js
+++ b/tools/generator-polygene/app/templates/InfrastructureLayer/CachingModule/module.js
@@ -1,3 +1,4 @@
+
 module.exports = {
 
     write: function (p) {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/RestAPIApplication/app.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/RestAPIApplication/app.js b/tools/generator-polygene/app/templates/RestAPIApplication/app.js
new file mode 100644
index 0000000..0972b82
--- /dev/null
+++ b/tools/generator-polygene/app/templates/RestAPIApplication/app.js
@@ -0,0 +1,19 @@
+
+module.exports = {
+
+    write: function (p) {
+        copyLayer(p, "Configuration");
+        copyLayer(p, "Infrastructure");
+        copyLayer(p, "Domain");
+        copyLayer(p, "Connectivity");
+
+        p.copyTemplate(p.ctx,
+            'RestAPIApplication/web.xml.tmpl',
+            'app/src/main/web/WEB-INF/web.xml');
+    }
+};
+
+function copyLayer( p, layerName ) {
+    var layer = require(__dirname + '/../' + layerName + 'Layer/layer.js');
+    layer.write(p);
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/RestAPIApplication/web.xml.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/RestAPIApplication/web.xml.tmpl b/tools/generator-polygene/app/templates/RestAPIApplication/web.xml.tmpl
new file mode 100644
index 0000000..d650933
--- /dev/null
+++ b/tools/generator-polygene/app/templates/RestAPIApplication/web.xml.tmpl
@@ -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.
+  ~
+  ~
+%><?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+         version="2.5">
+
+    <display-name><%= polygene.name %></display-name>
+<% if( polygene.hasFeature( "security" ) { %>
+    <listener>
+        <listener-class>org.apache.shiro.web.env.EnvironmentLoaderListener</listener-class>
+    </listener>
+<% } %>
+<% if( polygene.hasFeature( "security" ) { %>
+    <filter>
+        <filter-name>ShiroFilter</filter-name>
+        <filter-class>org.apache.shiro.web.servlet.ShiroFilter</filter-class>
+    </filter>
+<% } %>
+<% if( polygene.hasFeature( "security" ) { %>
+    <-- Filter all web requests.  This filter mapping is typically declared
+        before all others to ensure any other filters are secured as well: -->
+    <filter-mapping>
+        <filter-name>ShiroFilter</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+<% } %>
+
+</web-app>

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/UserInterfaceLayer/CommandLineModule/module.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/UserInterfaceLayer/CommandLineModule/module.js b/tools/generator-polygene/app/templates/UserInterfaceLayer/CommandLineModule/module.js
new file mode 100644
index 0000000..3ae88a3
--- /dev/null
+++ b/tools/generator-polygene/app/templates/UserInterfaceLayer/CommandLineModule/module.js
@@ -0,0 +1,12 @@
+
+module.exports = {
+
+    write: function (p) {
+        if (p.applicationtype === 'Command Line') {
+            // NOT SUPPORTED YET!!!
+            // p.copyTemplate(p.ctx,
+            //     'UserInterfaceLayer/CommandLineModule/bootstrap.tmpl',
+            //     'bootstrap/src/main/java/' + p.javaPackageDir + '/bootstrap/ui/CommandLineModule.java');
+        }
+    }
+};

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/UserInterfaceLayer/bootstrap.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/UserInterfaceLayer/bootstrap.tmpl b/tools/generator-polygene/app/templates/UserInterfaceLayer/bootstrap.tmpl
new file mode 100644
index 0000000..dbbbb1b
--- /dev/null
+++ b/tools/generator-polygene/app/templates/UserInterfaceLayer/bootstrap.tmpl
@@ -0,0 +1,41 @@
+<%#
+ *  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 <%= polygene.packageName %>.bootstrap.ui;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayerAssembler;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+
+public class UserInterfaceLayer extends LayeredLayerAssembler
+    implements LayerAssembler
+{
+    public static String NAME;
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+<% if( polygene.applicationtype === 'Rest API' ) { %>
+        createModule( layer, CommandLineModule.class );
+<% } -%>
+        return layer;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/UserInterfaceLayer/layer.js
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/UserInterfaceLayer/layer.js b/tools/generator-polygene/app/templates/UserInterfaceLayer/layer.js
new file mode 100644
index 0000000..c060f63
--- /dev/null
+++ b/tools/generator-polygene/app/templates/UserInterfaceLayer/layer.js
@@ -0,0 +1,10 @@
+
+module.exports = {
+
+    write: function (p) {
+        p.copyTemplate(p.ctx,
+            'UserInterfaceLayer/bootstrap.tmpl',
+            'bootstrap/src/main/java/' + p.javaPackageDir + '/bootstrap/ui/UserInterfaceLayer.java');
+        p.copyModules(__dirname );
+    }
+};

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/buildtool/gradle-app.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/buildtool/gradle-app.tmpl b/tools/generator-polygene/app/templates/buildtool/gradle-app.tmpl
index 880a5e5..623ee78 100644
--- a/tools/generator-polygene/app/templates/buildtool/gradle-app.tmpl
+++ b/tools/generator-polygene/app/templates/buildtool/gradle-app.tmpl
@@ -26,14 +26,15 @@ plugins {
 dependencies {
   compile project( ":bootstrap" )
   compile project( ":model" )
-  compile project( ":rest" )
+<% if( polygene.applicationtype === 'Rest API' ) {
+%>  compile project( ":rest" )<% } %>
 
   compile "org.apache.polygene.core:org.apache.polygene.core.spi:$polygeneVersion"
   compile "org.apache.polygene.core:org.apache.polygene.core.bootstrap:$polygeneVersion"
   compile "org.apache.polygene.libraries:org.apache.polygene.library.servlet:$polygeneVersion"
-
-  compile "javax.servlet:servlet-api:2.5"
-  compile "org.restlet.jee:org.restlet:2.3.4"
+<% if( polygene.applicationtype === 'Rest API' ) {
+%>  compile "javax.servlet:servlet-api:2.5"
+  compile "org.restlet.jee:org.restlet:2.3.4"<% } %>
 
   runtime "org.apache.polygene.core:org.apache.polygene.core.runtime:$polygeneVersion"
   runtime "org.restlet.jee:org.restlet.ext.servlet:2.3.4"

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/ab83f189/tools/generator-polygene/app/templates/buildtool/settings.tmpl
----------------------------------------------------------------------
diff --git a/tools/generator-polygene/app/templates/buildtool/settings.tmpl b/tools/generator-polygene/app/templates/buildtool/settings.tmpl
index 2d8e164..9576305 100644
--- a/tools/generator-polygene/app/templates/buildtool/settings.tmpl
+++ b/tools/generator-polygene/app/templates/buildtool/settings.tmpl
@@ -18,9 +18,12 @@
  *
 -%>
 include 'app',
-        'bootstrap',
+        'bootstrap',<%
+if( polygene.applicationtype === 'Rest API' ) { %>
         'model',
-        'rest'
+        'rest'<% } else { %>
+        'model'
+<% } %>
 
 rootProject.name = '<%= polygene.name %>'
 


[2/6] polygene-java git commit: Merge remote-tracking branch 'origin/develop' into develop

Posted by ni...@apache.org.
Merge remote-tracking branch 'origin/develop' into develop


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

Branch: refs/heads/develop
Commit: 8296fddf113b2031773dd063e6052a95bb4fe6b2
Parents: ab83f18 ed4cca5
Author: niclas <ni...@spicter.com>
Authored: Tue Mar 14 07:57:39 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Tue Mar 14 07:57:39 2017 +0800

----------------------------------------------------------------------
 .../api/property/PropertyDescriptor.java        |   1 -
 .../runtime/property/PropertyModel.java         |   3 +-
 .../runtime/mixin/InitializableTest.java        | 162 +++++++++++++++++--
 extensions/indexing-solr/build.gradle           |   2 +-
 4 files changed, 151 insertions(+), 17 deletions(-)
----------------------------------------------------------------------



[6/6] polygene-java git commit: Fixing the "too soon" start up problem with the systems running in Docker.

Posted by ni...@apache.org.
Fixing the "too soon" start up problem with the systems running in Docker.


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

Branch: refs/heads/develop
Commit: cfd38626cdff84fe9621cf61a0c2d5c94ba2d5c8
Parents: 9c09781
Author: niclas <ni...@spicter.com>
Authored: Sun Mar 19 16:37:04 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Sun Mar 19 16:37:05 2017 +0800

----------------------------------------------------------------------
 .../test/indexing/AbstractAnyQueryTest.java     | 26 ++---
 .../test/indexing/AbstractComplexQueryTest.java | 10 +-
 .../test/indexing/AbstractEntityFinderTest.java | 10 +-
 .../test/indexing/AbstractNamedQueryTest.java   | 10 +-
 .../test/indexing/AbstractQueryTest.java        | 18 ++--
 .../polygene/test/indexing/NameableAssert.java  |  2 +-
 .../apache/polygene/test/indexing/TestData.java | 22 ++---
 .../AbstractMultiLayeredIndexingTest.java       |  2 +-
 .../test/indexing/layered/Suite1Case1.java      |  4 +-
 .../test/indexing/layered/Suite1Case2.java      |  4 +-
 .../indexing/layered/assembly/AccessLayer.java  | 65 -------------
 .../layered/assembly/AccountModule.java         | 50 ----------
 .../layered/assembly/ApplicationAssembler.java  | 71 --------------
 .../indexing/layered/assembly/ConfigLayer.java  | 37 --------
 .../indexing/layered/assembly/ConfigModule.java | 41 --------
 .../indexing/layered/assembly/DomainLayer.java  | 38 --------
 .../indexing/layered/assembly/FamilyModule.java | 52 ----------
 .../layered/assembly/IndexingLayer.java         | 38 --------
 .../layered/assembly/PersistenceLayer.java      | 37 --------
 .../layered/assembly/PersistenceModule.java     | 44 ---------
 .../layered/assembly/TestExecutionModule.java   | 46 ---------
 .../layered/assembly/TestSuite1Module.java      | 53 -----------
 .../layered/assembly/TestSuite2Module.java      | 38 --------
 .../layered/assembly/TestSuite3Module.java      | 38 --------
 .../polygene/test/indexing/model/Account.java   | 30 ------
 .../polygene/test/indexing/model/Address.java   | 32 -------
 .../polygene/test/indexing/model/Alive.java     | 27 ------
 .../polygene/test/indexing/model/Cat.java       | 27 ------
 .../polygene/test/indexing/model/City.java      | 32 -------
 .../polygene/test/indexing/model/Dog.java       | 27 ------
 .../polygene/test/indexing/model/Domain.java    | 30 ------
 .../polygene/test/indexing/model/Female.java    | 32 -------
 .../polygene/test/indexing/model/File.java      | 32 -------
 .../polygene/test/indexing/model/Host.java      | 30 ------
 .../polygene/test/indexing/model/Male.java      | 32 -------
 .../polygene/test/indexing/model/Nameable.java  | 31 ------
 .../polygene/test/indexing/model/Person.java    | 99 --------------------
 .../polygene/test/indexing/model/Pet.java       | 28 ------
 .../polygene/test/indexing/model/Port.java      | 32 -------
 .../polygene/test/indexing/model/Protocol.java  | 30 ------
 .../test/indexing/model/QueryParam.java         | 32 -------
 .../polygene/test/indexing/model/URL.java       | 46 ---------
 .../polygene/test/indexing/model/package.html   | 24 -----
 .../org/apache/polygene/test/model/Account.java | 30 ++++++
 .../org/apache/polygene/test/model/Address.java | 32 +++++++
 .../org/apache/polygene/test/model/Alive.java   | 27 ++++++
 .../org/apache/polygene/test/model/Cat.java     | 27 ++++++
 .../org/apache/polygene/test/model/City.java    | 32 +++++++
 .../org/apache/polygene/test/model/Dog.java     | 27 ++++++
 .../org/apache/polygene/test/model/Domain.java  | 30 ++++++
 .../org/apache/polygene/test/model/Female.java  | 32 +++++++
 .../org/apache/polygene/test/model/File.java    | 32 +++++++
 .../org/apache/polygene/test/model/Host.java    | 30 ++++++
 .../org/apache/polygene/test/model/Male.java    | 32 +++++++
 .../apache/polygene/test/model/Nameable.java    | 31 ++++++
 .../org/apache/polygene/test/model/Owner.java   | 24 +++++
 .../org/apache/polygene/test/model/Person.java  | 99 ++++++++++++++++++++
 .../org/apache/polygene/test/model/Pet.java     | 28 ++++++
 .../org/apache/polygene/test/model/PetShop.java | 31 ++++++
 .../org/apache/polygene/test/model/Port.java    | 32 +++++++
 .../apache/polygene/test/model/Protocol.java    | 30 ++++++
 .../apache/polygene/test/model/QueryParam.java  | 32 +++++++
 .../org/apache/polygene/test/model/Staff.java   | 24 +++++
 .../org/apache/polygene/test/model/URL.java     | 46 +++++++++
 .../test/model/assembly/AccessLayer.java        | 65 +++++++++++++
 .../test/model/assembly/AccountModule.java      | 50 ++++++++++
 .../model/assembly/ApplicationAssembler.java    | 71 ++++++++++++++
 .../test/model/assembly/ConfigLayer.java        | 37 ++++++++
 .../test/model/assembly/ConfigModule.java       | 41 ++++++++
 .../test/model/assembly/DomainLayer.java        | 39 ++++++++
 .../test/model/assembly/FamilyModule.java       | 52 ++++++++++
 .../test/model/assembly/IndexingLayer.java      | 38 ++++++++
 .../test/model/assembly/PersistenceLayer.java   | 37 ++++++++
 .../test/model/assembly/PersistenceModule.java  | 44 +++++++++
 .../test/model/assembly/PetShopModule.java      | 51 ++++++++++
 .../model/assembly/TestExecutionModule.java     | 46 +++++++++
 .../test/model/assembly/TestSuite1Module.java   | 53 +++++++++++
 .../test/model/assembly/TestSuite2Module.java   | 38 ++++++++
 .../test/model/assembly/TestSuite3Module.java   | 38 ++++++++
 .../org/apache/polygene/test/model/package.html | 24 +++++
 .../cassandra/CassandraMapEntityStoreTest.java  |  3 +-
 .../entitystore/jclouds/JCloudsS3Test.java      |  2 +-
 .../riak/RiakMapEntityStoreTest.java            |  2 +-
 .../riak/RiakMapEntityStoreWithCacheTest.java   |  2 +-
 extensions/entitystore-sql/build.gradle         |  1 +
 .../entitystore/sql/MySQLEntityStoreTest.java   |  3 +-
 .../sql/PostgreSQLEntityStoreTest.java          |  2 +-
 .../polygene/index/rdf/RdfNamedQueryTest.java   | 98 +++++++++----------
 .../postgresql/PostgreSQLComplexQueryTest.java  |  2 +-
 .../postgresql/PostgreSQLDBIntegrityTest.java   |  2 +-
 .../postgresql/PostgreSQLEntityFinderTest.java  |  2 +-
 .../sql/postgresql/PostgreSQLQueryTest.java     |  2 +-
 .../polygene/test/internal/DelayChecker.java    | 60 ++++++++++++
 .../polygene/test/internal/DockerRule.java      | 87 ++++++++++++++++-
 libraries/http/build.gradle                     |  1 +
 95 files changed, 1693 insertions(+), 1417 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractAnyQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractAnyQueryTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractAnyQueryTest.java
index 1c52e24..b2872e9 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractAnyQueryTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractAnyQueryTest.java
@@ -25,19 +25,19 @@ import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.indexing.model.Account;
-import org.apache.polygene.test.indexing.model.Address;
-import org.apache.polygene.test.indexing.model.Cat;
-import org.apache.polygene.test.indexing.model.City;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.File;
-import org.apache.polygene.test.indexing.model.Host;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Port;
-import org.apache.polygene.test.indexing.model.Protocol;
-import org.apache.polygene.test.indexing.model.QueryParam;
-import org.apache.polygene.test.indexing.model.URL;
+import org.apache.polygene.test.model.Account;
+import org.apache.polygene.test.model.Address;
+import org.apache.polygene.test.model.Cat;
+import org.apache.polygene.test.model.City;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.File;
+import org.apache.polygene.test.model.Host;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Port;
+import org.apache.polygene.test.model.Protocol;
+import org.apache.polygene.test.model.QueryParam;
+import org.apache.polygene.test.model.URL;
 
 /**
  * Abstract satisfiedBy with tests for any queries against Index/Query engines.

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractComplexQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractComplexQueryTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractComplexQueryTest.java
index 19895fd..78eb77e 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractComplexQueryTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractComplexQueryTest.java
@@ -31,11 +31,11 @@ import org.apache.polygene.api.query.Query;
 import org.apache.polygene.api.query.QueryBuilder;
 import org.apache.polygene.api.value.ValueBuilder;
 import org.apache.polygene.spi.query.IndexExporter;
-import org.apache.polygene.test.indexing.model.Address;
-import org.apache.polygene.test.indexing.model.Person;
-import org.apache.polygene.test.indexing.model.Protocol;
-import org.apache.polygene.test.indexing.model.QueryParam;
-import org.apache.polygene.test.indexing.model.URL;
+import org.apache.polygene.test.model.Address;
+import org.apache.polygene.test.model.Person;
+import org.apache.polygene.test.model.Protocol;
+import org.apache.polygene.test.model.QueryParam;
+import org.apache.polygene.test.model.URL;
 
 import static org.apache.polygene.api.query.QueryExpressions.contains;
 import static org.apache.polygene.api.query.QueryExpressions.containsAll;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractEntityFinderTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractEntityFinderTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractEntityFinderTest.java
index 630829e..9e0b845 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractEntityFinderTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractEntityFinderTest.java
@@ -36,11 +36,11 @@ import org.apache.polygene.api.service.ServiceReference;
 import org.apache.polygene.api.structure.Module;
 import org.apache.polygene.spi.query.EntityFinder;
 import org.apache.polygene.spi.query.IndexExporter;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Nameable;
-import org.apache.polygene.test.indexing.model.Person;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Nameable;
+import org.apache.polygene.test.model.Person;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractNamedQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractNamedQueryTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractNamedQueryTest.java
index 4d12d40..a2b269e 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractNamedQueryTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractNamedQueryTest.java
@@ -29,11 +29,11 @@ import org.apache.polygene.api.query.Query;
 import org.apache.polygene.api.query.grammar.OrderBy;
 import org.apache.polygene.api.structure.Module;
 import org.apache.polygene.spi.query.IndexExporter;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Nameable;
-import org.apache.polygene.test.indexing.model.Person;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Nameable;
+import org.apache.polygene.test.model.Person;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractQueryTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractQueryTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractQueryTest.java
index f323a50..24fb780 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractQueryTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/AbstractQueryTest.java
@@ -37,15 +37,15 @@ import org.apache.polygene.api.query.QueryBuilder;
 import org.apache.polygene.api.query.grammar.OrderBy;
 import org.apache.polygene.api.structure.Module;
 import org.apache.polygene.spi.query.IndexExporter;
-import org.apache.polygene.test.indexing.model.Account;
-import org.apache.polygene.test.indexing.model.City;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.File;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Nameable;
-import org.apache.polygene.test.indexing.model.Person;
-import org.apache.polygene.test.indexing.model.QueryParam;
+import org.apache.polygene.test.model.Account;
+import org.apache.polygene.test.model.City;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.File;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Nameable;
+import org.apache.polygene.test.model.Person;
+import org.apache.polygene.test.model.QueryParam;
 import org.junit.Ignore;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/NameableAssert.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/NameableAssert.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/NameableAssert.java
index 057d61c..58dde55 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/NameableAssert.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/NameableAssert.java
@@ -30,7 +30,7 @@ import java.util.stream.Collectors;
 import java.util.stream.StreamSupport;
 import org.apache.polygene.api.entity.EntityReference;
 import org.apache.polygene.api.identity.Identity;
-import org.apache.polygene.test.indexing.model.Nameable;
+import org.apache.polygene.test.model.Nameable;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/TestData.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/TestData.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/TestData.java
index 1fa897b..aaa8bac 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/TestData.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/TestData.java
@@ -32,17 +32,17 @@ import org.apache.polygene.api.structure.Module;
 import org.apache.polygene.api.unitofwork.UnitOfWork;
 import org.apache.polygene.api.unitofwork.UnitOfWorkCompletionException;
 import org.apache.polygene.api.value.ValueBuilder;
-import org.apache.polygene.test.indexing.model.Account;
-import org.apache.polygene.test.indexing.model.Address;
-import org.apache.polygene.test.indexing.model.Cat;
-import org.apache.polygene.test.indexing.model.City;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Person;
-import org.apache.polygene.test.indexing.model.Protocol;
-import org.apache.polygene.test.indexing.model.QueryParam;
-import org.apache.polygene.test.indexing.model.URL;
+import org.apache.polygene.test.model.Account;
+import org.apache.polygene.test.model.Address;
+import org.apache.polygene.test.model.Cat;
+import org.apache.polygene.test.model.City;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Person;
+import org.apache.polygene.test.model.Protocol;
+import org.apache.polygene.test.model.QueryParam;
+import org.apache.polygene.test.model.URL;
 
 import static java.time.ZoneOffset.UTC;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/AbstractMultiLayeredIndexingTest.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/AbstractMultiLayeredIndexingTest.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/AbstractMultiLayeredIndexingTest.java
index 833ebc8..a5b4b5a 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/AbstractMultiLayeredIndexingTest.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/AbstractMultiLayeredIndexingTest.java
@@ -34,7 +34,7 @@ import org.apache.polygene.api.usecase.UsecaseBuilder;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.layered.ModuleAssembler;
 import org.apache.polygene.test.indexing.TestData;
-import org.apache.polygene.test.indexing.layered.assembly.ApplicationAssembler;
+import org.apache.polygene.test.model.assembly.ApplicationAssembler;
 import org.junit.Before;
 import org.junit.Test;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case1.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case1.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case1.java
index a9f4b82..8477b18 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case1.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case1.java
@@ -27,8 +27,8 @@ import org.apache.polygene.api.query.QueryBuilderFactory;
 import org.apache.polygene.api.query.QueryExpressions;
 import org.apache.polygene.api.unitofwork.UnitOfWork;
 import org.apache.polygene.api.unitofwork.UnitOfWorkFactory;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Person;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Person;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case2.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case2.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case2.java
index 63326fb..6c54831 100644
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case2.java
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/Suite1Case2.java
@@ -28,8 +28,8 @@ import org.apache.polygene.api.query.QueryExpressions;
 import org.apache.polygene.api.unitofwork.UnitOfWork;
 import org.apache.polygene.api.unitofwork.UnitOfWorkFactory;
 import org.apache.polygene.api.unitofwork.concern.UnitOfWorkPropagation;
-import org.apache.polygene.test.indexing.model.Male;
-import org.apache.polygene.test.indexing.model.Person;
+import org.apache.polygene.test.model.Male;
+import org.apache.polygene.test.model.Person;
 
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccessLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccessLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccessLayer.java
deleted file mode 100644
index c02c485..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccessLayer.java
+++ /dev/null
@@ -1,65 +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.indexing.layered.assembly;
-
-import java.lang.reflect.InvocationTargetException;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-
-class AccessLayer extends LayeredLayerAssembler
-{
-
-    private final Class<?> testClass;
-
-    AccessLayer( Class<?> testClass )
-    {
-        this.testClass = testClass;
-    }
-
-    @Override
-    public LayerAssembly assemble( LayerAssembly layer )
-        throws AssemblyException
-    {
-        createModule( layer, TestExecutionModule.class );
-        createModule( layer, TestSuite1Module.class );
-        createModule( layer, TestSuite2Module.class );
-        createModule( layer, TestSuite3Module.class );
-        return layer;
-    }
-
-    @Override
-    protected ModuleAssembler instantiateAssembler( LayerAssembly layer,
-                                                    Class<? extends ModuleAssembler> moduleAssemblerClass
-    )
-        throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
-    {
-        if( moduleAssemblerClass.equals(TestExecutionModule.class))
-        {
-            return new TestExecutionModule( testClass );
-        }
-        else
-        {
-            return super.instantiateAssembler( layer, moduleAssemblerClass );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccountModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccountModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccountModule.java
deleted file mode 100644
index 41d5c44..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/AccountModule.java
+++ /dev/null
@@ -1,50 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-import org.apache.polygene.test.indexing.model.Account;
-import org.apache.polygene.test.indexing.model.Domain;
-import org.apache.polygene.test.indexing.model.File;
-import org.apache.polygene.test.indexing.model.Host;
-import org.apache.polygene.test.indexing.model.Port;
-import org.apache.polygene.test.indexing.model.Protocol;
-import org.apache.polygene.test.indexing.model.QueryParam;
-import org.apache.polygene.test.indexing.model.URL;
-
-class AccountModule
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.entities( Account.class, Domain.class ).visibleIn( Visibility.layer );
-        module.values( File.class, Host.class, Port.class, Protocol.class, QueryParam.class, URL.class )
-            .visibleIn( Visibility.layer );
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ApplicationAssembler.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ApplicationAssembler.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ApplicationAssembler.java
deleted file mode 100644
index eba127a..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ApplicationAssembler.java
+++ /dev/null
@@ -1,71 +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.indexing.layered.assembly;
-
-import java.lang.reflect.InvocationTargetException;
-import org.apache.polygene.api.structure.Application;
-import org.apache.polygene.bootstrap.ApplicationAssembly;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.IllegalLayerAssemblerException;
-import org.apache.polygene.bootstrap.layered.LayerAssembler;
-import org.apache.polygene.bootstrap.layered.LayeredApplicationAssembler;
-
-public class ApplicationAssembler extends LayeredApplicationAssembler
-{
-
-    private final Class<?> testClass;
-
-    public ApplicationAssembler( String name, String version, Application.Mode mode, Class<?> testClass )
-        throws AssemblyException
-    {
-        super( name, version, mode );
-        this.testClass = testClass;
-    }
-
-    @Override
-    protected void assembleLayers( ApplicationAssembly assembly )
-        throws AssemblyException
-    {
-        LayerAssembly accessLayer = createLayer( AccessLayer.class );
-        LayerAssembly domainLayer = createLayer( DomainLayer.class );
-        LayerAssembly persistenceLayer = createLayer( PersistenceLayer.class );
-        LayerAssembly indexingLayer = createLayer( IndexingLayer.class );
-        LayerAssembly configLayer = createLayer( ConfigLayer.class );
-        accessLayer.uses( domainLayer );
-        domainLayer.uses( persistenceLayer, indexingLayer );
-        persistenceLayer.uses( configLayer );
-        indexingLayer.uses( configLayer );
-    }
-
-    @Override
-    protected <T extends LayerAssembler> LayerAssembler instantiateLayerAssembler( Class<T> layerAssemblerClass,
-                                                                                   LayerAssembly layer
-    )
-        throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalLayerAssemblerException
-    {
-        if( layerAssemblerClass.equals( AccessLayer.class ))
-        {
-            return new AccessLayer( testClass );
-        }
-        return super.instantiateLayerAssembler( layerAssemblerClass, layer );
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigLayer.java
deleted file mode 100644
index e40e301..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigLayer.java
+++ /dev/null
@@ -1,37 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
-
-class ConfigLayer extends LayeredLayerAssembler
-{
-
-    @Override
-    public LayerAssembly assemble( LayerAssembly layer )
-        throws AssemblyException
-    {
-        createModule( layer, ConfigModule.class );
-        return layer;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigModule.java
deleted file mode 100644
index beaa1a1..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/ConfigModule.java
+++ /dev/null
@@ -1,41 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-import org.apache.polygene.entitystore.memory.MemoryEntityStoreService;
-
-class ConfigModule
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application );
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/DomainLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/DomainLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/DomainLayer.java
deleted file mode 100644
index fbd822c..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/DomainLayer.java
+++ /dev/null
@@ -1,38 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
-
-class DomainLayer extends LayeredLayerAssembler
-{
-
-    @Override
-    public LayerAssembly assemble( LayerAssembly layer )
-        throws AssemblyException
-    {
-        createModule( layer, FamilyModule.class );
-        createModule( layer, AccountModule.class );
-        return layer;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/FamilyModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/FamilyModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/FamilyModule.java
deleted file mode 100644
index fd4bdee..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/FamilyModule.java
+++ /dev/null
@@ -1,52 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-import org.apache.polygene.test.indexing.model.Address;
-import org.apache.polygene.test.indexing.model.Cat;
-import org.apache.polygene.test.indexing.model.City;
-import org.apache.polygene.test.indexing.model.Dog;
-import org.apache.polygene.test.indexing.model.Female;
-import org.apache.polygene.test.indexing.model.Male;
-
-class FamilyModule
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.entities( Male.class,
-                         Female.class,
-                         City.class,
-                         Cat.class,
-                         Dog.class ).visibleIn( Visibility.application );
-
-        module.values( Address.class ).visibleIn( Visibility.application );
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/IndexingLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/IndexingLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/IndexingLayer.java
deleted file mode 100644
index fa302a5..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/IndexingLayer.java
+++ /dev/null
@@ -1,38 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
-import org.apache.polygene.test.indexing.layered.AbstractMultiLayeredIndexingTest;
-
-class IndexingLayer extends LayeredLayerAssembler
-{
-
-    @Override
-    public LayerAssembly assemble( LayerAssembly layer )
-        throws AssemblyException
-    {
-        createModule( layer, AbstractMultiLayeredIndexingTest.indexingAssembler );
-        return layer;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceLayer.java
deleted file mode 100644
index c82798f..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceLayer.java
+++ /dev/null
@@ -1,37 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
-
-class PersistenceLayer extends LayeredLayerAssembler
-{
-
-    @Override
-    public LayerAssembly assemble( LayerAssembly layer )
-        throws AssemblyException
-    {
-        createModule( layer, PersistenceModule.class );
-        return layer;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceModule.java
deleted file mode 100644
index 30f4be7..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/PersistenceModule.java
+++ /dev/null
@@ -1,44 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.api.value.ValueSerialization;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-import org.apache.polygene.entitystore.memory.MemoryEntityStoreService;
-import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationService;
-
-class PersistenceModule
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
-        module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application );
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestExecutionModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestExecutionModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestExecutionModule.java
deleted file mode 100644
index 8c2ac15..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestExecutionModule.java
+++ /dev/null
@@ -1,46 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-
-public class TestExecutionModule
-    implements ModuleAssembler
-{
-    private final Class<?> testClass;
-
-    public TestExecutionModule( Class<?> testClass)
-    {
-        this.testClass = testClass;
-    }
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.objects( testClass ).visibleIn( Visibility.layer );
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite1Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite1Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite1Module.java
deleted file mode 100644
index 61a0caf..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite1Module.java
+++ /dev/null
@@ -1,53 +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.indexing.layered.assembly;
-
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-import org.apache.polygene.test.indexing.layered.Suite1Case1;
-import org.apache.polygene.test.indexing.layered.Suite1Case2;
-import org.apache.polygene.test.indexing.layered.TestCase;
-
-class TestSuite1Module
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        declareTestCase( module, Suite1Case1.class );
-        declareTestCase( module, Suite1Case2.class );
-        return module;
-    }
-
-    private void declareTestCase( ModuleAssembly module, Class<?> testcaseMixin )
-    {
-        module.services( TestCase.class )
-            .withMixins( testcaseMixin )
-            .visibleIn( Visibility.layer )
-            .taggedWith( testcaseMixin.getSimpleName() );
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite2Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite2Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite2Module.java
deleted file mode 100644
index 5da5336..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite2Module.java
+++ /dev/null
@@ -1,38 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-
-class TestSuite2Module
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite3Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite3Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite3Module.java
deleted file mode 100644
index b3e8d25..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/layered/assembly/TestSuite3Module.java
+++ /dev/null
@@ -1,38 +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.indexing.layered.assembly;
-
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.LayerAssembly;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.layered.ModuleAssembler;
-
-class TestSuite3Module
-    implements ModuleAssembler
-{
-
-    @Override
-    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
-        throws AssemblyException
-    {
-        return module;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Account.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Account.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Account.java
deleted file mode 100644
index 3ce9116..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Account.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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Account
-{
-    Property<String> number();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Address.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Address.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Address.java
deleted file mode 100644
index 74fc845..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Address.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-import org.apache.polygene.api.value.ValueComposite;
-
-public interface Address extends ValueComposite // necessary, @See POLYGENE-137
-{
-    Property<String> line1();
-
-    Property<String> line2();
-
-    Property<String> zipcode();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Alive.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Alive.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Alive.java
deleted file mode 100644
index e00685c..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Alive.java
+++ /dev/null
@@ -1,27 +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.indexing.model;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Alive
-{
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Cat.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Cat.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Cat.java
deleted file mode 100644
index 404d256..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Cat.java
+++ /dev/null
@@ -1,27 +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.indexing.model;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Cat extends Pet
-{
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/City.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/City.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/City.java
deleted file mode 100644
index 0b13660..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/City.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface City extends Nameable
-{
-    Property<String> country();
-
-    Property<String> county();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Dog.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Dog.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Dog.java
deleted file mode 100644
index b2fb0b1..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Dog.java
+++ /dev/null
@@ -1,27 +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.indexing.model;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Dog extends Pet
-{
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Domain.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Domain.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Domain.java
deleted file mode 100644
index 35d2c05..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Domain.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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Domain extends Nameable
-{
-    Property<String> description();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Female.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Female.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Female.java
deleted file mode 100644
index 11e70ed..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Female.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.association.Association;
-import org.apache.polygene.api.common.Optional;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Female extends Person
-{
-    @Optional
-    Association<Male> husband();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/File.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/File.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/File.java
deleted file mode 100644
index 5bfcc1c..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/File.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.entity.Queryable;
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-@Queryable( false )
-public interface File
-{
-    Property<String> value();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Host.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Host.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Host.java
deleted file mode 100644
index 5a993f7..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Host.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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-public interface Host
-{
-    Property<String> value();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Male.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Male.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Male.java
deleted file mode 100644
index 7f362e2..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Male.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.association.Association;
-import org.apache.polygene.api.common.Optional;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Male extends Person
-{
-    @Optional
-    Association<Female> wife();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Nameable.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Nameable.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Nameable.java
deleted file mode 100644
index d53cd7a..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Nameable.java
+++ /dev/null
@@ -1,31 +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.indexing.model;
-
-import org.apache.polygene.api.identity.HasIdentity;
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Nameable extends HasIdentity
-{
-    Property<String> name();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Person.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Person.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Person.java
deleted file mode 100644
index 17ed48c..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Person.java
+++ /dev/null
@@ -1,99 +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.indexing.model;
-
-import java.math.BigDecimal;
-import java.math.BigInteger;
-import java.time.Instant;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.ZonedDateTime;
-import java.util.Map;
-import org.apache.polygene.api.association.Association;
-import org.apache.polygene.api.association.ManyAssociation;
-import org.apache.polygene.api.association.NamedAssociation;
-import org.apache.polygene.api.common.Optional;
-import org.apache.polygene.api.entity.Queryable;
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Person
-    extends Nameable, Alive
-{
-    enum Title
-    {
-        MR, MS, MRS, DR
-    }
-
-    Property<Title> title();
-
-    @Optional
-    Association<City> placeOfBirth();
-
-    Property<Integer> yearOfBirth();
-
-    @Optional
-    Property<Address> address();
-
-    @Optional
-    Association<Female> mother();
-
-    @Optional
-    Association<Male> father();
-
-    ManyAssociation<Domain> interests();
-
-    @Optional
-    Property<String> email();
-
-    @Optional
-    Property<URL> personalWebsite();
-
-    @Queryable( false )
-    Property<String> password();
-
-    @Optional
-    Association<Account> mainAccount();
-
-    NamedAssociation<Account> accounts();
-
-    @Optional
-    Property<Map<String, String>> additionalInfo();
-
-    @Optional
-    Property<BigInteger> bigInteger();
-
-    @Optional
-    Property<BigDecimal> bigDecimal();
-
-    @Optional
-    Property<Instant> instantValue();
-
-    @Optional
-    Property<ZonedDateTime> dateTimeValue();
-
-    @Optional
-    Property<LocalDateTime> localDateTimeValue();
-
-    @Optional
-    Property<LocalDate> localDateValue();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Pet.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Pet.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Pet.java
deleted file mode 100644
index 2e5fa27..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Pet.java
+++ /dev/null
@@ -1,28 +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.indexing.model;
-
-/**
- * JAVADOC Add JavaDoc
- */
-public interface Pet
-    extends Nameable, Alive
-{
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Port.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Port.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Port.java
deleted file mode 100644
index a578325..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Port.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.entity.Queryable;
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-public interface Port
-{
-    @Queryable( false )
-    Property<Integer> value();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Protocol.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Protocol.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Protocol.java
deleted file mode 100644
index e178bb8..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/Protocol.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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-public interface Protocol
-{
-    Property<String> value();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/QueryParam.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/QueryParam.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/QueryParam.java
deleted file mode 100644
index 42aaa9b..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/QueryParam.java
+++ /dev/null
@@ -1,32 +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.indexing.model;
-
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-public interface QueryParam
-{
-    Property<String> name();
-
-    Property<String> value();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/URL.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/URL.java b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/URL.java
deleted file mode 100644
index 7823e04..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/URL.java
+++ /dev/null
@@ -1,46 +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.indexing.model;
-
-import java.util.Collection;
-import org.apache.polygene.api.common.Optional;
-import org.apache.polygene.api.entity.Queryable;
-import org.apache.polygene.api.property.Property;
-
-/**
- * JAVADOC Add JavaDoc.
- */
-public interface URL
-{
-    Property<Protocol> protocol();
-
-    @Optional
-    @Queryable( false )
-    Property<Host> host();
-
-    @Optional
-    Property<Port> port();
-
-    @Optional
-    Property<File> file();
-
-    @Optional
-    Property<Collection<QueryParam>> queryParams();
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/package.html
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/package.html b/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/package.html
deleted file mode 100644
index f006a94..0000000
--- a/core/testsupport/src/main/java/org/apache/polygene/test/indexing/model/package.html
+++ /dev/null
@@ -1,24 +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>
-        <h2>Index/Query SPI Test Support - Model.</h2>
-    </body>
-</html>


[3/6] polygene-java git commit: Test is in wrong package

Posted by ni...@apache.org.
Test is in wrong package


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

Branch: refs/heads/develop
Commit: 9c097819e00c44bb99d545faf5b79e1f528b7771
Parents: 8296fdd
Author: niclas <ni...@spicter.com>
Authored: Sat Mar 18 11:09:23 2017 +0800
Committer: niclas <ni...@spicter.com>
Committed: Sat Mar 18 11:09:23 2017 +0800

----------------------------------------------------------------------
 .../entitystore/PreferencesEntityStoreTest.java | 56 --------------------
 .../preferences/PreferencesEntityStoreTest.java | 56 ++++++++++++++++++++
 .../polygene/test/internal/DockerRule.java      |  3 +-
 3 files changed, 58 insertions(+), 57 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/polygene-java/blob/9c097819/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/PreferencesEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/PreferencesEntityStoreTest.java b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/PreferencesEntityStoreTest.java
deleted file mode 100644
index 10be81e..0000000
--- a/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/PreferencesEntityStoreTest.java
+++ /dev/null
@@ -1,56 +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.entitystore;
-
-import java.util.prefs.Preferences;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreInfo;
-import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreService;
-import org.apache.polygene.test.entity.AbstractEntityStoreTest;
-import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
-
-public class PreferencesEntityStoreTest
-    extends AbstractEntityStoreTest
-{
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
-
-    @Override
-    public void assemble( ModuleAssembly module )
-        throws AssemblyException
-    {
-        module.layer().application().setName( "PreferencesTest" );
-
-        super.assemble( module );
-        ClassLoader cl = Thread.currentThread().getContextClassLoader();
-        Thread.currentThread().setContextClassLoader( null );
-        Preferences node = Preferences.userNodeForPackage( getClass() )
-                                      .node( "integtest" )
-                                      .node( tmpDir.getRoot().getName() )
-                                      .node( "PreferencesEntityStoreTest" );
-        PreferencesEntityStoreInfo metaInfo = new PreferencesEntityStoreInfo( node );
-        Thread.currentThread().setContextClassLoader( cl );
-        module.services( PreferencesEntityStoreService.class ).setMetaInfo( metaInfo ).instantiateOnStartup();
-        new OrgJsonValueSerializationAssembler().assemble( module );
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/9c097819/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTest.java b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTest.java
new file mode 100644
index 0000000..0f52e46
--- /dev/null
+++ b/extensions/entitystore-preferences/src/test/java/org/apache/polygene/entitystore/preferences/PreferencesEntityStoreTest.java
@@ -0,0 +1,56 @@
+/*
+ *  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.entitystore.preferences;
+
+import java.util.prefs.Preferences;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreInfo;
+import org.apache.polygene.entitystore.preferences.PreferencesEntityStoreService;
+import org.apache.polygene.test.entity.AbstractEntityStoreTest;
+import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationAssembler;
+import org.junit.Rule;
+import org.junit.rules.TemporaryFolder;
+
+public class PreferencesEntityStoreTest
+    extends AbstractEntityStoreTest
+{
+    @Rule
+    public TemporaryFolder tmpDir = new TemporaryFolder();
+
+    @Override
+    public void assemble( ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.layer().application().setName( "PreferencesTest" );
+
+        super.assemble( module );
+        ClassLoader cl = Thread.currentThread().getContextClassLoader();
+        Thread.currentThread().setContextClassLoader( null );
+        Preferences node = Preferences.userNodeForPackage( getClass() )
+                                      .node( "integtest" )
+                                      .node( tmpDir.getRoot().getName() )
+                                      .node( "PreferencesEntityStoreTest" );
+        PreferencesEntityStoreInfo metaInfo = new PreferencesEntityStoreInfo( node );
+        Thread.currentThread().setContextClassLoader( cl );
+        module.services( PreferencesEntityStoreService.class ).setMetaInfo( metaInfo ).instantiateOnStartup();
+        new OrgJsonValueSerializationAssembler().assemble( module );
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/9c097819/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
----------------------------------------------------------------------
diff --git a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
index dce7150..1e228a5 100644
--- a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
+++ b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
@@ -27,7 +27,8 @@ import pl.domzal.junit.docker.rule.WaitFor;
 
 import static org.junit.Assume.assumeFalse;
 
-public class DockerRule implements TestRule
+public class DockerRule
+    implements TestRule
 {
     private final boolean dockerDisabled = Boolean.valueOf( System.getProperty( "DOCKER_DISABLED", "false" ) );
     private final pl.domzal.junit.docker.rule.DockerRule dockerRule;


[5/6] polygene-java git commit: Fixing the "too soon" start up problem with the systems running in Docker.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java
new file mode 100644
index 0000000..c77ea1f
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Account.java
@@ -0,0 +1,30 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Account
+{
+    Property<String> number();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.java
new file mode 100644
index 0000000..3a24972
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Address.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.property.Property;
+import org.apache.polygene.api.value.ValueComposite;
+
+public interface Address extends ValueComposite // necessary, @See POLYGENE-137
+{
+    Property<String> line1();
+
+    Property<String> line2();
+
+    Property<String> zipcode();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java
new file mode 100644
index 0000000..f8dbf25
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Alive.java
@@ -0,0 +1,27 @@
+/*
+ *  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.model;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Alive
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java
new file mode 100644
index 0000000..5d0aef9
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Cat.java
@@ -0,0 +1,27 @@
+/*
+ *  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.model;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Cat extends Pet
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/City.java
new file mode 100644
index 0000000..57c2aa9
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/City.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface City extends Nameable
+{
+    Property<String> country();
+
+    Property<String> county();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java
new file mode 100644
index 0000000..3448aa4
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Dog.java
@@ -0,0 +1,27 @@
+/*
+ *  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.model;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Dog extends Pet
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java
new file mode 100644
index 0000000..09536d5
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Domain.java
@@ -0,0 +1,30 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Domain extends Nameable
+{
+    Property<String> description();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.java
new file mode 100644
index 0000000..dcffeec
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Female.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.association.Association;
+import org.apache.polygene.api.common.Optional;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Female extends Person
+{
+    @Optional
+    Association<Male> husband();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/File.java
new file mode 100644
index 0000000..8897059
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/File.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.entity.Queryable;
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+@Queryable( false )
+public interface File
+{
+    Property<String> value();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java
new file mode 100644
index 0000000..cf9b428
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Host.java
@@ -0,0 +1,30 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+public interface Host
+{
+    Property<String> value();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.java
new file mode 100644
index 0000000..5a676e8
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Male.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.association.Association;
+import org.apache.polygene.api.common.Optional;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Male extends Person
+{
+    @Optional
+    Association<Female> wife();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java
new file mode 100644
index 0000000..43914ac
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Nameable.java
@@ -0,0 +1,31 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.identity.HasIdentity;
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Nameable extends HasIdentity
+{
+    Property<String> name();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java
new file mode 100644
index 0000000..a783955
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Owner.java
@@ -0,0 +1,24 @@
+/*
+ *  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.model;
+
+public interface Owner extends Person
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java
new file mode 100644
index 0000000..7646928
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Person.java
@@ -0,0 +1,99 @@
+/*
+ *  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.model;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZonedDateTime;
+import java.util.Map;
+import org.apache.polygene.api.association.Association;
+import org.apache.polygene.api.association.ManyAssociation;
+import org.apache.polygene.api.association.NamedAssociation;
+import org.apache.polygene.api.common.Optional;
+import org.apache.polygene.api.entity.Queryable;
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Person
+    extends Nameable, Alive
+{
+    enum Title
+    {
+        MR, MS, MRS, DR
+    }
+
+    Property<Title> title();
+
+    @Optional
+    Association<City> placeOfBirth();
+
+    Property<Integer> yearOfBirth();
+
+    @Optional
+    Property<Address> address();
+
+    @Optional
+    Association<Female> mother();
+
+    @Optional
+    Association<Male> father();
+
+    ManyAssociation<Domain> interests();
+
+    @Optional
+    Property<String> email();
+
+    @Optional
+    Property<URL> personalWebsite();
+
+    @Queryable( false )
+    Property<String> password();
+
+    @Optional
+    Association<Account> mainAccount();
+
+    NamedAssociation<Account> accounts();
+
+    @Optional
+    Property<Map<String, String>> additionalInfo();
+
+    @Optional
+    Property<BigInteger> bigInteger();
+
+    @Optional
+    Property<BigDecimal> bigDecimal();
+
+    @Optional
+    Property<Instant> instantValue();
+
+    @Optional
+    Property<ZonedDateTime> dateTimeValue();
+
+    @Optional
+    Property<LocalDateTime> localDateTimeValue();
+
+    @Optional
+    Property<LocalDate> localDateValue();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java
new file mode 100644
index 0000000..77839f9
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Pet.java
@@ -0,0 +1,28 @@
+/*
+ *  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.model;
+
+/**
+ * JAVADOC Add JavaDoc
+ */
+public interface Pet
+    extends Nameable, Alive
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java
new file mode 100644
index 0000000..b50ad45
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/PetShop.java
@@ -0,0 +1,31 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.association.Association;
+import org.apache.polygene.api.association.ManyAssociation;
+import org.apache.polygene.api.property.Property;
+
+public interface PetShop
+{
+    Property<Address> address();
+    Association<City> city();
+    ManyAssociation<Owner> owners();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.java
new file mode 100644
index 0000000..f0f6bd7
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Port.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.entity.Queryable;
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+public interface Port
+{
+    @Queryable( false )
+    Property<Integer> value();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java
new file mode 100644
index 0000000..3466c9c
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Protocol.java
@@ -0,0 +1,30 @@
+/*
+ *  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.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+public interface Protocol
+{
+    Property<String> value();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.java
new file mode 100644
index 0000000..c079f75
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/QueryParam.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.apache.polygene.test.model;
+
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+public interface QueryParam
+{
+    Property<String> name();
+
+    Property<String> value();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java
new file mode 100644
index 0000000..c41b0f4
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/Staff.java
@@ -0,0 +1,24 @@
+/*
+ *  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.model;
+
+public interface Staff extends Person
+{
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.java
new file mode 100644
index 0000000..dfc5e10
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/URL.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.apache.polygene.test.model;
+
+import java.util.Collection;
+import org.apache.polygene.api.common.Optional;
+import org.apache.polygene.api.entity.Queryable;
+import org.apache.polygene.api.property.Property;
+
+/**
+ * JAVADOC Add JavaDoc.
+ */
+public interface URL
+{
+    Property<Protocol> protocol();
+
+    @Optional
+    @Queryable( false )
+    Property<Host> host();
+
+    @Optional
+    Property<Port> port();
+
+    @Optional
+    Property<File> file();
+
+    @Optional
+    Property<Collection<QueryParam>> queryParams();
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java
new file mode 100644
index 0000000..045b621
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccessLayer.java
@@ -0,0 +1,65 @@
+/*
+ *  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.model.assembly;
+
+import java.lang.reflect.InvocationTargetException;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+
+class AccessLayer extends LayeredLayerAssembler
+{
+
+    private final Class<?> testClass;
+
+    AccessLayer( Class<?> testClass )
+    {
+        this.testClass = testClass;
+    }
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+        createModule( layer, TestExecutionModule.class );
+        createModule( layer, TestSuite1Module.class );
+        createModule( layer, TestSuite2Module.class );
+        createModule( layer, TestSuite3Module.class );
+        return layer;
+    }
+
+    @Override
+    protected ModuleAssembler instantiateAssembler( LayerAssembly layer,
+                                                    Class<? extends ModuleAssembler> moduleAssemblerClass
+    )
+        throws InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException
+    {
+        if( moduleAssemblerClass.equals(TestExecutionModule.class))
+        {
+            return new TestExecutionModule( testClass );
+        }
+        else
+        {
+            return super.instantiateAssembler( layer, moduleAssemblerClass );
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java
new file mode 100644
index 0000000..eec1885
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/AccountModule.java
@@ -0,0 +1,50 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.test.model.Account;
+import org.apache.polygene.test.model.Domain;
+import org.apache.polygene.test.model.File;
+import org.apache.polygene.test.model.Host;
+import org.apache.polygene.test.model.Port;
+import org.apache.polygene.test.model.Protocol;
+import org.apache.polygene.test.model.QueryParam;
+import org.apache.polygene.test.model.URL;
+
+class AccountModule
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.entities( Account.class, Domain.class ).visibleIn( Visibility.layer );
+        module.values( File.class, Host.class, Port.class, Protocol.class, QueryParam.class, URL.class )
+            .visibleIn( Visibility.layer );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java
new file mode 100644
index 0000000..e793455
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ApplicationAssembler.java
@@ -0,0 +1,71 @@
+/*
+ *  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.model.assembly;
+
+import java.lang.reflect.InvocationTargetException;
+import org.apache.polygene.api.structure.Application;
+import org.apache.polygene.bootstrap.ApplicationAssembly;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.IllegalLayerAssemblerException;
+import org.apache.polygene.bootstrap.layered.LayerAssembler;
+import org.apache.polygene.bootstrap.layered.LayeredApplicationAssembler;
+
+public class ApplicationAssembler extends LayeredApplicationAssembler
+{
+
+    private final Class<?> testClass;
+
+    public ApplicationAssembler( String name, String version, Application.Mode mode, Class<?> testClass )
+        throws AssemblyException
+    {
+        super( name, version, mode );
+        this.testClass = testClass;
+    }
+
+    @Override
+    protected void assembleLayers( ApplicationAssembly assembly )
+        throws AssemblyException
+    {
+        LayerAssembly accessLayer = createLayer( AccessLayer.class );
+        LayerAssembly domainLayer = createLayer( DomainLayer.class );
+        LayerAssembly persistenceLayer = createLayer( PersistenceLayer.class );
+        LayerAssembly indexingLayer = createLayer( IndexingLayer.class );
+        LayerAssembly configLayer = createLayer( ConfigLayer.class );
+        accessLayer.uses( domainLayer );
+        domainLayer.uses( persistenceLayer, indexingLayer );
+        persistenceLayer.uses( configLayer );
+        indexingLayer.uses( configLayer );
+    }
+
+    @Override
+    protected <T extends LayerAssembler> LayerAssembler instantiateLayerAssembler( Class<T> layerAssemblerClass,
+                                                                                   LayerAssembly layer
+    )
+        throws InstantiationException, IllegalAccessException, InvocationTargetException, IllegalLayerAssemblerException
+    {
+        if( layerAssemblerClass.equals( AccessLayer.class ))
+        {
+            return new AccessLayer( testClass );
+        }
+        return super.instantiateLayerAssembler( layerAssemblerClass, layer );
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.java
new file mode 100644
index 0000000..2413ea3
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigLayer.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.apache.polygene.test.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+
+class ConfigLayer extends LayeredLayerAssembler
+{
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+        createModule( layer, ConfigModule.class );
+        return layer;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java
new file mode 100644
index 0000000..6c7c52e
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/ConfigModule.java
@@ -0,0 +1,41 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.entitystore.memory.MemoryEntityStoreService;
+
+class ConfigModule
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.java
new file mode 100644
index 0000000..3754fd8
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/DomainLayer.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.apache.polygene.test.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+
+class DomainLayer extends LayeredLayerAssembler
+{
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+        createModule( layer, PetShopModule.class );
+        createModule( layer, FamilyModule.class );
+        createModule( layer, AccountModule.class );
+        return layer;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java
new file mode 100644
index 0000000..42054a7
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/FamilyModule.java
@@ -0,0 +1,52 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.test.model.Address;
+import org.apache.polygene.test.model.Cat;
+import org.apache.polygene.test.model.City;
+import org.apache.polygene.test.model.Dog;
+import org.apache.polygene.test.model.Female;
+import org.apache.polygene.test.model.Male;
+
+class FamilyModule
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.entities( Male.class,
+                         Female.class,
+                         City.class,
+                         Cat.class,
+                         Dog.class ).visibleIn( Visibility.application );
+
+        module.values( Address.class ).visibleIn( Visibility.application );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java
new file mode 100644
index 0000000..b0b5b87
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/IndexingLayer.java
@@ -0,0 +1,38 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+import org.apache.polygene.test.indexing.layered.AbstractMultiLayeredIndexingTest;
+
+class IndexingLayer extends LayeredLayerAssembler
+{
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+        createModule( layer, AbstractMultiLayeredIndexingTest.indexingAssembler );
+        return layer;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.java
new file mode 100644
index 0000000..26e69ab
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceLayer.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.apache.polygene.test.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.layered.LayeredLayerAssembler;
+
+class PersistenceLayer extends LayeredLayerAssembler
+{
+
+    @Override
+    public LayerAssembly assemble( LayerAssembly layer )
+        throws AssemblyException
+    {
+        createModule( layer, PersistenceModule.class );
+        return layer;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java
new file mode 100644
index 0000000..a19631f
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PersistenceModule.java
@@ -0,0 +1,44 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.api.value.ValueSerialization;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.entitystore.memory.MemoryEntityStoreService;
+import org.apache.polygene.valueserialization.orgjson.OrgJsonValueSerializationService;
+
+class PersistenceModule
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.services( OrgJsonValueSerializationService.class ).taggedWith( ValueSerialization.Formats.JSON );
+        module.services( MemoryEntityStoreService.class ).visibleIn( Visibility.application );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java
new file mode 100644
index 0000000..40fae45
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/PetShopModule.java
@@ -0,0 +1,51 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.test.model.Address;
+import org.apache.polygene.test.model.Cat;
+import org.apache.polygene.test.model.City;
+import org.apache.polygene.test.model.Dog;
+import org.apache.polygene.test.model.Owner;
+import org.apache.polygene.test.model.Staff;
+
+class PetShopModule
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.entities( Owner.class,
+                         Staff.class );
+        module.entities( City.class,
+                         Cat.class,
+                         Dog.class );
+
+        module.values( Address.class );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.java
new file mode 100644
index 0000000..09dd396
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestExecutionModule.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.apache.polygene.test.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+
+public class TestExecutionModule
+    implements ModuleAssembler
+{
+    private final Class<?> testClass;
+
+    public TestExecutionModule( Class<?> testClass)
+    {
+        this.testClass = testClass;
+    }
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        module.objects( testClass ).visibleIn( Visibility.layer );
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java
new file mode 100644
index 0000000..ff2fa08
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite1Module.java
@@ -0,0 +1,53 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+import org.apache.polygene.test.indexing.layered.Suite1Case1;
+import org.apache.polygene.test.indexing.layered.Suite1Case2;
+import org.apache.polygene.test.indexing.layered.TestCase;
+
+class TestSuite1Module
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        declareTestCase( module, Suite1Case1.class );
+        declareTestCase( module, Suite1Case2.class );
+        return module;
+    }
+
+    private void declareTestCase( ModuleAssembly module, Class<?> testcaseMixin )
+    {
+        module.services( TestCase.class )
+            .withMixins( testcaseMixin )
+            .visibleIn( Visibility.layer )
+            .taggedWith( testcaseMixin.getSimpleName() );
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java
new file mode 100644
index 0000000..cae05ac
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite2Module.java
@@ -0,0 +1,38 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+
+class TestSuite2Module
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java
new file mode 100644
index 0000000..369cbba
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/assembly/TestSuite3Module.java
@@ -0,0 +1,38 @@
+/*
+ *  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.model.assembly;
+
+import org.apache.polygene.bootstrap.AssemblyException;
+import org.apache.polygene.bootstrap.LayerAssembly;
+import org.apache.polygene.bootstrap.ModuleAssembly;
+import org.apache.polygene.bootstrap.layered.ModuleAssembler;
+
+class TestSuite3Module
+    implements ModuleAssembler
+{
+
+    @Override
+    public ModuleAssembly assemble( LayerAssembly layer, ModuleAssembly module )
+        throws AssemblyException
+    {
+        return module;
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html
----------------------------------------------------------------------
diff --git a/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html b/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html
new file mode 100644
index 0000000..f006a94
--- /dev/null
+++ b/core/testsupport/src/main/java/org/apache/polygene/test/model/package.html
@@ -0,0 +1,24 @@
+<!--
+  ~  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>Index/Query SPI Test Support - Model.</h2>
+    </body>
+</html>

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java b/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java
index af97dc9..7194340 100644
--- a/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java
+++ b/extensions/entitystore-cassandra/src/test/java/org/apache/polygene/entitystore/cassandra/CassandraMapEntityStoreTest.java
@@ -38,7 +38,7 @@ public class CassandraMapEntityStoreTest
     extends AbstractEntityStoreTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "cassandra", 9042 );
+    public static final DockerRule DOCKER = new DockerRule( "cassandra", "Starting listening for CQL clients" );
 
     @Override
     // START SNIPPET: assembly
@@ -60,6 +60,7 @@ public class CassandraMapEntityStoreTest
         CassandraEntityStoreConfiguration cassandraConfig = config.forMixin( CassandraEntityStoreConfiguration.class ).declareDefaults();
         String host = DOCKER.getDockerHost();
         int port = DOCKER.getExposedContainerPort( "9042/tcp" );
+        System.out.println("Cassandra: " + host + ":" + port);
         cassandraConfig.hostnames().set( host + ':' + port );
         cassandraConfig.createIfMissing().set( true );
         // START SNIPPET: assembly

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
index f375b02..6b30854 100644
--- a/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
+++ b/extensions/entitystore-jclouds/src/test/java/org/apache/polygene/entitystore/jclouds/JCloudsS3Test.java
@@ -31,7 +31,7 @@ import org.junit.ClassRule;
 public class JCloudsS3Test extends AbstractEntityStoreTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "s3server", 8000 );
+    public static final DockerRule DOCKER = new DockerRule( "s3server", "server started" );
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java
index 54a8f81..67904db 100644
--- a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java
+++ b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreTest.java
@@ -30,7 +30,7 @@ import org.junit.ClassRule;
 public class RiakMapEntityStoreTest extends AbstractEntityStoreTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "riak", 8087 );
+    public static final DockerRule DOCKER = new DockerRule( "riak","riak_auth_mods started on node");
 
     private RiakFixture riakFixture;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
index 85946cd..99cf561 100644
--- a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
+++ b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakMapEntityStoreWithCacheTest.java
@@ -33,7 +33,7 @@ import org.junit.ClassRule;
 public class RiakMapEntityStoreWithCacheTest extends AbstractEntityStoreWithCacheTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "riak", 8087 );
+    public static final DockerRule DOCKER = new DockerRule( "riak","riak_auth_mods started on node");
 
     private RiakFixture riakFixture;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/build.gradle b/extensions/entitystore-sql/build.gradle
index ee99f52..e481c85 100644
--- a/extensions/entitystore-sql/build.gradle
+++ b/extensions/entitystore-sql/build.gradle
@@ -39,6 +39,7 @@ dependencies {
   testImplementation polygene.library( 'sql-dbcp' )
   testImplementation polygene.extension( 'valueserialization-orgjson' )
   testImplementation libraries.derby // Needed at compile time for polite test shutdown
+  testImplementation libraries.docker_junit
 
   testRuntimeOnly libraries.logback
   testRuntimeOnly libraries.h2

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java
index 0718ddb..9789ac9 100644
--- a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTest.java
@@ -52,7 +52,8 @@ public class MySQLEntityStoreTest
             put( "MYSQL_DATABASE", "jdbc_test_db" );
             put( "MYSQL_ROOT_HOST", "172.17.0.1" );
         }},
-        3306
+        30000L
+//        , "mysqld: ready for connections"   TODO: add this after next release of tdomzal/junit-docker-rule
     );
 
     @Override

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java
index 49d5a13..8e32261 100644
--- a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java
+++ b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTest.java
@@ -77,7 +77,7 @@ public class PostgreSQLEntityStoreTest
     extends AbstractEntityStoreTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 );
+    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." );
 
     @Override
     // START SNIPPET: assembly


[4/6] polygene-java git commit: Fixing the "too soon" start up problem with the systems running in Docker.

Posted by ni...@apache.org.
http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfNamedQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfNamedQueryTest.java b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfNamedQueryTest.java
index 6ebbee8..18cc678 100644
--- a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfNamedQueryTest.java
+++ b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfNamedQueryTest.java
@@ -58,16 +58,16 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
         "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "\n" + "}", // script01
 // END SNIPPET: query1
 
 // START SNIPPET: query2
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Domain>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Domain>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "FILTER (?v0 = \"Gaming\")\n" + "}", // script02
 // END SNIPPET: query2
@@ -76,100 +76,100 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
         "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "\n" + "}", // script03
 // END SNIPPET: query3
 
 // START SNIPPET: query4
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
-            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
+            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:placeOfBirth ?v0. \n" + "?v0 ns2:name ?v1. \n" + "FILTER (?v1 = \"Kuala Lumpur\")\n" + "}", // script04
 // END SNIPPET: query4
 
 // START SNIPPET: query5
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
-            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
+            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:mother ?v0. \n"
             + "?v0 ns1:placeOfBirth ?v1. \n" + "?v1 ns2:name ?v2. \n" + "FILTER (?v2 = \"Kuala Lumpur\")\n" + "}", // script05
 // END SNIPPET: query5
 
 // START SNIPPET: query6
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER (?v0 >= \"1973\")\n" + "}", // script06
 // END SNIPPET: query6
 
 // START SNIPPET: query7
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
-            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
+            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "?entity ns1:placeOfBirth ?v1. \n" + "?v1 ns2:name ?v2. \n"
             + "FILTER ((?v0 >= \"1900\") && (?v2 = \"Penang\"))\n" + "}", // script07
 // END SNIPPET: query7
 
 // START SNIPPET: query8
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER ((?v0 = \"1970\") || (?v0 = \"1975\"))\n" + "}", // script08
 // END SNIPPET: query8
 
 // START SNIPPET: query9
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Female>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Female>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER ((?v0 = \"1970\") || (?v0 = \"1975\"))\n" + "}", // script09
 // END SNIPPET: query9
 
 // START SNIPPET: query10
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER (!(?v0 = \"1975\"))\n" + "}", // script10
 // END SNIPPET: query10
 
 // START SNIPPET: query11
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "OPTIONAL {?entity ns1:email ?v0}. \n" + "FILTER (bound(?v0))\n" + "}", // script11
 // END SNIPPET: query11
 
 // START SNIPPET: query12
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "OPTIONAL {?entity ns1:email ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script12
 // END SNIPPET: query12
@@ -177,9 +177,9 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
 // START SNIPPET: query13
         "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
-            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n"
+            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (bound(?v0))\n" + "}", // script13
 // END SNIPPET: query13
@@ -187,9 +187,9 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
 // START SNIPPET: query14
         "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
-            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n"
+            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Male>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Male>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script14
 // END SNIPPET: query14
@@ -197,83 +197,83 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
 // START SNIPPET: query15
         "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
-            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n"
+            + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script15
 // END SNIPPET: query15
 
 // START SNIPPET: query16
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "\n" + "}", // script16
 // END SNIPPET: query16
 
 // START SNIPPET: query17
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "\n" + "} ", // script17
 // END SNIPPET: query17
 
 // START SNIPPET: query18
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "\n" + "}\n", // script18
 // END SNIPPET: query18
 
 // START SNIPPET: query19
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "FILTER (?v0 > \"D\")\n" + "} ", // script19
 // END SNIPPET: query19
 
 // START SNIPPET: query20
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
-            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
+            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:yearOfBirth ?v0. \n" + "?entity ns2:name ?v1. \n" + "FILTER (?v0 > \"1973\")\n" + "}\n"
             , // script20
 // END SNIPPET: query20
 
 // START SNIPPET: query21
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n"
-            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n"
+            + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n"
             + "?entity ns1:placeOfBirth ?v0. \n" + "?v0 ns2:name ?v1. \n" + "?entity ns1:yearOfBirth ?v2. \n" + "\n"
             + "}", // script21
 // END SNIPPET: query21
 
 // START SNIPPET: query22
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "FILTER regex(?v0,\"J.*Doe\")\n" + "}", // script22
 // END SNIPPET: query22
@@ -283,11 +283,11 @@ public class RdfNamedQueryTest extends AbstractNamedQueryTest
 // END SNIPPET: query23
 
 // START SNIPPET: query24
-        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n"
+        "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n"
             + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n"
             + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n"
             + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n"
-            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Domain>. \n"
+            + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Domain>. \n"
             + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n"
             + "FILTER (?v0 = ?domain)\n" + "}" // script24
 // END SNIPPET: query24

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLComplexQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLComplexQueryTest.java b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLComplexQueryTest.java
index 74d8e63..da9e217 100644
--- a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLComplexQueryTest.java
+++ b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLComplexQueryTest.java
@@ -29,7 +29,7 @@ public class PostgreSQLComplexQueryTest
     extends AbstractComplexQueryTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 );
+    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." );
 
     @Override
     public void assemble( ModuleAssembly mainModule )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLDBIntegrityTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLDBIntegrityTest.java b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLDBIntegrityTest.java
index 627c8df..7906b61 100644
--- a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLDBIntegrityTest.java
+++ b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLDBIntegrityTest.java
@@ -46,7 +46,7 @@ public class PostgreSQLDBIntegrityTest
     extends AbstractPolygeneTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 );
+    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." );
 
     public static interface TestEntity
         extends EntityComposite

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLEntityFinderTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLEntityFinderTest.java b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLEntityFinderTest.java
index 8a0c3f2..e909827 100644
--- a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLEntityFinderTest.java
+++ b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLEntityFinderTest.java
@@ -29,7 +29,7 @@ public class PostgreSQLEntityFinderTest
     extends AbstractEntityFinderTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 );
+    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." );
 
     @Override
     public void assemble( ModuleAssembly mainModule )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLQueryTest.java
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLQueryTest.java b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLQueryTest.java
index 3a4caa6..ab8b923 100644
--- a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLQueryTest.java
+++ b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/PostgreSQLQueryTest.java
@@ -36,7 +36,7 @@ public class PostgreSQLQueryTest
     extends AbstractQueryTest
 {
     @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 5432 );
+    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, "PostgreSQL init process complete; ready for start up." );
 
     @Override
     public void assemble( ModuleAssembly mainModule )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DelayChecker.java
----------------------------------------------------------------------
diff --git a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DelayChecker.java b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DelayChecker.java
new file mode 100644
index 0000000..574381d
--- /dev/null
+++ b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DelayChecker.java
@@ -0,0 +1,60 @@
+/*
+ *  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.internal;
+
+import pl.domzal.junit.docker.rule.wait.StartCondition;
+import pl.domzal.junit.docker.rule.wait.StartConditionCheck;
+
+class DelayChecker
+    implements StartCondition
+{
+
+    private final long millis;
+    private final long doneAt;
+
+    DelayChecker( long millis )
+    {
+        this.millis = millis;
+        this.doneAt = System.currentTimeMillis() + millis;
+    }
+
+    @Override
+    public StartConditionCheck build( pl.domzal.junit.docker.rule.DockerRule currentRule )
+    {
+        return new StartConditionCheck()
+        {
+
+            @Override
+            public boolean check()
+            {
+                return System.currentTimeMillis() > doneAt;
+            }
+
+            @Override
+            public String describe()
+            {
+                return String.format( "delay check %d ms", millis );
+            }
+
+            @Override
+            public void after()
+            {
+            }
+        };
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
----------------------------------------------------------------------
diff --git a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
index 1e228a5..f8059bd 100644
--- a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
+++ b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/internal/DockerRule.java
@@ -17,14 +17,21 @@
  */
 package org.apache.polygene.test.internal;
 
+import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 import org.junit.rules.TestRule;
 import org.junit.runner.Description;
 import org.junit.runners.model.Statement;
 import pl.domzal.junit.docker.rule.DockerRuleBuilder;
 import pl.domzal.junit.docker.rule.WaitFor;
+import pl.domzal.junit.docker.rule.wait.LineListener;
+import pl.domzal.junit.docker.rule.wait.StartCondition;
+import pl.domzal.junit.docker.rule.wait.StartConditionCheck;
 
+import static java.util.stream.Collectors.joining;
 import static org.junit.Assume.assumeFalse;
 
 public class DockerRule
@@ -35,11 +42,40 @@ public class DockerRule
 
     public DockerRule( String image, int... portsToWaitFor )
     {
-        this( image, Collections.emptyMap(), portsToWaitFor );
+        this( image, null, WaitFor.tcpPort( portsToWaitFor ) );
     }
 
-    public DockerRule( String image, Map<String, String> environment, int... portsToWaitFor )
+    public DockerRule( String image, String... logMessageSequenceToWaitFor )
     {
+        this( image, null, WaitFor.logMessageSequence( logMessageSequenceToWaitFor ) );
+    }
+
+    public DockerRule( String image, Map<String, String> environment, String... logMessageSequnceToWaitFor )
+    {
+        this( image, environment, WaitFor.logMessageSequence( logMessageSequnceToWaitFor ) );
+    }
+
+    public DockerRule( String image, Long delay, int... portsToWaitFor )
+    {
+        this( image, null, new DelayChecker( delay ), WaitFor.tcpPort( portsToWaitFor ), new DelayChecker( delay ) );
+    }
+
+    public DockerRule( String image, Long delay, String... logMessageSequenceToWaitFor )
+    {
+        this( image, null, WaitFor.logMessageSequence( logMessageSequenceToWaitFor ), new DelayChecker( delay ) );
+    }
+
+    public DockerRule( String image, Map<String, String> environment, Long delay, String... logMessageSequnceToWaitFor )
+    {
+        this( image, environment, WaitFor.logMessageSequence( logMessageSequnceToWaitFor ), new DelayChecker( delay ) );
+    }
+
+    public DockerRule( String image, Map<String, String> environment, StartCondition... waitFor )
+    {
+        if( environment == null )
+        {
+            environment = Collections.emptyMap();
+        }
         if( dockerDisabled )
         {
             dockerRule = null;
@@ -50,7 +86,8 @@ public class DockerRule
                 .builder()
                 .imageName( "org.apache.polygene:org.apache.polygene.internal.docker-" + image )
                 .publishAllPorts( true )
-                .waitFor( WaitFor.tcpPort( portsToWaitFor ) );
+                .waitForTimeout( 60000 )
+                .waitFor( rule -> new AndChecker( rule, waitFor ) );
             environment.entrySet().forEach( entry -> builder.env( entry.getKey(), entry.getValue() ) );
             dockerRule = builder.build();
         }
@@ -72,4 +109,48 @@ public class DockerRule
     {
         return Integer.valueOf( dockerRule.getExposedContainerPort( containerPort ) );
     }
+
+    public class AndChecker
+        implements StartConditionCheck, LineListener
+    {
+        private List<StartConditionCheck> allOf;
+
+        public AndChecker( pl.domzal.junit.docker.rule.DockerRule rule, StartCondition... allOf )
+        {
+            this.allOf = Arrays.stream( allOf ).map( cond -> cond.build( rule ) ).collect( Collectors.toList() );
+        }
+
+        @Override
+        public boolean check()
+        {
+            return allOf.stream()
+                        .allMatch( StartConditionCheck::check );
+        }
+
+        @Override
+        public String describe()
+        {
+            return allOf.stream()
+                        .map( StartConditionCheck::describe )
+                        .collect( joining( ",", "and(", ")" ) );
+        }
+
+        @Override
+        public void after()
+        {
+            allOf.forEach( StartConditionCheck::after );
+        }
+
+        @Override
+        public void nextLine( String line )
+        {
+            allOf.forEach( listener ->
+                           {
+                               if( listener instanceof LineListener )
+                               {
+                                   ( (LineListener) listener ).nextLine( line );
+                               }
+                           } );
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/cfd38626/libraries/http/build.gradle
----------------------------------------------------------------------
diff --git a/libraries/http/build.gradle b/libraries/http/build.gradle
index 19c89dc..6002d53 100644
--- a/libraries/http/build.gradle
+++ b/libraries/http/build.gradle
@@ -38,6 +38,7 @@ dependencies {
 
   testImplementation polygene.core.testsupport
   testImplementation libraries.http_client
+  testImplementation libraries.junit
 
   testRuntimeOnly libraries.logback
 }