http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchFinderTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchFinderTest.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchFinderTest.java
index 66a6eab..98bf878 100644
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchFinderTest.java
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchFinderTest.java
@@ -24,31 +24,26 @@ 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.AbstractEntityFinderTest;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-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.extension.ExtendWith;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
+@SuppressWarnings( "unused" )
+@ExtendWith( { TemporaryFolder.class, EmbeddedElasticSearchExtension.class, 
TestName.class } )
 public class ElasticSearchFinderTest
     extends AbstractEntityFinderTest
 {
-    @ClassRule
-    public static final TemporaryFolder ELASTIC_SEARCH_DIR = new 
TemporaryFolder();
+    private static EmbeddedElasticSearchExtension ELASTIC_SEARCH;
 
-    @ClassRule
-    public static final ESEmbeddedRule ELASTIC_SEARCH = new ESEmbeddedRule( 
ELASTIC_SEARCH_DIR );
+    private 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();

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchQueryTest.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchQueryTest.java
index 4763257..44f4102 100644
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchQueryTest.java
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchQueryTest.java
@@ -28,36 +28,32 @@ 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.AbstractQueryTest;
 import org.apache.polygene.test.util.NotYetImplemented;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Rule;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.test.util.Assume.assumeNoIbmJdk;
 
+@ExtendWith( { TemporaryFolder.class,
+               EmbeddedElasticSearchExtension.class,
+               TestName.class } )
 public class ElasticSearchQueryTest extends AbstractQueryTest
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
     }
 
-    @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();
-
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
+    public TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchTest.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchTest.java
index 6935ff2..e9bb52e 100644
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchTest.java
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ElasticSearchTest.java
@@ -38,12 +38,11 @@ import 
org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
+import org.apache.polygene.test.TestName;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.api.query.QueryExpressions.eq;
 import static org.apache.polygene.api.query.QueryExpressions.ne;
@@ -54,26 +53,22 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
 
