http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreWithCacheTest.java
 
b/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreWithCacheTest.java
index d5c869d..427dcaa 100644
--- 
a/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreWithCacheTest.java
+++ 
b/extensions/entitystore-redis/src/test/java/org/apache/polygene/entitystore/redis/RedisEntityStoreWithCacheTest.java
@@ -19,24 +19,24 @@
  */
 package org.apache.polygene.entitystore.redis;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.redis.assembly.RedisEntityStoreAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.cache.AbstractEntityStoreWithCacheTest;
-import org.apache.polygene.test.docker.DockerRule;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
 
+@Docker( image = "redis",
+         ports = @Port( exposed = 8801, inner = 6379))
 public class RedisEntityStoreWithCacheTest
     extends AbstractEntityStoreWithCacheTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "redis", 6379 );
-
     @Override
     public void assemble( ModuleAssembly module )
         throws AssemblyException
@@ -47,8 +47,8 @@ public class RedisEntityStoreWithCacheTest
         new RedisEntityStoreAssembler().withConfig( config, Visibility.layer 
).assemble( module );
         RedisEntityStoreConfiguration redisConfig = config.forMixin( 
RedisEntityStoreConfiguration.class )
                                                           .declareDefaults();
-        redisConfig.host().set( DOCKER.getDockerHost() );
-        redisConfig.port().set( DOCKER.getExposedContainerPort( "6379/tcp" ) );
+        redisConfig.host().set( "localhost" );
+        redisConfig.port().set( 8801 );
     }
 
     private JedisPool jedisPool;
@@ -64,6 +64,7 @@ public class RedisEntityStoreWithCacheTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         try( Jedis jedis = jedisPool.getResource() )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-riak/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-riak/build.gradle 
b/extensions/entitystore-riak/build.gradle
index 98200ac..a160c63 100644
--- a/extensions/entitystore-riak/build.gradle
+++ b/extensions/entitystore-riak/build.gradle
@@ -35,6 +35,7 @@ dependencies {
 
   testImplementation polygene.internals.testsupport
   testImplementation libraries.awaitility
+  testImplementation libraries.docker_junit
 
   testRuntimeOnly libraries.logback
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTest.java
 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTest.java
index 31c886e..dc7a5fd 100644
--- 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTest.java
+++ 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTest.java
@@ -17,21 +17,23 @@
  */
 package org.apache.polygene.entitystore.riak;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import java.util.Collections;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.entitystore.riak.assembly.RiakEntityStoreAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 
+@Docker( image = "riak",
+         ports = @Port( exposed = 8801, inner = 8087),
+         waitFor = @WaitFor( value = "riak_auth_mods started on node", 
timeoutInMillis = 30000))
 public class RiakEntityStoreTest extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( 
"riak","riak_auth_mods started on node");
-
     private RiakFixture riakFixture;
 
     @Override
@@ -46,6 +48,7 @@ public class RiakEntityStoreTest extends 
AbstractEntityStoreTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         riakFixture.deleteTestData();
@@ -65,8 +68,8 @@ public class RiakEntityStoreTest extends 
AbstractEntityStoreTest
         // END SNIPPET: assembly
         RiakEntityStoreConfiguration riakConfig = config.forMixin( 
RiakEntityStoreConfiguration.class )
                                                         .declareDefaults();
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "8087/tcp" );
+        String host = "localhost";
+        int port = 8801;
         riakConfig.hosts().set( Collections.singletonList( host + ':' + port ) 
);
         // START SNIPPET: assembly
     }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java
 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java
index 0974da7..fc9d477 100644
--- 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreTestSuite.java
@@ -17,20 +17,22 @@
  */
 package org.apache.polygene.entitystore.riak;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import java.util.Collections;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.api.structure.Module;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.entitystore.riak.assembly.RiakEntityStoreAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.BeforeEach;
 
