You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by jl...@apache.org on 2021/06/10 09:48:22 UTC

[tomee-tck] 02/03: Backport some changes from 9.1 branch

This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomee-tck.git

commit 8cb13900dd743daa13d704612cdab01ece739e2b
Author: Jean-Louis Monteiro <jl...@tomitribe.com>
AuthorDate: Wed Jun 9 17:10:04 2021 +0200

    Backport some changes from 9.1 branch
---
 src/test/resources/testsuite.properties             | 14 +++++++++-----
 .../openejb/tck/commands/CommandSupport.groovy      |  7 +++++++
 .../openejb/tck/commands/JavaTestCommand.groovy     | 21 ++++++++++++++++-----
 .../script/openejb/tck/commands/SetupCommand.groovy |  4 ++++
 src/test/tomcat/conf/server.xml                     | 13 ++++++++-----
 src/test/tomee-plume/conf/catalina.policy           | 16 +++++++++++++---
 src/test/tomee-plume/conf/system.properties         |  2 ++
 7 files changed, 59 insertions(+), 18 deletions(-)

diff --git a/src/test/resources/testsuite.properties b/src/test/resources/testsuite.properties
index c7da597..086988d 100644
--- a/src/test/resources/testsuite.properties
+++ b/src/test/resources/testsuite.properties
@@ -39,7 +39,7 @@ command.testExecute=com.sun.ts.lib.harness.ExecTSTestCmd \
         -Djavax.net.ssl.keyStorePassword=changeit \
         -Djavax.net.ssl.trustStore=${keystores.dir}/ssl-truststore \
         -Djavax.net.ssl.trustStorePassword=changeit \
-        -Djava.endorsed.dirs=${s1as.java.endorsed.dirs}${pathsep}${ts.home}/endorsedlib \
+        ${command.testExecute.endorsed.dir} \
         -Dcom.sun.aas.installRoot=${javaee.home} \
         -Dcatalina.base=${openejb.home} \
         -Dlog.file.location=${log.file.location} \
@@ -50,6 +50,7 @@ command.testExecute=com.sun.ts.lib.harness.ExecTSTestCmd \
         -Ddeliverable.class=${deliverable.class} \
         -Dopenejb.validation.output.level=3 \
         -Djava.security.egd=file:/dev/./urandom \
+        -Dbin.dir=%bin_dir% \
         $testExecuteClass \
         $testExecuteArgs
 
@@ -78,7 +79,7 @@ command.testExecuteEjbEmbed=com.sun.ts.lib.harness.ExecTSTestCmd \
         ${JAVA_HOME}/bin/java \
         -javaagent:${openejb.home}/lib/openejb-javaagent.jar \
         ${command.testExecuteEmbedded.debugopts} \
-        -Djava.endorsed.dirs=${openejb.home}/endorsed \
+        ${command.testExecuteEjbEmbed.endorsed.dir} \
         -DDB1=new://Resource?type=DataSource \
         -DDB1.JdbcDriver=org.apache.derby.jdbc.ClientDriver \
         -DDB1.JdbcUrl=jdbc:derby://localhost:${derby.server.port}/derbydb;create=true \
@@ -199,7 +200,9 @@ porting.ts.jms.class.1=org.apache.openejb.cts.JMSAdminImpl
 porting.ts.login.class.1=org.apache.openejb.cts.LoginContextImpl
 porting.ts.url.class.1=org.apache.openejb.cts.URLImpl
 