+@ExtendWith( { TemporaryFolder.class, EmbeddedElasticSearchExtension.class, 
TestName.class } )
 public class ElasticSearchTest
     extends AbstractPolygeneTest
 {
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass_IBMJDK()
     {
         assumeNoIbmJdk();
     }
 
-    @ClassRule
-    public static final TemporaryFolder ELASTIC_SEARCH_DIR = new 
TemporaryFolder();
 
-    @ClassRule
-    public static final ESEmbeddedRule ELASTIC_SEARCH = new ESEmbeddedRule( 
ELASTIC_SEARCH_DIR );
+    public static EmbeddedElasticSearchExtension ELASTIC_SEARCH;
 
-    @Rule
-    public final TestName testName = new TestName();
+    public TestName testName;
 
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     public interface Post
         extends HasIdentity
@@ -139,8 +134,7 @@ public class ElasticSearchTest
             .withConfig( config, Visibility.layer )
             .assemble( module );
         ElasticSearchIndexingConfiguration esConfig = config.forMixin( 
ElasticSearchIndexingConfiguration.class ).declareDefaults();
-        esConfig.index().set( ELASTIC_SEARCH.indexName( 
ElasticSearchQueryTest.class.getName(),
-                                                        
testName.getMethodName() ) );
+        esConfig.index().set( ELASTIC_SEARCH.indexName( 
ElasticSearchQueryTest.class.getName(), testName.getMethodName() ) );
         esConfig.indexNonAggregatedAssociations().set( Boolean.TRUE );
 
         // FileConfig

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/EmbeddedElasticSearchExtension.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/EmbeddedElasticSearchExtension.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/EmbeddedElasticSearchExtension.java
new file mode 100644
index 0000000..ad46200
--- /dev/null
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/EmbeddedElasticSearchExtension.java
@@ -0,0 +1,149 @@
+/*
+ *  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.lang.reflect.UndeclaredThrowableException;
+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.apache.polygene.test.TemporaryFolder;
+import org.elasticsearch.client.Client;
+import org.junit.jupiter.api.extension.AfterAllCallback;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.api.extension.ExtensionContext;
+
+import static 
org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode.BOTTOM_UP;
+import static org.junit.platform.commons.util.ReflectionUtils.findFields;
+
+/**
+ * Embedded Elasticsearch JUnit Rule.
+ * <p>
+ * Starting from Elasticsearch 5, startup is way slower.
+ * Reuse an embedded instance across tests.
+ */
+@ExtendWith( TemporaryFolder.class )
+public class EmbeddedElasticSearchExtension
+    implements BeforeAllCallback, AfterAllCallback
+{
+    private TemporaryFolder tmpDir;
+    private Client client;
+    private Application application;
+
+    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 );
+    }
+
+    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;
+    }
+
+    @Override
+    public void beforeAll( ExtensionContext context )
+        throws Exception
+    {
+        this.tmpDir = new TemporaryFolder();
+        this.tmpDir.beforeEach( context );
+
+        String name = indexName( 
context.getRequiredTestClass().getSimpleName(), 
context.getRequiredTestMethod().getName() );
+        SingletonAssembler assembler = activateEmbeddedElasticsearch( name );
+        application = assembler.application();
+        client = findClient( assembler.module() );
+        inject( context );
+    }
+
+    private void inject( ExtensionContext context )
+    {
+        findFields( context.getRequiredTestClass(),
+                    f -> f.getType().equals( 
EmbeddedElasticSearchExtension.class ), BOTTOM_UP )
+            .forEach( f -> {
+                try
+                {
+                    f.setAccessible( true );
+                    f.set( context.getRequiredTestInstance(), this );
+                }
+                catch( IllegalAccessException e )
+                {
+                    throw new UndeclaredThrowableException( e );
+                }
+            } );
+    }
+
+    @Override
+    public void afterAll( ExtensionContext context )
+        throws Exception
+    {
+        application.passivate();
+        client.close();
+        client = null;
+        tmpDir.afterEach( context );
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ImmenseTermTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ImmenseTermTest.java
 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ImmenseTermTest.java
index b7adaed..425564c 100644
--- 
a/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ImmenseTermTest.java
+++ 
b/extensions/indexing-elasticsearch/src/test/java/org/apache/polygene/index/elasticsearch/ImmenseTermTest.java
@@ -35,12 +35,11 @@ import 
org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.BeforeClass;
-import org.junit.ClassRule;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
+import org.apache.polygene.test.TestName;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
-import org.junit.rules.TestName;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.api.query.QueryExpressions.eq;
 import static org.apache.polygene.api.query.QueryExpressions.templateFor;
@@ -53,22 +52,18 @@ import static org.hamcrest.core.Is.is;
  * <p>
  * See <a href="https://ops4j1.jira.com/browse/QI-412";>QI-412</a>.
  */
+@SuppressWarnings( "unused" )
+@ExtendWith( { TemporaryFolder.class, EmbeddedElasticSearchExtension.class, 
TestName.class } )
 public class ImmenseTermTest
     extends AbstractPolygeneTest
 {
-    @ClassRule
-    public static final TemporaryFolder ELASTIC_SEARCH_DIR = new 
TemporaryFolder();
+    private static EmbeddedElasticSearchExtension ELASTIC_SEARCH;
 
-    @ClassRule
-    public static final ESEmbeddedRule ELASTIC_SEARCH = new ESEmbeddedRule( 
ELASTIC_SEARCH_DIR );
+    private 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();

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-rdf/build.gradle 
b/extensions/indexing-rdf/build.gradle
index 9c127c8..73ebf31 100644
--- a/extensions/indexing-rdf/build.gradle
+++ b/extensions/indexing-rdf/build.gradle
@@ -35,7 +35,6 @@ dependencies {
   testImplementation polygene.core.testsupport
   testImplementation polygene.extension( 'entitystore-preferences' )
   testImplementation polygene.extension( 'entitystore-jdbm' )
-  testImplementation libraries.junit_vintage
 
   testRuntimeOnly libraries.logback
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsAllTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsAllTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsAllTest.java
index dbd7e8c..150801b 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsAllTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsAllTest.java
@@ -42,19 +42,19 @@ import 
org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 
 // A test to verify that containsAll QueryExpression works properly.
+@ExtendWith( TemporaryFolder.class )
 public class ContainsAllTest
     extends AbstractPolygeneTest
 {
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     public static final String TEST_STRING_1 = "TestString1";
     public static final String TEST_STRING_2 = "Some\\Weird\"$String/[]";

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsTest.java
index 78fcaea..ef96a75 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/ContainsTest.java
@@ -38,9 +38,9 @@ import 
org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.index.rdf.ContainsAllTest.TEST_STRING_1;
 import static org.apache.polygene.index.rdf.ContainsAllTest.TEST_STRING_2;
@@ -51,10 +51,10 @@ import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
+@ExtendWith( TemporaryFolder.class )
 public class ContainsTest extends AbstractPolygeneTest
 {
-    @Rule
-    public TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/MultiLayeredTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/MultiLayeredTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/MultiLayeredTest.java
index 6230b92..da360d7 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/MultiLayeredTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/MultiLayeredTest.java
@@ -27,9 +27,9 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.bootstrap.layered.ModuleAssembler;
 import org.apache.polygene.index.rdf.assembly.RdfMemoryStoreAssembler;
 import 
org.apache.polygene.test.indexing.layered.AbstractMultiLayeredIndexingTest;
-import org.junit.Ignore;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore("Disabled until the new Query sturcture is in place, properly 
supporting multilayered applications.")
+@Disabled( "Disabled until the new Query sturcture is in place, properly 
supporting multilayered applications.")
 public class MultiLayeredTest extends AbstractMultiLayeredIndexingTest
 {
     public MultiLayeredTest()

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java
index 27a1285..dff5ade 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RDFPerformanceTest.java
@@ -50,18 +50,18 @@ import 
org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.spi.query.IndexExporter;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Ignore;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+@ExtendWith( TemporaryFolder.class )
 public class RDFPerformanceTest extends AbstractPolygeneTest
 {
     private static final Logger LOG = LoggerFactory.getLogger( 
RDFPerformanceTest.class );
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     public interface ExampleEntity extends EntityComposite
     {
@@ -235,28 +235,28 @@ public class RDFPerformanceTest extends 
AbstractPolygeneTest
         indexerExporter.exportReadableToStream( System.out );
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void performanceTest1000() throws Exception
     {
         this.performTest( 1000 );
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void performanceTest5000() throws Exception
     {
         this.performTest( 5000 );
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void performanceTest10000() throws Exception
     {
         this.performTest( 10000 );
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void performanceTest100000() throws Exception
     {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfComplexQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfComplexQueryTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfComplexQueryTest.java
index 63ca3fd..6994b63 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfComplexQueryTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfComplexQueryTest.java
@@ -25,9 +25,9 @@ import 
org.apache.polygene.library.rdf.entity.EntityStateSerializer;
 import org.apache.polygene.library.rdf.entity.EntityTypeSerializer;
 import org.apache.polygene.library.rdf.repository.MemoryRepositoryService;
 import org.apache.polygene.test.indexing.AbstractComplexQueryTest;
-import org.junit.Ignore;
+import org.junit.jupiter.api.Disabled;
 
-@Ignore( "RDF Index/Query do not support Complex Queries, ie. queries by 
'example values'" )
+@Disabled( "RDF Index/Query do not support Complex Queries, ie. queries by 
'example values'" )
 public class RdfComplexQueryTest
         extends AbstractComplexQueryTest
 {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryMultimoduleTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryMultimoduleTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryMultimoduleTest.java
index 308182d..f9654f7 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryMultimoduleTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryMultimoduleTest.java
@@ -27,14 +27,14 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.assembly.RdfNativeSesameStoreAssembler;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.apache.polygene.test.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
+@ExtendWith( TemporaryFolder.class )
 public class RdfQueryMultimoduleTest
     extends RdfQueryTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryTest.java
index 6b9bb7e..c5531bd 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/RdfQueryTest.java
@@ -25,18 +25,17 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.assembly.RdfNativeSesameStoreAssembler;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.EntityTestAssembler;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.polygene.test.indexing.AbstractQueryTest;
-import org.junit.Ignore;
-import org.junit.Rule;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
+@ExtendWith( TemporaryFolder.class )
 public class RdfQueryTest
     extends AbstractQueryTest
 {
-
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )
@@ -53,7 +52,7 @@ public class RdfQueryTest
     }
 
     @Test
-    @Ignore( "oneOf() Query Expression not supported by RDF Indexing" )
+    @Disabled( "oneOf() Query Expression not supported by RDF Indexing" )
     @Override
     public void script23()
     {
@@ -61,7 +60,7 @@ public class RdfQueryTest
     }
 
     @Test
-    @Ignore( "Deep queries in complex values are not supported by RDF 
Indexing" )
+    @Disabled( "Deep queries in complex values are not supported by RDF 
Indexing" )
     @Override
     public void script29()
     {
@@ -69,7 +68,7 @@ public class RdfQueryTest
     }
 
     @Test
-    @Ignore( "NamedAssociation are not supported by RDF Indexing" )
+    @Disabled( "NamedAssociation are not supported by RDF Indexing" )
     @Override
     public void script35()
     {
@@ -77,7 +76,7 @@ public class RdfQueryTest
     }
 
     @Test
-    @Ignore( "NamedAssociation are not supported by RDF Indexing" )
+    @Disabled( "NamedAssociation are not supported by RDF Indexing" )
     @Override
     public void script36()
     {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi173/Qi173IssueTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi173/Qi173IssueTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi173/Qi173IssueTest.java
index 2ea96e3..0731278 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi173/Qi173IssueTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi173/Qi173IssueTest.java
@@ -35,7 +35,6 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.assembly.RdfMemoryStoreAssembler;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Assert;
 import org.junit.jupiter.api.Test;
 
 import static org.apache.polygene.api.query.QueryExpressions.orderBy;
@@ -86,7 +85,7 @@ public class Qi173IssueTest
         Query<Car> query = uow.newQuery( qb );
         query.orderBy( orderBy( template.manufacturer() ), orderBy( 
template.model() ) );
         Iterator<Car> cars = query.iterator();
-        Assert.assertThat( cars.hasNext(), is( true ) );
+        assertThat( cars.hasNext(), is( true ) );
         Car car1 = cars.next();
         assertThat( "Ford", equalTo( car1.manufacturer().get() ) );
         assertThat( "Mustang", equalTo( car1.model().get() ) );

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationMandatory/IssueTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationMandatory/IssueTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationMandatory/IssueTest.java
index ddf6cda..0b2c633 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationMandatory/IssueTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationMandatory/IssueTest.java
@@ -25,7 +25,6 @@ import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.qi64.AbstractIssueTest;
 import org.apache.polygene.index.rdf.qi64.AccountComposite;
-import org.junit.Before;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequired/IssueTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequired/IssueTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequired/IssueTest.java
index 7d9a010..2543b7b 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequired/IssueTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequired/IssueTest.java
@@ -25,14 +25,13 @@ import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.qi64.AbstractIssueTest;
 import org.apache.polygene.index.rdf.qi64.AccountComposite;
-import org.junit.Before;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
-import static org.junit.Assert.assertThat;
 
 public final class IssueTest
     extends AbstractIssueTest

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequiresNew/IssueTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequiresNew/IssueTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequiresNew/IssueTest.java
index bd99cd2..765cb9a 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequiresNew/IssueTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi64/withPropagationRequiresNew/IssueTest.java
@@ -26,14 +26,13 @@ import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.rdf.qi64.AbstractIssueTest;
 import org.apache.polygene.index.rdf.qi64.AccountComposite;
-import org.junit.Before;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.hamcrest.core.IsNull.notNullValue;
-import static org.junit.Assert.assertThat;
 
 public class IssueTest
     extends AbstractIssueTest

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi95/Qi95IssueTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi95/Qi95IssueTest.java
 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi95/Qi95IssueTest.java
index 520fb7f..f1155bb 100644
--- 
a/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi95/Qi95IssueTest.java
+++ 
b/extensions/indexing-rdf/src/test/java/org/apache/polygene/index/rdf/qi95/Qi95IssueTest.java
@@ -44,19 +44,17 @@ import 
org.apache.polygene.index.rdf.assembly.RdfMemoryStoreAssembler;
 import org.apache.polygene.index.rdf.assembly.RdfNativeSesameStoreAssembler;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertTrue;
 
+@ExtendWith( TemporaryFolder.class )
 public class Qi95IssueTest
 {
-
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Test
     public void canCreateAndQueryWithNativeRdfAndJdbm()
@@ -133,7 +131,7 @@ public class Qi95IssueTest
 
     public void createABunchOfStuffAndDoQueries( UnitOfWorkFactory 
unitOfWorkFactory,
                                                  QueryBuilderFactory 
queryBuilderFactory
-    )
+                                               )
         throws Exception
     {
         UnitOfWork uow = unitOfWorkFactory.newUnitOfWork();
@@ -157,14 +155,14 @@ public class Qi95IssueTest
         qb = queryBuilderFactory.newQueryBuilder( ItemType.class );
         Iterable<ItemType> listAfterFirstQueryAndAdd = copyOf( uow.newQuery( 
qb ) );
 
-        assertTrue( "Band is not in the list after the first query and add",
-                    hasItemTypeNamed( "Band", listAfterFirstQueryAndAdd ) );
-        assertTrue( "Bracelet is not in the list after the first query and 
add",
-                    hasItemTypeNamed( "Bracelet", listAfterFirstQueryAndAdd ) 
);
-        assertTrue( "Necklace is not in the list after the first query and 
add",
-                    hasItemTypeNamed( "Necklace", listAfterFirstQueryAndAdd ) 
);
-        assertTrue( "Watch is not in the list after the first query and add",
-                    hasItemTypeNamed( "Watch", listAfterFirstQueryAndAdd ) );
+        assertThat( "Band is not in the list after the first query and add",
+                    hasItemTypeNamed( "Band", listAfterFirstQueryAndAdd ), is( 
true ) );
+        assertThat( "Bracelet is not in the list after the first query and 
add",
+                    hasItemTypeNamed( "Bracelet", listAfterFirstQueryAndAdd ), 
is( true ) );
+        assertThat( "Necklace is not in the list after the first query and 
add",
+                    hasItemTypeNamed( "Necklace", listAfterFirstQueryAndAdd ), 
is( true ) );
+        assertThat( "Watch is not in the list after the first query and add",
+                    hasItemTypeNamed( "Watch", listAfterFirstQueryAndAdd ), 
is( true ) );
 
         newItemType( uow, "Ear ring" );
         uow.complete();
@@ -182,7 +180,7 @@ public class Qi95IssueTest
     private Application createApplication( final ModuleAssemblyBuilder 
queryServiceModuleBuilder,
                                            final ModuleAssemblyBuilder 
entityStoreModuleBuilder,
                                            final LayerAssemblyBuilder 
domainLayerBuilder
-    )
+                                         )
         throws AssemblyException
     {
         Energy4Java polygene = new Energy4Java();

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-solr/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-solr/build.gradle 
b/extensions/indexing-solr/build.gradle
index b3a1bca..df06bc6 100644
--- a/extensions/indexing-solr/build.gradle
+++ b/extensions/indexing-solr/build.gradle
@@ -34,7 +34,6 @@ dependencies {
   runtimeOnly polygene.core.runtime
 
   testImplementation polygene.core.testsupport
-  testImplementation libraries.junit_vintage
 
   testRuntimeOnly libraries.logback
   testRuntimeOnly libraries.servlet_api

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrEntityFinderTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrEntityFinderTest.java
 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrEntityFinderTest.java
index c67e70b..f97d348 100644
--- 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrEntityFinderTest.java
+++ 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrEntityFinderTest.java
@@ -24,17 +24,17 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.solr.assembly.SolrIndexingAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.polygene.test.indexing.AbstractEntityFinderTest;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.extension.ExtendWith;
 
-@Ignore( "SOLR Index/Query is not working at all" )
+@Disabled( "SOLR Index/Query is not working at all" )
+@ExtendWith( TemporaryFolder.class )
 public class SolrEntityFinderTest
     extends AbstractEntityFinderTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrNamedQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrNamedQueryTest.java
 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrNamedQueryTest.java
index daba9b3..045f81b 100644
--- 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrNamedQueryTest.java
+++ 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrNamedQueryTest.java
@@ -26,17 +26,17 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.solr.assembly.SolrIndexingAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.polygene.test.indexing.AbstractNamedQueryTest;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.extension.ExtendWith;
 
-@Ignore( "SOLR Index/Query is not working at all" )
+@Disabled( "SOLR Index/Query is not working at all" )
+@ExtendWith( TemporaryFolder.class )
 public class SolrNamedQueryTest
     extends AbstractNamedQueryTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryServiceTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryServiceTest.java
 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryServiceTest.java
index ca06e10..605113e 100644
--- 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryServiceTest.java
+++ 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryServiceTest.java
@@ -35,22 +35,22 @@ import 
org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
-import org.junit.Before;
-import org.junit.Rule;
+import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsEqual.equalTo;
 
+@ExtendWith( TemporaryFolder.class )
 public class SolrQueryServiceTest
     extends AbstractPolygeneTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )
@@ -70,7 +70,7 @@ public class SolrQueryServiceTest
         module.entities( TestEntity.class );
     }
 
-    @Before
+    @BeforeEach
     public void index()
         throws UnitOfWorkCompletionException, InterruptedException
     {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryTest.java
 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryTest.java
index f61b665..61c1781 100644
--- 
a/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryTest.java
+++ 
b/extensions/indexing-solr/src/test/java/org/apache/polygene/index/solr/SolrQueryTest.java
@@ -24,17 +24,17 @@ import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.solr.assembly.SolrIndexingAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationAssembler;
 import org.apache.polygene.library.fileconfig.FileConfigurationOverride;
+import org.apache.polygene.test.TemporaryFolder;
 import org.apache.polygene.test.indexing.AbstractQueryTest;
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.extension.ExtendWith;
 
-@Ignore( "SOLR Index/Query is not working at all" )
+@Disabled( "SOLR Index/Query is not working at all" )
+@ExtendWith( TemporaryFolder.class )
 public class SolrQueryTest
     extends AbstractQueryTest
 {
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-sql/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/indexing-sql/build.gradle 
b/extensions/indexing-sql/build.gradle
index 5d6f71e..caa5cc7 100644
--- a/extensions/indexing-sql/build.gradle
+++ b/extensions/indexing-sql/build.gradle
@@ -35,6 +35,7 @@ dependencies {
 
   testImplementation polygene.internals.testsupport
   testImplementation polygene.library( 'sql-dbcp' )
+  testImplementation libraries.docker_junit
 
   testRuntimeOnly libraries.logback
   testRuntimeOnly libraries.derby

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 f13801a..938ccf4 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
@@ -19,26 +19,27 @@
  */
 package org.apache.polygene.index.sql.postgresql;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.indexing.AbstractComplexQueryTest;
-import org.junit.ClassRule;
 import org.junit.jupiter.api.BeforeEach;
 
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLComplexQueryTest
     extends AbstractComplexQueryTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, 
"PostgreSQL init process complete; ready for start up." );
 
     @Override
     public void assemble( ModuleAssembly mainModule )
         throws AssemblyException
     {
         super.assemble( mainModule );
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         SQLTestHelper.assembleWithMemoryEntityStore( mainModule, host, port );
     }
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 0fea8d5..8d6d4a8 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
@@ -19,6 +19,9 @@
  */
 package org.apache.polygene.index.sql.postgresql;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import java.sql.Connection;
 import javax.sql.DataSource;
 import org.apache.polygene.api.common.UseDefaults;
@@ -36,18 +39,17 @@ import org.apache.polygene.library.sql.common.SQLUtil;
 import org.apache.polygene.library.sql.generator.vendor.PostgreSQLVendor;
 import org.apache.polygene.library.sql.generator.vendor.SQLVendorProvider;
 import org.apache.polygene.test.AbstractPolygeneTest;
-import org.apache.polygene.test.docker.DockerRule;
-import org.junit.Assert;
-import org.junit.ClassRule;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.hamcrest.core.IsEqual.equalTo;
+
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432 ),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000 ) )
 public class PostgreSQLDBIntegrityTest
     extends AbstractPolygeneTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, 
"PostgreSQL init process complete; ready for start up." );
-
     public interface TestEntity
         extends EntityComposite
     {
@@ -62,8 +64,8 @@ public class PostgreSQLDBIntegrityTest
     public void assemble( ModuleAssembly module )
         throws AssemblyException
     {
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         SQLTestHelper.assembleWithMemoryEntityStore( module, host, port );
         module.entities( TestEntity.class );
     }
@@ -101,19 +103,19 @@ public class PostgreSQLDBIntegrityTest
             GenericDatabaseExplorer.visitDatabaseTables(
                 connection, null, schemaName, null,
                 new DatabaseProcessorAdapter()
-            {
-                @Override
-                public void beginProcessRowInfo( String schemaNamee, String 
tableName, Object[] rowContents )
                 {
-                    if( ( tableName.startsWith( 
DBNames.QNAME_TABLE_NAME_PREFIX )
-                          && ( tableName.equals( 
DBNames.QNAME_TABLE_NAME_PREFIX + 0 )
-                               || tableName.equals( 
DBNames.QNAME_TABLE_NAME_PREFIX + 1 ) ) )
-                        || tableName.equals( DBNames.ALL_QNAMES_TABLE_NAME )
-                        || tableName.equals( DBNames.ENTITY_TABLE_NAME ) )
+                    @Override
+                    public void beginProcessRowInfo( String schemaNamee, 
String tableName, Object[] rowContents )
                     {
-                        throw new RuntimeException( "Table: " + schemaNamee + 
"." + tableName );
+                        if( ( tableName.startsWith( 
DBNames.QNAME_TABLE_NAME_PREFIX )
+                              && ( tableName.equals( 
DBNames.QNAME_TABLE_NAME_PREFIX + 0 )
+                                   || tableName.equals( 
DBNames.QNAME_TABLE_NAME_PREFIX + 1 ) ) )
+                            || tableName.equals( DBNames.ALL_QNAMES_TABLE_NAME 
)
+                            || tableName.equals( DBNames.ENTITY_TABLE_NAME ) )
+                        {
+                            throw new RuntimeException( "Table: " + 
schemaNamee + "." + tableName );
+                        }
                     }
-                }
                 },
                 SQLVendorProvider.createVendor( PostgreSQLVendor.class ) );
         }
@@ -138,8 +140,7 @@ public class PostgreSQLDBIntegrityTest
 
         uow = this.unitOfWorkFactory.newUnitOfWork();
         entity = uow.get( entity );
-        Assert.assertEquals( "New value did not store in indexing.", 
"NewTestString", entity
-            .testString().get() );
+        assertThat( "New value did not store in indexing.", 
entity.testString().get(), equalTo( "NewTestString" ) );
         uow.discard();
     }
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 a5e3f39..70daf02 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
@@ -19,26 +19,26 @@
  */
 package org.apache.polygene.index.sql.postgresql;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.indexing.AbstractEntityFinderTest;
-import org.junit.ClassRule;
 import org.junit.jupiter.api.BeforeEach;
 
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLEntityFinderTest
     extends AbstractEntityFinderTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres", 3000L, 
"PostgreSQL init process complete; ready for start up." );
-
     @Override
     public void assemble( ModuleAssembly mainModule )
         throws AssemblyException
     {
         super.assemble( mainModule );
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         SQLTestHelper.assembleWithMemoryEntityStore( mainModule, host, port );
     }
 

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/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 5c77597..c135098 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
@@ -19,13 +19,14 @@
  */
 package org.apache.polygene.index.sql.postgresql;
 
+import com.github.junit5docker.Docker;
+import com.github.junit5docker.Port;
+import com.github.junit5docker.WaitFor;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
-import org.apache.polygene.test.docker.DockerRule;
 import org.apache.polygene.test.indexing.AbstractQueryTest;
-import org.junit.ClassRule;
-import org.junit.Ignore;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -33,21 +34,18 @@ import org.junit.jupiter.api.Test;
  * <p>Many features are not supported.</p>
  */
 // See 
org.apache.polygene.index.sql.support.skeletons.SQLCompatEntityStateWrapper 
that filter out unsupported properties.
+@Docker( image = "postgres", ports = @Port( exposed = 8801, inner = 5432),
+         waitFor = @WaitFor( value = "PostgreSQL init process complete; ready 
for start up.", timeoutInMillis = 30000))
 public class PostgreSQLQueryTest
     extends AbstractQueryTest
 {
-    @ClassRule
-    public static final DockerRule DOCKER = new DockerRule( "postgres",
-                                                            10000L,
-                                                            "PostgreSQL init 
process complete; ready for start up." );
-
     @Override
     public void assemble( ModuleAssembly mainModule )
         throws AssemblyException
     {
         super.assemble( mainModule );
-        String host = DOCKER.getDockerHost();
-        int port = DOCKER.getExposedContainerPort( "5432/tcp" );
+        String host = "localhost";
+        int port = 8801;
         SQLTestHelper.assembleWithMemoryEntityStore( mainModule, host, port );
     }
 
@@ -75,7 +73,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script04_ne()
     {
@@ -83,7 +81,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script12_ne()
     {
@@ -91,7 +89,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NamedAssociation are not supported by SQL Indexing" )
+    @Disabled( "NamedAssociation are not supported by SQL Indexing" )
     @Override
     public void script35()
     {
@@ -99,7 +97,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NamedAssociation are not supported by SQL Indexing" )
+    @Disabled( "NamedAssociation are not supported by SQL Indexing" )
     @Override
     public void script36()
     {
@@ -107,7 +105,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "Queries on Enums are not supported by SQL Indexing" )
+    @Disabled( "Queries on Enums are not supported by SQL Indexing" )
     @Override
     public void script38()
     {
@@ -115,7 +113,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "Queries on Enums and NeSpecification are not supported by SQL 
Indexing" )
+    @Disabled( "Queries on Enums and NeSpecification are not supported by SQL 
Indexing" )
     @Override
     public void script39()
     {
@@ -123,7 +121,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "Date is not supported by SQL Indexing" )
+    @Disabled( "Date is not supported by SQL Indexing" )
     @Override
     public void script40_Date()
     {
@@ -131,7 +129,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "DateTime is not supported by SQL Indexing" )
+    @Disabled( "DateTime is not supported by SQL Indexing" )
     @Override
     public void script40_DateTime()
     {
@@ -139,7 +137,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "LocalDate is not supported by SQL Indexing" )
+    @Disabled( "LocalDate is not supported by SQL Indexing" )
     @Override
     public void script40_LocalDate()
     {
@@ -147,7 +145,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "LocalDateTime is not supported by SQL Indexing" )
+    @Disabled( "LocalDateTime is not supported by SQL Indexing" )
     @Override
     public void script40_LocalDateTime()
     {
@@ -155,7 +153,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script41_Instant()
     {
@@ -163,7 +161,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script41_DateTime()
     {
@@ -171,7 +169,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script41_LocalDate()
     {
@@ -179,7 +177,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script41_LocalDateTime()
     {
@@ -187,7 +185,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script42_Instant()
     {
@@ -195,7 +193,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script42_DateTime()
     {
@@ -203,7 +201,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script42_LocalDate()
     {
@@ -211,7 +209,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script42_LocalDateTime()
     {
@@ -219,7 +217,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "Date is not supported by SQL Indexing" )
+    @Disabled( "Date is not supported by SQL Indexing" )
     @Override
     public void script43_Date()
     {
@@ -227,7 +225,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "DateTime is not supported by SQL Indexing" )
+    @Disabled( "DateTime is not supported by SQL Indexing" )
     @Override
     public void script43_DateTime()
     {
@@ -235,7 +233,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "LocalDate is not supported by SQL Indexing" )
+    @Disabled( "LocalDate is not supported by SQL Indexing" )
     @Override
     public void script43_LocalDate()
     {
@@ -243,7 +241,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "LocalDateTime is not supported by SQL Indexing" )
+    @Disabled( "LocalDateTime is not supported by SQL Indexing" )
     @Override
     public void script43_LocalDateTime()
     {
@@ -251,7 +249,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script51_BigInteger()
     {
@@ -259,7 +257,7 @@ public class PostgreSQLQueryTest
     }
 
     @Test
-    @Ignore( "NeSpecification is not supported by SQL Indexing" )
+    @Disabled( "NeSpecification is not supported by SQL Indexing" )
     @Override
     public void script51_BigDecimal()
     {

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/SQLTestHelper.java
----------------------------------------------------------------------
diff --git 
a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/SQLTestHelper.java
 
b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/SQLTestHelper.java
index be5727d..b911eae 100644
--- 
a/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/SQLTestHelper.java
+++ 
b/extensions/indexing-sql/src/test/java/org/apache/polygene/index/sql/postgresql/SQLTestHelper.java
@@ -21,10 +21,8 @@ package org.apache.polygene.index.sql.postgresql;
 
 import java.sql.Connection;
 import javax.sql.DataSource;
-import org.apache.polygene.api.service.ServiceFinder;
-import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
-import org.junit.Assume;
 import org.apache.polygene.api.common.Visibility;
+import org.apache.polygene.api.service.ServiceFinder;
 import org.apache.polygene.bootstrap.AssemblyException;
 import org.apache.polygene.bootstrap.ModuleAssembly;
 import org.apache.polygene.index.reindexer.ReindexerConfiguration;
@@ -33,8 +31,10 @@ import 
org.apache.polygene.index.sql.support.common.RebuildingStrategy;
 import org.apache.polygene.index.sql.support.common.ReindexingStrategy;
 import org.apache.polygene.library.sql.assembly.DataSourceAssembler;
 import org.apache.polygene.library.sql.common.SQLUtil;
+import org.apache.polygene.library.sql.datasource.DataSourceConfiguration;
 import org.apache.polygene.library.sql.dbcp.DBCPDataSourceServiceAssembler;
 import org.apache.polygene.test.EntityTestAssembler;
+import org.opentest4j.TestAbortedException;
 
 class SQLTestHelper
 {
@@ -56,24 +56,24 @@ class SQLTestHelper
         // START SNIPPET: assembly
         // DataSourceService
         new DBCPDataSourceServiceAssembler().
-            identifiedBy( "postgres-datasource-service" ).
-            visibleIn( Visibility.module ).
-            withConfig( config, Visibility.layer ).
-            assemble( mainModule );
+                                                identifiedBy( 
"postgres-datasource-service" ).
+                                                visibleIn( Visibility.module ).
+                                                withConfig( config, 
Visibility.layer ).
+                                                assemble( mainModule );
 
         // DataSource
         new DataSourceAssembler().
-            withDataSourceServiceIdentity( "postgres-datasource-service" ).
-            identifiedBy( "postgres-datasource" ).
-            visibleIn( Visibility.module ).
-            withCircuitBreaker().
-            assemble( mainModule );
+                                     withDataSourceServiceIdentity( 
"postgres-datasource-service" ).
+                                     identifiedBy( "postgres-datasource" ).
+                                     visibleIn( Visibility.module ).
+                                     withCircuitBreaker().
+                                     assemble( mainModule );
 
         // SQL Index/Query
         new PostgreSQLIndexQueryAssembler().
-            visibleIn( Visibility.module ).
-            withConfig( config, Visibility.layer ).
-            assemble( mainModule );
+                                               visibleIn( Visibility.module ).
+                                               withConfig( config, 
Visibility.layer ).
+                                               assemble( mainModule );
         // END SNIPPET: assembly
 
         config.forMixin( DataSourceConfiguration.class ).declareDefaults()
@@ -83,12 +83,12 @@ class SQLTestHelper
         // various tests
         mainModule.services( RebuildingStrategy.class ).
             withMixins( RebuildingStrategy.AlwaysNeed.class ).
-            visibleIn( Visibility.module );
+                      visibleIn( Visibility.module );
 
         // Always re-index in test scenarios
         mainModule.services( ReindexingStrategy.class ).
             withMixins( ReindexingStrategy.AlwaysNeed.class ).
-            visibleIn( Visibility.module );
+                      visibleIn( Visibility.module );
         config.entities( ReindexerConfiguration.class ).
             visibleIn( Visibility.layer );
     }
@@ -101,26 +101,24 @@ class SQLTestHelper
 
             DataSource ds = serviceFinder.findService( DataSource.class 
).get();
             connection = ds.getConnection();
-            Assume.assumeNotNull( connection );
-
+            if( connection == null )
+            {
+                throw new TestAbortedException( "Unable to establish a 
DataSource" );
+            }
         }
         catch( Throwable t )
         {
 
             t.printStackTrace();
-            Assume.assumeNoException( t );
-
+            throw new TestAbortedException( "Unable to establish a 
DataSource", t );
         }
         finally
         {
-
             SQLUtil.closeQuietly( connection );
-
         }
     }
 
     private SQLTestHelper()
     {
     }
-
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/reindexer/build.gradle
----------------------------------------------------------------------
diff --git a/extensions/reindexer/build.gradle 
b/extensions/reindexer/build.gradle
index 7c69670..f956f60 100644
--- a/extensions/reindexer/build.gradle
+++ b/extensions/reindexer/build.gradle
@@ -32,7 +32,6 @@ dependencies {
   testImplementation polygene.core.testsupport
   testImplementation polygene.extension( 'entitystore-jdbm' )
   testImplementation polygene.extension( 'indexing-rdf' )
-  testImplementation libraries.junit_vintage
 
   testRuntimeOnly libraries.logback
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/extensions/reindexer/src/test/java/org/apache/polygene/index/reindexer/ReindexerTest.java
----------------------------------------------------------------------
diff --git 
a/extensions/reindexer/src/test/java/org/apache/polygene/index/reindexer/ReindexerTest.java
 
b/extensions/reindexer/src/test/java/org/apache/polygene/index/reindexer/ReindexerTest.java
index 0c527a9..995ef24 100644
--- 
a/extensions/reindexer/src/test/java/org/apache/polygene/index/reindexer/ReindexerTest.java
+++ 
b/extensions/reindexer/src/test/java/org/apache/polygene/index/reindexer/ReindexerTest.java
@@ -40,23 +40,23 @@ import 
org.apache.polygene.index.rdf.assembly.RdfNativeSesameStoreAssembler;
 import org.apache.polygene.library.rdf.repository.NativeConfiguration;
 import org.apache.polygene.test.AbstractPolygeneTest;
 import org.apache.polygene.test.EntityTestAssembler;
-import org.junit.Rule;
+import org.apache.polygene.test.TemporaryFolder;
 import org.junit.jupiter.api.Test;
-import org.junit.rules.TemporaryFolder;
+import org.junit.jupiter.api.extension.ExtendWith;
 
 import static org.apache.polygene.api.query.QueryExpressions.eq;
 import static org.apache.polygene.api.query.QueryExpressions.templateFor;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.IsEqual.equalTo;
 
+@ExtendWith( TemporaryFolder.class )
 public class ReindexerTest
     extends AbstractPolygeneTest
 {
     private static final String ENTITIES_DIR = "polygene-entities";
     private static final String INDEX_DIR = "polygene-index";
 
-    @Rule
-    public final TemporaryFolder tmpDir = new TemporaryFolder();
+    private TemporaryFolder tmpDir;
 
     @Override
     public void assemble( ModuleAssembly module )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/gradle/wrapper/gradle-wrapper.properties
----------------------------------------------------------------------
diff --git a/gradle/wrapper/gradle-wrapper.properties 
b/gradle/wrapper/gradle-wrapper.properties
index 05ad398..490112c 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -20,4 +20,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/internals/testsupport-internal/build.gradle
----------------------------------------------------------------------
diff --git a/internals/testsupport-internal/build.gradle 
b/internals/testsupport-internal/build.gradle
index 6a8a1f4..4439c49 100644
--- a/internals/testsupport-internal/build.gradle
+++ b/internals/testsupport-internal/build.gradle
@@ -26,7 +26,6 @@ jar { manifest { name = "Apache Polygene™ Internals - Test 
Support" } }
 dependencies {
     api polygene.core.testsupport
 
-    implementation (libraries.docker_junit ) { exclude group: "junit", module: 
"junit" }
-    implementation libraries.junit_vintage
+    implementation (libraries.docker_junit )
     runtimeOnly polygene.core.runtime
 }

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DelayChecker.java
----------------------------------------------------------------------
diff --git 
a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DelayChecker.java
 
b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DelayChecker.java
deleted file mode 100644
index 36de1ea..0000000
--- 
a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DelayChecker.java
+++ /dev/null
@@ -1,60 +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.docker;
-
-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/7585af08/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerExtension.java
----------------------------------------------------------------------
diff --git 
a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerExtension.java
 
b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerExtension.java
new file mode 100644
index 0000000..64f8d7a
--- /dev/null
+++ 
b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerExtension.java
@@ -0,0 +1,23 @@
+package org.apache.polygene.test.docker;
+
+import org.junit.jupiter.api.extension.AfterAllCallback;
+import org.junit.jupiter.api.extension.BeforeAllCallback;
+import org.junit.jupiter.api.extension.ExtensionContext;
+
+public class DockerExtension
+    implements BeforeAllCallback, AfterAllCallback
+{
+    @Override
+    public void afterAll( ExtensionContext context )
+        throws Exception
+    {
+
+    }
+
+    @Override
+    public void beforeAll( ExtensionContext context )
+        throws Exception
+    {
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java
----------------------------------------------------------------------
diff --git 
a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java
 
b/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java
deleted file mode 100644
index 07cf07a..0000000
--- 
a/internals/testsupport-internal/src/main/java/org/apache/polygene/test/docker/DockerRule.java
+++ /dev/null
@@ -1,156 +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.docker;
-
-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
-    implements TestRule
-{
-    private final boolean dockerDisabled = Boolean.valueOf( 
System.getProperty( "DOCKER_DISABLED", "false" ) );
-    private final pl.domzal.junit.docker.rule.DockerRule dockerRule;
-
-    public DockerRule( String image, int... portsToWaitFor )
-    {
-        this( image, null, WaitFor.tcpPort( 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;
-        }
-        else
-        {
-            DockerRuleBuilder builder = pl.domzal.junit.docker.rule.DockerRule
-                .builder()
-                .imageName( 
"org.apache.polygene:org.apache.polygene.internal.docker-" + image )
-                .publishAllPorts( true )
-                .waitForTimeout( 180 )
-                .waitFor( rule -> new AndChecker( rule, waitFor ) );
-            environment.forEach( builder::env );
-            dockerRule = builder.build();
-        }
-    }
-
-    @Override
-    public Statement apply( Statement base, Description description )
-    {
-        assumeFalse( dockerDisabled );
-        return dockerRule.apply( base, description );
-    }
-
-    public String getDockerHost()
-    {
-        return dockerRule.getDockerHost();
-    }
-
-    public int getExposedContainerPort( String containerPort )
-    {
-        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/7585af08/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmHistoryImplTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmHistoryImplTest.java
 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmHistoryImplTest.java
index c0d3db3..ec154b8 100644
--- 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmHistoryImplTest.java
+++ 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmHistoryImplTest.java
@@ -30,6 +30,7 @@ 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.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -76,6 +77,7 @@ public class AlarmHistoryImplTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         if ( unitOfWorkFactory.isUnitOfWorkActive())

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmPointImplTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmPointImplTest.java
 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmPointImplTest.java
index 2dfbfee..a9a036b 100644
--- 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmPointImplTest.java
+++ 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmPointImplTest.java
@@ -31,6 +31,7 @@ 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.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -74,6 +75,7 @@ public class AlarmPointImplTest extends AbstractPolygeneTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         if( unitOfWorkFactory.isUnitOfWorkActive() )

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmServiceTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmServiceTest.java
 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmServiceTest.java
index e021cef..7fe6f70 100644
--- 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmServiceTest.java
+++ 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/AlarmServiceTest.java
@@ -29,6 +29,7 @@ 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.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -77,6 +78,7 @@ public class AlarmServiceTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         if ( unitOfWorkFactory.isUnitOfWorkActive())

http://git-wip-us.apache.org/repos/asf/polygene-java/blob/7585af08/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/ExtendedAlarmModelTest.java
----------------------------------------------------------------------
diff --git 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/ExtendedAlarmModelTest.java
 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/ExtendedAlarmModelTest.java
index 2993388..6f43926 100644
--- 
a/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/ExtendedAlarmModelTest.java
+++ 
b/libraries/alarm/src/test/java/org/apache/polygene/library/alarm/ExtendedAlarmModelTest.java
@@ -32,6 +32,7 @@ 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.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -76,6 +77,7 @@ public class ExtendedAlarmModelTest
     }
 
     @Override
+    @AfterEach
     public void tearDown()
     {
         UnitOfWork uow = unitOfWorkFactory.currentUnitOfWork();

Reply via email to