+@Docker( image = "riak",
+         ports = @Port( exposed = 8801, inner = 8087),
+         waitFor = @WaitFor( value = "riak_auth_mods started on node", 
timeoutInMillis = 30000))
 public class RiakEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "riak", 
"riak_auth_mods started on node" );
-
     private RiakFixture riakFixture;
 
     @Override
@@ -44,8 +46,8 @@ public class RiakEntityStoreTestSuite extends 
EntityStoreTestSuite
 
         RiakEntityStoreConfiguration riakConfig = configModule.forMixin( 
RiakEntityStoreConfiguration.class )
                                                               
.declareDefaults();
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "8087/tcp" );
+        String host = "localhost";
+        int port = 8801;
         riakConfig.hosts().set( Collections.singletonList( host + ':' + port ) 
);
     }
 
@@ -57,6 +59,7 @@ public class RiakEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
+    @BeforeEach
     public void setUp()
         throws Exception
     {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreWithCacheTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreWithCacheTest.java
 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreWithCacheTest.java
index 3cfd08d..f6d4a33 100644
--- 
a/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreWithCacheTest.java
+++ 
b/extensions/entitystore-riak/src/test/java/org/apache/polygene/entitystore/riak/RiakEntityStoreWithCacheTest.java
@@ -19,6 +19,9 @@
  */
 package org.apache.polygene.entitystore.riak;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import java.util.Collections;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
@@ -26,15 +29,14 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.entitystore.riak.assembly.RiakEntityStoreAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.cache.AbstractEntityStoreWithCacheTest;
-import org.apache.polygene.test.docker.DockerRule;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 
+@Docker( image = "riak",
+         ports = @Port( exposed = 8801, inner = 8087 ),
+         waitFor = @WaitFor( value = "riak_auth_mods started on node", 
timeoutInMillis = 30000 ) )
 public class RiakEntityStoreWithCacheTest extends 
AbstractEntityStoreWithCacheTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( 
"riak","riak_auth_mods started on node");
-
     private RiakFixture riakFixture;
 
     @Override
@@ -49,6 +51,7 @@ public class RiakEntityStoreWithCacheTest extends 
AbstractEntityStoreWithCacheTe
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         riakFixture.deleteTestData();
@@ -65,8 +68,8 @@ public class RiakEntityStoreWithCacheTest extends 
AbstractEntityStoreWithCacheTe
         new RiakEntityStoreAssembler().withConfig( config, Visibility.layer 
).assemble( module );
         RiakEntityStoreConfiguration riakConfig = config.forMixin( 
RiakEntityStoreConfiguration.class )
                                                         .declareDefaults();
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "8087/tcp" );
+        String host = "localhost";
+        int port = 8801;
         riakConfig.hosts().set( Collections.singletonList( host + ':' + port ) 
);
     }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sql/build.gradle 
b/extensions/entitystore-sql/build.gradle
index a2f4cd3..a6b9fc4 100644
--- a/extensions/entitystore-sql/build.gradle
+++ b/extensions/entitystore-sql/build.gradle
@@ -35,10 +35,8 @@ dependencies {
   testImplementation polygene.library( 'sql-dbcp' )
   testImplementation polygene.library( 'sql-bonecp' )
 
-  testImplementation 'com.github.faustxvi:junit5-docker:1.0.0-RC5'
-//  testImplementation (libraries.docker_junit ) { exclude group: "junit", 
module: "junit" }
+  testImplementation libraries.docker_junit
   testImplementation libraries.h2
-  testImplementation libraries.junit_vintage
 
   testRuntimeOnly libraries.logback
   testRuntimeOnly libraries.derby

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTest.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTest.java
index aa3833b..e49aec6 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTest.java
@@ -28,7 +28,7 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class DerbySQLEntityStoreTest
     extends AbstractEntityStoreTest
