diff --git a/conf/test/log4j2-test.xml b/conf/test/log4j2-test.xml
index 5adae73..8930a61 100644
--- a/conf/test/log4j2-test.xml
+++ b/conf/test/log4j2-test.xml
@@ -23,7 +23,7 @@
         <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
       </Console>
       <File name="logfile" fileName="target/turbine-test.log">
-        <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+        <PatternLayout pattern="%d [%t] %-5p %c - %m%n" charset="UTF-8"/>
       </File>
     </Appenders>
     <Loggers>
diff --git a/conf/test/log4j2.xml b/conf/test/log4j2.xml
index a2a3e61..dfe68ac 100644
--- a/conf/test/log4j2.xml
+++ b/conf/test/log4j2.xml
@@ -24,7 +24,7 @@
 	      <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
 	    </Console>
 	    <File name="logfile" fileName="target/turbine-test.log">
-	      <PatternLayout pattern="%d [%t] %-5p %c - %m%n"/>
+	      <PatternLayout pattern="%d [%t] %-5p %c - %m%n" charset="UTF-8"/>
 	    </File>
     </Appenders>
     <Loggers>
diff --git a/pom.xml b/pom.xml
index 4c61694..7178da7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1081,7 +1081,7 @@
     <dependency>
       <groupId>org.apache.fulcrum</groupId>
       <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.9-SNAPSHOT</version>
+      <version>1.0.9</version>
       <scope>test</scope>
     </dependency> 
     <dependency>
@@ -1098,6 +1098,10 @@
       <scope>test</scope>
       <optional>true</optional>
     </dependency>
+    <!-- do not add junit 4 support e.g. with org.junit.platform runner or launcher,
+          as it is not compatible with jupiter tags, will throw 
+         [WARNING] Couldn't load group class 'docker' in Surefire|Failsafe plugin
+    -->
   </dependencies>
 
   <profiles>
@@ -1182,15 +1186,19 @@
                 </execution>
               </executions>
             </plugin>
+            <plugin>
+                <artifactId>maven-failsafe-plugin</artifactId>
+                <version>3.0.0-M5</version>
+            </plugin>
           </plugins>
       </build>
       <dependencies>
-        <!-- docker testcontainer deps start here, until torque 4.1 is releases start it like:
+        <!-- docker testcontainer requires at least torque v5.0, start it like
         inside IDE (add dependencies):
-        mvn eclipse:eclispe -Pdocker-testcontainer
+        mvn eclipse:eclipse -Pdocker-testcontainer
 
-        outside IDE
-        mvn test -Pdocker-testcontainer -Dtorque.version=4.1-SNAPSHOT
+        from console:
+        mvn test -Pdocker-testcontainer
 
         -->
         <dependency>
@@ -1237,10 +1245,11 @@
     <turbine.site.path>turbine/development/turbine-5.1</turbine.site.path>
     <fulcrum.intake>2.0.1-SNAPSHOT</fulcrum.intake>
     <fulcrum.parser>2.0.1</fulcrum.parser>
-    <fulcrum.security>2.0.0-SNAPSHOT</fulcrum.security>
+    <fulcrum.security>2.0.0</fulcrum.security>
     <torque.version>5.0</torque.version>
+    <junit.platform>1.7.0</junit.platform>
     <doclint>none</doclint>
-    <docker.testcontainers.version>1.15.0-rc2</docker.testcontainers.version>
+    <docker.testcontainers.version>1.15.1</docker.testcontainers.version>
     <jacoco.skip>true</jacoco.skip>
     <argLine></argLine>
   </properties>
diff --git a/src/test/org/apache/turbine/testcontainer/BuildContainerWithDockerfileTest.java b/src/test/org/apache/turbine/testcontainer/BuildContainerWithDockerfileTest.java
index 1f556f2..c8211d9 100644
--- a/src/test/org/apache/turbine/testcontainer/BuildContainerWithDockerfileTest.java
+++ b/src/test/org/apache/turbine/testcontainer/BuildContainerWithDockerfileTest.java
@@ -182,7 +182,7 @@
       if (!MY_SQL_CONTAINER.isRunning()) {
           MY_SQL_CONTAINER.start();
       }
-
+      
       String serviceHost = MY_SQL_CONTAINER.getContainerIpAddress();
       Integer mappedPort = MY_SQL_CONTAINER.getMappedPort(SERVICE_PORT);// e.g. 32811
       log.info("generate jdbc url from {}, mapped Port: {}, bounded port: {}", serviceHost, mappedPort, MY_SQL_CONTAINER.getBoundPortNumbers());
@@ -191,9 +191,11 @@
 //          String genJDBC = ((MySQLContainer)MY_SQL_CONTAINER).getJdbcUrl();
 //          log.info( "generated connect url: {}", genJDBC);   
 //      }
-      String targetJDBC = //genJDBC;
+      String targetJDBC = 
       String.format("jdbc:mysql://%s:%d/%s?loggerLevel=OFF", serviceHost,
                     mappedPort, DATABASE_NAME);
+      // changing the jdbc string prefix to  jdbc:tc:mysql does handle the test database setup, 
+      // https://www.testcontainers.org/modules/databases/jdbc/
       log.info( "used connect url: {}", targetJDBC);
       return targetJDBC;
    }
diff --git a/src/test/org/apache/turbine/util/uri/TurbineURITest.java b/src/test/org/apache/turbine/util/uri/TurbineURITest.java
index 99444d1..db45a86 100644
--- a/src/test/org/apache/turbine/util/uri/TurbineURITest.java
+++ b/src/test/org/apache/turbine/util/uri/TurbineURITest.java
@@ -164,12 +164,14 @@
 
         parserService.putParser(pp);
         pp = parserService.getParser(DefaultParameterParser.class);
-        pp.add("test", (String) null);
+        pp.add("test", "null");
+//        pp.add("test", (String) null); // isnotnull guarded
         turi.add(1, pp); // 1 = query data
         // Should make the following work so as to be consistent with directly
         // added values.
-        // assertEquals("/context/servlet/turbine?test=null",
-        // turi.getRelativeLink());
+        assertEquals("/context/servlet/turbine?test=null",
+        turi.getRelativeLink());
+        
         turi.removeQueryData("test");
         assertEquals("/context/servlet/turbine", turi.getRelativeLink());
 
