supporting to run tomee with another JVM than the maven one
diff --git a/java9.source b/java9.source
new file mode 100644
index 0000000..86cc7b9
--- /dev/null
+++ b/java9.source
@@ -0,0 +1,20 @@
+#! /bin/bash
+
+#
+# to test against java 9 TCKs we run the TCK themself with java 7/8 and the container with java 9
+#
+# You can validate it with `tomeeTckCheckJavaRunVersion` once you ran some TCK.
+#
+# Note: this is mainly to not have to migrate this project yet to java 9 (upgrading groovy plugin and groovy itself).
+#
+
+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"
+echo "MAVEN_OPTS set for java 9"
+
+function tomeeTckCheckJavaRunVersion() {
+ grep 'JVM Version' target/logs/javatest.log | sed 's/.*JVM Version/JVM Version/'
+}
+
diff --git a/pom.xml b/pom.xml
index 9059431..9158110 100644
--- a/pom.xml
+++ b/pom.xml
@@ -955,20 +955,6 @@
<repositories>
<repository>
- <id>nexus-staging</id>
- <name>Nexus Staging Repository</name>
- <url>https://repository.apache.org/content/repositories/orgapachetomee-1068</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>ignore</checksumPolicy>
- </releases>
- </repository>
-
- <repository>
<id>apache-m2-snapshot</id>
<name>Apache M2 Snapshot Repository</name>
<url>http://repository.apache.org/snapshots/</url>
@@ -996,19 +982,6 @@
<pluginRepositories>
<pluginRepository>
- <id>nexus-staging-plugin</id>
- <name>Nexus Staging Repository</name>
- <url>https://repository.apache.org/content/repositories/orgapachetomee-1068</url>
- <layout>default</layout>
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- <checksumPolicy>ignore</checksumPolicy>
- </releases>
- </pluginRepository>
- <pluginRepository>
<id>codehaus-snapshots</id>
<name>Codehaus Snapshot</name>
<url>https://nexus.codehaus.org/content/repositories/snapshots/</url>
diff --git a/runtests b/runtests
index 35ef90c..5bd6d9d 100755
--- a/runtests
+++ b/runtests
@@ -330,7 +330,7 @@
# Fire up Maven to do the real work
if [ -z $nc ]; then
-exec mvn -V --file "$DIRNAME/pom.xml" \
+exec mvn $MAVEN_OPTS -V --file "$DIRNAME/pom.xml" \
--batch-mode \
--errors \
$CONFIG \
@@ -346,7 +346,7 @@
-e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \
-e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
else
-exec mvn -V --file "$DIRNAME/pom.xml" \
+exec mvn $MAVEN_OPTS -V --file "$DIRNAME/pom.xml" \
--batch-mode \
--errors \
$CONFIG \
diff --git a/src/main/java/org/apache/openejb/cts/DeploymentImpl.java b/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
index 991230a..0ef72e0 100644
--- a/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
+++ b/src/main/java/org/apache/openejb/cts/DeploymentImpl.java
@@ -53,17 +53,36 @@
// 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/WebappDeployerRemote");
- 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);
- remoteServer.start();
+ System.setProperty("java.opts", System.getProperty("tck.java.opts", "-Dopenejb.deployer.jndiname=openejb/WebappDeployerRemote"));
+ final String tckJavaHome = System.getProperty("tck.java.home");
+ final String tckJavaVersion = System.getProperty("tck.java.version");
+ final String oldJavaHome = System.getProperty("java.home");
+ final String oldJavaVersion = System.getProperty("java.version");
+ if (tckJavaHome != null) {
+ System.setProperty("java.home", tckJavaHome);
+ }
+ if (tckJavaVersion != null) {
+ System.setProperty("java.version", tckJavaVersion);
+ }
+ try {
+ 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);
+ remoteServer.start();
- Runtime.getRuntime().addShutdownHook(new Thread() {
- public void run() {
- remoteServer.destroy();
+ Runtime.getRuntime().addShutdownHook(new Thread() {
+ public void run() {
+ remoteServer.destroy();
+ }
+ });
+ } finally {
+ if (tckJavaHome != null) {
+ System.setProperty("java.home", oldJavaHome);
}
- });
+ if (tckJavaVersion != null) {
+ System.setProperty("java.version", oldJavaVersion);
+ }
+ }
}
private PrintWriter log;
diff --git a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
index 53c7586..28cd85b 100644
--- a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
+++ b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
@@ -200,6 +200,23 @@
jvmarg(value: '-Dopenejb.server.debug=true')
}
+ def tckJavaHome = get('tck.java.home')
+ if (tckJavaHome != null) {
+ log.info("Using java home ${tckJavaHome}")
+ jvmarg(value: "-Dtck.java.home=${tckJavaHome}")
+ }
+
+ def tckJavaVersion = get('tck.java.version')
+ if (tckJavaVersion != null) {
+ log.info("Using java version ${tckJavaVersion}")
+ jvmarg(value: "-Dtck.java.version=${tckJavaVersion}")
+ }
+
+ def opts = get('tck.java.opts')
+ if (tckJavaVersion != null && (tckJavaVersion.startsWith("9") || tckJavaVersion.startsWith("1.9"))) {
+ jvmarg(value: "-Dtck.java.opts=-Dopenejb.deployer.jndiname=openejb/WebappDeployerRemote --add-opens java.base/java.net=ALL-UNNAMED --add-modules java.xml.bind,java.corba")
+ }
+
sysproperty(key: "user.language", value: 'en')
sysproperty(key: "user.country", value: 'US')
@@ -219,7 +236,9 @@
sysproperty(key: "java.security.policy", file: "${javaeeRiHome}/bin/harness.policy")
sysproperty(key: "J2EE_HOME_RI", file: javaeeRiHome)
sysproperty(key: "deliverable.class", value: require('deliverable.class'))
- sysproperty(key: "java.endorsed.dirs", file: "${javaeeRiHome}/lib/endorsed")
+ if (tckJavaHome == null || !new File(tckJavaHome, 'jmods').exists()/*j9 doesnt support it*/) {
+ sysproperty(key: "java.endorsed.dirs", file: "${javaeeRiHome}/lib/endorsed")
+ }
sysproperty(key: "com.sun.enterprise.home", file: javaeeRiHome)
sysproperty(key: "com.sun.aas.installRoot", file: javaeeRiHome)
sysproperty(key: "DEPLOY_DELAY_IN_MINUTES", value: require('deploy_delay_in_minutes'))
@@ -304,6 +323,9 @@
// HACK: Some pre-running feedback (have to include this in the java closure)
//
log.info("Running tests...")
+ log.info("> Container Java Home: ${tckJavaHome}")
+ log.info("> Container Java Version: ${tckJavaVersion}")
+ log.info("> Container Java Opts: ${opts}")
line()
}