-sigTestClasspath=${s1as.modules}/javax.servlet.jar${pathsep}${s1as.modules}/javax.ejb.jar${pathsep}${endorsed.dirs}/javax.annotation.jar${pathsep}${s1as.modules}/javax.enterprise.deploy.jar${pathsep}${s1as.modules}/javax.mail.jar${pathsep}${s1as.modules}/javax.persistence.jar${pathsep}${s1as.modules}/javax.resource.jar${pathsep}${s1as.modules}/javax.security.auth.message.jar${pathsep}${s1as.modules}/javax.security.jacc.jar${pathsep}${s1as.modules}/javax.servlet.jsp.jar${pathsep}${s1as.mo [...]
+jimage.dir=${ts.home}/tmp/jdk-bundles
+#sigTestClasspath=${s1as.modules}/javax.servlet.jar${pathsep}${s1as.modules}/javax.ejb.jar${pathsep}${endorsed.dirs}/javax.annotation.jar${pathsep}${s1as.modules}/javax.enterprise.deploy.jar${pathsep}${s1as.modules}/javax.mail.jar${pathsep}${s1as.modules}/javax.persistence.jar${pathsep}${s1as.modules}/javax.resource.jar${pathsep}${s1as.modules}/javax.security.auth.message.jar${pathsep}${s1as.modules}/javax.security.jacc.jar${pathsep}${s1as.modules}/javax.servlet.jsp.jar${pathsep}${s1as.m [...]
+sigTestClasspath=%openejb.jee.classes%
 
 ts.run.classpath=%ts.run.classpath%
 openejb.embedded.classpath=%openejb.embedded.classpath%
@@ -226,7 +229,7 @@ test.ejb.stateful.timeout.wait.seconds=660
 
 harness.log.port=%harness.log.port%
 
-ws_wait=6
+# ws_wait=5
 javatest.timeout.factor=3.0
 
 imap.port = 3143
@@ -239,4 +242,5 @@ provider.configuration.file=%basedir%/%openejb.home%/conf/ProviderConfiguration.
 j2eelogin.name=j2ee
 j2eelogin.password=j2ee
 servlet.is.jsr115.compatible=false
-logical.hostname.servlet=Catalina/localhost
\ No newline at end of file
+logical.hostname.servlet=Catalina/localhost
+bin.dir=%bin_dir%
diff --git a/src/test/script/openejb/tck/commands/CommandSupport.groovy b/src/test/script/openejb/tck/commands/CommandSupport.groovy
index 43f4f00..25621da 100644
--- a/src/test/script/openejb/tck/commands/CommandSupport.groovy
+++ b/src/test/script/openejb/tck/commands/CommandSupport.groovy
@@ -199,6 +199,8 @@ abstract class CommandSupport {
         builder.directory = openejbLib
         builder.appendAll("geronimo-*_spec-*.jar")
         builder.append("javaee-api-*.jar")
+        builder.directory = javaHome() +"/lib/"
+        builder.append("rt.jar")
         builder.getPath("openejb.jee.classes")
 
         // ts.run.classpath - used to run the appclient
@@ -291,6 +293,11 @@ abstract class CommandSupport {
         builder.getPath("openejb.embedded.classpath")
     }
 
+    private String javaHome() {
+        def file = new File(System.getProperty("java.home"))
+        return file.getAbsolutePath();
+    }
+
     def selectTests() {
         def builder = new TestListBuilder(this)
         return builder.getTests()
diff --git a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
index 17e5fff..6d9666c 100644
--- a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
+++ b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
@@ -204,6 +204,8 @@ class JavaTestCommand
                 if (tckJavaHome != null) {
                     log.info("Using java home (javatest) ${tckJavaHome}")
                     jvmarg(value: "-Dtck.java.home=${tckJavaHome}")
+                } else {
+                    tckJavaHome = javaHome
                 }
 
                 def tckJavaVersion = get('tck.java.version')
@@ -222,6 +224,8 @@ class JavaTestCommand
                 if (containerJavaHome != null) {
                     log.info("Using java home (container) ${containerJavaHome}")
                     jvmarg(value: "-Dcontainer.java.home=${containerJavaHome}")
+                } else {
+                    containerJavaHome = javaHome
                 }
 
                 def containerJavaVersion = get('container.java.version')
@@ -231,9 +235,17 @@ class JavaTestCommand
 
                 def containerJavaOpts = get('container.java.opts', "")
 
-                // force memory on tasks because with JDK 8 it's computed with a bit too much
-                containerJavaOpts += " -Xmx512m -Dtest.ejb.stateful.timeout.wait.seconds=60"
+                // not sure about this ....
+                if (tckJavaHome == null || !new File(tckJavaHome, 'jmods').exists()/*j9 doesnt support it*/) {
+                    sysproperty(key: "java.endorsed.dirs", file: "${javaeeRiHome}/lib/endorsed")
+                    sysproperty(key: "command.testExecute.endorsed.dir", value: "-Djava.endorsed.dirs=${javaeeCtsHome}/endorsedlib")
+                    sysproperty(key: "command.testExecuteEjbEmbed.endorsed.dir", value: "-Djava.endorsed.dirs=${openejbHome}/endorsed")
+
+                    containerJavaOpts += " -Djava.locale.providers=COMPAT"
+                }
 
+                // force memory on tasks because with JDK 8 it's computed with a bit too much
+                // containerJavaOpts += " -Xmx512m -Dtest.ejb.stateful.timeout.wait.seconds=60"
 
                 if (options.contains('security')) {
                     log.info("Enabling server security manager")
@@ -289,9 +301,6 @@ class JavaTestCommand
                 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'))
-                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'))
@@ -332,6 +341,8 @@ class JavaTestCommand
                     sysproperty(key: "SYSTEMROOT", value: System.getenv('SystemRoot'))
                 }
 
+                sysproperty(key: "bin.dir", value: "${javaeeCtsHome}/bin")
+
                 // Include system properties
                 arg(value: "-EsysProps")
 
diff --git a/src/test/script/openejb/tck/commands/SetupCommand.groovy b/src/test/script/openejb/tck/commands/SetupCommand.groovy
index 87c03b4..6c889b9 100644
--- a/src/test/script/openejb/tck/commands/SetupCommand.groovy
+++ b/src/test/script/openejb/tck/commands/SetupCommand.groovy
@@ -51,6 +51,7 @@ class SetupCommand
                     'ts.run.classpath',
                     'ts.run.classpath.ri.suffix',
                     'ts.harness.classpath',
+                    'openejb.jee.classes',
                     'openejb.embedded.classpath',
                     'geronimo.specs.classpath',
                     'geronimo.porting.classes'
@@ -79,6 +80,9 @@ class SetupCommand
                     map['javaee.level'] = 'web'
                 }
 
+                log.info("Setting bin.dir to " + javaeeCtsHome.getAbsolutePath() + "/bin")
+                map['bin_dir'] = javaeeCtsHome.getAbsolutePath() + "/bin"
+
                 // map['servlet_adaptor'] = 'org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet'
                 map['servlet_adaptor'] = 'org.apache.openejb.server.rest.OpenEJBRestServlet'
                 map['jaxrs_impl_name'] = 'cxf'
diff --git a/src/test/tomcat/conf/server.xml b/src/test/tomcat/conf/server.xml
index 991f1a4..5cdf835 100644
--- a/src/test/tomcat/conf/server.xml
+++ b/src/test/tomcat/conf/server.xml
@@ -83,13 +83,16 @@
          This connector uses the JSSE configuration, when using APR, the
          connector should be using the OpenSSL style configuration
          described in the APR documentation -->
-    <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
-               maxThreads="150" scheme="https" secure="true"
-               clientAuth="false" sslProtocol="TLS"
-               keystoreFile="conf/clientcert.jks"/>
+    <Connector port="%webcontainer.default.ssl.port%" protocol="HTTP/1.1" SSLEnabled="true">
+      <SSLHostConfig truststoreFile="conf/ssl-truststore">
+        <Certificate certificateKeystoreFile="conf/clientcert.jks"
+                     certificateKeystorePassword="changeit"
+                     type="RSA" />
+      </SSLHostConfig>
+    </Connector>
 
     <!-- Define an AJP 1.3 Connector on port 8009 -->
-    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
+    <!-- <Connector port="%tomee.ajp.port%" protocol="AJP/1.3" redirectPort="%tomee.ssl.port%" /> -->
 
 
     <!-- An Engine represents the entry point (within Catalina) that processes
diff --git a/src/test/tomee-plume/conf/catalina.policy b/src/test/tomee-plume/conf/catalina.policy
index 4fb8777..fcc2572 100644
--- a/src/test/tomee-plume/conf/catalina.policy
+++ b/src/test/tomee-plume/conf/catalina.policy
@@ -171,22 +171,25 @@ grant {
     permission java.util.PropertyPermission "openejb.*", "read";
     permission java.util.PropertyPermission "user.name", "read";
     permission java.util.PropertyPermission "java.io.tmpdir", "read";
-    permission java.io.FilePermission "${catalina.base}/lib/-", "read"; // java ee api class, slf4j, owb, etc
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.loader"; // tomee
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.core"; // tomee
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.realm"; // tomee
-    permission java.lang.RuntimePermission "setContextClassLoader"; // tomee
+    permission java.io.FilePermission "${catalina.base}/lib/-", "read"; // java ee api class, slf4j, owb, etc
     permission java.lang.RuntimePermission "accessDeclaredMembers"; // owb
     permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; // owb
     permission java.net.SocketPermission "localhost", "connect,resolve"; // jndi
     permission java.net.SocketPermission "127.0.0.1", "connect,resolve"; // jndi
-    permission javax.security.auth.AuthPermission "doAsPrivileged"; // tomee security
     permission javax.security.auth.AuthPermission "modifyPrincipals"; // tomee security
     permission javax.security.auth.AuthPermission "modifyPrivateCredentials"; // tomee security
 
     // TomEE for CTS classes in webapps
     permission java.io.FilePermission "${cts.home}/dist/-", "read";
 
+    // weird on ec2, it does not seem to work well for security api
+    // try a small hard coded version
+    permission java.io.FilePermission "/home/ec2-user/-", "read";
+    permission java.io.FilePermission "/home/ec2-user/jakartaeetck-9.1.0-2021-04-20.1739/dist/com/sun/ts/tests/securityapi/idstore/idstorepermission/securityapi_idstore_idstorepermission/securityapi_idstore_idstorepermission_web/-", "read";
+
     // Required for OpenJMX
     permission java.lang.RuntimePermission "getAttribute";
 
@@ -300,11 +303,18 @@ grant codeBase "file:${cts.home}/dist/com/sun/ts/tests/jaspic/-" {
     permission java.io.FilePermission "${catalina.base}/temp/-", "read,write";
     permission java.io.FilePermission "${catalina.base}/logs/-", "read,write";
     permission java.io.FilePermission "${catalina.base}/work/-", "read,write";
+
+    // weird on ec2, it does not seem to work well for security api
+    // try a small hard coded version
+    permission java.io.FilePermission "/home/ec2-user/-", "read";
+    permission java.io.FilePermission "/home/ec2-user/jakartaeetck-9.1.0-2021-04-20.1739/dist/com/sun/ts/tests/securityapi/idstore/idstorepermission/securityapi_idstore_idstorepermission/securityapi_idstore_idstorepermission_web/-", "read";
+
     permission java.util.PropertyPermission "*", "read,write"; // the log file
     permission java.security.SecurityPermission "getProperty.authconfigprovider.factory";
     permission java.security.SecurityPermission "setProperty.authconfigprovider.factory";
     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.authenticator.jaspic";
     permission java.util.logging.LoggingPermission "control";
+    permission java.net.SocketPermission "*", "connect,resolve"; // logger
 };
 grant codeBase "file:${cts.home}/dist/com/sun/ts/tests/servlet/ee/spec/security/permissiondd/servlet_ee_spec_security_permissiondd_web/-" {
     permission java.util.PropertyPermission "cts.*", "read";
diff --git a/src/test/tomee-plume/conf/system.properties b/src/test/tomee-plume/conf/system.properties
index fe18b1b..0fff9ca 100644
--- a/src/test/tomee-plume/conf/system.properties
+++ b/src/test/tomee-plume/conf/system.properties
@@ -188,3 +188,5 @@ j2eelogin.password=j2ee
 #
 #EOF
 #done
+
+jpa_ee_packaging_ejb_standalone_client.jar.moduleId=jpa_ee_packaging_ejb_standalone_ejb_client