makes it possible to actually override the container options - requires latest TomEE changes
diff --git a/ec2jdk10 b/ec2jdk10
index f6bbc1e..aa464eb 100644
--- a/ec2jdk10
+++ b/ec2jdk10
@@ -4,4 +4,4 @@
 source "$(dirname $(readlink -f $0))/ec2jdk7"
 
 # for the standalone tomee
-export MAVEN_OPTS="-Dtck.java.home=$HOME/jdk10 -Dtck.java.version=10.0 $MAVEN_OPTS"
+export MAVEN_OPTS="-Dcontainer.java.home=$HOME/jdk10 -Dcontainer.java.version=10.0 $MAVEN_OPTS"
diff --git a/ec2jdk11 b/ec2jdk11
index bcece60..f2a6f2e 100644
--- a/ec2jdk11
+++ b/ec2jdk11
@@ -4,4 +4,4 @@
 source "$(dirname $(readlink -f $0))/ec2jdk8"
 
 # for the standalone tomee
-export MAVEN_OPTS="-Dtck.java.home=$HOME/jdk11 -Dtck.java.version=11.0 $MAVEN_OPTS"
+export MAVEN_OPTS="-Dcontainer.java.home=$HOME/jdk11 -Dcontainer.java.version=11.0 $MAVEN_OPTS"
diff --git a/ec2jdk9 b/ec2jdk9
index a8437b3..ce3fee1 100644
--- a/ec2jdk9
+++ b/ec2jdk9
@@ -4,4 +4,4 @@
 source "$(dirname $(readlink -f $0))/ec2jdk7"
 
 # for the standalone tomee
-export MAVEN_OPTS="-Dtck.java.home=$HOME/jdk9 -Dtck.java.version=1.9 $MAVEN_OPTS"
+export MAVEN_OPTS="-Dcontainer.java.home=$HOME/jdk9 -Dcontainer.java.version=1.9 $MAVEN_OPTS"
diff --git a/java11.source b/java11.source
index 3caba86..7f607ee 100644
--- a/java11.source
+++ b/java11.source
@@ -11,7 +11,7 @@
 tomee_version=8.0.0-SNAPSHOT
 
 # we run tck with java 7 for the runner (javatest jvm) but java 9 for the server