@@ -68,7 +68,7 @@ public class DerbySQLEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.DERBY, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java
index 4ac3302..54b067a 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/DerbySQLEntityStoreTestSuite.java
@@ -26,7 +26,7 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class DerbySQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
@@ -57,7 +57,7 @@ public class DerbySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.DERBY, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTest.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTest.java
index 906c7c2..f1acf22 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTest.java
@@ -28,7 +28,7 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class H2SQLEntityStoreTest
     extends AbstractEntityStoreTest
@@ -68,7 +68,7 @@ public class H2SQLEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.H2, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java
index 7c7d3f5..120b9d8 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/H2SQLEntityStoreTestSuite.java
@@ -26,7 +26,7 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class H2SQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
@@ -57,7 +57,7 @@ public class H2SQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.H2, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTest.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTest.java
index 7b11e7a..10921a8 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTest.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTest.java
@@ -19,7 +19,10 @@
  */
 package org.apache.polygene.entitystore.sql;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -28,30 +31,23 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mariadb", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for 
connections",timeoutInMillis = 30000))
 public class MariaDbEntityStoreTest
     extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mariadb",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
 
     @Override
     // START SNIPPET: assembly
@@ -85,8 +81,8 @@ public class MariaDbEntityStoreTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         // END SNIPPET: assembly
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String host = "localhost";
+        int port = 8801;
         config.forMixin( DataSourceConfiguration.class ).declareDefaults()
               .url().set( "jdbc:mysql://" + host + ":" + port
                           + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -96,7 +92,7 @@ public class MariaDbEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.MARIADB, 
super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTestSuite.java
index e8e1a4d..edebfc9 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MariaDbEntityStoreTestSuite.java
@@ -19,36 +19,32 @@
  */
 package org.apache.polygene.entitystore.sql;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.entitystore.sql.assembly.MySQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mariadb", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MariaDbEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mariadb",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
 
     @Override
     protected void defineStorageModule( ModuleAssembly module )
@@ -75,8 +71,8 @@ public class MariaDbEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         configModule.forMixin( DataSourceConfiguration.class 
).declareDefaults()
                     .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                                 + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -84,7 +80,7 @@ public class MariaDbEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.MARIADB, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 76d3736..1771c89 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
@@ -19,7 +19,10 @@
  */
 package org.apache.polygene.entitystore.sql;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -28,31 +31,23 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mysql", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MySQLEntityStoreTest
     extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mysql",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
@@ -85,8 +80,8 @@ public class MySQLEntityStoreTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         // END SNIPPET: assembly
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         config.forMixin( DataSourceConfiguration.class ).declareDefaults()
               .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                           + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -96,7 +91,7 @@ public class MySQLEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.MYSQL, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java
index 18c7370..ae1f22f 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/MySQLEntityStoreTestSuite.java
@@ -19,37 +19,32 @@
  */
 package org.apache.polygene.entitystore.sql;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.entitystore.sql.assembly.MySQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mysql", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MySQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mysql",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     protected void defineStorageModule( ModuleAssembly module )
     {
@@ -75,8 +70,8 @@ public class MySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         configModule.forMixin( DataSourceConfiguration.class 
).declareDefaults()
                     .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                                 + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -84,7 +79,7 @@ public class MySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.MYSQL, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 3f2490b..0102e09 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
@@ -20,10 +20,9 @@
 package org.apache.polygene.entitystore.sql;
 
 import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
 import com.github.junit5docker.Port;
 import com.github.junit5docker.WaitFor;
-import java.util.HashMap;
-import java.util.Map;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -32,34 +31,19 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 
-@Docker( image = "postgres",
-         ports = @Port( exposed = 45432, inner = 5432 ),
-         waitFor = @WaitFor( "PostgreSQL init process complete; ready for 
start up." ),
-         newForEachCase = false )
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         environments = {
+             @Environment( key = "POSTGRES_USER", value = "polygene" ),
+             @Environment(key = "POSTGRES_PASSWORD", value = "ThisIsGreat!")
+         },
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLEntityStoreTest
     extends AbstractEntityStoreTest
 {
-//    @ClassRule
-//    public static final DockerRule DOCKER;
-//
-//    static
-//    {
-//        Map<String, String> environment = new HashMap<>();
-//        environment.put( "POSTGRES_USER", System.getProperty( "user.name" ) 
);
-//        environment.put( "POSTGRES_PASSWORD", "ThisIsGreat!" );
-//
-//        DOCKER = new DockerRule( "postgres",
-//                                 environment,
-//                                 5000L,
-//                                 "PostgreSQL init process complete; ready 
for start up." );
-//    }
-
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
@@ -96,11 +80,11 @@ public class PostgreSQLEntityStoreTest
 
 //        String host = DOCKER.getDockerHost();
 //        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
-        int port = 45432;
+        int port = 8801;
         String host = "localhost";
         DataSourceConfiguration defaults = config.forMixin( 
DataSourceConfiguration.class ).declareDefaults();
         defaults.url().set( "jdbc:postgresql://" + host + ":" + port + 
"/jdbc_test_db" );
-        defaults.username().set( System.getProperty( "user.name" ) );
+        defaults.username().set( "polygene" );
         defaults.password().set( "ThisIsGreat!" );
 
         // START SNIPPET: assembly
@@ -120,7 +104,7 @@ public class PostgreSQLEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.POSTGRES, 
super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java
index 7a10131..2c2ef5d 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/PostgreSQLEntityStoreTestSuite.java
@@ -19,37 +19,28 @@
  */
 package org.apache.polygene.entitystore.sql;
 
-import java.util.HashMap;
-import java.util.Map;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.sql.assembly.PostgreSQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         environments = {
+             @Environment( key = "POSTGRES_USER", value = "polygene" ),
+             @Environment(key = "POSTGRES_PASSWORD", value = "ThisIsGreat!")
+         },
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER;
-
-    static
-    {
-        Map<String,String> environment = new HashMap<>();
-        environment.put( "POSTGRES_USER", System.getProperty( "user.name" ));
-        environment.put( "POSTGRES_PASSWORD", "ThisIsGreat!");
-
-        DOCKER = new DockerRule( "postgres",
-                                 environment,
-                                 5000L,
-                                 "PostgreSQL init process complete; ready for 
start up." );
-    }
-
     @Override
     protected void defineStorageModule( ModuleAssembly module )
     {
@@ -76,11 +67,11 @@ public class PostgreSQLEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         DataSourceConfiguration defaults = configModule.forMixin( 
DataSourceConfiguration.class ).declareDefaults();
         defaults.url().set( "jdbc:postgresql://" + host + ":" + port + 
"/jdbc_test_db" );
-        defaults.username().set( System.getProperty( "user.name" ) );
+        defaults.username().set( "polygene" );
         defaults.password().set( "ThisIsGreat!" );
 
         // START SNIPPET: assembly
@@ -88,7 +79,7 @@ public class PostgreSQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.POSTGRES, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTest.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTest.java
index 376f3da..43138a8 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTest.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTest.java
@@ -28,14 +28,14 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
 public class SQLiteEntityStoreTest extends AbstractEntityStoreTest
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
@@ -76,7 +76,7 @@ public class SQLiteEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.DERBY, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java
index 498211e..8c6f589 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SQLiteEntityStoreTestSuite.java
@@ -26,14 +26,14 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
 public class SQLiteEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
@@ -66,7 +66,7 @@ public class SQLiteEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.SQLITE, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SqlEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SqlEntityStoreTest.java
 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SqlEntityStoreTest.java
index e5e1d41..496add0 100644
--- 
a/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SqlEntityStoreTest.java
+++ 
b/extensions/entitystore-sql/src/test/java/org/apache/polygene/entitystore/sql/SqlEntityStoreTest.java
@@ -27,16 +27,16 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.extension.ExtendWith;
 
+@ExtendWith( TemporaryFolder.class )
 public class SqlEntityStoreTest extends AbstractEntityStoreTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     // START SNIPPET: assembly
@@ -88,7 +88,7 @@ public class SqlEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.DERBY, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/entitystore-sqlkv/build.gradle 
b/extensions/entitystore-sqlkv/build.gradle
index 5a6bec2..f86274c 100644
--- a/extensions/entitystore-sqlkv/build.gradle
+++ b/extensions/entitystore-sqlkv/build.gradle
@@ -33,7 +33,7 @@ dependencies {
 
   testImplementation polygene.internals.testsupport
   testImplementation polygene.library( 'sql-dbcp' )
-  testImplementation (libraries.docker_junit ) { exclude group: "junit", 
module: "junit" }
+  testImplementation libraries.docker_junit
 
   testRuntimeOnly libraries.logback
   testRuntimeOnly libraries.derby

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTest.java
index 161ee07..0bd6716 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTest.java
@@ -28,7 +28,7 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class DerbySQLEntityStoreTest extends AbstractEntityStoreTest
 {
@@ -67,7 +67,7 @@ public class DerbySQLEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.DERBY, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTestSuite.java
index cc61b84..3776d4f 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/DerbySQLEntityStoreTestSuite.java
@@ -20,15 +20,13 @@
 package org.apache.polygene.entitystore.sqlkv;
 
 import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.api.structure.Module;
-import org.apache.polygene.api.unitofwork.UnitOfWorkFactory;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.sqlkv.assembly.DerbySQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class DerbySQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
@@ -59,7 +57,7 @@ public class DerbySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.DERBY, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTest.java
index 8575cfb..46a66e3 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTest.java
@@ -28,7 +28,7 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class H2SQLEntityStoreTest extends AbstractEntityStoreTest
 {
@@ -67,7 +67,7 @@ public class H2SQLEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.H2, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTestSuite.java
index b4b736e..28ecf99 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/H2SQLEntityStoreTestSuite.java
@@ -26,7 +26,7 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
+import org.junit.jupiter.api.AfterEach;
 
 public class H2SQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
@@ -57,7 +57,7 @@ public class H2SQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.H2, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTest.java
index fbc12f3..59f3882 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTest.java
@@ -19,7 +19,10 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -28,30 +31,22 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mariadb", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for 
connections",timeoutInMillis = 30000))
 public class MariaDbEntityStoreTest extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mariadb",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
@@ -84,8 +79,8 @@ public class MariaDbEntityStoreTest extends 
AbstractEntityStoreTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         // END SNIPPET: assembly
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         config.forMixin( DataSourceConfiguration.class ).declareDefaults()
               .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                           + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -95,7 +90,7 @@ public class MariaDbEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.MARIADB, 
super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTestSuite.java
index 1c4502a..afb1d05 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MariaDbEntityStoreTestSuite.java
@@ -19,37 +19,32 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.sqlkv.assembly.MySQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mariadb", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MariaDbEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mariadb",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     protected void defineStorageModule( ModuleAssembly module )
     {
@@ -75,8 +70,8 @@ public class MariaDbEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         configModule.forMixin( DataSourceConfiguration.class 
).declareDefaults()
                     .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                                 + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -84,7 +79,7 @@ public class MariaDbEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.MARIADB, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTest.java
index 4e45ec8..d18e90f 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTest.java
@@ -19,7 +19,10 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -28,30 +31,22 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mysql", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MySQLEntityStoreTest extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mysql",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
@@ -84,8 +79,8 @@ public class MySQLEntityStoreTest extends 
AbstractEntityStoreTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         // END SNIPPET: assembly
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         config.forMixin( DataSourceConfiguration.class ).declareDefaults()
               .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                           + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -95,7 +90,7 @@ public class MySQLEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.MYSQL, super::tearDown 
);

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTestSuite.java
index 349ad3f..639d1d0 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/MySQLEntityStoreTestSuite.java
@@ -19,37 +19,32 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
-import java.util.HashMap;
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Environment;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.sqlkv.assembly.MySQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
-import org.junit.Ignore;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead of 
CHAR")
+@Disabled( "Waiting response from JOOQ to fix SQL generation. VARCHAR instead 
of CHAR")
+@Docker( image = "mysql", ports = @Port( exposed = 8801, inner = 3306),
+         environments = {
+             @Environment( key = "MYSQL_ROOT_PASSWORD", value = ""),
+             @Environment(key = "MYSQL_ALLOW_EMPTY_PASSWORD", value = "yes"),
+             @Environment(key = "MYSQL_DATABASE", value = "jdbc_test_db"),
+             @Environment( key = "MYSQL_ROOT_HOST", value = "172.17.0.1"),
+         },
+         waitFor = @WaitFor( value = "mysqld: ready for connections", 
timeoutInMillis = 30000))
 public class MySQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule(
-        "mysql",
-        new HashMap<String, String>()
-        {{
-            put( "MYSQL_ROOT_PASSWORD", "" );
-            put( "MYSQL_ALLOW_EMPTY_PASSWORD", "yes" );
-            put( "MYSQL_DATABASE", "jdbc_test_db" );
-            put( "MYSQL_ROOT_HOST", "172.17.0.1" );
-        }},
-        30000L
-//        , "mysqld: ready for connections"   TODO: add this after next 
release of tdomzal/junit-docker-rule
-    );
-
     @Override
     protected void defineStorageModule( ModuleAssembly module )
     {
@@ -75,8 +70,8 @@ public class MySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String mysqlHost = DOCKER.getDockerHost();
-        int mysqlPort = DOCKER.getExposedContainerPort( "3306/tcp" );
+        String mysqlHost = "localhost";
+        int mysqlPort = 8801;
         configModule.forMixin( DataSourceConfiguration.class 
).declareDefaults()
                     .url().set( "jdbc:mysql://" + mysqlHost + ":" + mysqlPort
                                 + 
"/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC"
@@ -84,7 +79,7 @@ public class MySQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.MYSQL, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTest.java
index b4552de..6f1622e 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTest.java
@@ -19,6 +19,9 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
@@ -27,19 +30,14 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLEntityStoreTest extends AbstractEntityStoreTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres",
-                                                            5000L,
-                                                            "PostgreSQL init 
process complete; ready for start up." );
-
     @Override
     // START SNIPPET: assembly
     public void assemble( ModuleAssembly module )
@@ -73,8 +71,8 @@ public class PostgreSQLEntityStoreTest extends 
AbstractEntityStoreTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         // END SNIPPET: assembly
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         DataSourceConfiguration defaults = config.forMixin( 
DataSourceConfiguration.class ).declareDefaults();
         defaults.url().set( "jdbc:postgresql://" + host + ":" + port + 
"/jdbc_test_db" );
         // START SNIPPET: assembly
@@ -94,7 +92,7 @@ public class PostgreSQLEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.POSTGRES, 
super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTestSuite.java
index ee45f23..4781389 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/PostgreSQLEntityStoreTestSuite.java
@@ -19,25 +19,23 @@
  */
 package org.apache.polygene.entitystore.sqlkv;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.api.common.Visibility;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import 
org.apache.polygene.entitystore.sqlkv.assembly.PostgreSQLEntityStoreAssembler;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.ClassRule;
+import org.junit.jupiter.api.AfterEach;
 
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres",
-                                                            5000L,
-                                                            "PostgreSQL init 
process complete; ready for start up." );
-
     @Override
     protected void defineStorageModule( ModuleAssembly module )
     {
@@ -64,8 +62,8 @@ public class PostgreSQLEntityStoreTestSuite extends 
EntityStoreTestSuite
             .withConfig( configModule, Visibility.application )
             .assemble( module );
 
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         configModule.forMixin( DataSourceConfiguration.class 
).declareDefaults()
                     .url().set( "jdbc:postgresql://" + host + ":" + port + 
"/jdbc_test_db" );
         // START SNIPPET: assembly
@@ -73,7 +71,7 @@ public class PostgreSQLEntityStoreTestSuite extends 
EntityStoreTestSuite
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.POSTGRES, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTest.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTest.java
index a74e0c3..a0e12fe 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTest.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTest.java
@@ -28,14 +28,14 @@ import 
org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
 import org.apache.polygene.test.entity.AbstractEntityStoreTest;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
 public class SQLiteEntityStoreTest extends AbstractEntityStoreTest
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
@@ -76,7 +76,7 @@ public class SQLiteEntityStoreTest extends 
AbstractEntityStoreTest
     // END SNIPPET: assembly
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( moduleInstance, SQLDialect.SQLITE, 
super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTestSuite.java
----------------------------------------------------------------------
diff --git 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTestSuite.java
 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTestSuite.java
index a73040c..d8a3485 100644
--- 
a/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTestSuite.java
+++ 
b/extensions/entitystore-sqlkv/src/test/java/org/apache/polygene/entitystore/sqlkv/SQLiteEntityStoreTestSuite.java
@@ -26,14 +26,14 @@ import 
org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.entity.model.EntityStoreTestSuite;
 import org.jooq.SQLDialect;
-import org.junit.After;
-import org.junit.BeforeClass;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
 public class SQLiteEntityStoreTestSuite extends EntityStoreTestSuite
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
@@ -66,7 +66,7 @@ public class SQLiteEntityStoreTestSuite extends 
EntityStoreTestSuite
     }
 
     @Override
-    @After
+    @AfterEach
     public void tearDown()
     {
         TearDown.dropTables( application.findModule( INFRASTRUCTURE_LAYER, 
STORAGE_MODULE ), SQLDialect.SQLITE, super::tearDown );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-elasticsearch/build.gradle 
b/extensions/indexing-elasticsearch/build.gradle
index 671b48e..86cdd6b 100644
--- a/extensions/indexing-elasticsearch/build.gradle
+++ b/extensions/indexing-elasticsearch/build.gradle
@@ -34,6 +34,5 @@ dependencies {
   runtimeOnly polygene.core.runtime
 
   testImplementation polygene.core.testsupport
-  testImplementation libraries.junit_vintage
   testRuntimeOnly libraries.logback
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ESEmbeddedRule.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ESEmbeddedRule.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ESEmbeddedRule.java
deleted file mode 100644
index 8c9807c..0000000
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ESEmbeddedRule.java
+++ /dev/null
@@ -1,131 +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.index.elasticsearch;
-
-import java.util.Locale;
-import org.apache.polygene.api.activation.ActivationException;
-import org.apache.polygene.api.common.Visibility;
-import org.apache.polygene.api.structure.Application;
-import org.apache.polygene.api.structure.Module;
-import org.apache.polygene.bootstrap.AssemblyException;
-import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.bootstrap.SingletonAssembler;
-import 
org.apache.polygene.index.elasticsearch.assembly.ESFilesystemIndexQueryAssembler;
-import org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
-import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
-import org.apache.polygene.test.EntityTestAssembler;
-import org.elasticsearch.client.Client;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestRule;
-import org.junit.runner.Description;
-import org.junit.runners.model.Statement;
-
-/**
- * Embedded Elasticsearch JUnit Rule.
- *
- * Starting from Elasticsearch 5, startup is way slower.
- * Reuse an embedded instance across tests.
- */
-public class ESEmbeddedRule implements TestRule
-{
-    private final TemporaryFolder tmpDir;
-    private Client client;
-
-    public ESEmbeddedRule( TemporaryFolder tmpDir )
-    {
-        this.tmpDir = tmpDir;
-    }
-
-    public Client client()
-    {
-        
client.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet();
-        return client;
-    }
-
-    public String indexName( String className, String methodName )
-    {
-        String indexName = className;
-        if( methodName != null )
-        {
-            indexName += '-' + methodName;
-        }
-        return indexName.toLowerCase( Locale.US );
-    }
-
-    @Override
-    public Statement apply( final Statement base, final Description 
description )
-    {
-        return new Statement()
-        {
-            @Override
-            public void evaluate() throws Throwable
-            {
-                String name = indexName( description.getClassName(), 
description.getMethodName() );
-                SingletonAssembler assembler = activateEmbeddedElasticsearch( 
name );
-                Application application = assembler.application();
-                client = findClient( assembler.module() );
-                try
-                {
-                    base.evaluate();
-                }
-                finally
-                {
-                    application.passivate();
-                    client.close();
-                    client = null;
-                }
-            }
-        };
-    }
-
-    private SingletonAssembler activateEmbeddedElasticsearch( final String 
name )
-    {
-        try
-        {
-            return new SingletonAssembler(
-                module -> {
-                    module.layer().application().setName( name );
-                    ModuleAssembly config = module.layer().module( "config" );
-                    new EntityTestAssembler().assemble( config );
-                    new EntityTestAssembler().assemble( module );
-                    new FileConfigurationAssembler()
-                        .withOverride( new 
FileConfigurationOverride().withConventionalRoot( tmpDir.getRoot() ) )
-                        .assemble( module );
-                    new ESFilesystemIndexQueryAssembler()
-                        .identifiedBy( name )
-                        .withConfig( config, Visibility.layer )
-                        .assemble( module );
-                }
-            );
-        }
-        catch( ActivationException | AssemblyException ex )
-        {
-            throw new RuntimeException( "Embedded Elasticsearch Rule - Failed 
to activate", ex );
-        }
-    }
-
-    private Client findClient( Module module )
-    {
-        Client client = module.serviceFinder().findService( 
ElasticSearchSupport.class ).get().client();
-        if( client == null )
-        {
-            throw new IllegalStateException( "Embedded Elasticsearch Rule - 
Failed to find client" );
-        }
-        return client;
-    }
-}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchComplexQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchComplexQueryTest.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchComplexQueryTest.java
index 65e9280..b06d6f7 100644
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchComplexQueryTest.java
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchComplexQueryTest.java
@@ -24,33 +24,27 @@ import 
org.apache.polygene.index.elasticsearch.assembly.ESClientIndexQueryAssemb
 import org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.test.EntityTestAssembler;
+import org.apache.polygene.test.TemporaryFolder;
+import org.apache.polygene.test.TestName;
 import org.apache.polygene.test.indexing.AbstractComplexQueryTest;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
-@Ignore( "ElasticSearch Index/Query do not support Complex Queries, ie. 
queries by 'example values'" )
+@Disabled( "ElasticSearch Index/Query do not support Complex Queries, ie. 
queries by 'example values'" )
+@ExtendWith( { TemporaryFolder.class, EmbeddedElasticSearchExtension.class, 
TestName.class } )
 public class ElasticSearchComplexQueryTest
     extends AbstractComplexQueryTest
 {
-    @ClassRule
-    public static final TemporaryFolder ELASTIC_SEARCH_DIR = new 
TemporaryFolder();
+    public static EmbeddedElasticSearchExtension ELASTIC_SEARCH;
 
-    @ClassRule
-    public static final ESEmbeddedRule ELASTIC_SEARCH = new ESEmbeddedRule( 
ELASTIC_SEARCH_DIR );
+    public TestName testName;
 
-    @Rule
-    public final TestName testName = new TestName();
+    private TemporaryFolder tmpDir;
 
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
-
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();

Reply via email to