-export MAVEN_OPTS="-Dtck.java.home=$JAVA_11_HOME -Dtck.java.version=11 -Dopenejb.groupId=org.apache.tomee -Dopenejb.version=$tomee_version -Dtomee.version=$tomee_version"
+export MAVEN_OPTS="-Dcontainer.java.home=$JAVA_11_HOME -Dcontainer.java.version=11 -Dopenejb.groupId=org.apache.tomee -Dopenejb.version=$tomee_version -Dtomee.version=$tomee_version"
 echo "MAVEN_OPTS set for java 11"
 
 function tomeeTckCheckJavaRunVersion() {
diff --git a/java9.source b/java9.source
index 86cc7b9..3bb5704 100644
--- a/java9.source
+++ b/java9.source
@@ -11,7 +11,7 @@
 tomee_version=7.0.4-SNAPSHOT
 
 # we run tck with java 7 for the runner (javatest jvm) but java 9 for the server
-export MAVEN_OPTS="-Dtck.java.home=$JAVA9_HOME -Dtck.java.version=1.9 -Dopenejb.groupId=org.apache.tomee -Dopenejb.version=$tomee_version -Dtomee.version=$tomee_version"
+export MAVEN_OPTS="-Dcontainer.java.home=$JAVA9_HOME -Dcontainer.java.version=1.9 -Dopenejb.groupId=org.apache.tomee -Dopenejb.version=$tomee_version -Dtomee.version=$tomee_version"
 echo "MAVEN_OPTS set for java 9"
 
 function tomeeTckCheckJavaRunVersion() {
diff --git a/src/main/java/org/apache/openejb/cts/DeploymentImpl.java b/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
index 5cef355..3a572b3 100644
--- a/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
+++ b/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
@@ -26,6 +26,7 @@
 import com.sun.ts.lib.porting.TSDeploymentException;
 import com.sun.ts.lib.porting.TSDeploymentInterface2;
 import org.apache.openejb.config.RemoteServer;
+import org.apache.openejb.testng.PropertiesBuilder;
 
 import javax.enterprise.deploy.spi.DeploymentManager;
 import javax.enterprise.deploy.spi.Target;
@@ -54,13 +55,24 @@
     private static final String CLIENT_MAIN = "org.apache.openejb.client.Main";
 
     static {
-//        System.setProperty("java.opts", "-Xmx128m -XX:MaxPermSize=128m");
-//        System.setProperty("java.opts", "-XX:MaxPermSize=64m");
-//        System.setProperty("openejb.server.profile", "true");
-        System.setProperty("java.opts", "-Dopenejb.deployer.jndiname=openejb/DeployerBusinessRemote");
-        final RemoteServer remoteServer = new RemoteServer(250, true);
-        // remoteServer.start(Arrays.asList("-Xmx128m", "-XX:MaxPermSize=128m"), "start", true);
-        // remoteServer.start(Arrays.asList("-Djava.util.logging.config.file=/logging.properties"), "start", true);
+
+        Properties overrides = new Properties();
+        String containerJavaHome = System.getProperty("container.java.home");
+        String containerJavaVersion = System.getProperty("container.java.version");
+        String containerJavaOpts = System.getProperty("container.java.opts", "-Dopenejb.deployer.jndiname=openejb/DeployerBusinessRemote");
+        if (containerJavaVersion != null) {
+            overrides.put("java.version", containerJavaVersion);
+        }
+
+        if (containerJavaHome != null) {
+            overrides.put("java.home", containerJavaHome);
+        }
+
+        if (containerJavaOpts != null) {
+            overrides.put("java.opts", containerJavaOpts);
+        }
+
+        final RemoteServer remoteServer = new RemoteServer(overrides, 250, true);
         remoteServer.start();
 
         Runtime.getRuntime().addShutdownHook(new Thread() {
diff --git a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
index 098d353..5a5907a 100644
--- a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
+++ b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
@@ -202,23 +202,52 @@
 
                 def tckJavaHome = get('tck.java.home')
                 if (tckJavaHome != null) {
-                    log.info("Using java home ${tckJavaHome}")
+                    log.info("Using java home (javatest) ${tckJavaHome}")
                     jvmarg(value: "-Dtck.java.home=${tckJavaHome}")
                 }
 
                 def tckJavaVersion = get('tck.java.version')
                 if (tckJavaVersion != null) {
-                    log.info("Using java version ${tckJavaVersion}")
+                    log.info("Using java version (javatest) ${tckJavaVersion}")
                     jvmarg(value: "-Dtck.java.version=${tckJavaVersion}")
                 }
 
-                def opts = get('tck.java.opts')
-                if (tckJavaVersion != null && (tckJavaVersion.startsWith("9") || tckJavaVersion.startsWith("1.9") || tckJavaVersion.startsWith("10")  || tckJavaVersion.startsWith("11") )) {
-                    jvmarg(value: "-Dtck.java.opts=" +
-                            "-Dopenejb.deployer.jndiname=openejb/WebappDeployerRemote " +
+                def tckJavaOpts = get('tck.java.opts')
+                if (tckJavaOpts != null) {
+                    log.info("Using java home (javatest) ${tckJavaOpts}")
+                    jvmarg(value: "-Dtck.java.opts=${tckJavaOpts}")
+                }
+
+                def containerJavaHome = get('container.java.home')
+                if (containerJavaHome != null) {
+                    log.info("Using java home (container) ${containerJavaHome}")
+                    jvmarg(value: "-Dcontainer.java.home=${containerJavaHome}")
+                }
+
+                def containerJavaVersion = get('container.java.version')
+                if (containerJavaVersion != null) {
+                    log.info("Using java version (container) ${containerJavaVersion}")
+                    jvmarg(value: "-Dcontainer.java.version=${containerJavaVersion}")
+                }
+
+                def containerJavaOpts = get('container.java.opts')
+                if (containerJavaOpts != null) {
+                    log.info("Using java opts (container) ${containerJavaOpts}")
+                    jvmarg(value: "-Dcontainer.java.opts=${containerJavaOpts}")
+                }
+
+                if (containerJavaOpts != null &&
+                        (containerJavaOpts.startsWith("9") || containerJavaOpts.startsWith("1.9")
+                                || containerJavaOpts.startsWith("10")  || containerJavaOpts.startsWith("11") )) {
+
+                    def modulesOptions = "-Dcontainer.java.opts=" +
+                            "-Dopenejb.deployer.jndiname=openejb/DeployerBusinessRemote " +
                             "--add-opens java.base/java.net=ALL-UNNAMED " +
                             "--add-opens java.base/java.lang=ALL-UNNAMED " +
-                            "--add-modules java.xml.bind,java.corba")
+                            "--add-modules java.xml.bind,java.corba"
+
+                    log.info("Java modules detected - overridding java options for container with ${modulesOptions}.")
+                    jvmarg(value: modulesOptions)
                 }
 
                 sysproperty(key: "user.language", value: 'en')
@@ -327,8 +356,10 @@
                 // HACK: Some pre-running feedback (have to include this in the java closure)
                 //
                 log.info("Running tests...")
-                log.info("> Container Java Version: ${tckJavaVersion}")
-                log.info("> Container Java Home: ${tckJavaHome}")
+                log.info("> JavaTest Java Version: ${tckJavaVersion}")
+                log.info("> JavaTest Java Home: ${tckJavaHome}")
+                log.info("> Container Java Version: ${containerJavaVersion}")
+                log.info("> Container Java Home: ${containerJavaHome}")
 
                 line()
             }