diff --git a/appclient/pom.xml b/appclient/pom.xml
index fa2399afbb..9cd0ef3435 100644
--- a/appclient/pom.xml
+++ b/appclient/pom.xml
@@ -32,6 +32,13 @@
APPCLIENT
APPCLIENT
+
+ 1.9.1.Final
+ 11.0.0-SNAPSHOT
+ 5.9.1
+ 17
+
+
${project.groupId}
@@ -69,6 +76,84 @@
jakarta.persistence
jakarta.persistence-api
+
+ ${project.groupId}
+ libutil
+ ${jakarta.ee.version}
+
+
+ ${project.groupId}
+ common
+ ${jakarta.ee.version}
+
+
+ jakarta.ejb
+ jakarta.ejb-api
+
+
+ ${project.groupId}.arquillian
+ arquillian-protocol-common
+ ${arquillian.jakarta.tck.version}
+
+
+ ${project.groupId}.arquillian
+ arquillian-protocol-javatest
+ ${arquillian.jakarta.tck.version}
+
+
+ jakarta.mail
+ jakarta.mail-api
+
+
+ jakarta.activation
+ jakarta.activation-api
+
+
+ org.jboss.shrinkwrap
+ shrinkwrap-api
+ 1.2.6
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-depchain
+ 3.1.4
+ pom
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ ${arquillian.junit}
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+ ${arquillian.junit}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${arquillian.jakarta.tck.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${arquillian.jakarta.tck.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${arquillian.jakarta.tck.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/compat9_10/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/compat9_10/Client.java
index bb3b663d05..f83c788050 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/compat9_10/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/compat9_10/Client.java
@@ -22,11 +22,16 @@
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private static final String prefix = "java:comp/env/ejb/";
@@ -48,7 +53,6 @@ public static void main(String[] args) {
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
*/
public void setup(String[] args, Properties props) throws Exception {
-
try {
this.props = props;
nctx = new TSNamingContext();
@@ -76,6 +80,7 @@ public void setup(String[] args, Properties props) throws Exception {
* Run the client and check we can call a business method on
* the referenced bean at runtime.
*/
+ @Test
public void test910DD() throws Exception {
TestBean bean = null;
String beanName;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/casesens/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/casesens/Client.java
index 494debeac0..697cd1386c 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/casesens/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/casesens/Client.java
@@ -20,13 +20,37 @@
package com.sun.ts.tests.appclient.deploy.ejblink.casesens;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import javax.naming.Context;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.exporter.ZipExporter;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+import tck.arquillian.protocol.common.TargetVehicle;
+
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private static final String prefix = "java:comp/env/ejb/";
@@ -50,6 +74,67 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("javatest")
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_casesens_client.jar");
+ ejbClient.addPackages(true, Client.class.getPackage());
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_casesens_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_casesens_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejblink.casesens.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ System.out.println(ejbClient.toString(true));
+ JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_casesens_ejb.jar");
+ ejb.addClasses(CaseBean.class, CaseBeanEJB.class);
+ ejb.addPackages(true, "com.sun.ts.tests.assembly.util.shared.ejbref.common");
+ ejb.addPackages(true, "com.sun.ts.tests.common.ejb.wrappers");
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_casesens_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_casesens_ejb.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ System.out.println("##################################");
+
+ System.out.println(ejb.toString(true));
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejblink_casesens.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(ejb);
+ ear.as(ZipExporter.class).exportTo(
+ new File("/tmp/ejb.ear"), true);
+
+ return ear;
+ };
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -58,16 +143,15 @@ public static void main(String[] args) {
* @class.testArgs: -ap tssql.stmt
*
*/
- public void setup(String[] args, Properties props) throws Exception {
- this.props = props;
-
- try {
- nctx = new TSNamingContext();
- logMsg("[Client] Setup succeed (got naming context).");
- } catch (Exception e) {
- throw new Exception("[Client] Setup failed:", e);
- }
- }
+ public void setup(String[] args, Properties props) throws Exception {
+ this.props = props;
+ try {
+ nctx = new TSNamingContext();
+ logMsg("[Client] Setup succeed (got naming context).");
+ } catch (Exception e) {
+ throw new Exception("[Client] Setup failed:", e);
+ }
+ }
/**
* @testName: testCaseSensitivity
@@ -85,13 +169,14 @@ public void setup(String[] args, Properties props) throws Exception {
* match the references specified in the DD (validates that
* the EJB references were resolved correctly).
*/
+ @Test
public void testCaseSensitivity() throws Exception {
CaseBean bean1 = null;
CaseBean bean2 = null;
String bean1Name;
String bean2Name;
boolean pass = false;
-
+
try {
TestUtil.logTrace("[Client] Looking up '" + bean1Lookup + "'...");
bean1 = (CaseBean) nctx.lookup(bean1Lookup, CaseBean.class);
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/path/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/path/Client.java
index ccb6397b4f..4a78f77822 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/path/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/path/Client.java
@@ -20,13 +20,32 @@
package com.sun.ts.tests.appclient.deploy.ejblink.path;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private static final String prefix = "java:comp/env/ejb/";
@@ -50,6 +69,87 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+
+ EnterpriseArchive ear = null;
+ try {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_path_client.jar");
+ ejbClient.addPackages(true, "com.sun.ts.tests.appclient.deploy.ejblink.path");
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_path_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/casesens/appclient_dep_ejblink_path_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejblink.path.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejb1 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_path_jar1_ejb.jar");
+ ejb1.addPackages(true, Client.class.getPackage());
+ ejb1.addPackages(true, "com.sun.ts.tests.common.ejb.wrappers");
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/path/appclient_dep_ejblink_path_jar1_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb1.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/path/appclient_dep_ejblink_path_jar1_ejb.xml");
+
+ if (resURL != null) {
+ ejb1.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+
+
+ JavaArchive ejb2 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_path_jar2_ejb.jar");
+ ejb2.addPackages(true, Client.class.getPackage());
+ ejb2.addPackages(true, "com.sun.ts.tests.common.ejb.wrappers");
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/path/appclient_dep_ejblink_path_jar2_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb2.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/path/appclient_dep_ejblink_path_jar2_ejb.xml");
+
+ if (resURL != null) {
+ ejb2.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+
+ ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejblink_path.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(ejb1);
+ ear.addAsModule(ejb2);
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -58,16 +158,15 @@ public static void main(String[] args) {
* @class.testArgs: -ap tssql.stmt
*
*/
- public void setup(String[] args, Properties props) throws Exception {
- this.props = props;
-
- try {
- nctx = new TSNamingContext();
- logMsg("[Client] Setup succeed (got naming context).");
- } catch (Exception e) {
- throw new Exception("Setup failed:", e);
- }
- }
+ public void setup(String[] args, Properties props) throws Exception {
+ this.props = props;
+ try {
+ nctx = new TSNamingContext();
+ logMsg("[Client] Setup succeed (got naming context).");
+ } catch (Exception e) {
+ throw new Exception("Setup failed:", e);
+ }
+ }
/**
* @testName: testScope
@@ -87,6 +186,7 @@ public void setup(String[] args, Properties props) throws Exception {
* identities (as reported by the String env. entry) match the
* ones specified in the DD.
*/
+ @Test
public void testScope() throws Exception {
ReferencedBean bean1 = null;
ReferencedBean2 bean2 = null;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/single/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/single/Client.java
index e1b4578d61..5a473bdb0e 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/single/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejblink/single/Client.java
@@ -20,14 +20,35 @@
package com.sun.ts.tests.appclient.deploy.ejblink.single;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Hashtable;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import javax.naming.Context;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
-import com.sun.ts.lib.util.TestUtil;
import com.sun.ts.tests.assembly.util.shared.ejbref.single.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
/*
@@ -36,6 +57,69 @@ public class Client extends EETest {
private TSNamingContext nctx = null;
private Properties props = null;
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_single_client.jar");
+ ejbClient.addClass(Client.class);
+ ejbClient.addPackages(true, Client.class.getPackage());
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+ ejbClient.addPackages(true, "com.sun.ts.tests.assembly.util.refbean");
+ ejbClient.addPackages(true, "com.sun.ts.tests.assembly.util.shared");
+ ejbClient.addPackages(true, "com.sun.ts.tests.common.dao.coffee");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/single/appclient_dep_ejblink_singe_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/single/appclient_dep_ejblink_single_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejblink.single.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejblink_single_ejb.jar");
+ ejb.addPackages(true, "com.sun.ts.tests.assembly.util.shared.ejbref.common");
+ ejb.addPackages(true, "com.sun.ts.tests.assembly.util.refbean");
+ ejb.addPackages(true, "com.sun.ts.tests.assembly.util.shared");
+ ejb.addPackages(true, "com.sun.ts.tests.common.dao.coffee");
+
+
+
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/single/appclient_dep_ejblink_single_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejblink/single/appclient_dep_ejblink_single_ejb.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejblink_single.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(ejb);
+ return ear;
+ };
+
public static void main(String[] args) {
Client theTests = new Client();
@@ -60,6 +144,7 @@ public void setup(String[] args, Properties props) throws Exception {
logMsg("[Client] Setup succeed (got naming context).");
} catch (Exception e) {
+ e.printStackTrace();
throw new Exception("Setup failed:", e);
}
}
@@ -77,9 +162,10 @@ public void setup(String[] args, Properties props) throws Exception {
* that the EJB reference was resolved consistently with the
* DD.
*/
+ @Test
public void testStateless() throws Exception {
boolean pass;
-
+
try {
pass = TestCode.testStatelessExternal(nctx, props);
if (!pass) {
@@ -102,6 +188,7 @@ public void testStateless() throws Exception {
* found only in this particular bean: This is to check that
* the EJB reference was resolved consistently with the DD.
*/
+ @Test
public void testStateful() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/casesens/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/casesens/Client.java
index 25dd32fd84..f50ef97406 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/casesens/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/casesens/Client.java
@@ -20,13 +20,30 @@
package com.sun.ts.tests.appclient.deploy.ejbref.casesens;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private static final String prefix = "java:comp/env/ejb/";
@@ -50,6 +67,61 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = true)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_casesens_client.jar");
+ ejbClient.addPackages(true, Client.class.getPackage());
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_casesens_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_casesens_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejbref.casesens.Client" + "\n"),
+ "MANIFEST.MF");
+
+ JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_casesens_ejb.jar");
+ ejb.addPackages(false, "com.sun.ts.tests.assembly.util.refbean");
+ ejb.addPackages(false, "com.sun.ts.tests.assembly.util.shared.ejbref.common");
+ ejb.addPackages(true, Client.class.getPackage());
+
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_casesens_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_casesens_ejb.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejbref_scope.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(ejb);
+ return ear;
+ };
+
/**
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -84,6 +156,7 @@ public void setup(String[] args, Properties props) throws Exception {
* are distinct and match the ones specified in the DD
* (validates that the EJB reference are resolved correctly).
*/
+ @Test
public void testCaseSensitivity() throws Exception {
ReferencedBean bean1 = null;
ReferencedBean bean2 = null;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/scope/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/scope/Client.java
index 7fa4796223..f0ea188696 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/scope/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/scope/Client.java
@@ -20,13 +20,31 @@
package com.sun.ts.tests.appclient.deploy.ejbref.scope;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private static final String prefix = "java:comp/env/ejb/";
@@ -46,6 +64,86 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = true)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient1 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_scope_client.jar");
+ ejbClient1.addPackages(true, Client.class.getPackage());
+ ejbClient1.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_scope_client.xml");
+ if (appClientUrl != null) {
+ ejbClient1.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_scope_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient1.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient1.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejbref.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejbClient2 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_scope_client_another.jar");
+ ejbClient2.addPackages(true, Client.class.getPackage());
+ ejbClient2.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_scope_another_client.xml");
+ if (appClientUrl != null) {
+ ejbClient2.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_scope_another_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient2.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient2.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejbref.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_scope_ejb.jar");
+ ejb.addPackages(false, "com.sun.ts.tests.assembly.util.refbean");
+ ejb.addPackages(false, "com.sun.ts.tests.assembly.util.shared.ejbref.common");
+ ejb.addPackages(true, "com.sun.ts.tests.common.dao.coffee");
+ ejb.addPackages(true, "com.sun.ts.tests.common.ejb.wrappers");
+ ejb.addClasses(ReferencedBean.class, ReferencedBeanEJB.class);
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_scope_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/scope/appclient_dep_ejbref_scope_ejb.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejbref_scope.ear");
+ ear.addAsModule(ejbClient1);
+ ear.addAsModule(ejbClient2);
+ ear.addAsModule(ejb);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -54,16 +152,16 @@ public static void main(String[] args) {
* @class.testArgs: -ap tssql.stmt
*
*/
- public void setup(String[] args, Properties props) throws Exception {
- this.props = props;
+ public void setup(String[] args, Properties props) throws Exception {
+ this.props = props;
- try {
- nctx = new TSNamingContext();
- logMsg("[Client] Setup succeed (got naming context).");
- } catch (Exception e) {
- throw new Exception("Setup failed:", e);
- }
- }
+ try {
+ nctx = new TSNamingContext();
+ logMsg("[Client] Setup succeed (got naming context).");
+ } catch (Exception e) {
+ throw new Exception("Setup failed:", e);
+ }
+ }
/**
* @testName: testScope
@@ -90,6 +188,7 @@ public void setup(String[] args, Properties props) throws Exception {
* the application client DD (validates that this EJB
* reference is resolved correctly).
*/
+ @Test
public void testScope() throws Exception {
ReferencedBean bean = null;
String beanName;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/single/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/single/Client.java
index b1e12ea6e5..97ea106eef 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/single/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/ejbref/single/Client.java
@@ -20,14 +20,32 @@
package com.sun.ts.tests.appclient.deploy.ejbref.single;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
-import com.sun.ts.lib.util.TestUtil;
import com.sun.ts.tests.assembly.util.shared.ejbref.single.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
/*
@@ -42,6 +60,63 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = true)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_single_client.jar");
+ ejbClient.addClasses(Client.class, TestCode.class);
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+ ejbClient.addPackages(true, "com.sun.ts.tests.assembly.util.refbean");
+ ejbClient.addPackages(true, "com.sun.ts.tests.common.dao.coffee");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_single_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_single_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.ejbref.single.Client" + "\n"),
+ "MANIFEST.MF");
+
+ JavaArchive ejb = ShrinkWrap.create(JavaArchive.class, "appclient_dep_ejbref_single_ejb.jar");
+ ejb.addPackages(false, "com.sun.ts.tests.assembly.util.refbean");
+ ejb.addPackages(true, "com.sun.ts.tests.common.dao.coffee");
+ ejb.addPackages(true, "/com.sun.ts.tests.common.ejb.wrappers");
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_single_ejb.jar.sun-ejb-jar.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/ejbref/single/appclient_dep_ejbref_single_ejb.xml");
+
+ if (resURL != null) {
+ ejb.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_ejbref_single.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(ejb);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -77,6 +152,7 @@ public void setup(String[] args, Properties props) throws Exception {
* that the EJB reference was resolved consistently with the
* DD.
*/
+ @Test
public void testStateless() throws Exception {
boolean pass;
@@ -102,6 +178,7 @@ public void testStateless() throws Exception {
* found only this particular bean: This is to check that the
* EJB reference was resolved consistently with the DD.
*/
+ @Test
public void testStateful() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/casesens/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/casesens/Client.java
index b7193485d8..a97cd9e2f5 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/casesens/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/casesens/Client.java
@@ -20,13 +20,30 @@
package com.sun.ts.tests.appclient.deploy.enventry.casesens;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.tests.assembly.util.shared.enventry.casesens.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private TSNamingContext nctx = null;
@@ -38,6 +55,35 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_enventry_casesens_client.jar");
+ ejbClient.addClasses(Client.class, TestCode.class);
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/enventry/casesens/appclient_dep_enventry_casesens_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.enventry.casesens.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_enventry_casesens.ear");
+ ear.addAsModule(ejbClient);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -65,6 +111,7 @@ public void setup(String[] args, Properties props) throws Exception {
* environment entries. Check that their runtime values are
* distinct and match the ones specified in the DD.
*/
+ @Test
public void testCaseSensitivity() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/scope/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/scope/Client.java
index 3d4cf671c0..3dfa989538 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/scope/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/scope/Client.java
@@ -20,13 +20,31 @@
package com.sun.ts.tests.appclient.deploy.enventry.scope;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.tests.assembly.util.shared.enventry.scope.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
/** Env. entry name for JNDI lookup */
@@ -44,6 +62,52 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient1 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_enventry_scope_another_client.jar");
+ ejbClient1.addClasses(Client.class, TestCode.class);
+ ejbClient1.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "com/sun/ts/tests/appclient/deploy/enventry/scope/appclient_dep_enventry_scope_another_client.xml");
+ if (appClientUrl != null) {
+ ejbClient1.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+
+ ejbClient1.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.enventry.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejbClient2 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_enventry_scope_client.jar");
+ ejbClient2.addClasses(Client.class, TestCode.class);
+ ejbClient2.addPackages(true, "com.sun.ts.lib.harness");
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/enventry/scope/appclient_dep_enventry_scope_client.xml");
+
+ if (resURL != null) {
+ ejbClient2.addAsManifestResource(resURL, "application-client.xml");
+ }
+
+ ejbClient2.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.enventry.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_enventry_scope.ear");
+ ear.addAsModule(ejbClient1);
+ ear.addAsModule(ejbClient2);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -76,6 +140,7 @@ public void setup(String[] args, Properties props) throws Exception {
* entry correspond to the one declared in the Deployment
* Descriptor.
*/
+ @Test
public void testScope() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/single/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/single/Client.java
index 39c80605d2..e40336353b 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/single/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/enventry/single/Client.java
@@ -20,13 +20,30 @@
package com.sun.ts.tests.appclient.deploy.enventry.single;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.tests.assembly.util.shared.enventry.single.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private TSNamingContext nctx = null;
@@ -38,6 +55,36 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_enventry_single_client.jar");
+ ejbClient.addPackages(true, Client.class.getPackage());
+ ejbClient.addClasses(Client.class, TestCode.class);
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/enventry/single/appclient_dep_enventry_single_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.enventry.single.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_enventry_single.ear");
+ ear.addAsModule(ejbClient);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -64,6 +111,7 @@ public void setup(String[] args, Properties props) throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testString() throws Exception {
boolean pass;
@@ -87,6 +135,7 @@ public void testString() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testBoolean() throws Exception {
boolean pass;
@@ -110,6 +159,7 @@ public void testBoolean() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testByte() throws Exception {
boolean pass;
@@ -133,6 +183,7 @@ public void testByte() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testShort() throws Exception {
boolean pass;
@@ -156,6 +207,7 @@ public void testShort() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testInteger() throws Exception {
boolean pass;
@@ -179,6 +231,7 @@ public void testInteger() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testLong() throws Exception {
boolean pass;
@@ -202,6 +255,7 @@ public void testLong() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testFloat() throws Exception {
boolean pass;
@@ -225,6 +279,7 @@ public void testFloat() throws Exception {
* its runtime value match the DD value.
*
*/
+ @Test
public void testDouble() throws Exception {
boolean pass;
Double value;
@@ -249,6 +304,7 @@ public void testDouble() throws Exception {
* check that their runtime value match their DD value.
*
*/
+ @Test
public void testAll() throws Exception {
try {
logTrace("[Client] testAll() : starting...");
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStore.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStore.java
new file mode 100644
index 0000000000..d63bb912f4
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStore.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import jakarta.ejb.Local;
+
+@Local
+public interface DataStore {
+
+ public String getData();
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreBean.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreBean.java
new file mode 100644
index 0000000000..915de68e93
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreBean.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
+
+@Stateless
+@LocalBean
+
+public class DataStoreBean implements DataStore, DataStoreRemote {
+
+ public String getData() {
+ return "42";
+ }
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreRemote.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreRemote.java
new file mode 100644
index 0000000000..4ca9d5de6b
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/DataStoreRemote.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import jakarta.ejb.Remote;
+
+@Remote
+public interface DataStoreRemote {
+
+ public String getData();
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestAppClient.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestAppClient.java
new file mode 100644
index 0000000000..25ff95630b
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestAppClient.java
@@ -0,0 +1,336 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+/*
+ * @(#)TestAppClient.java 1.11 07/20/2017
+ */
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import java.util.Properties;
+
+import javax.naming.InitialContext;
+
+import com.sun.ts.lib.harness.Status;
+import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.util.TSNamingContext;
+
+import jakarta.annotation.Resource;
+import jakarta.annotation.sql.DataSourceDefinition;
+import jakarta.ejb.EJB;
+import jakarta.jms.ConnectionFactory;
+import jakarta.jms.JMSConnectionFactoryDefinition;
+import jakarta.jms.JMSDestinationDefinition;
+import jakarta.jms.Queue;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.mail.Session;
+import jakarta.persistence.EntityManagerFactory;
+import jakarta.persistence.PersistenceUnit;
+
+@MailSessionDefinition(name = "java:comp/myMailSession", host = "smtp.gmail.com", transportProtocol = "smtps", properties = {
+ "mail.debug=true" })
+@DataSourceDefinition(name = "java:global/MyApp/MyDataSource", className = "oracle.jdbc.pool.OracleDataSource", url = "jdbc:oracle:thin:@localhost:1521:orcl", user = "TESTU", password = "TESTU")
+@JMSConnectionFactoryDefinition(description = "Define ConnectionFactory JSPMyTestConnectionFactory", interfaceName = "jakarta.jms.ConnectionFactory", name = "java:global/JSPMyTestConnectionFactory", user = "j2ee", password = "j2ee")
+@JMSDestinationDefinition(name = "java:app/jms/myappTopic", interfaceName = "jakarta.jms.Topic", destinationName = "MyPhysicalAppTopic")
+
+public class TestAppClient extends EETest {
+
+ private InitialContext initialContext;
+
+ private TSNamingContext nctx = null;
+
+ private Properties props = null;
+
+ @Resource(lookup = "java:comp/myMailSession")
+ private static Session session;
+
+ @EJB
+ static DataStoreRemote dataStore;
+
+ @Resource(lookup = "java:app/jms/TestConnectionFactory")
+ private static ConnectionFactory testFac;
+
+ @Resource(lookup = "java:app/jms/TestQ")
+ private static Queue testQueue;
+
+ @PersistenceUnit(unitName = "TEST-EM-APPCLIENT")
+ static EntityManagerFactory emf;
+
+ /*
+ * @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
+ * generateSQL;
+ *
+ * @class.testArgs: -ap tssql.stmt
+ *
+ */
+ public void setup(String[] args, Properties props) throws Fault {
+ this.props = props;
+ try {
+ nctx = new TSNamingContext();
+ logMsg("[Client] Setup succeed (got naming context).");
+ } catch (Exception e) {
+ throw new Fault("Setup failed:", e);
+ }
+ }
+
+ public static void main(String[] args) {
+ TestAppClient theTests = new TestAppClient();
+ Status s = theTests.run(args, System.out, System.err);
+ s.exit();
+ }
+
+
+ /**
+ * @testName: testMailSession
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,Resource annotation should be ignored - as it is one
+ * of the annotations to which metadata-complete is
+ * applicable.
+ *
+ */
+ public void testMailSession() throws Fault {
+ try {
+ Object sess = nctx.lookup("mail/Session");
+ logMsg("sess" + sess);
+ if (null == sess) {
+ throw new Fault("lookup failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("MailSession test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testMailSessionDefinition
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,MailSessionDefinition annotation should be ignored -
+ * as it is one of the annotations to which metadata-complete
+ * is applicable.
+ *
+ */
+ public void testMailSessionDefinition() throws Fault {
+ try {
+ logMsg("session" + session);
+ logMsg("mail.debug:" + session.getProperty("mail.debug"));
+ if (null != session) {
+ throw new Fault("MailSessionDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("MailSessionDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testEJBAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,EJB
+ * annotation should be ignored - as it is one of the
+ * annotations to which metadata-complete is applicable.
+ *
+ */
+ public void testEJBAnnotation() throws Fault {
+ try {
+ logMsg("datastore" + dataStore);
+ if (null != dataStore) {
+ throw new Fault("EJBAnnotation test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("EJBAnnotation test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testDataSourceDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,DataSourceDefinition annotation should be ignored - as
+ * it is one of the annotations to which metadat-complete is
+ * applicable.
+ *
+ */
+ public void testDataSourceDefinitionAnnotation() throws Fault {
+ try {
+ Object dataSource = nctx.lookup("java:global/MyApp/MyDataSource");
+ if (dataSource != null) {
+ throw new Fault("DataSourceDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("DataSourceDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testJMSConnectionFactoryDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,JMSConnectionFactoryDefinition annotation should be
+ * ignored - as it is one of the annotations to which
+ * metadata-complete is applicable.
+ *
+ */
+ public void testJMSConnectionFactoryDefinitionAnnotation() throws Fault {
+ try {
+ Object connFactory = nctx
+ .lookup("java:global/JSPMyTestConnectionFactory");
+ logMsg("connFactory" + connFactory);
+ if (connFactory != null) {
+ throw new Fault("JMSConnectionFactoryDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("JMSConnectionFactoryDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testJMSDestinationDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,JMSDestinationDefinition annotation should be ignored
+ * - as it is one of the annotations to which
+ * metadata-complete is applicable.
+ *
+ */
+ public void testJMSDestinationDefinitionAnnotation() throws Fault {
+ try {
+ Object destination = nctx.lookup("java:app/jms/myappTopic");
+ logMsg("destination" + destination);
+ if (destination != null) {
+ throw new Fault("JMSDestinationDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("JMSDestinationDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testConnectionFactoryDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,ConnectionFactoryDefinition annotation should be
+ * ignored - as it is one of the annotations to which
+ * metadata-complete is applicable.
+ *
+ */
+ public void testConnectionFactoryDefinitionAnnotation() throws Fault {
+ try {
+ logMsg("testFac" + testFac);
+ if (testFac != null) {
+ throw new Fault("ConnectionFactoryDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("ConnectionFactoryDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testAdministeredObjectDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,AdministeredObjectDefinition annotation should be
+ * ignored - as it is one of the annotations to which
+ * metadata-complete is applicable.
+ *
+ */
+ public void testAdministeredObjectDefinitionAnnotation() throws Fault {
+ try {
+ logMsg("testQueue" + testQueue);
+ if (testFac != null) {
+ throw new Fault("AdministeredObjectDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("AdministeredObjectDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testPersistenceUnitDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to
+ * true,PersistenceUnitDefinition annotation should be ignored
+ * - as it is one of the annotations to which
+ * metadata-complete is applicable.
+ *
+ */
+ public void testPersistenceUnitDefinitionAnnotation() throws Fault {
+ try {
+ logMsg("emf" + emf);
+ if (emf != null) {
+ throw new Fault("PersistenceUnitDefinition test failed!");
+ }
+ } catch (Exception e) {
+ throw new Fault("PersistenceUnitDefinition test failed: " + e, e);
+ }
+ }
+
+ public void cleanup() throws Fault {
+ logMsg("[Client] cleanup()");
+ }
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestBean.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestBean.java
new file mode 100644
index 0000000000..8b672b1d3f
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/TestBean.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import jakarta.annotation.ManagedBean;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
+
+@ManagedBean("mybean")
+public class TestBean {
+
+ public TestBean() {
+ System.out.println(">>>>>>>>>>>>> Test123 ");
+ }
+
+ @PostConstruct
+ public void postConstruct() {
+ System.out.println(">>> TestBean:postConstruct()");
+ }
+
+ @PreDestroy
+ public void preDestroy() {
+ System.out.println(">>> TestBean:preDestroy()");
+ }
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application-client.xml b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application-client.xml
new file mode 100644
index 0000000000..cdc3abfdb9
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application-client.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ testapp
+
+
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application.xml b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application.xml
new file mode 100644
index 0000000000..4bc148e0b6
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/application.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+ testApp_ejb.jar
+
+
+ testApp_client.jar
+
+
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/DataStoreBean.java.src b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/DataStoreBean.java.src
new file mode 100644
index 0000000000..c3c5c1b0e3
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/DataStoreBean.java.src
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+import jakarta.ejb.LocalBean;
+import jakarta.ejb.Stateless;
+import jakarta.resource.ConnectionFactoryDefinition;
+import jakarta.resource.AdministeredObjectDefinition;
+
+@Stateless
+@LocalBean
+
+public class DataStoreBean implements DataStore,DataStoreRemote{
+
+ public String getData() {
+ return "42";
+ }
+}
\ No newline at end of file
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestAppClient.java.src b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestAppClient.java.src
new file mode 100644
index 0000000000..35deac25dc
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestAppClient.java.src
@@ -0,0 +1,492 @@
+/*
+ * Copyright (c) 2017, 2018, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import java.io.PrintStream;
+import jakarta.annotation.Resource;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.naming.NamingEnumeration;
+import javax.naming.NameClassPair;
+import java.util.Properties;
+import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.util.TestUtil;
+import com.sun.ts.lib.util.TSNamingContext;
+import com.sun.javatest.Status;
+import jakarta.mail.Session;
+import jakarta.mail.MailSessionDefinition;
+import jakarta.ejb.EJB;
+import jakarta.xml.ws.WebServiceRef;
+import jakarta.annotation.sql.DataSourceDefinition;
+import jakarta.jms.JMSConnectionFactoryDefinition;
+import jakarta.jms.JMSDestinationDefinition;
+import jakarta.jms.ConnectionFactory;
+import jakarta.jms.Queue;
+import jakarta.persistence.PersistenceUnit;
+import jakarta.persistence.EntityManagerFactory;
+
+
+@MailSessionDefinition(name = "java:comp/myMailSession",
+ host = "smtp.gmail.com",
+ transportProtocol = "smtps",
+ properties = {
+ "mail.debug=true"
+})
+@DataSourceDefinition(name="java:global/MyApp/MyDataSource",
+ className="@dbclassname@",
+ url="@dburl@",
+ user="@dbuser@",
+ password="@dbpassword@"
+ )
+@JMSConnectionFactoryDefinition(
+ description="Define ConnectionFactory JSPMyTestConnectionFactory",
+ interfaceName="jakarta.jms.ConnectionFactory",
+ name="java:global/JSPMyTestConnectionFactory",
+ user = "@user@",
+ password = "@password@"
+ )
+@JMSDestinationDefinition(
+ name = "java:app/jms/myappTopic",
+ interfaceName = "jakarta.jms.Topic",
+ destinationName = "MyPhysicalAppTopic"
+)
+
+public class TestAppClient extends EETest
+{
+ private InitialContext initialContext;
+ private TSNamingContext nctx = null;
+ private Properties props = null;
+ @Resource(lookup="java:module/mybean")
+ private static TestBean bean;
+ @Resource(lookup="java:comp/myMailSession")
+ private static Session session;
+ @EJB
+ static DataStoreRemote dataStore;
+ @WebServiceRef(name="service/HelloService")
+ static HelloService service;
+ @Resource(lookup="java:app/jms/TestConnectionFactory")
+ private static ConnectionFactory testFac;
+ @Resource(lookup="java:app/jms/TestQ")
+ private static Queue testQueue;
+ @PersistenceUnit(unitName = "TEST-EM-APPCLIENT")
+ static EntityManagerFactory emf;
+ @Resource(lookup="java:global/MyApp/MyDataSource")
+ private static Object dataSource;
+ @Resource(lookup="java:global/JSPMyTestConnectionFactory")
+ private static Object connFactory;
+ @Resource(lookup="java:app/jms/myappTopic")
+ private static Object destination;
+
+
+
+ private Object lookup(String jndiName)
+ throws NamingException
+ {
+ return this.initialContext.lookup(jndiName);
+ }
+ /*
+ * @class.setup_props: org.omg.CORBA.ORBClass;
+ * java.naming.factory.initial;
+ * generateSQL;
+ *
+ * @class.testArgs: -ap tssql.stmt
+ *
+ */
+ public void setup(String[] args, Properties props) throws Fault {
+ this.props = props;
+
+ try {
+ nctx = new TSNamingContext();
+ logMsg("[Client] Setup succeed (got naming context).");
+ } catch (Exception e) {
+ throw new Fault("Setup failed:", e);
+ }
+ }
+
+ public static void main(String[] args) {
+ TestAppClient theTests = new TestAppClient();
+ Status s = theTests.run(args, System.out, System.err);
+ s.exit();
+ }
+
+ /**
+ * @testName: testResourceLookup
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,ManagedBean annotation
+ * - should work as metadata-complete attribute is not applicable to it.
+ *
+ */
+ public void testResourceLookup() throws Fault {
+ try {
+
+ Object mybean =
+ nctx.lookup("java:module/mybean");
+ logMsg("mybean"+mybean);
+ if(null == mybean){
+ throw new Fault("lookup failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("lookup failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testResourceAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,Resource annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testResourceAnnotation() throws Fault {
+
+ try {
+ logMsg("bean"+bean);
+ if(null != bean){
+ throw new Fault("ResourceAnnotation test failed!");
+ }
+
+
+ }
+ catch (Exception e) {
+ throw new Fault("ResourceAnnotation test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testMailSession
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,Resource annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testMailSession() throws Fault {
+
+ try {
+
+ Object sess =
+ nctx.lookup("mail/Session");
+ logMsg("sess"+sess);
+ if(null == sess){
+ throw new Fault("lookup failed!");
+ }
+
+ }
+ catch (Exception e) {
+ throw new Fault("MailSession test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testMailSessionDefinition
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,MailSessionDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testMailSessionDefinition() throws Fault {
+
+ try {
+
+ //Session sess =
+ //(Session)nctx.lookup("java:comp/myMailSession");
+ logMsg("session"+session);
+ //logMsg("mail.debug:"+session.getProperty("mail.debug"));
+ if(null != session){
+ throw new Fault("MailSessionDefinition test failed!");
+ }
+
+ }
+ catch (Exception e) {
+ throw new Fault("MailSessionDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testEJBAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,EJB annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testEJBAnnotation() throws Fault {
+
+ try {
+
+ logMsg("datastore"+dataStore);
+ if(null != dataStore){
+ throw new Fault("EJBAnnotation test failed!");
+ }
+
+ }
+ catch (Exception e) {
+ throw new Fault("EJBAnnotation test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testWebServiceRefAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,WebServiceRef annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testWebServiceRefAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ logMsg("service"+service);
+ if(null != service){
+ throw new Fault("WebServiceRefAnnotation test failed!");
+ }
+
+ }
+ catch (Exception e) {
+ throw new Fault("WebServiceRefAnnotation test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testDataSourceDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,DataSourceDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testDataSourceDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ //Object dataSource =
+ //nctx.lookup("java:global/MyApp/MyDataSource");
+ if(dataSource != null){
+ throw new Fault("DataSourceDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("DataSourceDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testJMSConnectionFactoryDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,JMSConnectionFactoryDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testJMSConnectionFactoryDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ //Object connFactory =
+ //nctx.lookup("java:global/JSPMyTestConnectionFactory");
+ logMsg("connFactory"+connFactory);
+ if(connFactory != null){
+ throw new Fault("JMSConnectionFactoryDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("JMSConnectionFactoryDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testJMSDestinationDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,JMSDestinationDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testJMSDestinationDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ //Object destination =
+ //nctx.lookup("java:app/jms/myappTopic");
+ logMsg("destination"+destination);
+ if(destination != null){
+ throw new Fault("JMSDestinationDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("JMSDestinationDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testConnectionFactoryDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,ConnectionFactoryDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testConnectionFactoryDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ logMsg("testFac"+testFac);
+ if(testFac != null){
+ throw new Fault("ConnectionFactoryDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("ConnectionFactoryDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testAdministeredObjectDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,AdministeredObjectDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testAdministeredObjectDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ logMsg("testQueue"+testQueue);
+ if(testFac != null){
+ throw new Fault("AdministeredObjectDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("AdministeredObjectDefinition test failed: " + e, e);
+ }
+ }
+
+ /**
+ * @testName: testPersistenceUnitDefinitionAnnotation
+ *
+ * @assertion_ids: JavaEE:SPEC:323
+ *
+ * @test_Strategy:
+ *
+ * We check that:
+ *
+ * - When the meta-data complete attribute is set to true,PersistenceUnitDefinition annotation should be ignored
+ * - as it is one of the annotations to which metadat-complete is applicable.
+ *
+ */
+ public void testPersistenceUnitDefinitionAnnotation() throws Fault {
+
+ try {
+
+
+ //logMsg("datastore"+dataStore);
+ //logMsg("service"+service);
+ logMsg("emf"+emf);
+ if(emf != null){
+ throw new Fault("PersistenceUnitDefinition test failed!");
+ }
+ }
+ catch (Exception e) {
+ throw new Fault("PersistenceUnitDefinition test failed: " + e, e);
+ }
+ }
+
+
+ public void cleanup() throws Fault {
+ logMsg("[Client] cleanup()");
+ }
+
+
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestBean.java.src b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestBean.java.src
new file mode 100644
index 0000000000..92bdd4ffde
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/files/TestBean.java.src
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2017, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.appclient.deploy.metadatacomplete.testapp;
+
+import jakarta.annotation.ManagedBean;
+import jakarta.annotation.PostConstruct;
+import jakarta.annotation.PreDestroy;
+import jakarta.resource.ConnectionFactoryDefinition;
+import jakarta.resource.AdministeredObjectDefinition;
+
+@ConnectionFactoryDefinition(
+ name = "java:app/jms/TestConnectionFactory",
+ description = "application scoped jms connector resource definition",
+ interfaceName = "jakarta.jms.ConnectionFactory",
+ resourceAdapter="@raname@"
+)
+@AdministeredObjectDefinition(
+ name = "java:app/jms/TestQ",
+ description = "application scoped AdminObjectDefinition",
+ interfaceName = "jakarta.jms.Queue",
+ className = "com.sun.messaging.Queue",
+ resourceAdapter="@raname@")
+@ManagedBean("mybean")
+public class TestBean {
+
+ public TestBean() {
+ System.out.println("TestBean : Constructor");
+ }
+
+ @PostConstruct
+ public void postConstruct() {
+ System.out.println("TestBean : postConstruct");
+ }
+
+ @PreDestroy
+ public void preDestroy() {
+ System.out.println("TestBean : preDestroy");
+ }
+}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/persistence.xml b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/persistence.xml
new file mode 100644
index 0000000000..75b0cd9f91
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/persistence.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+ jdbc/DB_no_tx
+
+
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/sun-application-client.xml b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/sun-application-client.xml
new file mode 100644
index 0000000000..0f6e979542
--- /dev/null
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/metadatacomplete/testapp/sun-application-client.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/casesens/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/casesens/Client.java
index dac9a6cde8..3413ecc395 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/casesens/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/casesens/Client.java
@@ -20,14 +20,32 @@
package com.sun.ts.tests.appclient.deploy.resref.casesens;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
import com.sun.ts.tests.assembly.util.shared.resref.casesens.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private Properties props = null;
@@ -39,6 +57,40 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_resref_casesens_client.jar");
+ ejbClient.addClasses(Client.class, TestCode.class);
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/casesens/appclient_dep_resref_casesens_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/casesens/appclient_dep_resref_casesens_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.resref.casesens.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_resref_casesens.ear");
+ ear.addAsModule(ejbClient);
+ return ear;
+ };
+
/**
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -71,6 +123,7 @@ public void setup(String[] args, Properties props) throws Exception {
* This validates that the resource references were resolved
* correctly.
*/
+ @Test
public void testCaseSensitivity() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/Client.java
index 04508d859c..1b61f4274f 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/Client.java
@@ -20,13 +20,31 @@
package com.sun.ts.tests.appclient.deploy.resref.scope;
+import java.io.IOException;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.tests.assembly.util.shared.resref.scope.QueueCode;
+import com.sun.ts.tests.assembly.util.shared.resref.scope.TopicCode;
+
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
private TSNamingContext nctx = null;
@@ -38,6 +56,65 @@ public static void main(String[] args) {
Status s = theTests.run(args, System.out, System.err);
s.exit();
}
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+ JavaArchive ejbClient1 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_resref_scope_another_client.jar");
+ ejbClient1.addPackages(true, Client.class.getPackage());
+ ejbClient1.addPackages(true, "com.sun.ts.lib.harness");
+ ejbClient1.addClasses(Client.class, QueueCode.class, TopicCode.class);
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "com/sun/ts/tests/appclient/deploy/resref/scope/appclient_dep_resref_scope_another_client.xml");
+ if (appClientUrl != null) {
+ ejbClient1.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/scope/appclient_dep_resref_scope_another_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient1.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient1.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.resref.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ JavaArchive ejbClient2 = ShrinkWrap.create(JavaArchive.class, "appclient_dep_resref_scope_client.jar");
+ ejbClient2.addPackages(true, "com.sun.ts.lib.harness");
+ ejbClient2.addClasses(Client.class, QueueCode.class);
+
+ URL resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/scope/appclient_dep_resref_scope_client.xml");
+
+ if (resURL != null) {
+ ejbClient2.addAsManifestResource(resURL, "ejb-jar.xml");
+ }
+
+ resURL = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/scope/appclient_dep_resref_scope_client.jar.sun-application-client.xml");
+
+ if (resURL != null) {
+ ejbClient2.addAsManifestResource(resURL, "sun-ejb-jar.xml");
+ }
+
+ ejbClient2.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.resref.scope.Client" + "\n"),
+ "MANIFEST.MF");
+
+
+ EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_resref_scope.ear");
+ ear.addAsModule(ejbClient1);
+ ear.addAsModule(ejbClient2);
+ return ear;
+ };
+
/*
* @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
@@ -78,6 +155,7 @@ public void setup(String[] args, Properties props) throws Exception {
* manager connection factories reference.
*
*/
+ @Test
public void testScope() throws Exception {
boolean pass;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/TopicClient.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/TopicClient.java
index 5d7b4d91eb..edc3132a12 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/TopicClient.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/scope/TopicClient.java
@@ -22,8 +22,8 @@
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.tests.assembly.util.shared.resref.scope.TopicCode;
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/Client.java b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/Client.java
index 61a187188d..a16d818881 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/Client.java
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/Client.java
@@ -20,168 +20,248 @@
package com.sun.ts.tests.appclient.deploy.resref.single;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
import java.util.Properties;
-import com.sun.ts.lib.harness.Status;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.container.test.api.OverProtocol;
+import org.jboss.arquillian.container.test.api.TargetsContainer;
+import org.jboss.arquillian.junit5.ArquillianExtension;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
import com.sun.ts.lib.harness.EETest;
+import com.sun.ts.lib.harness.Status;
import com.sun.ts.lib.util.TSNamingContext;
import com.sun.ts.lib.util.TestUtil;
import com.sun.ts.tests.assembly.util.shared.resref.single.appclient.TestCode;
+import tck.arquillian.porting.lib.spi.TestArchiveProcessor;
+
+@ExtendWith(ArquillianExtension.class)
public class Client extends EETest {
- private Properties props = null;
-
- private TSNamingContext nctx = null;
-
- public static void main(String[] args) {
- Client theTests = new Client();
- Status s = theTests.run(args, System.out, System.err);
- s.exit();
- }
-
- /**
- * @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
- * webServerHost; webServerPort;
- */
- public void setup(String[] args, Properties props) throws Exception {
- this.props = props;
-
- try {
- nctx = new TSNamingContext();
- } catch (Exception e) {
- throw new Exception("Setup failed:", e);
- }
- }
-
- /**
- * @testName: testDatasource
- *
- * @assertion_ids: JavaEE:SPEC:10125
- *
- * @test_Strategy: Package an application client declaring a resource
- * reference for a javax.sql.Datasource.
- *
- * Check that: - We can deploy the application. - We can
- * lookup the datasource. - We can use it to open a DB
- * connection.
- */
- public void testDatasource() throws Exception {
- boolean pass;
-
- try {
- pass = TestCode.testDatasource(nctx);
- if (!pass) {
- throw new Exception("Datasource res-ref test failed!");
- }
- } catch (Exception e) {
- TestUtil.logErr("[Client] Caught exception: " + e);
- throw new Exception("Datasource res-ref test failed!", e);
- }
- }
-
- /**
- * @testName: testURL
- *
- * @assertion_ids: JavaEE:SPEC:10125
- *
- * @test_Strategy: Package an application client declaring a resource
- * reference for a java.net.URL.
- *
- * Check that: - We can deploy the application. - We can
- * lookup the URL. - We can use this URL factory to open a
- * connection to a HTML page bundled in the application.
- */
- public void testURL() throws Exception {
- boolean pass;
-
- try {
- pass = TestCode.testURL(nctx);
- if (!pass) {
- throw new Exception("URL res-ref test failed!");
- }
- } catch (Exception e) {
- TestUtil.logErr("[Client] Caught exception: " + e);
- throw new Exception("URL res-ref test failed!", e);
- }
- }
-
- /**
- * @testName: testQueue
- *
- * @assertion_ids: JavaEE:SPEC:10125
- *
- * @test_Strategy: Package an application client declaring a resource
- * reference for a jakarta.jms.QueueConnectionFactory.
- *
- * Check that: - We can deploy the application. - We can
- * lookup the JMS Queue Connection Factory.
- */
- public void testQueue() throws Exception {
- boolean pass;
-
- try {
- pass = TestCode.testQueue(nctx);
- if (!pass) {
- throw new Exception("Queue res-ref test failed!");
- }
- } catch (Exception e) {
- TestUtil.logErr("[Client] Caught exception: " + e);
- throw new Exception("Queue res-ref test failed!", e);
- }
- }
-
- /**
- * @testName: testTopic
- *
- * @assertion_ids: JavaEE:SPEC:10125
- *
- * @test_Strategy: Package an application client declaring a resource
- * reference for a jakarta.jms.TopicConnectionFactory.
- *
- * Check that: - We can deploy the application. - We can
- * lookup the JMS Topic Connection Factory.
- */
- public void testTopic() throws Exception {
- boolean pass;
-
- try {
- pass = TestCode.testTopic(nctx);
- if (!pass) {
- throw new Exception("Topic res-ref test failed!");
- }
- } catch (Exception e) {
- TestUtil.logErr("[Client] Caught exception: " + e);
- throw new Exception("Topic res-ref test failed!", e);
- }
- }
-
- /**
- * @testName: testAll
- *
- * @assertion_ids: JavaEE:SPEC:10125
- *
- * @test_Strategy: Package an application client declaring a resource
- * reference for all the standard resource manager connection
- * factory types.
- *
- * Check that: - We can deploy the application. - We can
- * lookup all the declared resource factories.
- */
- public void testAll() throws Exception {
- try {
- testDatasource();
- testURL();
- testQueue();
- testTopic();
- } catch (Exception e) {
- TestUtil.logErr("[Client] Caught exception: " + e);
- throw new Exception("All res-ref test failed!", e);
- }
- }
-
- public void cleanup() {
- logTrace("[Client] cleanup()");
- }
+ private Properties props = null;
+
+ private TSNamingContext nctx = null;
+
+ public static void main(String[] args) {
+ Client theTests = new Client();
+ Status s = theTests.run(args, System.out, System.err);
+ s.exit();
+ }
+
+
+ @TargetsContainer("tck-javatest")
+ @OverProtocol("javatest")
+ @Deployment(testable = false)
+ public static EnterpriseArchive createDeployment(@ArquillianResource TestArchiveProcessor archiveProcessor)
+ throws IOException {
+
+ EnterpriseArchive ear = null;
+
+ try {
+
+ JavaArchive ejbClient = ShrinkWrap.create(JavaArchive.class, "appclient_dep_resref_single_client.jar");
+ ejbClient.addPackages(true, Client.class.getPackage());
+ ejbClient.addPackages(true, "com.sun.ts.lib.harness");
+ ejbClient.addClasses(TestCode.class, Client.class);
+
+ // The appclient-client descriptor
+ URL appClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.xml");
+ if (appClientUrl != null) {
+ ejbClient.addAsManifestResource(appClientUrl, "application-client.xml");
+ }
+ // The sun appclient-client descriptor
+ URL sunAppClientUrl = Client.class.getResource(
+ "/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.jar.sun-application-client.xml");
+ if (sunAppClientUrl != null) {
+ ejbClient.addAsManifestResource(sunAppClientUrl, "sun-application-client.xml");
+ }
+
+ ejbClient.addAsManifestResource(
+ new StringAsset("Main-Class: " + "com.sun.ts.tests.appclient.deploy.resref.single.Client" + "\n"),
+ "MANIFEST.MF");
+ WebArchive webArchive = ShrinkWrap.create(WebArchive.class, "appclient_dep_resref_single_jsp_web.war");
+ InputStream testJSP = Thread.currentThread().getContextClassLoader()
+ .getResourceAsStream("com/sun/ts/tests/appclient/deploy/resref/single/contentRoot/test.jsp");
+ webArchive.add(new ByteArrayAsset(testJSP), "test.jsp");
+
+ // The jsp descriptor
+ URL jspUrl = Client.class.getResource("appclient_dep_resref_single_jsp_web.xml");
+ if(jspUrl != null) {
+ webArchive.addAsWebInfResource(jspUrl, "web.xml");
+ }
+
+ ear = ShrinkWrap.create(EnterpriseArchive.class, "appclient_dep_resref_single.ear");
+ ear.addAsModule(ejbClient);
+ ear.addAsModule(webArchive);
+ }catch(Exception e) {
+ e.printStackTrace();
+ }
+ return ear;
+ };
+
+ /**
+ * @class.setup_props: org.omg.CORBA.ORBClass; java.naming.factory.initial;
+ * webServerHost; webServerPort;
+ */
+ public void setup(String[] args, Properties props) throws Exception {
+ this.props = props;
+
+ try {
+ nctx = new TSNamingContext();
+ } catch (Exception e) {
+ throw new Exception("Setup failed:", e);
+ }
+ }
+
+ /**
+ * @testName: testDatasource
+ *
+ * @assertion_ids: JavaEE:SPEC:10125
+ *
+ * @test_Strategy: Package an application client declaring a resource reference
+ * for a javax.sql.Datasource.
+ *
+ * Check that: - We can deploy the application. - We can lookup
+ * the datasource. - We can use it to open a DB connection.
+ */
+ @Test
+ public void testDatasource() throws Exception {
+ boolean pass;
+
+ try {
+ pass = TestCode.testDatasource(nctx);
+ if (!pass) {
+ throw new Exception("Datasource res-ref test failed!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestUtil.logErr("[Client] Caught exception: " + e);
+ throw new Exception("Datasource res-ref test failed!", e);
+ }
+ }
+
+ /**
+ * @testName: testURL
+ *
+ * @assertion_ids: JavaEE:SPEC:10125
+ *
+ * @test_Strategy: Package an application client declaring a resource reference
+ * for a java.net.URL.
+ *
+ * Check that: - We can deploy the application. - We can lookup
+ * the URL. - We can use this URL factory to open a connection
+ * to a HTML page bundled in the application.
+ */
+ @Test
+ public void testURL() throws Exception {
+ boolean pass;
+
+ try {
+ pass = TestCode.testURL(nctx);
+ if (!pass) {
+ throw new Exception("URL res-ref test failed!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestUtil.logErr("[Client] Caught exception: " + e);
+ throw new Exception("URL res-ref test failed!", e);
+ }
+ }
+
+ /**
+ * @testName: testQueue
+ *
+ * @assertion_ids: JavaEE:SPEC:10125
+ *
+ * @test_Strategy: Package an application client declaring a resource reference
+ * for a jakarta.jms.QueueConnectionFactory.
+ *
+ * Check that: - We can deploy the application. - We can lookup
+ * the JMS Queue Connection Factory.
+ */
+ @Test
+ public void testQueue() throws Exception {
+ boolean pass;
+
+ try {
+ pass = TestCode.testQueue(nctx);
+ if (!pass) {
+ throw new Exception("Queue res-ref test failed!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestUtil.logErr("[Client] Caught exception: " + e);
+ throw new Exception("Queue res-ref test failed!", e);
+ }
+ }
+
+ /**
+ * @testName: testTopic
+ *
+ * @assertion_ids: JavaEE:SPEC:10125
+ *
+ * @test_Strategy: Package an application client declaring a resource reference
+ * for a jakarta.jms.TopicConnectionFactory.
+ *
+ * Check that: - We can deploy the application. - We can lookup
+ * the JMS Topic Connection Factory.
+ */
+ @Test
+ public void testTopic() throws Exception {
+ boolean pass;
+
+ try {
+ pass = TestCode.testTopic(nctx);
+ if (!pass) {
+ throw new Exception("Topic res-ref test failed!");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestUtil.logErr("[Client] Caught exception: " + e);
+ throw new Exception("Topic res-ref test failed!", e);
+ }
+ }
+
+ /**
+ * @testName: testAll
+ *
+ * @assertion_ids: JavaEE:SPEC:10125
+ *
+ * @test_Strategy: Package an application client declaring a resource reference
+ * for all the standard resource manager connection factory
+ * types.
+ *
+ * Check that: - We can deploy the application. - We can lookup
+ * all the declared resource factories.
+ */
+ @Test
+ public void testAll() throws Exception {
+ try {
+ testDatasource();
+ testURL();
+ testQueue();
+ testTopic();
+ } catch (Exception e) {
+ e.printStackTrace();
+ TestUtil.logErr("[Client] Caught exception: " + e);
+ throw new Exception("All res-ref test failed!", e);
+ }
+ }
+
+ public void cleanup() {
+ logTrace("[Client] cleanup()");
+ }
}
diff --git a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.jar.sun-application-client.xml b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.jar.sun-application-client.xml
index c8cd65d6f1..4ee43dfce1 100644
--- a/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.jar.sun-application-client.xml
+++ b/appclient/src/main/java/com/sun/ts/tests/appclient/deploy/resref/single/appclient_dep_resref_single_client.jar.sun-application-client.xml
@@ -33,7 +33,7 @@
url/URL
- http://webServerHost:webServerPort/appclient_dep_resref_single_jsp_web/test.jsp
+ http://localhost:8080/appclient_dep_resref_single_jsp_web/test.jsp
jms/myQueueConnectionFactory
diff --git a/assembly/src/main/java/com/sun/ts/tests/assembly/util/shared/ejbref/single/TestCode.java b/assembly/src/main/java/com/sun/ts/tests/assembly/util/shared/ejbref/single/TestCode.java
index 7ddc6e4af3..c6da6a23ff 100644
--- a/assembly/src/main/java/com/sun/ts/tests/assembly/util/shared/ejbref/single/TestCode.java
+++ b/assembly/src/main/java/com/sun/ts/tests/assembly/util/shared/ejbref/single/TestCode.java
@@ -62,6 +62,7 @@ public static boolean testStatelessInternal(TSNamingContext nctx,
pass = bean.isTestStatelessInternal();
} catch (Exception e) {
+ e.printStackTrace();
TestUtil.logErr("TestBean: Caught exception: " + e, e);
pass = false;
}
@@ -83,6 +84,7 @@ public static boolean testStatelessExternal(TSNamingContext nctx,
pass = true;
} catch (Exception e) {
+ e.printStackTrace();
TestUtil.logErr(
"TestBean: Exception in " + "testStatelessExternal(): " + e, e);
pass = false;
@@ -101,6 +103,7 @@ public static boolean testStatefulInternal(TSNamingContext nctx,
pass = ssfInternalBeanRef1.isTestStatefulInternal();
} catch (Exception e) {
+ e.printStackTrace();
TestUtil.logErr("Caught exception: " + e, e);
pass = false;
}
@@ -118,6 +121,7 @@ public static boolean testStatefulExternal(TSNamingContext nctx,
StatefulExternal.class);
pass = ssfExternalBeanRef1.isTestStatefulExternal();
} catch (Exception e) {
+ e.printStackTrace();
TestUtil.logErr("TestBean: Got exception: " + e, e);
pass = false;
}
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.jks b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 0000000000..09f5569c47
Binary files /dev/null and b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 0000000000..409e41e673
Binary files /dev/null and b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/cts_cert b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 0000000000..0c3863c852
Binary files /dev/null and b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/ts.jte b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/ts.jte
new file mode 100644
index 0000000000..11ee73d42f
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/ts.jte
@@ -0,0 +1,2462 @@
+#
+# Copyright (c) 2006, 2022 Oracle and/or its affiliates and others.
+# All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v. 2.0, which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# This Source Code may also be made available under the following Secondary
+# Licenses when the conditions for such availability set forth in the
+# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+# version 2 with the GNU Classpath Exception, which is available at
+# https://www.gnu.org/software/classpath/license.html.
+#
+# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+#
+
+#########################################################################
+##
+## JavaTest Environment file for Java EE Compatibility Test Suite
+##
+## Environment specific properties in this file will likely
+## have to be modified prior to running the Java EE CTS.
+## Instructions for modifying these properties are contained in this
+## file.
+##
+## This file is processed by an external tool that helps generate the
+## CTS documents. Therefore this file has a standard format that must
+## be followed. This file is a standard Java Properties file with
+## very specific comment formatting. Users can write property specific
+## comments by using the property name and an ampersand (@). As an
+## example the following comment applies to the foo.bar property:
+## # @foo.bar - This is a comment pertaining to foo.bar
+## # that spans multiple lines.
+## This comment must be preceded by a single hash (#) character and
+## the property name must be prepended with an ampersand (@). The
+## comment can appear anywhere in the ts.jte file. If users have
+## comments that belong in ts.jte but DO NOT pertain to a particular
+## property the user must start the comment with at least 2 hash (#)
+## characters. The following is a valid non-property comment:
+## ## A valid non-property comment
+## ## that spans multiple lines.
+#########################################################################
+
+#########################################################################
+## @jte.version This version denotes the bundle this JTE was
+## originally included with. The version matches the ID
+## in the bundle name. It can be used to identify a
+## mismatched JTE file. This value is filled in during
+## the build process as part of sanitizing the jte file.
+#########################################################################
+jte.version=@JTE_VERSION@
+
+########################################################################
+## Javatest batch mode work directory and report directory, and policy for
+## handling existing work and report directories. These properties affects
+## runclient and report targets, but not gui target.
+## To disable generating test report, unset report.dir, or set it to "none"
+## either here or from command line, as in the following command:
+## ant runclient -Dreport.dir="none"
+##
+# @work.dir The directory used to store Javatest test results and test
+# information.
+# @report.dir The directory used to store Javatest summary reports of
+# test results.
+# @if.existing.work.report.dirs specifies how existing work.dir and
+# report.dir will be handled, and it must be one of the following values:
+# overwrite overwrites all content in work.dir and report.dir
+# backup moves all content in work.dir and report.dir to
+# work.dir_time_day_bak and report.dir_time_day_bak,
+# respectively
+# append reuses and preserves the existing work.dir and report.dir
+# auto lets the build files decide which mode to use
+# (overwrite, backup or append). the value is determined
+# like this:
+# if.existing.work.report.dirs == auto
+# if in CTS workspace
+# if.existing.work.report.dirs = overwrite
+# else we are in a distribution bundle
+# if.existing.work.report.dirs = append
+# end if
+# else
+# if.existing.work.report.dirs = value in this file
+# end if
+########################################################################
+work.dir=/home/jenkins/agent/workspace/jakartaee-tck_master/JTWork
+report.dir=/home/jenkins/agent/workspace/jakartaee-tck_master/JTReport
+if.existing.work.report.dirs=auto
+
+########################################################################
+# @javatest.timeout.factor This property specifies the scale factor used by
+# Javatest to adjust the time JavaTest will wait for a given test to
+# complete before returning failure. For instance if the default test timeout
+# is 5 minutes, this value will be multiplied by 5 minutes to determine
+# the total timeout delay. Note: this value only works with Javatest's
+# batch mode (runclient). When using the Javatest GUI users must change
+# this timeout factor in the GUI. Configure -> Edit Configuration -> View
+# -> choose Standard Values -> select tab Execution -> set Time Factor.
+#
+# Note that javatest.timeout.factor can be a positive real number, such as 1.5
+########################################################################
+javatest.timeout.factor=1
+
+########################################################################
+## Level of Vendor Java EE Implementation
+# @javaee.level The level of Java EE support for the implementation under test.
+# This property serves two purposes: First, it is used to determine
+# whether the impl under test is a Java EE Full profile (full) or Java
+# EE Web profile (web). Either "full" or "web" must be specified in
+# the list values. "full" will tell the harness to deploy ears. "web"
+# will tell the harness to deploy wars.
+# This property is also used to help determine which apis (in the
+# signature tests) are to be tested.
+#
+# NOTE: This property does not determine which CTS tests to run for
+# different profiles and optional technologies. That is done using
+# keywords. Please refer to the keywords functionality in the CTS
+# User's Guide for information on how to use keywords when
+# running CTS tests.
+#
+# Currently, there are 4 settings supported for this property:
+# 1. full: This is the minimal set of signature requirements that vendors
+# must support. Specifying a javaee.level of "full" with nothing
+# else implies there are NO additional technologies existing within
+# the vendors implementation. Again, "full" only covers the
+# REQUIRED Technologies for Jakarta EE 8 Full profile
+# ex/ javaee.level=full
+#
+# 2. web : This is the minimal set of signature requirements that vendors
+# must support for Web Profile. Specifying a javaee.level of "web"
+# with nothing else implies there are NO additional technologies
+# existing within the vendors implementation. Again, "web" only
+# covers REQUIRED Technologies for Jakarta EE 8 Web profile
+# ex/ javaee.level=web
+#
+# 3. full + optional_technologies: This covers REQUIRED Technologies for
+# Java EE 8 Full Profile and any combination of the optional
+# technologies.
+# Known optional technologies for CTS8 full profile include:
+# "jaxr".
+# ex 1/ javaee.level=full jaxr
+# ex 2/ javaee.level=full jaxr
+# ex 3/ javaee.level=full
+# ex 4/ etc...
+#
+# 4. web + optional_technologies: This covers REQUIRED Technologies for
+# Java EE 8 Web Profile and any combination of optional
+# technologies.
+# Known optional technologies for Web Profile include:
+# "jaxr", "connector", "jaxb",
+# "jms", "javamail", "jacc", "jaspic", "wsmd"
+# ex 1/ javaee.level=web connector jms jacc
+# ex 2/ javaee.level=web jaspic
+# ex 3/ javaee.level=web jms connector
+# ex 4/ etc...
+#
+# Note 1: spaces separate multiple entries
+#
+# Note 2: optional technologies for full/javaee profile are listed
+# in the Java EE 8 spec, in Table EE.6-1. Currently, the only
+# optional technologies for full profile are: "jaxr" (JAXR 1.0)
+#
+# Note 3: The list of optional technologies for Web Profile includes any OPTIONAL
+# technology explicitly called out in the Web Profile spec (if applicable)
+# as well as any additional technology which is listed within
+# JavaEE Profile 8 spec *but* not included/Required in the
+# Web Profile spec.
+#
+# Note 4: Two different examples of javaee.level are provided immediately
+# following this comment block. One is for running CTS8 against
+# the EE 8 (full) Profile RI and the other is for running CTS8
+# against the EE 8 Web Profile RI. Notice that optional technologies
+# are supplied here since the RI for CTS8 contains those optional
+# technologies in it. It's very possible vendors may provider different
+# optional technologies in their implementations. If so, the list of
+# optional technologies will need to be adjusted here to suite each
+# vendors implementation.
+#
+# Note 5: For EE 8 (RI) Web Profile, you can uncomment and use the line
+# below which starts with: javaee.level=web ....
+#
+# IMPORTANT: when testing Web Profile - be sure to adjust the
+# "optional.tech.packages.to.ignore" property accordingly.
+# (see comments for optional.tech.packages.to.ignore below)
+#
+###############################################################################
+#javaee.level=web connector jaxws jaxb javamail jacc jaspic wsmd
+javaee.level=full
+
+
+########################################################################
+## Settings for Vendor Java EE Implementation
+# @javaee.home The location of the vendor's Java EE platform
+# implementation.
+# @orb.host Hostname of the machine running the vendor's
+# implementation.
+# @orb.port The port number the vendor implementation is listening
+# to for service requests.
+########################################################################
+javaee.home=
+orb.host=localhost
+orb.port=3699
+
+########################################################################
+## JVMOPTS_RUNTESTCOMMAND is a marker that implementations may replace with
+# the JVM options to pass when starting JVMs for running tests.
+# This is intended to be used for implementations convencience.
+# See file docker/run_jakartaeetck.sh for an example.
+########################################################################
+
+########################################################################
+## Settings for Sun RI Java EE Implementation
+# @javaee.home.ri The location of the RI.
+# @orb.host Hostname of the machine running the RI.
+# @orb.port The port number the RI is listening to for service
+# requests.
+########################################################################
+javaee.home.ri=
+orb.host.ri=localhost
+orb.port.ri=3700
+
+###################################################################
+###################################################################
+###################################################################
+## RI SPECIFIC PROPERTIES LIVE BELOW
+###################################################################
+###################################################################
+###################################################################
+
+###############################################################
+# @ts.display -- location to display CTS output on Unix
+###############################################################
+ts.display=:0.0
+
+###########################################################################
+# @endorsed.dirs using Java SE 6 or above and you provide newer versions
+# of technologies than those contained in Java SE 6, verify
+# that the property endorsed.dirs is set to the location of
+# the VI api jars for those technologies you wish to
+# override. For example, Java SE 6 contains an
+# implementation of JAXWS 2.0 which will conflict with
+# JAXWS 2.1, therefore this property would need to be set
+# so that JAXWS 2.1 would be used during the building of
+# tests and during test execution.
+#
+# @endorsed.dirs.ri If using Java SE 6 or above and you provide newer versions
+# of technologies than those contained in Java SE 6, verify
+# that the property endorsed.dirs is set to the location of
+# the RI api jars for those technologies you wish to
+# override. For example, Java SE 6 contains an
+# implementation of JAXWS 2.0 which will conflict with
+# JAXWS 2.1, therefore this property would need to be set
+# so that JAXWS 2.1 would be used during the building of
+# tests and during test execution.
+###########################################################################
+endorsed.dirs=${javaee.home}/modules/endorsed
+endorsed.dirs.ri=${javaee.home.ri}/modules/endorsed
+
+###############################################################
+## Config params needed for Java EE RI asadmin
+## You must change these values as needed
+##
+# @ri.admin.user -- The Java EE RI asadmin user id
+# @ri.admin.passwd -- The Java EE RI asadmin user password
+# @ri.admin.host -- The Java EE RI host
+# @ri.admin.port -- The Java EE RI port
+# @ri.admin -- The Java EE RI admin command
+# @ri.server -- The Java EE RI server instance being used
+# @ri.domain.dir -- Points to where your domains are installed.
+# @ri.domain.name -- The Java EE RI domain being used
+# @ri.domain -- The Java EE RI domain path being used
+# @ri.asenv.loc -- location of asenv.conf or asenv.bat
+# @ri.imqbin.loc -- location of the IMQ bin directory
+# @ri.lib -- Library directory for other Java EE RI
+# jars
+# @ri.imq.share.lib -- Shared library directory for imq
+# @ri.jvm.options -- Java options needed by the Java EE RI
+# note, the second option is not needed
+# but is required to work around asadmin
+# command line parsing issues. The
+# xxxlogin and xxxpassword are used
+# to set known server side creds for use
+# with connector tests.
+# @ri.applicationRoot-- Location of application repository
+# Only needed when running on windows
+# @ri.and.vi.run.on.same.host - set to true if interop tests are run
+# with both RI and VI on same machine. set to
+# false if they are run on different machines.
+# This is used to work around an orb issue
+# specific to running VI and RI on same box.
+#
+# @ri.orb.iiop.orbserverid - This is used to set a similarly
+# named jvm option in the RI. It is only used
+# when we are running interop where remote EJBs
+# try to access target EJB's on the same host with
+# zero port configuration for ssl.
+# This only gets used when ri.and.vi.run.on.same.host=true.
+# The value is to be an ORB server id.
+###############################################################
+ri.admin.user=admin
+ri.admin.passwd=
+ri.admin.host=${orb.host.ri}
+ri.admin.port=4848
+ri.admin=${javaee.home.ri}/bin/asadmin
+ri.server=server
+ri.domain.dir=${javaee.home.ri}/domains
+ri.domain.name=domain1
+ri.domain=${ri.domain.dir}/${ri.domain.name}
+ri.asenv.loc=${javaee.home.ri}/config
+ri.imqbin.loc=${javaee.home.ri}/../mq/bin
+ri.lib=${javaee.home.ri}/lib
+ri.log.file.location=${ri.domain}/logs
+ri.modules=${javaee.home.ri}/modules
+ri.imq.share.lib=${javaee.home.ri}/../mq/lib
+ri.jvm.options=-Doracle.jdbc.J2EE13Compliant=true:-Xmx4096m:-Dj2eelogin.name=${user}:-Dj2eelogin.password=${password}:-Deislogin.name=${user1}:-Deislogin.password=${password1}:-Dtest.ejb.stateful.timeout.wait.seconds=${test.ejb.stateful.timeout.wait.seconds}:-DwebServerPort.2=${webServerPort.2}:-DwebServerHost.2=${webServerHost.2}:-Dcsiv2.save.log.file=${harness.log.traceflag}:-Djavax.xml.accessExternalStylesheet=all:-Djavax.xml.accessExternalDTD=file,http
+ri.jvm.options.remove=-Xmx512m:${ri.jvm.options}
+ri.java.endorsed.dirs=${endorsed.dirs.ri}
+ri.applicationRoot=c:
+ri.and.vi.run.on.same.host=true
+ri.orb.iiop.orbserverid=200
+
+###############################################################
+## Config params needed for Java EE VI asadmin
+## You must change these values as needed
+##
+# @vi.admin.user -- The Java EE VI asadmin user id
+# @vi.admin.passwd -- The Java EE VI asadmin user password
+# @vi.admin.host -- The Java EE VI host
+# @vi.admin.port -- The Java EE VI port
+# @vi.admin -- The Java EE VI admin command
+# @vi.server -- The Java EE VI server instance being used
+# @vi.domain.dir -- Points to where your domains are installed.
+# @vi.domain.name -- The Java EE VI domain being used
+# @vi.domain -- The Java EE VI domain path being used
+# @vi.asenv.loc -- location of asenv.conf or asenv.bat
+# @vi.imqbin.loc -- location of the IMQ bin directory
+# @vi.lib -- Library directory for other Java EE VI
+# jars
+# @vi.imq.share.lib -- Shared library directory for imq
+# @vi.jvm.options -- Java options needed by the Java EE VI
+# note, the second option is not needed
+# but is required to work around asadmin
+# command line parsing issues. The
+# xxxlogin and xxxpassword are used
+# to set known server side creds for use
+# with connector tests.
+# @vi.applicationRoot-- Location of application repository
+# Only needed when running on windows
+###############################################################
+vi.admin.user=admin
+vi.admin.passwd=
+vi.admin.host=${orb.host}
+vi.admin.port=4848
+vi.admin=${javaee.home}/bin/asadmin
+vi.server=server
+vi.domain.dir=${javaee.home}/domains
+vi.domain.name=domain1
+vi.domain=${vi.domain.dir}/${vi.domain.name}
+vi.asenv.loc=${javaee.home}/config
+vi.imqbin.loc=${javaee.home}/../mq/bin
+vi.lib=${javaee.home}/server/lib
+vi.log.file.location=${vi.domain}/logs
+vi.modules=${javaee.home}/modules
+vi.imq.share.lib=${javaee.home}/../mq/lib
+vi.jvm.options=-Doracle.jdbc.J2EE13Compliant=true:-Xmx4096m:-Dj2eelogin.name=${user}:-Dj2eelogin.password=${password}:-Deislogin.name=${user1}:-Deislogin.password=${password1}:-Dtest.ejb.stateful.timeout.wait.seconds=${test.ejb.stateful.timeout.wait.seconds}:-DwebServerPort.2=${webServerPort.2}:-DwebServerHost.2=${webServerHost.2}:-Dcsiv2.save.log.file=${harness.log.traceflag}:-Djavax.xml.accessExternalStylesheet=all:-Djavax.xml.accessExternalDTD=file,http
+vi.jvm.options.remove=-Xmx512m:${vi.jvm.options}
+vi.java.endorsed.dirs=${endorsed.dirs}
+vi.applicationRoot=c:
+
+###############################################################
+## Config params needed for Sun Java System Application Server
+## (SJSAS) asadmin. You must change these values as needed
+## only if you are testing against SJSAS app server
+## (javaee.home is pointing to SJSAS).
+#
+# @s1as.admin.user -- The SJSAS asadmin user id
+# @s1as.admin.passwd -- The SJSAS asadmin user password
+# @s1as.admin.host -- The SJSAS host
+# @s1as.admin.port -- The SJSAS port
+# @s1as.admin -- The SJSAS admin command
+# @s1as.server -- The SJSAS server instance being used
+# @s1as.domain.dir -- Points to where your domains are installed.
+# @s1as.domain.name -- The SJSAS domain being used
+# @s1as.domain -- The SJSAS domain path being used
+# @s1as.asenv.loc -- location of asenv.conf or asenv.bat
+# @s1as.imqbin.loc -- location of the IMQ bin directory
+# @s1as.lib -- Library directory for other Java EE RI
+# jars
+# @s1as.imq.share.lib -- Shared library directory for imq
+# @s1as.jvm.options -- Java options needed by SJSAS
+# The xxxlogin and xxxpassword are used
+# to set known server side creds for use
+# with connector tests.
+# @s1as.applicationRoot-- Location of application repository
+# Only needed when running on windows
+###############################################################
+s1as.admin.user=admin
+s1as.admin.passwd=
+s1as.admin.host=${orb.host}
+s1as.admin.port=4848
+s1as.admin=${javaee.home}/bin/asadmin
+s1as.server=server
+s1as.domain.dir=${javaee.home}/domains
+s1as.domain.name=domain1
+s1as.domain=${s1as.domain.dir}/${s1as.domain.name}
+s1as.asenv.loc=${javaee.home}/config
+s1as.imqbin.loc=${javaee.home}/../mq/bin
+s1as.lib=${javaee.home}/lib
+s1as.modules=${javaee.home}/modules
+s1as.imq.share.lib=${javaee.home}/../mq/lib
+s1as.jvm.options=-Doracle.jdbc.J2EE13Compliant=true:-Xmx4096m:-Dj2eelogin.name=${user}:-Dj2eelogin.password=${password}:-Deislogin.name=${user1}:-Deislogin.password=${password1}:-Dtest.ejb.stateful.timeout.wait.seconds=${test.ejb.stateful.timeout.wait.seconds}:-DwebServerPort.2=${webServerPort.2}:-DwebServerHost.2=${webServerHost.2}
+s1as.jvm.options.remove=-Xmx512m:${s1as.jvm.options}
+s1as.java.endorsed.dirs=${endorsed.dirs}
+s1as.applicationRoot=c:
+
+###############################################################
+# @sjsas.das.orb.port -- ORB port number for the DAS
+# @sjsas.das.orb.host -- ORB host name for the DAS
+# @sjsas.das.webServerPort -- HTTP listener port for the DAS
+# @sjsas.das.securedWebServicePort -- HTTPS listener port for the DAS
+# @sjsas.nodeagent.name -- Name of node agent used by
+# the remote instance.
+# @sjsas.nodeinstance.name -- Name of the remote instance
+# @sjsas.master.password -- Used to create a node agent only
+# applicable to EE. Defaults to changeit. This
+# can be changed at EE install time.
+# @sjsas.instance.config.dir -- config directory used by the intsance
+# being tested.
+# For PE/DAS = config
+# For remote instance = config
+# @sjsas.cts.timer.resource -- Backend to use when we are using java2db with
+# the CMP tests for the jdbc/DBTimer resource
+# @sjsas.cmp.backend -- Backend to use when we are using java2db with
+# the CMP tests
+# @sjsas.node.agent.dir.name -- The name of the node agent directory to use.
+# This value will be used on Windows only and
+# ignored on non-Windows platforms. The default
+# is 'n' meaning the create-node-agent command
+# will pass the --agentdir argument with a value
+# of ${s1as.applicationRoot}\${sjsas.node.agent.dir.name}.
+# @sjsas.env.type -- CTS test configuration. Possible values are:
+# das (for PE or DAS)
+# remote (for remote intance)
+# cluster (for cluster config not yet supported)
+# @s1as.targets -- Instance(s) to deploy tests
+# Supports multiple instances, For example:
+# s1as.targets=server server-1
+###############################################################
+sjsas.das.orb.port=3700
+sjsas.das.orb.host=${orb.host}
+sjsas.das.webServerPort=8000
+sjsas.das.securedWebServicePort=1043
+sjsas.nodeagent.name=node-agent-1
+sjsas.nodeinstance.name=server-1
+sjsas.master.password=changeit
+sjsas.instance.config.dir=config
+sjsas.cts.timer.resource=derby
+sjsas.cmp.backend=derby
+sjsas.node.agent.dir.name=n
+
+sjsas.env.type=das
+#sjsas.env.type=remote
+
+s1as.targets=${s1as.server}
+#s1as.targets=${sjsas.nodeinstance.name}
+
+###############################################################
+# @s1as.pe.jmsServer -- name of the JMS server the RI/PE
+# @s1as.se.jmsServer -- name of the JMS server for SE/EE
+###############################################################
+s1as.pe.jmsServer=imqbroker
+s1as.se.jmsServer=imqbroker
+#s1as.se.jmsServer=${s1as.domain.name}_${s1as.server}
+
+###############################################################
+# @extension.dir - The extension directory for the app
+# server under test. This does not apply
+# to the RI.
+#
+# Note: App server vendors will need to set this to their
+# app server's extension directory. The CTS config.vi
+# target will copy the CTS library jars to this location.
+###############################################################
+extension.dir=${s1as.domain}/lib
+
+###############################################################
+# @instance.listenerName - Default value for the iiop listener
+# for your instance. Users will
+# most likely not need to change this.
+###############################################################
+instance.listenerName=orb-listener-1
+
+###############################################################
+# @tz - your local timezone. For valid values, consult your
+# Operating System documentation.
+###############################################################
+tz=US/Eastern
+
+###############################################################
+# @jdbc.lib.class.path - This property is used by the
+# database.classes properties to point to
+# where the JDBC drivers live.
+###############################################################
+jdbc.lib.class.path=${ts.home}/internal/lib
+
+###############################################################
+## The following section is for CTS Database configuration
+## For each database that you will test, configure the following:
+## Here is an example using derby: Users will need to
+## replace derby with the appropriate DB name.
+# @derby.dbName -- Database Name
+# @derby.server -- Database Server
+# @derby.port -- Database Server port
+# @derby.dml.file -- DML file used for CTS test cases
+# @derby.user -- User Id configured
+# @derby.passwd -- User password configured
+# @derby.url -- URL to the cts database
+# @derby.driver -- DriverManager driver
+# @derby.classes -- CLASSPATH to JDBC driver classes
+# @derby.poolName -- Name of pool configured in the Java EE
+# RI (do not change!)
+# @derby.dataSource -- DataSource driver
+# @derby.properties -- Any additional JDBC driver required
+# properties
+# @derby.startup.delay-- delay to wait for DB to start
+
+###############################################################
+
+##
+## Info for Cloudscape 10/Derby
+##
+derby.dbName=derbyDB
+derby.server=${orb.host}
+derby.port=1527
+derby.port.ri=1527
+derby.dml.file=derby/derby.dml.sql
+derby.user=cts1
+derby.passwd=cts1
+derby.url=jdbc:derby://${derby.server}:${derby.port}/${derby.dbName};create=true
+derby.driver=org.apache.derby.jdbc.ClientDriver
+derby.home=${javaee.home}/../javadb
+derby.system.home=${derby.home}/databases
+derby.classpath=${ts.home}/lib/dbprocedures.jar${pathsep}${derby.home}/lib/derbynet.jar${pathsep}${derby.home}/lib/derbyshared.jar${pathsep}${derby.home}/lib/derbytools.jar
+derby.classes=${derby.home}/lib/derbyclient.jar${pathsep}${derby.home}/lib/derbyshared.jar${pathsep}${derby.home}/lib/derbytools.jar
+derby.poolName=cts-derby-pool
+derby.dataSource=org.apache.derby.jdbc.ClientDataSource
+derby.properties=DatabaseName\=\"${derby.dbName}\":user\=${derby.user}:password\=${derby.passwd}:serverName\=${derby.server}:portNumber=${derby.port}
+derby.startup.delay=5
+
+#
+# Cloudscape 10 /Derby embedded driver
+#
+derbyEmbedded.dbName=/tmp/DerbyDB
+derbyEmbedded.server=${orb.host}
+derbyEmbedded.port=1527
+derbyEmbedded.dml.file=derby/derby.dml.sql
+derbyEmbedded.user=cts1
+derbyEmbedded.passwd=cts1
+derbyEmbedded.url=jdbc:derby:${derbyEmbedded.dbName};create=true
+derbyEmbedded.driver=org.apache.derby.jdbc.EmbeddedDriver
+derbyEmbedded.classes=${javaee.home}/../javadb/lib/derby.jar${pathsep}${javaee.home}/../javadb/lib/derbyshared.jar${pathsep}${javaee.home}/../javadb/lib/derbytools.jar${pathsep}${ts.home}/lib/dbprocedures.jar
+derbyEmbedded.poolName=cts-derbyEmbedded-pool
+derbyEmbedded.dataSource=org.apache.derby.jdbc.EmbeddedDataSource
+derbyEmbedded.pool.url='jdbc\\:derby\\:${derbyEmbedded.dbName}\\;create=true'
+derbyEmbedded.properties=DatabaseName\=\"${derbyEmbedded.dbName}\":user\=${derbyEmbedded.user}:password\=${derbyEmbedded.passwd}
+
+
+##
+## Info for DB2 (8.1 type 2 driver)
+##
+db2.dbName=cts
+db2.server=${orb.host}
+db2.port=50000
+db2.dml.file=db2/db2.dml.sql
+db2.user=db2inst1
+db2.passwd=ibmdb2
+db2.url=jdbc:db2:${db2.dbName}
+db2.driver=com.ibm.db2.jcc.DB2Driver
+db2.classes=${jdbc.lib.class.path}/db2jcc.jar:${jdbc.lib.class.path}/db2jcc_license_cu.jar:${jdbc.lib.class.path}/db2java.zip
+db2.poolName=cts-db2-pool
+db2.dataSource=com.ibm.db2.jcc.DB2SimpleDataSource
+db2.properties=user=${db2.user}:password=${db2.passwd}:databaseName=${db2.dbName}:driverType=2:deferPrepares\=false
+
+##
+## Info for db2 using the DataDirect driver
+##
+db2DD.dbName=cts
+db2DD.server=${orb.host}
+db2DD.port=50000
+db2DD.dml.file=db2/db2.dml.sql
+db2DD.user=db2inst1
+db2DD.passwd=ibmdb2
+db2DD.url=jdbc:datadirect:db2://${db2DD.server}:${db2DD.port};DatabaseName\=${db2DD.dbName}
+db2DD.driver=com.ddtek.jdbc.db2.DB2Driver
+db2DD.classes=${jdbc.lib.class.path}/util.jar${pathsep}${jdbc.lib.class.path}/db2.jar${pathsep}${jdbc.lib.class.path}/base.jar
+db2DD.poolName=cts-db2-DataDirect-pool
+db2DD.dataSource=com.ddtek.jdbcx.db2.DB2DataSource
+db2DD.properties=user\=${db2DD.user}:password\=${db2DD.passwd}:ServerName\=${db2DD.server}:portNumber\=${db2DD.port}:databasename\=${db2DD.dbName}
+
+##
+## Info for db2 using the Sun driver
+##
+db2Sun.dbName=cts
+db2Sun.server=${orb.host}
+db2Sun.port=50000
+db2Sun.dml.file=db2/db2.dml.sql
+db2Sun.user=db2inst1
+db2Sun.passwd=ibmdb2
+db2Sun.url=jdbc:sun:db2://${db2Sun.server}:${db2Sun.port};DatabaseName\=${db2Sun.dbName}
+db2Sun.driver=com.sun.sql.jdbc.db2.DB2Driver
+db2Sun.classes=${jdbc.lib.class.path}/smdb2.jar
+db2Sun.poolName=cts-db2-Sun-pool
+db2Sun.dataSource=com.sun.sql.jdbcx.db2.DB2DataSource
+db2Sun.properties=user\=${db2Sun.user}:password\=${db2Sun.passwd}:ServerName\=${db2Sun.server}:portNumber\=${db2Sun.port}:databasename\=${db2Sun.dbName}
+
+##
+## Info for Microsoft SQL Server
+##
+mssqlserver.dbName=cts
+mssqlserver.server=${orb.host}
+mssqlserver.port=1433
+mssqlserver.dml.file=mssqlserver/mssqlserver.dml.sql
+mssqlserver.user=guest
+mssqlserver.passwd=guest
+mssqlserver.url=jdbc:microsoft:sqlserver://${mssqlserver.server}:${mssqlserver.port}
+mssqlserver.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
+mssqlserver.classes=${jdbc.lib.class.path}/sqljdbc.jar
+mssqlserver.poolName=cts-mssqlserver-pool
+mssqlserver.dataSource=com.microsoft.sqlserver.jdbc.SQLServerDataSource
+mssqlserver.properties=user\=${mssqlserver.user}:password\=${mssqlserver.passwd}:ServerName\=${mssqlserver.server}:portNumber\=${mssqlserver.port}
+
+
+##
+## Info for Microsoft SQL Server using the DataDirect driver
+##
+mssqlserverDD.dbName=cts
+mssqlserverDD.server=${orb.host}
+mssqlserverDD.port=1433
+mssqlserverDD.dml.file=mssqlserver/mssqlserver.dml.sql
+mssqlserverDD.user=guest
+mssqlserverDD.passwd=guest
+mssqlserverDD.url=jdbc:datadirect:sqlserver://${mssqlserverDD.server}:${mssqlserverDD.port}
+mssqlserverDD.driver=com.ddtek.jdbc.sqlserver.SQLServerDriver
+mssqlserverDD.classes=${jdbc.lib.class.path}/util.jar${pathsep}${jdbc.lib.class.path}/sqlserver.jar${pathsep}${jdbc.lib.class.path}/base.jar
+mssqlserverDD.poolName=cts-mssqlserver-DataDirect-pool
+mssqlserverDD.dataSource=com.ddtek.jdbcx.sqlserver.SQLServerDataSource
+mssqlserverDD.properties=user\=${mssqlserverDD.user}:password\=${mssqlserverDD.passwd}:ServerName\=${mssqlserverDD.server}:portNumber\=${mssqlserverDD.port}:selectMethod\=cursor
+
+##
+## Info for Microsoft SQL Server using the Inet driver
+##
+mssqlserverInet.dbName=cts1
+mssqlserverInet.server=${orb.host}
+mssqlserverInet.port=1433
+mssqlserverInet.dml.file=mssqlserver/mssqlserver.dml.sql
+mssqlserverInet.user=cts1
+mssqlserverInet.passwd=cts1
+mssqlserverInet.url=jdbc:inetdae7:${mssqlserverInet.server}:${mssqlserverInet.port}
+mssqlserverInet.driver=com.inet.tds.TdsDriver
+mssqlserverInet.classes=${jdbc.lib.class.path}/Merlia.jar
+mssqlserverInet.poolName=cts-mssqlserver-Inet-pool
+mssqlserverInet.dataSource=com.inet.tds.TdsDataSource
+mssqlserverInet.properties=user\=${mssqlserverInet.user}:password\=${mssqlserverInet.passwd}:ServerName\=${mssqlserverInet.server}:port\=${mssqlserverInet.port}
+
+##
+## Info for Microsoft SQL Server using the Sun driver
+##
+mssqlserverSun.dbName=cts
+mssqlserverSun.server=${orb.host}
+mssqlserverSun.port=1433
+mssqlserverSun.dml.file=mssqlserver/mssqlserver.dml.sql
+mssqlserverSun.user=guest
+mssqlserverSun.passwd=guest
+mssqlserverSun.url=jdbc:sun:sqlserver://${mssqlserverSun.server}:${mssqlserverSun.port}
+mssqlserverSun.driver=com.sun.sql.jdbc.sqlserver.SQLServerDriver
+mssqlserverSun.classes=${jdbc.lib.class.path}/smsqlserver.jar
+mssqlserverSun.poolName=cts-mssqlserver-Sun-pool
+mssqlserverSun.dataSource=com.sun.sql.jdbcx.sqlserver.SQLServerDataSource
+mssqlserverSun.properties=user\=${mssqlserverSun.user}:password\=${mssqlserverSun.passwd}:ServerName\=${mssqlserverSun.server}:portNumber\=${mssqlserverSun.port}:selectMethod\=cursor
+
+##
+## Info for MYSQL driver
+##
+mysql.dbName=cts
+mysql.server=${orb.host}
+mysql.port=3306
+mysql.dml.file=mysql/mysql.dml.sql
+mysql.user=cts1
+mysql.passwd=cts1
+mysql.url=jdbc:mysql://${mysql.server}:${mysql.port}/${mysql.dbName}
+mysql.driver=com.mysql.jdbc.Driver
+mysql.classes=${jdbc.lib.class.path}/mysql-connector-java-5.1.42-bin.jar
+mysql.poolName=cts-mysql-pool
+mysql.dataSource=com.mysql.jdbc.jdbc2.optional.MysqlDataSource
+mysql.properties=user\=${mysql.user}:password\=${mysql.passwd}:DatabaseName\=${mysql.dbName}\:ServerName\=${mysql.server}\:port\=${mysql.port}\:jdbcCompliantTruncation\=false
+
+##
+## Info for Oracle DataDirect
+##
+oracleDD.dbName=ora817
+oracleDD.server=${orb.host}
+oracleDD.port=1521
+oracleDD.dml.file=oracle/oracle.dml.sql
+oracleDD.user=la
+oracleDD.passwd=la
+oracleDD.url=jdbc:datadirect:oracle://${oracleDD.server};SID=${oracleDD.dbName}
+oracleDD.driver=com.ddtek.jdbc.oracle.OracleDriver
+oracleDD.classes=${jdbc.lib.class.path}/base.jar${pathsep}${jdbc.lib.class.path}/oracle.jar${pathsep}${jdbc.lib.class.path}/util.jar
+oracleDD.poolName=cts-oracle-DataDirect-pool
+oracleDD.dataSource=com.ddtek.jdbcx.oracle.OracleDataSource
+oracleDD.properties=user\=${oracleDD.user}:password\=${oracleDD.passwd}:SID\="${oracleDD.dbName}":serverName=${oracleDD.server}:portNumber=${oracleDD.port}
+
+##
+## Info for Oracle thin
+##
+oracle.dbName=cts
+oracle.server=${orb.host}
+oracle.port=1521
+oracle.dml.file=oracle/oracle.dml.sql
+oracle.user=cts1
+oracle.passwd=cts1
+oracle.url=jdbc:oracle:thin:@${oracle.server}:${oracle.port}:${oracle.dbName}
+oracle.driver=oracle.jdbc.OracleDriver
+oracle.classes=${jdbc.lib.class.path}/ojdbc8.jar
+oracle.poolName=cts-oracle-pool
+oracle.dataSource=oracle.jdbc.pool.OracleDataSource
+oracle.pool.url=jdbc\\:oracle\\:thin\\:@${oracle.server}\\:${oracle.port}\\:${oracle.dbName}
+oracle.properties=user\=${oracle.user}:password\=${oracle.passwd}:URL\=\"${oracle.pool.url}\"
+
+#
+# Info for Oracle oci driver
+#
+oracleOCI.dbName=cts1
+oracleOCI.server=${orb.host}
+oracleOCI.port=1521
+oracleOCI.dml.file=oracle/oracle.dml.sql
+oracleOCI.user=cts1
+oracleOCI.passwd=cts1
+oracleOCI.url=jdbc:oracle:oci:@${oracleOCI.dbName}
+oracleOCI.driver=oracle.jdbc.OracleDriver
+oracleOCI.classes=${jdbc.lib.class.path}/ojdbc8.jar
+oracleOCI.poolName=cts-oracle-oci-pool
+oracleOCI.dataSource=oracle.jdbc.pool.OracleDataSource
+oracleOCI.pool.url=jdbc\\:oracle\\:oci\\:@${oracleOCI.dbName}
+oracleOCI.properties=user\=${oracleOCI.user}:password\=${oracleOCI.passwd}:URL\=\"${oracleOCI.pool.url}\"
+
+##
+## Info for Oracle inet
+##
+oracleInet.dbName=cts1
+oracleInet.server=${orb.host}
+oracleInet.port=1521
+oracleInet.dml.file=oracle/oracle.dml.sql
+oracleInet.user=cts1
+oracleInet.passwd=cts1
+oracleInet.url=jdbc:inetora:${oracleInet.server}:${oracleInet.port}:${oracleInet.dbName}
+oracleInet.driver=com.inet.ora.OraDriver
+oracleInet.classes=${jdbc.lib.class.path}/Oranxo.jar
+oracleInet.poolName=cts-oracle-Inet-pool
+oracleInet.dataSource=com.inet.ora.OraDataSource
+oracleInet.properties=user\=${oracleInet.user}:password\=${oracleInet.passwd}:serviceName\="${oracleInet.dbName}":serverName=${oracleInet.server}:port=${oracleInet.port}
+
+##
+## Info for Oracle Sun
+##
+oracleSun.dbName=ora817
+oracleSun.server=${orb.host}
+oracleSun.port=1521
+oracleSun.dml.file=oracle/oracle.dml.sql
+oracleSun.user=la
+oracleSun.passwd=la
+oracleSun.url=jdbc:sun:oracle://${oracleSun.server};SID=${oracleSun.dbName}
+oracleSun.driver=com.sun.sql.jdbc.oracle.OracleDriver
+oracleSun.classes=${jdbc.lib.class.path}/smoracle.jar
+oracleSun.poolName=cts-oracle-Sun-pool
+oracleSun.dataSource=com.sun.sql.jdbcx.oracle.OracleDataSource
+oracleSun.properties=user\=${oracleSun.user}:password\=${oracleSun.passwd}:SID\="${oracleSun.dbName}":serverName=${oracleSun.server}:portNumber=${oracleSun.port}
+
+##
+## Info for Pointbase
+##
+pointbase.dbName=cts
+pointbase.server=${orb.host}
+pointbase.port=9092
+pointbase.dml.file=pointbase/pointbase.dml.sql
+pointbase.user=PBPUBLIC
+pointbase.passwd=PBPUBLIC
+pointbase.url=jdbc:pointbase:server://${pointbase.server}:${pointbase.port}/${pointbase.dbName},new
+pointbase.driver=com.pointbase.jdbc.jdbcUniversalDriver
+pointbase.classes=${jdbc.lib.class.path}/pbclient.jar${pathsep}${jdbc.lib.class.path}/pbembedded.jar
+pointbase.poolName=cts-pointbase-pool
+pointbase.dataSource=com.pointbase.jdbc.jdbcDataSource
+pointbase.pool.url="jdbc\\:pointbase\\:server\\:\/\/${pointbase.server}\\:${pointbase.port}\/${pointbase.dbName},new"
+pointbase.properties=user\=${pointbase.user}:password\=${pointbase.passwd}:DatabaseName\=\"${pointbase.pool.url}\"
+
+##
+## Info for Postgres
+##
+postgresql.dbName=CTS5
+postgresql.server=${orb.host}
+postgresql.port=5432
+postgresql.dml.file=postgresql/postgresql.dml.sql
+postgresql.user=cts1
+postgresql.passwd=cts1
+postgresql.url=jdbc:postgresql://${postgresql.server}:${postgresql.port}/${postgresql.dbName}
+postgresql.driver=org.postgresql.Driver
+postgresql.classes=${jdbc.lib.class.path}/postgresql-8.4-701.jdbc4.jar
+postgresql.poolName=cts-postgresql-pool
+postgresql.pool.url="jdbc\\:postgresql\\:server\\:\/\/${postgresql.server}\\:${postgresql.port}\/${postgresql.dbName},new"
+postgresql.dataSource=org.postgresql.ds.PGSimpleDataSource
+postgresql.properties=user\=${postgresql.user}:password\=${postgresql.passwd}:DatabaseName\=${postgresql.dbName}\:ServerName\=${postgresql.server}\:port\=${postgresql.port}
+
+##
+## Info for Sybase (jConnect Driver)
+##
+sybase.dbName=cts2
+sybase.server=${orb.host}
+sybase.port=4100
+sybase.dml.file=sybase/sybase.dml.sql
+sybase.user=cts1
+sybase.passwd=cts1
+sybase.url=jdbc:sybase:Tds:${sybase.server}:${sybase.port}/${sybase.dbName}
+sybase.driver=com.sybase.jdbc2.jdbc.SybDriver
+sybase.classes=${jdbc.lib.class.path}/jconn2.jar
+sybase.poolName=cts-sybase-pool
+sybase.dataSource= com.sybase.jdbc2.jdbc.SybDataSource
+sybase.properties=user\=${sybase.user}:password\=${sybase.passwd}:DatabaseName\=${sybase.dbName}\:ServerName\=${sybase.server}\:PortNumber\=${sybase.port}\:BE_AS_JDBC_COMPLIANT_AS_POSSIBLE\=true\:FAKE_METADATA\=true
+
+##
+## Info for Sybase (Inet Driver)
+##
+sybaseInet.dbName=cts2
+sybaseInet.server=${orb.host}
+sybaseInet.port=4100
+sybaseInet.dml.file=sybase/sybase.dml.sql
+sybaseInet.user=cts1
+sybaseInet.passwd=cts1
+sybaseInet.url=jdbc:inetsyb:${sybaseInet.server}:${sybaseInet.port}?database=${sybaseInet.dbName}
+sybaseInet.driver=com.inet.syb.SybDriver
+sybaseInet.classes=${jdbc.lib.class.path}/Sybelux.jar
+sybaseInet.poolName=cts-sybase-Inet-pool
+sybaseInet.dataSource= com.inet.syb.SybDataSource
+sybaseInet.properties=user\=${sybaseInet.user}:password\=${sybaseInet.passwd}:DatabaseName\=${sybaseInet.dbName}\:ServerName\=${sybaseInet.server}\:PortNumber\=${sybaseInet.port}
+
+
+##
+## Info for Sybase using the DataDirect driver
+##
+sybaseDD.dbName=cts2
+sybaseDD.server=${orb.host}
+sybaseDD.port=4100
+sybaseDD.dml.file=sybase/sybase.dml.sql
+sybaseDD.user=cts1
+sybaseDD.passwd=cts1
+sybaseDD.url=jdbc:datadirect:sybase://${sybaseDD.server}:${sybaseDD.port}
+sybaseDD.driver=com.ddtek.jdbc.sybase.SybaseDriver
+sybaseDD.classes=${jdbc.lib.class.path}/util.jar${pathsep}${jdbc.lib.class.path}/sybase.jar${pathsep}${jdbc.lib.class.path}/base.jar
+sybaseDD.poolName=cts-sybase-DataDirect-pool
+sybaseDD.dataSource=com.ddtek.jdbcx.sybase.SybaseDataSource
+sybaseDD.properties=user\=${sybaseDD.user}:password\=${sybaseDD.passwd}:ServerName\=${sybaseDD.server}:portNumber\=${sybaseDD.port}:selectMethod\=cursor:DatabaseName\=${sybaseDD.dbName}
+
+##
+## Info for Sybase using the Sun driver
+##
+sybaseSun.dbName=cts2
+sybaseSun.server=${orb.host}
+sybaseSun.port=4100
+sybaseSun.dml.file=sybase/sybase.dml.sql
+sybaseSun.user=cts1
+sybaseSun.passwd=cts1
+sybaseSun.url=jdbc:sun:sybase://${sybaseSun.server}:${sybaseSun.port}
+sybaseSun.driver=com.sun.sql.jdbc.sybase.SybaseDriver
+sybaseSun.classes=${jdbc.lib.class.path}/smsybase.jar
+sybaseSun.poolName=cts-sybase-Sun-pool
+sybaseSun.dataSource=com.sun.sql.jdbcx.sybase.SybaseDataSource
+sybaseSun.properties=user\=${sybaseSun.user}:password\=${sybaseSun.passwd}:ServerName\=${sybaseSun.server}:portNumber\=${sybaseSun.port}:selectMethod\=cursor:DatabaseName\=${sybaseSun.dbName}
+
+###############################################################
+## The following database configuration section is for the CTS
+## interop tests which require a database that is used by the
+## reference implementation. These entries should not be changed.
+# @derby.dbName.ri -- Database Name
+# @derby.server.ri -- Database Server
+# @derby.port.ri -- Database Server port
+# @derby.dml.file.ri -- DML file used for CTS test cases
+# @derby.user.ri -- User Id configured
+# @derby.passwd.ri -- User password configured
+# @derby.url.ri -- URL to the cts database
+# @derby.driver.ri -- DriverManager driver
+# @derby.classes.ri -- CLASSPATH to JDBC driver classes
+# @derby.poolName.ri -- Name of pool configured in the Java EE
+# RI (do not change!)
+# @derby.dataSource.ri -- DataSource driver
+# @derby.properties.ri -- Any additional JDBC driver required
+# properties
+# @derby.startup.delay.ri -- delay to wait for DB to start
+###############################################################
+derby.dbName.ri=derbyDBri
+derby.server.ri=${orb.host.ri}
+derby.port.ri=1527
+derby.dml.file.ri=derby/derby.dml.sql
+derby.user.ri=cts1
+derby.passwd.ri=cts1
+derby.url.ri=jdbc:derby://${derby.server.ri}:${derby.port.ri}/${derby.dbName.ri};create=true
+derby.driver.ri=org.apache.derby.jdbc.ClientDriver
+derby.home.ri=${javaee.home.ri}/../javadb
+derby.system.home.ri=${derby.home.ri}/databases
+derby.classpath.ri=${ts.home}/lib/dbprocedures.jar${pathsep}${derby.home.ri}/lib/derbynet.jar${pathsep}${derby.home.ri}/lib/derbyshared.jar${pathsep}${derby.home.ri}/lib/derbytools.jar
+derby.classes.ri=${derby.home.ri}/lib/derbyclient.jar{pathsep}${derby.home.ri}/lib/derbyshared.jar${pathsep}${derby.home.ri}/lib/derbytools.jar
+derby.poolName.ri=cts-derby-pool
+derby.dataSource.ri=org.apache.derby.jdbc.ClientDataSource
+derby.properties.ri=DatabaseName\=\"${derby.dbName.ri}\":user\=${derby.user.ri}:password\=${derby.passwd.ri}:serverName\=${derby.server.ri}:portNumber=${derby.port.ri}
+derby.startup.delay.ri=5
+###############################################################
+# @alt.dtd.dir DTD location for Java EE and RI xml files. Used
+# for xml validation when building tests. If
+# javaee.home.ri is set, /lib/dtds
+# will be used and alt.dtd.dir is ignored.
+# @alt.schema.dir schema location for Java EE and RI xml files.
+# Used for xml validation when building tests.
+# If javaee.home.ri is set,
+# /lib/schemas will be used and
+# alt.schema.dir is ignored.
+###############################################################
+alt.dtd.dir=${ts.home}/lib/dtds
+alt.schema.dir=${ts.home}/lib/schemas
+
+###############################################################
+## Configure the behavior of which tables CTS will create when
+## ant init.[datbaseName] is invoked.
+#
+# @create.cmp.tables - When set to false, the appserver is
+# responsible for creating cmp tables
+# at deployment of the ejb/ear
+# When set to true, init.[datbaseName]
+# will create the tables used by CMP
+# EJBs. The sql for the CMP tables are
+# contained in:
+# $TS_HOME/[datbaseName]/sql/[databaseName].ddl.cmp.sql
+# $TS_HOME/[datbaseName]/sql/[databaseName].ddl.interop.sql
+#
+###############################################################
+create.cmp.tables=true
+
+###############################################################
+# @jdbc.poolName - Configure the connection pool that will be
+# tested in this cts test run.
+#
+# @jdbc.maxpoolsize - This property defines the max pool size
+# when creating JDBC connection pools.
+#
+# @jdbc.steadypoolsize - This property defines the steady pool size
+# when creating JDBC connection pools.
+###############################################################
+jdbc.poolName=${derby.poolName}
+jdbc.maxpoolsize=64
+jdbc.steadypoolsize=32
+
+###############################################################
+## These properties are use for the CTS
+## interop tests which require a database that is used by the
+## reference implementation.
+#
+# @jdbc.poolName.ri - Configure the connection pool that will be
+# use when configuring the JDBC connection
+# pools for the reference implemetation.
+#
+# @jdbc.maxpoolsize.ri - This property defines the max pool size
+# when creating JDBC connection pools.
+#
+# @jdbc.steadypoolsize.ri - This property defines the steady pool size
+# when creating JDBC connection pools.
+###############################################################
+jdbc.poolName.ri=${derby.poolName.ri}
+jdbc.maxpoolsize.ri=96
+jdbc.steadypoolsize.ri=32
+
+###############################################################
+# @jdbc.datasource.props - Used to to specify Vendor specific
+# properties and less commonly used DataSource properties.
+# Its value is a comma-separated array of name-value pairs.
+# Each property pair follows the format of "name=value",
+# including the surrounding double quotes.
+#
+# The value of this property must not contain any extra spaces.
+#
+# In most cases, this property is not needed and therefore
+# commented out.
+#
+###############################################################
+#jdbc.datasource.props="driverType=thin","name2=value2"
+
+###############################################################
+# @jdbc.db - The name of the currently configured DB. This
+# value is the prefix of the DB properties currently
+# being used. Some valid values are; derby and
+# derbyEmbedded. See the other DB property
+# names for other valid values.
+###############################################################
+jdbc.db=derby
+jdbc.db.classes=${derby.classes}
+
+###############################################################
+## These properties are configurable and must specify valid
+## usernames and passwords to establish JDBC connections to
+## backend RDBMS.
+##
+# @user1 - Set this to the user for the jdbc/DB1 resource
+# @password1 - Set this to the password for the jdbc/DB1 resource
+# @user2 - Set this to the user for the jdbc/DB2 resource
+# @password2 - Set this to the password for the jdbc/DB2 resource
+# @user3 - Set this to the user for the jdbc/DBTimer resource
+# @password3 - Set this to the password for the jdbc/DBTimer resource
+###############################################################
+user1=${derby.user}
+password1=${derby.passwd}
+user2=${derby.user}
+password2=${derby.passwd}
+user3=${derby.user}
+password3=${derby.passwd}
+
+###############################################################
+## Configure the dml file to use
+# @db.dml.file - dml file for VI
+# @db.dml.file.ri - dml file for RI
+###############################################################
+db.dml.file=${derby.dml.file}
+db.dml.file.ri=${derby.dml.file}
+
+###############################################################
+## Configure the DB specific information needed by JSTL
+# @jstl.db.driver - JDBC driver
+# @jstl.db.url - DB URL
+###############################################################
+jstl.db.driver=${derby.driver}
+jstl.db.url=${derby.url}
+
+########################################################################
+#
+# @jtaJarClasspath: This property must be set when running signature
+# tests. This property should be set to the Path
+# for the JTA API jar.
+#
+########################################################################
+jtaJarClasspath=${s1as.modules}/jakarta.transaction-api.jar
+
+###############################################################
+## Classpath properties required by CTS:
+# @javaee.classes.ri -- Classes required by Java EE RI
+# @ts.run.classpath.ri -- Classpath required by Java EE RI
+# appclient container.
+# @ts.run.classpath -- Classpath required by the vendor
+# appclient container.
+# @ts.harness.classpath -- Classes required by javatest
+# @ts.classpath -- Classes used to build the CTS tests
+# @ts.lib.classpath -- Classes used to build cts.jar
+###############################################################
+implementation.classes.ri=${ri.modules}/orb-connector.jar${pathsep}${ri.modules}/deployment-client.jar${pathsep}${ri.modules}/security-ee.jar${pathsep}${ri.modules}/security.jar${pathsep}${ri.modules}/common-util.jar${pathsep}${ri.modules}/glassfish-corba-omgapi.jar${pathsep}${ri.modules}/glassfish-corba-orb.jar${pathsep}${ri.modules}/internal-api.jar${pathsep}${ri.modules}/deployment-common.jar${pathsep}${ri.modules}/gmbal.jar${pathsep}${ri.modules}/bean-validator.jar${pathsep}${ri.modules}/jersey-client.jar${pathsep}${ri.modules}/jersey-common.jar${pathsep}${ri.modules}/jersey-hk2.jar${pathsep}${ri.modules}/jersey-media-jaxb.jar${pathsep}${ri.modules}/jersey-media-sse.jar${pathsep}${ri.modules}/jersey-media-json-processing.jar${pathsep}${ri.modules}/jsonp-jaxrs.jar${pathsep}${ri.modules}/jersey-media-json-binding.jar${pathsep}${ri.modules}/jersey-server.jar${pathsep}${ri.modules}/jersey-container-servlet.jar${pathsep}${ri.modules}/jersey-container-servlet-core.jar${pathsep}${ri.modules}/guava.jar${pathsep}${ri.modules}/jakarta.el.jar${pathsep}${ri.modules}/jakarta.el-api.jar${pathsep}${ri.modules}/tyrus-websocket-core.jar${pathsep}${ri.modules}/tyrus-client.jar${pathsep}${ri.modules}/tyrus-container-grizzly-client.jar${pathsep}${ri.modules}/tyrus-core.jar${pathsep}${ri.modules}/tyrus-container-grizzly.jar${pathsep}${ri.modules}/tyrus-container-grizzly-client.jar${pathsep}${ri.modules}/glassfish-grizzly-extra-all.jar${pathsep}${ri.modules}/nucleus-grizzly-all.jar${pathsep}${ri.modules}/tyrus-server.jar${pathsep}${ri.modules}/tyrus-container-servlet.jar${pathsep}${ri.modules}/tyrus-spi.jar${pathsep}${ri.modules}/yasson.jar${pathsep}${ri.modules}/jakarta.websocket-client-api.jar${pathsep}${ri.modules}/parsson.jar${pathsep}${ri.modules}/parsson-media.jar${pathsep}${ri.modules}/angus-activation.jar${pathsep}${ri.modules}/angus-mail.jar${pathsep}${ri.modules}/expressly.jar
+
+implementation.classes=${s1as.modules}/deployment-client.jar${pathsep}${s1as.modules}/security.jar${pathsep}${s1as.modules}/common-util.jar${pathsep}${s1as.modules}/glassfish-corba-omgapi.jar${pathsep}${s1as.modules}/deployment-common.jar${pathsep}${s1as.modules}/gmbal.jar${pathsep}${s1as.modules}/bean-validator.jar${pathsep}${s1as.modules}/jakarta.ws.rs-api.jar${pathsep}${s1as.modules}/jersey-client.jar${pathsep}${s1as.modules}/jersey-common.jar${pathsep}${s1as.modules}/jersey-hk2.jar${pathsep}${s1as.modules}/jersey-media-jaxb.jar${pathsep}${s1as.modules}/jersey-media-sse.jar${pathsep}${s1as.modules}/jersey-media-json-processing.jar${pathsep}${s1as.modules}/jsonp-jaxrs.jar${pathsep}${s1as.modules}/jersey-media-json-binding.jar${pathsep}${s1as.modules}/jersey-server.jar${pathsep}${s1as.modules}/jersey-container-servlet.jar${pathsep}${s1as.modules}/jersey-container-servlet-core.jar${pathsep}${s1as.modules}/guava.jar${pathsep}${s1as.modules}/jakarta.el.jar${pathsep}${s1as.modules}/jakarta.el-api.jar${pathsep}${s1as.modules}/tyrus-websocket-core.jar${pathsep}${s1as.modules}/tyrus-client.jar${pathsep}${s1as.modules}/tyrus-core.jar${pathsep}${s1as.modules}/tyrus-container-grizzly.jar${pathsep}${s1as.modules}/tyrus-container-grizzly-client.jar${pathsep}${s1as.modules}/glassfish-grizzly-extra-all.jar${pathsep}${s1as.modules}/nucleus-grizzly-all.jar${pathsep}${s1as.modules}/tyrus-server.jar${pathsep}${s1as.modules}/tyrus-container-servlet.jar${pathsep}${s1as.modules}/tyrus-spi.jar${pathsep}${s1as.modules}/yasson.jar${pathsep}${s1as.modules}/jakarta.websocket-client-api.jar${pathsep}${s1as.modules}/parsson.jar${pathsep}${s1as.modules}/parsson-media.jar${pathsep}${s1as.modules}/angus-activation.jar${pathsep}${s1as.modules}/angus-mail.jar${pathsep}${s1as.modules}/expressly.jar
+
+javaee.classes.ri=${ri.modules}/jakarta.jms-api.jar${pathsep}${ri.modules}/jakarta.json.jar${pathsep}${ri.modules}/jakarta.json-api.jar${pathsep}${ri.modules}/jakarta.json.bind-api.jar${pathsep}${ri.modules}/jakarta.ejb-api.jar${pathsep}${ri.modules}/jakarta.annotation-api.jar${pathsep}${ri.modules}/jakarta.enterprise.deploy-api.jar${pathsep}${ri.modules}/jakarta.mail.jar${pathsep}${ri.modules}/jakarta.mail-api.jar${pathsep}${ri.modules}/jakarta.persistence.jar${pathsep}${ri.modules}/jakarta.persistence-api.jar${pathsep}${ri.modules}/jakarta.resource-api.jar${pathsep}${ri.modules}/jakarta.security.auth.message-api.jar${pathsep}${ri.modules}/jakarta.authentication-api.jar${pathsep}${ri.modules}/jakarta.security.jacc-api.jar${pathsep}${ri.modules}/jakarta.authorization-api.jar${pathsep}${ri.modules}/jakarta.interceptor-api.jar${pathsep}${ri.modules}/jakarta.servlet-api.jar${pathsep}${ri.modules}/jakarta.servlet.jsp-api.jar${pathsep}${ri.modules}/jakarta.transaction-api.jar${pathsep}${ri.modules}/jakarta.xml.bind-api.jar${pathsep}${ri.modules}/jaxb-osgi.jar${pathsep}${ri.modules}/jmxremote_optional-repackaged.jar${pathsep}${ri.modules}/jakarta.faces.jar${pathsep}${ri.modules}/jakarta.faces-api.jar${pathsep}${ri.modules}/jakarta.servlet.jsp.jstl.jar${pathsep}${ri.modules}/jakarta.servlet.jsp.jstl-api.jar${pathsep}${ri.modules}/webservices-osgi.jar${pathsep}${ri.modules}/webservices-api-osgi.jar${pathsep}${ri.modules}/ejb.security.jar${pathsep}${ri.modules}/glassfish-corba-csiv2-idl.jar${pathsep}${ri.modules}/weld-osgi-bundle.jar${pathsep}${implementation.classes.ri}${pathsep}${ri.modules}/javamail-connector.jar${pathsep}${ri.modules}/javamail-runtime.jar${pathsep}${ri.modules}/jakarta.websocket-api.jar${pathsep}${ri.modules}/jakarta.enterprise.concurrent-api.jar${pathsep}${ri.modules}/jakarta.enterprise.cdi-api.jar${pathsep}${ri.modules}/jakarta.security.enterprise-api.jar${pathsep}${ri.modules}/resolver.jar${pathsep}${ri.modules}/jakarta.websocket-client-api.jar${pathsep}${ri.modules}/parsson.jar${pathsep}${s1as.modules}/parsson-media.jar${pathsep}${ri.modules}/angus-activation.jar${pathsep}${s1as.modules}/angus-mail.jar${pathsep}${s1as.modules}/expressly.jar${pathsep}${ri.modules}/webservices-extra-jdk-packages.jar${pathsep}${ri.modules}/webservices-connector.jar${pathsep}${ri.modules}/webservices-extra-xmlsec.jar${pathsep}${ri.modules}/webservices.security.jar
+
+javaee.classes=${s1as.modules}/jakarta.jms-api.jar${pathsep}${s1as.modules}/jakarta.json.jar${pathsep}${s1as.modules}/jakarta.json-api.jar${pathsep}${s1as.modules}/jakarta.json.bind-api.jar${pathsep}${s1as.modules}/jakarta.ejb-api.jar${pathsep}${s1as.modules}/jakarta.annotation-api.jar${pathsep}${s1as.modules}/jakarta.enterprise.deploy-api.jar${pathsep}${s1as.modules}/jakarta.mail.jar${pathsep}${s1as.modules}/jakarta.mail-api.jar${pathsep}${s1as.modules}/jakarta.persistence.jar${pathsep}${s1as.modules}/jakarta.persistence-api.jar${pathsep}${s1as.modules}/jakarta.resource-api.jar${pathsep}${s1as.modules}/jakarta.security.auth.message-api.jar${pathsep}${s1as.modules}/jakarta.security.jacc-api.jar${pathsep}${s1as.modules}/jakarta.authentication-api.jar${pathsep}${s1as.modules}/jakarta.authorization-api.jar${pathsep}${s1as.modules}/jakarta.servlet-api.jar${pathsep}${s1as.modules}/el-impl.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp-api.jar${pathsep}${jtaJarClasspath}${pathsep}${s1as.modules}/jakarta.xml.bind-api.jar${pathsep}${s1as.modules}/jaxb-osgi.jar${pathsep}${s1as.modules}/jmxremote_optional-repackaged.jar${pathsep}${s1as.modules}/jakarta.faces.jar${pathsep}${s1as.modules}/jakarta.faces-api.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp.jstl.jar${pathsep}${ri.modules}/jakarta.servlet.jsp.jstl-api.jar${pathsep}${s1as.modules}/webservices-osgi.jar${pathsep}${s1as.modules}/webservices-api-osgi.jar${pathsep}${s1as.modules}/jakarta.management.j2ee-api.jar${pathsep}${s1as.modules}/ejb.security.jar${pathsep}${s1as.modules}/glassfish-corba-csiv2-idl.jar${pathsep}${s1as.modules}/weld-osgi-bundle.jar${pathsep}${implementation.classes}${pathsep}${s1as.modules}/javamail-connector.jar${pathsep}${s1as.modules}/javamail-runtime.jar${pathsep}${s1as.modules}/jakarta.websocket-api.jar${pathsep}${s1as.modules}/jakarta.enterprise.concurrent-api.jar${pathsep}${s1as.modules}/jakarta.enterprise.cdi-api.jar$${pathsep}${s1as.modules}/jakarta.xml.ws-api.jar${pathsep}${s1as.modules}/jakarta.xml.bind-api.jar${pathsep}${s1as.modules}/jakarta.security.enterprise-api.jar${pathsep}${s1as.modules}/jakarta.inject-api.jar${pathsep}${s1as.modules}/jakarta.activation-api.jar${pathsep}${s1as.modules}/jakarta.validation-api.jar${pathsep}${s1as.modules}/resolver.jar${pathsep}${s1as.modules}/jakarta.websocket-client-api.jar${pathsep}${s1as.modules}/parsson.jar${pathsep}${s1as.modules}/parsson-media.jar${pathsep}${s1as.modules}/angus-activation.jar${pathsep}${s1as.modules}/angus-mail.jar${pathsep}${s1as.modules}/expressly.jar${pathsep}${s1as.modules}/webservices-extra-jdk-packages.jar${pathsep}${s1as.modules}/webservices-connector.jar${pathsep}${s1as.modules}/webservices-extra-xmlsec.jar${pathsep}${s1as.modules}/webservices.security.jar
+
+ts.run.classpath.ri=${javaee.classes.ri}${pathsep}${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar
+
+ts.run.classpath=${pathsep}${javaee.classes}${pathsep}${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar${pathsep}${jdbc.db.classes}
+
+ts.harness.classpath=${ts.home}/lib/jaxb-api.jar${pathsep}${ts.home}/lib/jaxb-core.jar${pathsep}${ts.home}/lib/jaxb-impl.jar${pathsep}${ts.home}/lib/jaxb-xjc.jar${pathsep}${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar${pathsep}${ts.home}/lib/sigtest.jar${pathsep}${ts.run.classpath}${pathsep}${ts.home}/lib/javatest.jar${pathsep}${ts.home}/lib/jdom-1.1.3.jar${pathsep}${ant.home}/lib/ant.jar${pathsep}${ri.modules}/admin-cli.jar
+
+#classpath used for building CTS tests only (DO NOT MODIFY)
+ts.classpath=${ts.home}/lib/commons-lang3-3.3.2.jar${pathsep}${javaee.home.ri}/javadb/lib/derby.jar${pathsep}${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar${pathsep}${ts.home}/lib/sigtest.jar${pathsep}${ts.run.classpath}${pathsep}${ts.run.classpath.ri}${pathsep}${ts.home}/lib/javatest.jar${pathsep}${ts.home}/lib/jdom-1.1.3.jar${pathsep}${ant.home}/lib/ant.jar${pathsep}${ts.home}/lib/commons-httpclient-3.1.jar${pathsep}${ts.home}/lib/commons-logging-1.1.3.jar${pathsep}${ts.home}/lib/htmlunit-2.15.jar${pathsep}${ts.home}/lib/htmlunit-core-js-2.15.jar${pathsep}${ts.home}/lib/unboundid-ldapsdk.jar${pathsep}${ts.home}/lib/commons-codec-1.9.jar${pathsep}${ts.home}/lib/xml-apis-1.4.01.jar${pathsep}${ts.home}/lib/jaxb-api.jar
+#classpath used for building cts.jar (DO NOT MODIFY)
+ts.lib.classpath=${javaee.home.ri}/javadb/lib/derby.jar${pathsep}${ts.harness.classpath}
+
+
+###############################################################
+# @javaee.home.ri.classpathsuffix - The classpath suffix of
+# the RI used in interop tests. Must contain the RI JDBC
+# driver jars and the RMI interceptor classes.
+###############################################################
+javaee.home.ri.classpathsuffix=${javaee.home.ri}/lib/riinterceptors.jar${pathsep}${javaee.home.ri}/javadb/lib/derbyclient.jar
+
+###############################################################
+# @s1as.classpathsuffix - The classpath suffix of
+# the RI when being used as the app server under test.
+###############################################################
+s1as.classpathsuffix=${javaee.home}/lib/tsprovider.jar
+
+########################################################################
+## Common environment for both ts_unix and ts_win32
+#
+# @command.testExecute - This command is used to execute any test
+# clients which are not run inside an
+# application client container. For example,
+# any URL clients or standalone java clients
+# would be executed with this command. Some
+# test directories which make use of this command
+# are servlet and jsp.
+########################################################################
+
+command.testExecute=com.sun.ts.lib.harness.ExecTSTestCmd \
+ CLASSPATH=${ts.harness.classpath}${pathsep}${ts.home}/classes${pathsep}\
+ ${JAVA_HOME}/../lib/tools.jar${pathsep}\
+ ${ri.modules}/security-ee.jar${pathsep}\
+ ${ts.home}/lib/commons-httpclient-3.1.jar${pathsep}\
+ ${ts.home}/lib/commons-logging-1.1.3.jar${pathsep}\
+ ${ts.home}/lib/commons-codec-1.9.jar${pathsep}\
+ ${ts.home}/lib/cssparser-0.9.25.jar${pathsep}\
+ ${ts.home}/lib/htmlunit-2.15.jar${pathsep}\
+ ${ts.home}/lib/htmlunit-core-js-2.15.jar${pathsep}\
+ ${ts.home}/lib/httpcore-4.4.9.jar${pathsep}\
+ ${ts.home}/lib/httpclient-4.5.5.jar${pathsep}\
+ ${ts.home}/lib/httpmime-4.5.5.jar${pathsep}\
+ ${ts.home}/lib/commons-collections-3.2.1.jar${pathsep}\
+ ${ts.home}/lib/commons-io-2.4.jar${pathsep}\
+ ${ts.home}/lib/commons-lang3-3.3.2.jar${pathsep}\
+ ${ts.home}/lib/jaxen-1.1.6.jar${pathsep}\
+ ${ts.home}/lib/nekohtml-1.9.21.jar${pathsep}\
+ ${ts.home}/lib/sac-1.3.jar${pathsep}\
+ ${ts.home}/lib/saxpath.jar${pathsep}\
+ ${ts.home}/lib/xercesImpl-2.11.0.jar${pathsep}\
+ ${ts.home}/lib/xalan-2.7.2.jar${pathsep}\
+ ${ts.home}/lib/serializer-2.7.2.jar${pathsep}\
+ ${ts.home}/lib/xml-apis-1.4.01.jar${pathsep}\
+ ${ts.home}/lib/unboundid-ldapsdk.jar${pathsep}\
+ ${jdbc.db.classes} \
+ DISPLAY=${ts.display} \
+ HOME="${user.home}" \
+ TMP=${TMP} \
+ windir=${windir} \
+ SYSTEMROOT=${SYSTEMROOT} \
+ PATH="${javaee.home}/nativelib" \
+ ${JAVA_HOME}/bin/java \
+ ${JVMOPTS_RUNTESTCOMMAND} \
+ -Xss2048k \
+ -Dcts.tmp=$harness.temp.directory \
+ -Djava.protocol.handler.pkgs=javax.net.ssl \
+ -Djavax.net.ssl.keyStore=${bin.dir}/certificates/clientcert.jks \
+ -Djavax.net.ssl.keyStorePassword=changeit \
+ -Djavax.net.ssl.trustStore=${s1as.domain}/${sjsas.instance.config.dir}/cacerts.jks \
+ -Dcom.sun.aas.installRoot=${javaee.home} \
+ -Dlog.file.location=${log.file.location} \
+ -Dservlet.is.jsr115.compatible=${servlet.is.jsr115.compatible} \
+ -Dprovider.configuration.file=${provider.configuration.file} \
+ -Djava.security.properties=${s1as.domain}/${sjsas.instance.config.dir}/ts.java.security \
+ -Dlogical.hostname.servlet=${logical.hostname.servlet} \
+ -Dcom.sun.aas.configRoot=${javaee.home}/config \
+ -Ddeliverable.class=${deliverable.class} $testExecuteClass $testExecuteArgs
+
+########################################################################
+## Appclient Command line for the App Server under test
+## Licensees modify this command
+#
+# @command.testExecuteAppClient - This command is used to execute
+# the application client container for
+# the vendor implementation (vi).
+# Please note that $TS_HOME/classes
+# should not be in the classpath for
+# this command since all client classes
+# are self contained in the application
+# archive (or referenced via the manifest).
+########################################################################
+command.testExecuteAppClient= \
+ com.sun.ts.lib.harness.ExecTSTestCmd DISPLAY=${ts.display} HOME="${user.home}" \
+ LD_LIBRARY_PATH=${javaee.home}/lib \
+ TMP=${TMP} \
+ windir=${windir} \
+ SYSTEMROOT=${SYSTEMROOT} \
+ PATH="${javaee.home}/nativelib" \
+ APPCPATH=${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar${pathsep}${javaee.home}/lib/jpa_alternate_provider.jar${pathsep}${ts.home}/lib/tssv.jar${pathsep}${javaee.home}/modules/weld-osgi-bundle.jar${pathsep}${javaee.home}/modules/jakarta.enterprise.cdi-api.jar \
+ TZ=${tz} \
+ ${JAVA_HOME}/bin/java \
+ ${JVMOPTS_RUNTESTCOMMAND} \
+ -Djava.system.class.loader=org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader \
+ -Djava.security.policy=${javaee.home}/lib/appclient/client.policy \
+ -Dcts.tmp=$harness.temp.directory \
+ -Djava.security.auth.login.config=${javaee.home}/lib/appclient/appclientlogin.conf \
+ -Djava.protocol.handler.pkgs=javax.net.ssl \
+ -Dcom.sun.enterprise.home=${javaee.home} \
+ -Djavax.net.ssl.keyStore=${bin.dir}/certificates/clientcert.jks \
+ -Djavax.net.ssl.keyStorePassword=changeit \
+ -Dcom.sun.aas.installRoot=${javaee.home} \
+ -Dcom.sun.aas.imqLib=${javaee.home}/../mq/lib \
+ -Djavax.net.ssl.trustStore=${s1as.domain}/${sjsas.instance.config.dir}/cacerts.jks \
+ -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl \
+ -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl \
+ -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl \
+ -Dorg.xml.sax.driver=com.sun.org.apache.xerces.internal.parsers.SAXParser \
+ -Dorg.xml.sax.parser=org.xml.sax.helpers.XMLReaderAdapter \
+ -Doracle.jdbc.J2EE13Compliant=true \
+ -Doracle.jdbc.mapDateToTimestamp \
+ -Dstartup.login=false \
+ -Dauth.gui=false \
+ -Dlog.file.location=${log.file.location} \
+ -Dri.log.file.location=${ri.log.file.location} \
+ -DwebServerHost.2=${webServerHost.2} \
+ -DwebServerPort.2=${webServerPort.2} \
+ -Dprovider.configuration.file=${provider.configuration.file} \
+ -Djava.security.properties=${s1as.domain}/${sjsas.instance.config.dir}/ts.java.security \
+ -Dcom.sun.aas.configRoot=${javaee.home}/config \
+ -Ddeliverable.class=${deliverable.class} -javaagent:${javaee.home}/lib/gf-client.jar=arg=-configxml,arg=${ts.home}/tmp/appclient/s1as.sun-acc.xml,client=jar=$testExecuteArgs
+
+#-Ddeliverable.class=${deliverable.class} -javaagent:${javaee.home}/modules/gf-client.jar=arg=-configxml,arg=${s1as.domain}/config/sun-acc.xml,client=jar=$testExecuteArgs
+#-Xbootclasspath/a:${pathsep}${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar
+
+########################################################################
+# @command.testExecuteEjbEmbed - Command line for standalone embedded EJB tests.
+# Its classpath must include all the APIs required
+# by EJB Lite, vendor's implementation classes and
+# configuration for embeddable EJB container, and
+# JDBC driver classes (e.g., ${db2.classes},
+# ${oracle.classes}, etc).
+#
+# Current test archives are dynamically added to
+# the classpath by the harness, and need not be
+# included in the classpath here.
+#
+# Most test directories contain one test archive,
+# all named ejbembed_vehicle_ejb.jar. If certain
+# tooling and pre-processing of test archives are
+# needed, the resulting test archives must remain
+# the same name and location.
+#
+# ${ts.home}/classes must not be in the classpath
+# since all the required test classes are packaged
+# in the test archive (ejbembed_vehicle_ejb.jar). In
+# addition, including ${ts.home}/classes in the
+# classpath would incorrectly expose all EJBs in
+# cts to EJB container bootstrapping process.
+########################################################################
+command.testExecuteEjbEmbed=com.sun.ts.lib.harness.ExecTSTestCmd \
+ CLASSPATH=${ts.home}/lib/tsharness.jar${pathsep}\
+ ${ts.home}/lib/cts.jar${pathsep}\
+ ${ts.home}/lib/glassfishporting.jar${pathsep}\
+ ${ts.home}/lib/commons-lang3-3.3.2.jar${pathsep}\
+ ${jdbc.db.classes}${pathsep}\
+ ${javaee.home}/lib/embedded/glassfish-embedded-static-shell.jar \
+ DISPLAY=${ts.display} \
+ HOME="${user.home}" \
+ TMP=${TMP} \
+ windir=${windir} \
+ SYSTEMROOT=${SYSTEMROOT} \
+ ${JAVA_HOME}/bin/java \
+ ${JVMOPTS_RUNTESTCOMMAND} \
+ -Dcts.tmp=$harness.temp.directory \
+ -Djava.util.logging.config.file=${TS_HOME}/bin/client-logging.properties \
+ -Dtest.ejb.stateful.timeout.wait.seconds=${test.ejb.stateful.timeout.wait.seconds} \
+ -Ddeliverable.class=${deliverable.class} $testExecuteClass $testExecuteArgs
+
+
+########################################################################
+## Appclient Command line for the Java EE RI (Do not modify)
+########################################################################
+command.testExecuteAppClient2= \
+ com.sun.ts.lib.harness.ExecTSTestCmd DISPLAY=${ts.display} HOME="${user.home}" \
+ LD_LIBRARY_PATH=${javaee.home.ri}/lib \
+ TMP=${TMP} \
+ windir=${windir} \
+ SYSTEMROOT=${SYSTEMROOT} \
+ PATH="${javaee.home.ri}/nativelib" \
+ APPCPATH=${ts.home}/lib/tsharness.jar${pathsep}${ts.home}/lib/cts.jar${pathsep}${ts.home}/lib/glassfishporting.jar${pathsep}${ts.home}/lib/riinterceptors.jar \
+ TZ=${tz} \
+ ${RI_JAVA_HOME}/bin/java \
+ ${JVMOPTS_RUNTESTCOMMAND} \
+ -Djava.system.class.loader=org.glassfish.appclient.client.acc.agent.ACCAgentClassLoader \
+ -Djava.security.policy=${javaee.home.ri}/lib/appclient/client.policy \
+ -Dcts.tmp=$harness.temp.directory \
+ -Djava.security.auth.login.config=${javaee.home.ri}/lib/appclient/appclientlogin.conf \
+ -Djava.protocol.handler.pkgs=javax.net.ssl \
+ -Dcom.sun.enterprise.home=${javaee.home.ri} \
+ -Djavax.net.ssl.keyStore=${bin.dir}/certificates/clientcert.jks \
+ -Djavax.net.ssl.keyStorePassword=changeit \
+ -Dcom.sun.aas.installRoot=${javaee.home.ri} \
+ -Dcom.sun.aas.imqLib=${javaee.home.ri}/../mq/lib \
+ -Djavax.net.ssl.trustStore=${ri.domain}/config/cacerts.jks \
+ -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl \
+ -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl \
+ -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl \
+ -Dorg.xml.sax.driver=com.sun.org.apache.xerces.internal.parsers.SAXParser \
+ -Dorg.xml.sax.parser=org.xml.sax.helpers.XMLReaderAdapter \
+ -Doracle.jdbc.J2EE13Compliant=true \
+ -Doracle.jdbc.mapDateToTimestamp \
+ -Dstartup.login=false \
+ -Dauth.gui=false \
+ -Dlog.file.location=${log.file.location} \
+ -Dri.log.file.location=${ri.log.file.location} \
+ -DwebServerHost.2=${webServerHost.2} \
+ -DwebServerPort.2=${webServerPort.2} \
+ -Dprovider.configuration.file=${provider.configuration.file} \
+ -Djava.security.properties=${s1as.domain}/${sjsas.instance.config.dir}/ts.java.security \
+ -Dcom.sun.aas.configRoot=${javaee.home.ri}/config \
+ -Ddeliverable.class=${deliverable.class} -javaagent:${javaee.home.ri}/lib/gf-client.jar=arg=-configxml,arg=${ts.home}/tmp/appclient/ri.sun-acc.xml,client=jar=$testExecuteArgs
+
+########################################################################
+## Command line for standalone clients running against the
+## Java EE RI (Do not modify)
+########################################################################
+command.testExecute2=com.sun.ts.lib.harness.ExecTSTestCmd \
+ CLASSPATH=${ts.harness.classpath}${pathsep}${ts.home}/classes${pathsep}\
+ ${ts.home}/lib/commons-httpclient-3.1.jar${pathsep}\
+ ${ts.home}/lib/commons-logging-1.1.3.jar${pathsep}\
+ ${ts.home}/lib/commons-codec-1.9.jar${pathsep}\
+ ${ts.home}/lib/cssparser-0.9.25.jar${pathsep}\
+ ${ts.home}/lib/htmlunit-2.15.jar${pathsep}\
+ ${ts.home}/lib/htmlunit-core-js-2.15.jar${pathsep}\
+ ${ts.home}/lib/httpcore-4.4.9.jar${pathsep}\
+ ${ts.home}/lib/httpclient-4.5.5.jar${pathsep}\
+ ${ts.home}/lib/httpmime-4.5.5.jar${pathsep}\
+ ${ts.home}/lib/commons-collections-3.2.1.jar${pathsep}\
+ ${ts.home}/lib/commons-io-2.4.jar${pathsep}\
+ ${ts.home}/lib/commons-lang3-3.3.2.jar${pathsep}\
+ ${ts.home}/lib/jaxen-1.1.6.jar${pathsep}\
+ ${ts.home}/lib/nekohtml-1.9.21.jar${pathsep}\
+ ${ts.home}/lib/sac-1.3.jar${pathsep}\
+ ${ts.home}/lib/saxpath.jar${pathsep}\
+ ${ts.home}/lib/xercesImpl-2.11.0.jar${pathsep}\
+ ${ts.home}/lib/xalan-2.7.2.jar${pathsep}\
+ ${ts.home}/lib/serializer-2.7.2.jar${pathsep}\
+ ${ts.home}/lib/xml-apis-1.4.01.jar \
+ ${ts.home}/lib/unboundid-ldapsdk.jar\
+ DISPLAY=${ts.display} \
+ HOME="${user.home}" \
+ TMP=${TMP} \
+ windir=${windir} \
+ SYSTEMROOT=${SYSTEMROOT} \
+ PATH="${javaee.home}/nativelib" \
+ ${RI_JAVA_HOME}/bin/java \
+ ${JVMOPTS_RUNTESTCOMMAND} \
+ -Dcts.tmp=$harness.temp.directory \
+ -Djava.protocol.handler.pkgs=javax.net.ssl \
+ -Djavax.net.ssl.keyStore=${bin.dir}/certificates/clientcert.jks \
+ -Djavax.net.ssl.keyStorePassword=changeit \
+ -Djavax.net.ssl.trustStore=${ri.domain}/${ri.instance.config.dir}/cacerts.jks \
+ -Ddeliverable.class=${deliverable.class} $testExecuteClass $testExecuteArgs
+
+#########################################################################
+## Environment for ts_unix
+## 3 test execution commands inherit from common environment
+## defined above: testExecuteAppClient2, testExecuteAppClient, and
+## testExecute. If you need to override them, uncomment them in the
+## following section.
+#########################################################################
+env.ts_unix.menu=true
+##env.ts_unix.command.testExecute=
+##env.ts_unix.command.testExecuteAppClient=
+##env.ts_unix.command.testExecuteAppClient2=
+
+
+########################################################################
+## Environment for ts_win32
+## 3 test execution commands inherit from common environment
+## defined above: testExecuteAppClient2, testExecuteAppClient, and
+## testExecute. If you need to override them, uncomment them in the
+## following section.
+########################################################################
+env.ts_win32.menu=true
+##env.ts_win32.command.testExecute=
+##env.ts_win32.command.testExecuteAppClient=
+##env.ts_win32.command.testExecuteAppClient2=
+
+#########################################################################
+# @jimage.dir: This property specifies the directory where Java 11+
+# modules will be expanded by the jimage tool for use
+# in sigTestClasspath
+# @sigTestClasspath: This property must be set when running signature
+# tests. This property should be set to a list of
+# jar files and/or directories which contain your
+# Java EE and Java SE classes. Paths must be
+# separated by the appropriate path separator
+# (';' windows, ':' Unixes).
+#########################################################################
+
+jimage.dir=${ts.home}/tmp/jdk-bundles
+
+sigTestClasspath=${s1as.modules}/glassfish-corba-omgapi.jar${pathsep}${s1as.modules}/glassfish-corba-orb.jar${pathsep}${s1as.modules}/jakarta.enterprise.cdi-api.jar${pathsep}${s1as.modules}/jakarta.json-api.jar${pathsep}${s1as.modules}/jakarta.json.bind-api.jar${pathsep}${s1as.modules}/jakarta.batch-api.jar${pathsep}${s1as.modules}/jakarta.interceptor-api.jar${pathsep}${s1as.modules}/stax2-api.jar${pathsep}${s1as.modules}/jakarta.enterprise.concurrent-api.jar${pathsep}${s1as.modules}/jakarta.websocket-api.jar${pathsep}${s1as.modules}/jakarta.websocket-client-api.jar${pathsep}${s1as.modules}/jakarta.jms-api.jar${pathsep}${s1as.modules}/jakarta.faces.jar${pathsep}${s1as.modules}/jakarta.validation-api.jar${pathsep}${s1as.modules}/jakarta.annotation-api.jar${pathsep}${s1as.modules}/jakarta.xml.bind-api.jar${pathsep}${s1as.modules}/webservices-api-osgi.jar${pathsep}${pathsep}${s1as.modules}/jakarta.ws.rs-api.jar${pathsep}${s1as.modules}/weld-osgi-bundle.jar${pathsep}${s1as.modules}/jakarta.ejb-api.jar${pathsep}${s1as.modules}/jakarta.mail-api.jar${pathsep}${s1as.modules}/jakarta.persistence-api.jar${pathsep}${s1as.modules}/jakarta.resource-api.jar${pathsep}${s1as.modules}/jakarta.authorization-api.jar${pathsep}${s1as.modules}/jakarta.authentication-api.jar${pathsep}${s1as.modules}/jakarta.servlet-api.jar${pathsep}${s1as.modules}/jakarta.inject-api.jar${pathsep}${s1as.modules}/jakarta.el-api.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp-api.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp.jstl-api.jar${pathsep}${jtaJarClasspath}${pathsep}${s1as.modules}/jakarta.security.enterprise-api.jar${pathsep}${s1as.modules}/jakarta.activation-api.jar${pathsep}${jimage.dir}/java.base${pathsep}${jimage.dir}/java.rmi${pathsep}${jimage.dir}/java.sql${pathsep}${jimage.dir}/java.naming
+
+########################################################################
+## This property is used to support the odd side case when we have an
+## optional technology package that is used but should not be tested.
+##
+## This property (i.e. optional.tech.packages.to.ignore) must be a comma
+## separated list of packages that are NOT to be validated/tested when
+## during the sigtest utilities validation of Optional Technologies.
+## Example Usage:
+## optional.tech.packages.to.ignore=javax.foo.pkg1,javax.bar.pkg2,com.blah.foo.pkg3
+##
+## Additional notes:
+## - always ignore the optional JAXB packages:
+## optional.tech.packages.to.ignore=jakarta.xml.bind
+##
+#########################################################################
+optional.tech.packages.to.ignore=jakarta.xml.bind
+
+########################################################################
+## These properties are used by the harness. "harness.log.port"
+## specifies the port that server components use to send logging
+## output back to JavaTest. If the default port # is not available
+## on the machine running JavaTest, then you can set it here.
+##
+#
+# @harness.temp.directory directory location used by the
+# harness to store temporary files
+#
+# @harness.log.port the port the harness listens on for log mesages
+# from remote clients
+#
+# @harness.log.traceflag used to turn on/off verbose debugging output
+# for the tests.
+#
+# @harness.executeMode used to run the harness in the following modes
+# of execution:
+# 0 - default (deploy, run, undeploy)
+# 1 - deploy only
+# 2 - run only
+# 3 - undeploy only
+# 4 - deploy and run only
+#
+# @harness.socket.retry.count - denotes the number of time we should
+# attempt to create a server socket when intilizing a test
+# client. The socket is used for logging purposes.
+#
+# @harness.log.delayseconds Number of seconds to delay to allow
+# reporting from remote clients to finish.
+#
+# @harness.maxoutputsize Number of characters that the harness will use
+# for a test's output.
+########################################################################
+harness.temp.directory=${ts.home}/tmp
+harness.log.port=2000
+harness.log.traceflag=true
+harness.executeMode=0
+harness.socket.retry.count=10
+harness.log.delayseconds=1
+harness.maxoutputsize=200000
+
+
+#########################################################################
+# @wsdlRepository1 Location to publish final wsdl files when using
+# file URL publishing for Vendor Java EE implementation.
+# @wsdlRepository2 Location to publish final wsdl files when using
+# file URL publishing for Sun RI.
+#########################################################################
+wsdlRepository1=${harness.temp.directory}/wsdlRepository1
+wsdlRepository2=${harness.temp.directory}/wsdlRepository2
+
+#######################################################################
+# @deployment_host.1 name of machine running the JSR 88 deployment
+# process for the vendor's Java EE implementation.
+# @deployment_host.2 name of machine running the JSR 88 deployment
+# process for the Java EE RI.
+# @deployment_port.1 deployment port (if applicable) for the vendor's
+# Java EE implementation.
+# @deployment_port.2 deployment port (if applicable) for the
+# Java EE RI.
+#######################################################################
+deployment_host.1=${orb.host}
+deployment_host.2=${orb.host.ri}
+deployment_port.1=${impl.vi.port}
+deployment_port.2=${impl.ri.port}
+
+####################################################################
+# Implementation Property Settings for Vendor and RI. These properties
+# are used when either porting.ts.deploy.class.1 or porting.ts.deploy.class.2
+# are set to com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeployment.
+# Note: They are are also used when using the "ant deploy" and "ant undeploy"
+# targets outside of running tests.
+#
+# The CTS provides the glassfish implementation out of the box.
+#
+# Here are the common properties that need to be defined for the common
+# implementation functionality:
+#
+# @impl.vi This property must be set to the Vendor implementation
+# under test.
+# @impl.vi.deploy.dir This property must be set to the deploy directory for
+# the Vendor implementation.
+# @impl.vi.host This property must be set to the admin host where
+# the Vendor implementation is running.
+# @impl.vi.port This property must be set to the admin port where
+# the Vendor implementation is running.
+# @impl.ri This property must be set to the RI implementation
+# under test.
+# @impl.ri.deploy.dir This property must be set to the deploy directory for
+# the RI implementation.
+# @impl.ri.host This property must be set to the admin host where
+# the RI implementation is running.
+# @impl.ri.port This property must be set to the admin port where
+# the RI implementation is running.
+#
+# @impl.deploy.timeout.multiplier The time it will wait for deployment to
+# succeed or fail
+####################################################################
+impl.vi=glassfish
+impl.vi.deploy.dir=${s1as.domain}/autodeploy
+impl.vi.host=${s1as.admin.host}
+impl.vi.port=${s1as.admin.port}
+
+impl.ri=glassfish
+impl.ri.deploy.dir=${ri.domain}/autodeploy
+impl.ri.host=${ri.admin.host}
+impl.ri.port=${ri.admin.port}
+
+impl.deploy.timeout.multiplier=240
+
+
+###############################################################
+## These properties are implementations of the pre-1.4 Deployment
+## porting interface. The impls defined below use those APIs.
+#
+# @porting.ts.deploy.class.1 This property must point to an implementation
+# of com.sun.ts.lib.porting.TSDeploymentInterface. The default
+# value for this property points to an impl that deploys via copying/deleting
+# to/from the RI autodeploy directory. More details about setting
+# porting.ts.deploy.class.1:
+#
+# 1. Set this property to deploy/undeploy to/from your impl in
+# a custom way. In the case of the RI, it would be set to the following.
+# This is the default setting for CTS 8.
+#
+# porting.ts.deploy.class.1=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeployment
+#
+# 2. Note that Jakarta Deployment is removed, so do not use either of the following classes:
+# com.sun.ts.lib.deliverable.cts.deploy.StandardDeployment14
+# com.sun.ts.lib.porting.TSDeploymentInterface2
+# com.sun.ts.lib.implementation.sun.javaee.SunRIDeployment2
+#
+#
+# @porting.ts.deploy.class.2 This property must point to an implementation
+# of com.sun.ts.lib.porting.TSDeploymentInterface.
+# The default value for this property points to an impl that deploys via copying/deleting
+# to/from the RI autodeploy directory. This should be left unchanged...
+#
+# porting.ts.deploy.class.2=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeployment
+#
+#
+###############################################################
+porting.ts.deploy.class.1=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeployment
+porting.ts.deploy.class.2=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeploymentSeparateVM
+
+########################################################################
+# @deploy.delay.in.minutes is no longer used, it was for pruned Jakarta Deployment
+########################################################################
+
+########################################################################
+## Following are no longer used, were settings for pruned Jakarta Deployment
+########################################################################
+#deployManagerJarFile.1
+#deployManageruri.1
+#deployManageruname.1
+#deployManagerpasswd.1
+
+########################################################################
+## Following are no longer used, were settings for pruned Jakarta Deployment
+########################################################################
+#deployManagerJarFile.2
+#deployManageruri.2
+#deployManageruname.2
+#deployManagerpasswd.2
+#
+# @porting.ts.deploy2.class.1
+# @porting.ts.deploy2.class.2
+# porting.ts.deploy2.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIDeployment2
+# porting.ts.deploy2.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIDeployment2
+
+
+###############################################################
+## These properties must be set to tell the Test harness the
+## class names of your porting class implementations. By default
+## both property sets below point to Sun RI specific classes. To
+## run interoperability tests, the ".2" set of properties should
+## always point to Sun RI classes. The ".1" set should point to
+## implementations that work in your specific Java EE environment.
+#
+# @porting.ts.login.class.1 VI of
+# com.sun.ts.lib.porting.TSLoginContextInterface
+# @porting.ts.url.class.1 VI of
+# com.sun.ts.lib.porting.TSURLInterface
+# @porting.ts.jms.class.1 VI of
+# com.sun.ts.lib.porting.TSJMSAdminInterface
+# @porting.ts.HttpsURLConnection.class.1 VI of
+# com.sun.ts.lib.porting.TSHttpsURLConnectionInterface
+# @porting.ts.login.class.2 RI of
+# com.sun.ts.lib.porting.TSLoginContextInterface
+# @porting.ts.url.class.2 RI of
+# com.sun.ts.lib.porting.TSURLInterface
+# @porting.ts.jms.class.2 RI of
+# com.sun.ts.lib.porting.TSJMSAdminInterface
+# @porting.ts.HttpsURLConnection.class.2 RI of
+# com.sun.ts.lib.porting.TSHttpsURLConnectionInterface
+###############################################################
+porting.ts.login.class.1=com.sun.ts.lib.implementation.sun.javaee.GlassFishLoginContext
+porting.ts.url.class.1=com.sun.ts.lib.implementation.sun.common.SunRIURL
+porting.ts.jms.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+porting.ts.HttpsURLConnection.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+
+##Porting class names for Sun RI Java EE Implementation #2 (must be Sun's RI)
+porting.ts.login.class.2=com.sun.ts.lib.implementation.sun.javaee.GlassFishLoginContext
+porting.ts.url.class.2=com.sun.ts.lib.implementation.sun.common.SunRIURL
+porting.ts.jms.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+porting.ts.HttpsURLConnection.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+
+##############################################################
+# @namingServiceHost1 Naming Service host name for the
+# Vendor's Implementation (VI)
+# @namingServicePort1 Naming Service port for the VI
+# @namingServiceHost2 Naming Service host name for the
+# Reference Implementation (RI)
+# @ namingServicePort2 Naming Service port for the RI
+##############################################################
+namingServiceHost1=${orb.host}
+namingServicePort1=${orb.port}
+namingServiceHost2=${orb.host.ri}
+namingServicePort2=${orb.port.ri}
+
+##############################################################
+# @certLoginUserAlias User alias for certificate based login.
+# This property is used in mutual authentication to pickup the
+# certificate based on the user alias.
+##############################################################
+certLoginUserAlias=cts
+
+#####################################################################
+## The following properties must be set prior to running the Servlet
+## or JSP API tests and interoperability tests.
+##
+## These properties must specify the host and port of the web server,
+## in which the servlets and JSPs are deployed.
+#
+# @webServerHost hostname for the Vendor's Java EE Web Server
+# @webServerPort port number of the Vendor's Java EE Web Server
+# @webServerHost.2 hostname for the Java EE RI Web Server
+# @webServerPort.2 port number of the Java EE RI Web Server
+# @ServletClientThreads The ServletClientThreads property configures
+# the number of threads used by the client for
+# the SingleThreadModel servlet test. If the
+# container implementation supports pooling of
+# SingleThreadModel servlets, set the value of
+# ServletClientThreads to twice the value of
+# the default servlet instance pool size. If
+# the container implementation only maintains
+# a single instance of a SingleTheadModel
+# servlet, leave the default value of 2.
+#####################################################################
+webServerHost=${orb.host}
+webServerPort=8080
+webServerHost.2=${orb.host.ri}
+webServerPort.2=8181
+ServletClientThreads=2
+
+####################################################################
+# @EJBServer1TxInteropEnabled Transaction interoperability settings
+# for Vendor Java EE EJB Server
+# @EJBServer2TxInteropEnabled Transaction interoperability settings
+# for Java EE RI EJB Server
+####################################################################
+EJBServer1TxInteropEnabled=true
+EJBServer2TxInteropEnabled=true
+
+###############################################################
+## These properties are used for the Connector specific tests.
+##
+## You must be able to deploy the following resource adapters
+## on your Java EE server.
+###############################################################
+
+## JNDI name bindings. You should not change these. The TSDeploymentInterface
+## will pass these values as a properties object. See the SunRIDeployment.java
+## file for usage patterns.
+whitebox-tx=java:comp/env/eis/whitebox-tx
+whitebox-notx=java:comp/env/eis/whitebox-notx
+whitebox-xa=java:comp/env/eis/whitebox-xa
+whitebox-tx-param=java:comp/env/eis/whitebox-tx-param
+whitebox-notx-param=java:comp/env/eis/whitebox-notx-param
+whitebox-xa-param=java:comp/env/eis/whitebox-xa-param
+whitebox-anno_no_md=java:comp/env/eis/whitebox-anno_no_md
+whitebox-ibanno_no_md=java:comp/env/eis/whitebox-ibanno_no_md
+whitebox-mixedmode=java:comp/env/eis/whitebox-mixedmode
+whitebox-multianno=java:comp/env/eis/whitebox-multianno
+whitebox-mdcomplete=java:comp/env/eis/whitebox-mdcomplete
+whitebox-permissiondd=java:comp/env/eis/whitebox-permissiondd
+
+## Embedded resource adapter property
+whitebox-embed=java:comp/env/eis/ejb_Deployment_whitebox-tx.rar
+
+whitebox-embed-xa="__SYSTEM/resource/ejb_Tsr#whitebox-xa#com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory"
+tsrJndiName=java:comp/TransactionSynchronizationRegistry
+tsrHomeJndiName="java:global/ejb_Tsr/ejb_Tsr_ejb/Tsr"
+
+## JNDI name bindings for JDBC Connector.
+JDBCwhitebox-tx=java:comp/env/eis/JDBCwhitebox-tx
+JDBCwhitebox-notx=java:comp/env/eis/JDBCwhitebox-notx
+JDBCwhitebox-xa=java:comp/env/eis/JDBCwhitebox-xa
+JDBCwhitebox-tx-param=java:comp/env/eis/JDBCwhitebox-tx-param
+JDBCwhitebox-notx-param=java:comp/env/eis/JDBCwhitebox-notx-param
+JDBCwhitebox-xa-param=java:comp/env/eis/JDBCwhitebox-xa-param
+
+#########################################################################
+## Resource adapter configuration values. You must modify these values
+## to plug your JDBC driver into the TS JDBCwhitebox resource adapter.
+##
+## When you run the XA tests (src/com/sun/ts/tests/xa), you must
+## configure this resource adapter to use a database.
+##
+# @xa.properties: These are the properties required by the XA driver. The
+# managed connection factory will set these properties via
+# reflection on the class specified by the
+# xa.xadatasource.class property.
+#
+# Note: The xa.properties value is the set of properties that will be set on
+# your XA JDBC driver (the class denoted by the xa.xadatasource.class property).
+# See section 9.4.1 of the JDBC 3.0 specification for more details.
+#
+# When specifying the xa.properties property please escape the appropriate
+# characters. The xa.properties value needs to be treated as a single property
+# even though it is made up of many properties. The properties need to be
+# separated by :'s and the names and values to be separated by ='s.
+# We also need any values that contain colons or equals that do not
+# need to be interrpretted to be inside single quotes. Anything in
+# single quotes will be treated as a string literal.
+#
+# For example: The following xa.properties property:
+#
+# xa.properties=user=admin:password=some-password:DatabaseName='jdbc:pointbase:server://localhost:9092/cts,new'
+#
+# Would result in the following setters being called on the supplied XA JDBC driver denoted
+# by the xa.xadatasource.class property.
+#
+# XADataSource.setUser("admin");
+# XADataSource.setPassword("some-password");
+# XADataSource.setDatabaseName("jdbc:pointbase:server://localhost:9092/cts,new");
+#
+# Please map the property xa.properties to the property name XAProps and map the
+# xa.xadatasource.class property to the property name XADataSourceName. This will
+# ensure the appropriate setters will be called to make these properties
+# available to the managed connection factory. See section 17.4.2 of the Connector
+# specification version 1.5.
+#
+# @xa.xadatasource.class: The implementation of the XADataSource interface.
+# This class is your XA JDBC driver.
+# Please note: this class and any dependent classes
+# must be accessible by the CTS libraries in the app
+# server's extension directory.
+#
+# @connector_connectionURL: The URL for your JDBC driver. Should be the
+# same as the one used for the rest of the TS.
+#
+#########################################################################
+
+### Cloudscape/Derby properties for XA
+xa.properties="user\\\=${derbyEmbedded.user}\\\:password\\\=${derbyEmbedded.passwd}\\\:DatabaseName\\\=${derbyEmbedded.dbName}"
+xa.xadatasource.class=org.apache.derby.jdbc.EmbeddedXADataSource
+connector_connectionURL="jdbc\\:derby\\:${derbyEmbedded.dbName}\\;create\\=true"
+
+#########################################################################
+## The following properties must be set before running any security
+## related tests. The properties user, password, authuser, authpassword,
+## and nobodyuser must be set.
+##
+## The value for user, password, authuser, and authpassword need to be set
+## exactly as they are set in the container/server.
+#
+# @user User defined to exercise rolemapping feature
+# @password Associated password for the user
+# @authuser User defined to exercise rolemapping feature
+# @authpassword Associated password for the authuser
+# @user_vi Username for the vendor implementation used in
+# interop tests
+# @password_vi Associated password for the VI user
+# @user_ri Username for the reference implementation used in
+# interop tests
+# @password_ri Associated password for the RI user
+# @nobodyuser This value must be the same value returned by a call to
+# getCallerPrincipal().getName() from the ejb-tier when
+# an unauthenticated caller in the web tier invokes an
+# ejb method.
+#########################################################################
+user=j2ee
+password=j2ee
+authuser=javajoe
+authpassword=javajoe
+user_vi=j2ee_vi
+password_vi=j2ee_vi
+user_ri=j2ee_ri
+password_ri=j2ee_ri
+nobodyuser=guest
+
+###############################################################
+# @securedWebServicePort must be set to run secbasicssl and
+# csiv2 tests. Set this property with your application
+# server's secured webservice port.
+# @securedWebServicePort.2 points to the secured webservice
+# port in Sun's Reference Implementation(RI).
+###############################################################
+securedWebServicePort=1044
+securedWebServicePort.2=1045
+
+###############################################################################
+# @client.cert.test.jdk.tls.client.protocols JDK 11 in TLSv1.3 does not support
+# Post-Handshake Authentication, so TLSv1.2 must be used
+# for client-cert authentication to work.
+###############################################################################
+client.cert.test.jdk.tls.client.protocols=TLSv1.2
+
+###############################################################
+# @login This property must be set to run appclient security
+# tests
+###############################################################
+login=default
+
+################################################################################
+##These properties are needed for jms tests.
+#
+# @jms_timeout - this is the amount of time in milliseconds that synchronous
+# receives will wait for a message
+###############################################################################
+jms_timeout=10000
+
+#########################################################################
+
+###############################################################################
+## These properties are needed for the EJB timer tests.
+#
+# @ejb_timeout - this is the amount of time in milliseconds that duration will
+# be set for an ejbtimeout callback method
+#
+# @ejb_wait - this is the amount of time in milliseconds that the client will
+# wait for ejbtimeout callback method results
+##############################################################################
+ejb_timeout=30000
+ejb_wait=60000
+
+###############################################################################
+## This property is needed for ejb30 stateful timeout tests.
+# @test.ejb.stateful.timeout.wait.seconds - the minimum amount of time in seconds
+# the test client waits before verifying the status of the target stateful
+# bean. Its value must be an integer number. Its default value in ts.jte
+# file is 480 seconds. It may be set to a smaller number (e.g., 240 seconds)
+# to speed up testing, depending on the stateful timeout implementation
+# strategy in the target server.
+#
+# For these stateful timeout tests, the property javatest.timeout.factor
+# must be set to a value such that the JavaTest harness does not timeout
+# before the test completes. Usually setting javatest.timeout.factor to
+# 2.0 or greater should suffice.
+###############################################################################
+test.ejb.stateful.timeout.wait.seconds=480
+
+###################################################################
+# @log.file.location This property is used by JACC tests to create
+# and analyze provider logs. Specify the log directory in which
+# your appserver generates logs.
+###################################################################
+log.file.location=${vi.log.file.location}
+
+
+###################################################################
+###################################################################
+###################################################################
+## PROPERTIES USERS WILL NOT HAVE TO SET LIVE BELOW
+###################################################################
+###################################################################
+###################################################################
+
+##
+## The directory seperator for the platform. User should not change
+## this property.
+##
+dirsep=/
+
+##build level
+##1: compile only
+##2: compile and build component archives (e.g., jar's, war's)
+##3: compile and build component and application archives
+##default is set to 3
+build.level=3
+
+deliverable.class=com.sun.ts.lib.deliverable.cts.CTSDeliverable
+
+###################################################################
+## Deliverables wanting ts.* packaging tasks to add extension list
+## attributes to the manifest files must set this property to true.
+###################################################################
+create.manifest.extension.entries=true
+
+######################################################################
+## Deliverables must set this property to the name of the deliverable
+## specific library jar file (iff create.manifest.extension.entries
+## is set to true)
+######################################################################
+tslib.name=cts
+
+###############################################################
+## These properties are used by connector tests and are non configurable
+## and must specify valid username,password to establish TSeis connection.
+###############################################################
+rauser1=cts1
+rapassword1=cts1
+rauser2=cts2
+rapassword2=cts2
+
+###############################################################
+## These properties are for JSTL
+###############################################################
+jstl.db.user=${user1}
+jstl.db.password=${password1}
+
+###############################################################
+## This command is only used when quickly checking any servlet
+## or jsp related tests. The test clients will be run in
+## the same JVM as JavaTest in this case. This mode can be
+## enabled by passing "-Dsame.jvm=true" to the runclient or gui
+## targets. NOTE: This option is only to be used for sanity
+## checking and not when running CTS for compatibility.
+###############################################################
+command.testExecuteSameJVM=com.sun.ts.lib.harness.ExecuteTSTestSameJVMCmd \
+ $testExecuteClass $testExecuteArgs
+
+###############################################################
+## These properties are used for the JDBC specific tests,
+## they do not need to be changed.
+###############################################################
+DriverManager=no
+Driver=DriverOnlyUsedIfDriverManagerIsYes
+db1=db1OnlyUsedIfDriverManagerIsYes
+db2=db1OnlyUsedIfDriverManagerIsYes
+ptable=ctstable1
+ftable=ctstable2
+cofSize=5
+cofTypeSize=5
+binarySize=24
+varbinarySize=48
+longvarbinarySize=50
+
+ts_home=${ts.home}
+
+#######################################################################
+## platform.mode is used by jpa tests to know whether to use
+## the Java EE Programming Model for service and port access.
+## platform.mode=jakartaEE Java EE Programming Model
+######################################################################
+platform.mode=jakartaEE
+
+###########################################################################
+# tools.jar should be set to the location of the tools.jar from the installed
+# jdk
+###########################################################################
+tools.jar=/home/jenkins/agent/workspace/jakartaee-tck_master/modules/webservices-tools.jar:/home/jenkins/agent/workspace/jakartaee-tck_master/modules/webservices-api.jar
+
+###########################################################################
+# various flags used by the generation tools
+###########################################################################
+wsgen.ant.classname=
+wsgen.classpath=${javaee.classes}${pathsep}${tools.jar}
+wsgen.verbose=true
+wsgen.debug=false
+wsimport.ant.classname=
+wsimport.classpath=${javaee.classes}${pathsep}${tools.jar}
+wsimport.verbose=true
+wsimport.debug=false
+wsimport.jvmargs=
+
+###########################################################################
+# various flags used by Suns generation tools
+# DO NOT EDIT
+###########################################################################
+ri.wsgen.ant.classname=com.sun.tools.ws.ant.WsGen
+ri.wsgen.classpath=${javaee.classes.ri}${pathsep}${tools.jar}
+ri.wsgen.verbose=true
+ri.wsgen.debug=false
+ri.wsimport.ant.classname=com.sun.tools.ws.ant.WsImport
+ri.wsimport.classpath=${javaee.classes.ri}${pathsep}${tools.jar}
+ri.wsimport.verbose=true
+ri.wsimport.debug=false
+ri.wsimport.jvmargs=
+
+#################################
+## Packaging properties for DAOs
+#################################
+ts.dao.root=com/sun/ts/tests/common/dao
+
+ts.dao.classes.base=\
+ ${ts.dao.root}/InvalidDAOSettingException.class, \
+ ${ts.dao.root}/DAOException.class, \
+ ${ts.dao.root}/DAO.class, \
+ ${ts.dao.root}/DataSourceDAO*.class, \
+ ${ts.dao.root}/DAOFactory.class, \
+ ${ts.dao.root}/TSDAOFactory*.class, \
+ ${ts.dao.root}/coffee/CoffeeBean.class, \
+ ${ts.dao.root}/coffee/CoffeeDAO.class, \
+ ${ts.dao.root}/coffee/TxCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/StringPKCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/LongPKCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/FloatPKCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/CompoundPK.class, \
+ ${ts.dao.root}/coffee/variants/CompoundPKCoffeeDAO.class
+
+ts.dao.classes.impl=\
+ ${ts.dao.root}/coffee/DataSourceCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/StringPKDSCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/LongPKDSCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/FloatPKDSCoffeeDAO.class, \
+ ${ts.dao.root}/coffee/variants/CompoundPKDSCoffeeDAO.class
+
+ts.dao.classes.coffee.standard=\
+ ${ts.dao.classes.base}, \
+ ${ts.dao.classes.impl}
+
+ts.dao.classes.coffee.txaware=\
+ ${ts.dao.classes.base}, \
+ ${ts.dao.classes.impl}
+
+ts.dao.classes.coffee.variants=\
+ ${ts.dao.classes.base}, \
+ ${ts.dao.classes.impl}
+
+#####################################
+## Packaging properties for Wrappers
+#####################################
+
+ts.wrappers.ejb.root=com/sun/ts/tests/common/ejb/wrappers
+
+ts.wrappers.web.root=com/sun/ts/tests/common/web
+
+## Classes to package in ejb-jar for EJB Stateless wrapper
+ts.wrappers.classes.stateless.ejb=\
+ ${ts.wrappers.ejb.root}/StatelessWrapper.class
+
+## Classes to package in ejb-jar for EJB Stateful wrapper
+ts.wrappers.classes.stateful.ejb=\
+ ${ts.wrappers.ejb.root}/StatefulWrapper.class
+
+## Classes to package in ejb-jar for EJB BMP wrapper
+ts.wrappers.classes.bmp.ejb=\
+ ${ts.dao.classes.coffee.standard}, \
+ ${ts.wrappers.ejb.root}/BMPWrapper.class
+
+## Classes to package in ejb-jar for EJB CMP 1.1 wrapper
+ts.wrappers.classes.cmp11.ejb=${ts.wrappers.ejb.root}/CMP11Wrapper.class
+
+## Classes to package in ejb-jar for EJB CMP 2.0 wrapper
+ts.wrappers.classes.cmp20.ejb=${ts.wrappers.ejb.root}/CMP20Wrapper.class
+
+## Classes to package in ejb-jar for EJB MDB wrapper
+ts.wrappers.classes.mdb.ejb=\
+ com/sun/ts/tests/jms/common/JmsUtil.class, \
+ com/sun/ts/tests/jms/commonee/ParentMsgBean.class, \
+ ${ts.wrappers.ejb.root}/MDBWrapper.class
+
+## Classes to package in client module for EJB MDB wrapper
+ts.wrappers.classes.mdb.client=com/sun/ts/tests/jms/commonee/Client.class
+
+## Classes to package in ejb-jar for all EJB wrappers
+ts.wrappers.classes.all.ejb=\
+ ${ts.wrappers.classes.stateless.ejb}, \
+ ${ts.wrappers.classes.stateful.ejb}, \
+ ${ts.wrappers.classes.bmp.ejb}, \
+ ${ts.wrappers.classes.cmp11.ejb}, \
+ ${ts.wrappers.classes.cmp20.ejb}, \
+ ${ts.wrappers.classes.mdb.ejb}
+
+## Classes to package in client module for all WEB wrappers
+ts.wrappers.classes.web.client=\
+ ${ts.wrappers.web.root}/WebServer.class
+
+## Classes to package in war for all WEB wrappers
+ts.wrappers.classes.web.server=\
+ ${ts.wrappers.web.root}/WebUtil.class, \
+ ${ts.wrappers.web.root}/JSPBeanWrapper.class, \
+ ${ts.wrappers.web.root}/ServletWrapper.class
+
+## Classes to package in client module for Servlet wrapper
+ts.wrappers.classes.servlet.client=${ts.wrappers.classes.web.client}
+
+## Classes to package in war for Servlet wrappers
+ts.wrappers.classes.servlet.server=\
+ ${ts.wrappers.web.root}/WebUtil.class, \
+ ${ts.wrappers.web.root}/ServletWrapper.class
+
+## Classes to package in client module for JSP wrapper
+ts.wrappers.classes.jsp.client=${ts.wrappers.classes.web.client}
+
+## Classes to package in war for JSP wrappers
+ts.wrappers.classes.jsp.server=\
+ ${ts.wrappers.web.root}/WebUtil.class, \
+ ${ts.wrappers.web.root}/JSPBeanWrapper.class
+
+
+###############################################################################
+## DO NOT MODIFY ANY PROPERTIES BELOW THIS LINE.
+###############################################################################
+
+#classpath used by standard deployment server to deploy to the RI in a separate
+#VM (DO NOT MODIFY)
+ts.standard.deployment.server.classpath=${ant.jars}:${pathsep}${ts.run.classpath.ri}${pathsep}${ts.home}/lib/javatest.jar${pathsep}${ts.home}/lib/jdom-1.1.3.jar${pathsep}${ri.modules}/admin-cli.jar
+
+harness.deployment.server.port=2002
+
+java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory
+org.omg.CORBA.ORBClass=foo
+undeploy_redeploy_apps=${UNDEPLOY_REDEPLOY_FLAG}
+
+###############################################################################
+# The following properties are aliases for the old J2EE properties. These
+# properties are now named javaee instead of j2ee and will eventually be phased
+# out of the CTS. These props are necessary until the props are renamed
+# through out all CTS.
+###############################################################################
+j2ee.home=${javaee.home}
+j2ee.home.ri=${javaee.home.ri}
+
+####################################################################
+## This propertry is passed to any test
+## that needs to programatically login from with the appclient
+## container and propogate that login context to test code running
+## within the EJB container. The value is a no-op. The fact that
+## the test includes the property is sufficient to cause the
+## EJBVehicleRunner to programatically login. To have a test
+## include this property simply add it to the javatest props list
+## of the test.
+####################################################################
+secured.ejb.vehicle.client=true
+
+####################################################################
+# This property is used to point to the location of the
+# implementation of VariableMapper. The value for sjsas 9.x is
+#
+# variable.mapper=org.glassfish.expressly.lang.VariableMapperImpl
+#
+####################################################################
+variable.mapper=org.glassfish.expressly.lang.VariableMapperImpl
+
+#######################################################################
+# Endpoint API test
+#
+# Port info is obtained dynamically for Endpoint API test.
+# Uncomment port range min/max if you want to specify port range
+# for Endpoint publish test.
+# Server endpoints will be published on ports within this range.
+# If you do not want to dynamically obtain the port but wish to publish
+# to a fixed static port than make the values below both equal to the
+# specific port.
+#######################################################################
+port.range.min=1025
+port.range.max=10000
+
+################################################################
+# @http.server.supports.endpoint.publish
+# Does HTTP server-side support endpoint publish API's.
+# @http.server.supports.endpoint.publish.2
+# Does the RI HTTP server-side support endpoint publish API's.
+#
+# http.server.supports.endpoint.publish=(true|false)
+# DO NOT TOUCH - value MUST be false for managed environments like Java EE
+################################################################
+http.server.supports.endpoint.publish=false
+http.server.supports.endpoint.publish.2=false
+
+###########################################################################
+# This property is used by some test clients that need a delay between
+# method invocations to server endpoints. The value specified is the amount
+# of time the client will delay in seconds.
+###########################################################################
+client.delay=1
+
+#######################################################################
+## This persistence unit name is used by jpa/ee/pluggability tests. Its value is the
+## same as the name attribute in persistence.xml
+######################################################################
+persistence.unit.name=CTS-EM
+
+###############################################################
+# @db.supports.sequence
+#
+# - This property is used to determine if a database supports
+# the use of SEQUENCE. If it does not, this property
+# should be set to false so the test is not run. The
+# default value is true.
+# This value should be set to false for the following databases:
+# sybase, mysql, and mssqlserver.
+###############################################################
+db.supports.sequence=true
+
+#######################################################################
+## @persistence.second.level.caching.supported
+## - This property is used to determine if the persistence provider supports
+## second level caching.
+######################################################################
+persistence.second.level.caching.supported=true
+
+##########################################################################
+## This section contains all properties that are specific to JAX-RS Tests.
+## All default values are specific to GlassFish and Jersey.
+##
+## servlet_adaptor - implementation specific servlet for JAX-RS
+## jaxrs_impl_class.dir - Directory that servlet_adaptor locates
+## jaxrs_impl_name - used to tag intermediate file names
+##########################################################################
+servlet_adaptor=org/glassfish/jersey/servlet/ServletContainer.class
+jaxrs_impl_lib=${javaee.home}/modules/jakarta.ws.rs-api.jar
+jaxrs_impl_name=jersey
+
+
+##########################################################################
+# This section contains all properties that are specific to JSR-196 Tests.
+# All default values are specific to GlassFish.
+#
+# @servlet.is.jsr115.compatible This property is used by JASPIC tests
+# to determine if the servlet container is a jsr 115 compatible
+# container. (true = compatible to JSR 115, false = not compatible.)
+#
+# @soap.is.jsr115.compatible This may used by JASPIC tests to
+# determin if the SOAP container is JSR 115 compatible. This is
+# only used when running SOAP profile tests.
+#
+# @provider.configuration.file
+# This property is used by JASPIC tests to configure TestSuite's
+# AuthConfig Provider and points at an xml file which is used
+# to register the JASPIC test providers into the current
+# ACF. This file contaiins known/expected test provider info.
+# Only app-context-id element can be edited to suit the
+# impl under test.
+#
+# @schema.file.location
+# This points to the directory that the provider-configuration.xsd
+# file will live. The provider-configuration.xsd is used to
+# describe the provider.configuration.file (above).
+#
+# @logical.hostname.servlet
+# This used to identify the the name of a logical host that
+# processes Servlet requests. Servlet requests may be directed to
+# a logical host using various physical or virtual host names or
+# addresses, and a message processing runtime may be composed of
+# multiple logical hosts (This is required to properly identify
+# the servlet profiles AppContextId hostname.)
+# If a logical.hostname.servlet does not exist, you can set this
+# to the default hostname (eg webServerHost).
+#
+# @logical.hostname.soap
+# This property is used to identify the name of the logical host
+# that processes soap requests. This hostname is used in server
+# side Application context Identifier in soap profile.
+#
+# @appclient.log.output
+# The client logging level for appclient container depends on the
+# log level specified in sun-acc.xml
+#
+# This log level directly affects the output of TSLogger which
+# logs the JSR196 SPI calls made in appclient container.
+#
+# using this property we enable the appclient container's
+# logging level to INFO
+#
+# @vendor.authconfig.factory
+# This property specifies vendor's authconfig factory class
+# this will be used by JASPIC tests to register TestSuite's
+# provider in Vendor's AuthConfig Factory.
+#
+# For example for SJSAS RI this value is
+#
+# vendor.authconfig.factory=
+# com.sun.enterprise.security.jmac.config.GFAuthConfigFactory
+#
+##########################################################################
+servlet.is.jsr115.compatible=true
+soap.is.jsr115.compatible=false
+provider.configuration.file=${javaee.home}/domains/domain1/config/ProviderConfiguration.xml
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+vendor.authconfig.factory=com.sun.enterprise.security.jmac.config.GFAuthConfigFactory
+
+##########################################################################
+# @servlet_waittime: Time in seconds to wait after HttpSession expires
+# to access the session
+# @servlet_async_wait: Time in seconds to wait between sending asynchronous messages
+##########################################################################
+servlet_waittime=10
+servlet_async_wait=4
+
+##########################################################################################
+# The following properties are ONLY used if testing a Standalone JMS Resource Adapter.
+# Since support for a JMS Resource Adapter is OPTIONAL by the JMS 2.0 Specification
+# this funtionality is USE AT YOUR OWN RISK. We WILL NOT support it. Its here in the
+# case that a vendor wants to test a Standalone JMS Resource Adapter which is OPTIONAL.
+#
+# test.sa.jmsra // Set to true ONLY if testing a standalone JMS Resource Adapter
+# jmsra.rarfile // Location of the standalone JMS Resource Adapter RAR file
+# jmsra.jarfile // Location of the standalone JMS Resource Adapter JAR file
+#
+# A standalone JMS Resource Adapter requires deployment/configuration to the Vendor
+# Implementation under test (Example: Java EE 8 RI). If not testing a standalone JMS
+# Resource Adapter then these properties MUST NOT be used and the value of the property
+# (test.sa.jmsra) MUST BE SET to false (which is the DEFAULT setting). If you set the
+# property (test.sa.jmsra=true) then you are testing a standalone JMS Resource Adapter
+# and the (jmsra.rarfile and jmsra.jarfile) properties must point to the location of
+# the standalone JMS Resource Adapter RAR and JAR files. During CTS configuration the
+# (config.vi) ant task will call another script that will deploy the standalone JMS
+# Resource Adapter, configure the standalone JMS Resource Adapter, create the JMS
+# connector connection pools, create the JMS connector resources, and finally create
+# the JMS administration objects. The ant scripts that handles all of these steps for
+# the (Java EE 8 RI) are the following:
+#
+# $TS_HOME/bin/xml/impl/glassfish/jmsra.xml
+# $TS_HOME/bin/xml/impl/glassfish/templates/create.jmsra.template
+#
+# These scripts work for the Standalone Generic JMS Resource Adapter (GenericJMSRA)
+# located at: (http://genericjmsra.java.net/). If testing another standalone JMS
+# Resource Adapter then these scripts will need to be rewritten/modified for that
+# JMS Resource Adapter.
+#
+# Here is the summary of steps of what the (jmsra.xml) script does. It configures the JMS
+# resource adapter by doing a resource-adapter-config, it deploys the JMS resource adapter
+# RAR file specified in the "jmsra.rarfile" property to the (Java EE 8 RI), it copies the
+# JMS Resource Adapter JAR file specified in the "jmsra.jarfile" property to the (Java EE
+# 8 RI) lib directory under $JAVAEE_HOME/lib. It copies some of the JMS client library jars
+# to the $JAVAEE_HOME/lib directory. it then creates the JMS connector connection pools,
+# the JMS connector resources, and the JMS administration objects that are needed by CTS.
+# When the (config.vi) ant task completes the Java EE 8 environment will be ready to run
+# the JMS CTS tests. One final step is needed to the JMS MDB CTS tests which is to modify
+# the sun-ejb-jar runtime xml files by adding the deployment info.
+#
+# Here are the manual steps for the Standalone Generic JMS Resource Adapter (GenericJMSRA)
+# after the (config.vi) ant task completes.
+#
+# (1) Edit the ts.jte file and add the following:
+# Add "-Dgenericra.inAppClientContainer=true" to the "command.testExecuteAppClient"
+# property and then add "${pathsep}${jmsra.jarfile}" to the end of APPCPATH variable
+# in the same "command.testExecuteAppClient" property. You can refer to the Generic
+# JMS Resource Adapter (GenericJMSRA) user guide for more information on this.
+# (2) Modify the sun-ejb-jar runtime xml files for the JMS MDB tests by adding the
+# deployment info.
+# cd $TS_HOME/bin
+# ant -f xml/impl/glassfish/jmsra.xml modify-jmsmdbejbxml
+# (3) Now you can run the JMS CTS tests. After you are done running the JMS CTS tests ypu
+# can unconfigure the Java EE 8 RI and restore the original sun-ejb-jar runtime xml
+# files.
+# cd $TS_HOME/bin
+# ant -f xml/impl/glassfish/jmsra.xml restore-jmsmdbejbxml
+# ant clean.vi
+# (4) Finally reset the properties back to there defaults. Set (test.sa.jmsra=false) and unset
+# (jmsra.rarfile and jmsra.jarfile). Remove the "-Dgenericra.inAppClientContainer=true"
+# and "${pathsep}${jmsra.jarfile}" from the ts.jte file from step 1.
+#
+# If using a different Java EE environment from the Java EE RI than a vendor will need to
+# provide his own JMS Resource Adapter support scripts needed for that Java EE environment.
+# It can reuse/modify the (Java EE 8 RI) scripts above or simply write their own scripts. A
+# vendor can use the Java EE 8 RI or any Java EE 8 implementation of its choice as the Java
+# EE 8 environment for testing its Standalone JMS Resource Adapter. The Standalone JMS Resource
+# Adapter MUST pass all of the JMS CTS tests under: (TS_HOME/src/com/sun/ts/tests/jms) in order
+# to be declared fully JMS 2.0 compliant.
+#
+# See the JMS 2.0 Specification and the CTS 8 User's Guide for more information.
+##########################################################################################
+test.sa.jmsra=false
+jmsra.rarfile=
+jmsra.jarfile=
+
+##########################################################################################
+# The following property specifies the name of the JMS Resource Adapter under test. The
+# Java EE 8 RI contains its own builtin JMS Resource Adapter (JMSRA). Its name is "jmsra".
+# So we set (jmsra.name=jmsra) as the default value for the Java EE 8 RI.
+#
+# Change the value of this property for the JMS Resource Adapter that is under test. This
+# hardcoded value is specific to the Java EE 8 RI.
+#
+# jmsra.name // Name of JMS Resource Adapter for the implementation under test
+##########################################################################################
+jmsra.name=jmsra
+
+
+##########################################################################
+# The following property is for WebSocket tests.
+#
+# @ws_wait: waiting time in seconds for socket to send/receive a message
+##########################################################################
+ws_wait=5
+
+############################################################################################
+# These following properties are needed for Javamail tests.
+#
+# @mailHost hostname of the mail server
+# @mailuser1 must be set to a valid email address where test mails will be sent to.
+# @mailFrom reply to address set in the email messages generated by the javamail tests
+# @javamail.username user account name on server
+# @javamail.password password for the mailuser1
+#
+############################################################################################
+
+mailHost=localhost
+mailuser1=user01@james.local
+mailFrom=user01@james.local
+javamail.password=1234
+smtp.port=1025
+imap.port=1143
+
+### User need not change the following javamail properties
+
+javamail.username=${mailuser1}
+transport_protocol=smtp
+
+# mail server used to run tests against.
+javamail.server=${mailHost}
+
+# protocol used to run the Store tests
+javamail.protocol=imap
+
+# mail server used to run tests against.
+javamail.transport.server=$javamail.server
+
+# rootpath of test mailboxes
+javamail.root.path=mailboxes
+
+# note the mailbox 'test1'
+javamail.mailbox=test1
+
+# search pattern used by list tests in Folder
+javamail.listpattern=test
+
+# your own login account name
+smtp.username=$javamail.username
+
+# smtp domain name ; i.e. oracle.com
+smtp.domain=$javamail.server
+
+# smtp From address
+smtp.from=$smtp.username
+
+# smtp To address
+smtp.to=$smtp.username
+
+# io file
+iofile=MailIOFile.txt
+
+#####################################################################################################
+#### Properties used by ldap installation
+# @ldap.server -- The type of ldap server. unboundid is supported by now
+# @ldap.install.server -- Install ldap server by CTS script or not
+# @ldap.ldif.file -- The ldif file containing data seeded in ldap server
+#
+# @unboundid.installation.package -- The package for installing Unboundid ldap server
+########################################################################################################
+ldap.server=unboundid
+ldap.install.server=true
+ldap.ldif.file=${ts.home}/bin/ldap.ldif
+
+unboundid.installation.package=${ts.home}/lib/unboundid-ldapsdk.jar
+
+#####################################################################################################
+# Properties used for JPA 2.2 Tests
+########################################################################################################
+persistencs.properties.file=${bin.dir}/jpa-provider.properties
+persistence.unit.name.2=JPATCK2
+
+jpa.provider.implementation.specific.properties=eclipselink.logging.level\=OFF
+jakarta.persistence.provider=org.eclipse.persistence.jpa.PersistenceProvider
+jakarta.persistence.jdbc.driver=${derby.driver}
+jakarta.persistence.jdbc.url=${derby.url}
+jakarta.persistence.jdbc.user=${derby.user}
+jakarta.persistence.jdbc.password=${derby.passwd}
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/tssql.stmt b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/tssql.stmt
new file mode 100644
index 0000000000..2d279c5402
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/jakartaeetck/bin/tssql.stmt
@@ -0,0 +1,805 @@
+# @(#)ctssql.dml.derby 1.16 01/06/20
+#-------------------------------------------------
+#All sql DML statements used in the test cases against derby
+#-------------------------------------------------
+
+
+
+Dbschema_Tab1_Insert=insert into ctstable2 values(?, ?, ?, ?)
+Dbschema_Tab2_Insert=insert into ctstable1 values(?, ?)
+
+Dbschema_Tab1_Delete=delete from ctstable2
+Dbschema_Tab2_Delete=delete from ctstable1
+
+Dbschema_Concur_Insert=insert into concurrencetable values(?, ?)
+Dbschema_Concur_Delete=delete from concurrencetable
+
+#******************************************************************
+# SQL Statements for creating procedures in side the test.
+#******************************************************************
+
+UpdCoffee_Proc=create method alias UpdCoffee_Proc for com.sun.ts.lib.tests.jdbc.CS_Procs.UpdCoffee_Proc
+
+#******************************************************************
+# SQL Statements for deleting tables for appropriate JDBC Datatypes
+#******************************************************************
+
+Numeric_Tab_Delete=delete from Numeric_Tab
+
+Decimal_Tab_Delete=delete from Decimal_Tab
+
+Double_Tab_Delete=delete from Double_Tab
+
+Float_Tab_Delete=delete from Float_Tab
+
+Real_Tab_Delete=delete from Real_Tab
+
+Bit_Tab_Delete=delete from Bit_Tab
+
+Smallint_Tab_Delete=delete from Smallint_Tab
+
+Tinyint_Tab_Delete=delete from Tinyint_Tab
+
+Integer_Tab_Delete=delete from Integer_Tab
+
+Bigint_Tab_Delete=delete from Bigint_Tab
+
+Char_Tab_Delete=delete from Char_Tab
+
+Varchar_Tab_Delete=delete from Varchar_Tab
+
+Longvarchar_Tab_Delete=delete from Longvarchar_Tab
+
+Longvarcharnull_Tab_Delete=delete from Longvarcharnull_Tab
+
+Date_Tab_Delete=delete from Date_Tab
+
+Time_Tab_Delete=delete from Time_Tab
+
+Timestamp_Tab_Delete=delete from Timestamp_Tab
+
+Binary_Tab_Delete=delete from Binary_Tab
+
+Varbinary_Tab_Delete=delete from Varbinary_Tab
+
+Longvarbinary_Tab_Delete=delete from Longvarbinary_Tab
+
+
+
+#****************************************************
+# SQL Statements for inserting values into the tables
+#****************************************************
+
+Numeric_Tab_Insert=insert into Numeric_Tab values(999999999999999,0.000000000000001, null)
+
+Decimal_Tab_Insert= insert into Decimal_Tab values(999999999999999,0.000000000000001, null)
+
+#Double_Tab_Insert=insert into Double_Tab values(1.7976931348623157E308,4.9E-324,null)
+Double_Tab_Insert=insert into Double_Tab values(1.0E125,1.0E-130,null)
+
+Float_Tab_Insert=insert into Float_Tab values(3.4028235E37,1.4E-45,null)
+
+Real_Tab_Insert= insert into Real_Tab values(3.402E38,1.4E-37, null)
+
+Bit_Tab_Insert=insert into Bit_Tab values(true,false,null)
+
+Smallint_Tab_Insert= insert into Smallint_Tab values(32767,-32768,null)
+
+Tinyint_Tab_Insert=insert into Tinyint_Tab values(127,0,null)
+
+Integer_Tab_Insert=insert into Integer_Tab values(2147483647,-2147483648,null)
+
+Bigint_Tab_Insert= insert into Bigint_Tab values(9223372036854775807,-9223372036854775808,null)
+
+Char_Tab_Insert= insert into Char_Tab values('Test Coffee', null)
+
+Varchar_Tab_Insert= insert into Varchar_Tab values('Test Coffee',null)
+
+Longvarchar_Tab_Insert= insert into Longvarchar_Tab values('Test Coffee')
+
+Longvarcharnull_Tab_Insert= insert into Longvarcharnull_Tab values(null)
+
+Date_Tab_Insert=insert into Date_Tab values({d '1999-05-05'}, null)
+
+Time_Tab_Insert= insert into Time_Tab values({t '12:59:59'}, null)
+
+Timestamp_Tab_Insert= insert into Timestamp_Tab values({ts '1999-12-31 12:59:59'}, null)
+
+Binary_Tab_Insert= insert into Binary_Tab values(null)
+
+Varbinary_Tab_Insert= insert into Varbinary_Tab values(null)
+
+Longvarbinary_Tab_Insert= insert into Longvarbinary_Tab values(null)
+
+Boolean_Tab_Insert = insert into Boolean_Tab values(true,false,null)
+
+
+#*****************************************************
+# SQL Statements for retrieving values from the tables
+#*****************************************************
+
+SelCoffeeAll=SELECT COF_NAME, PRICE FROM ctstable2
+SelCoffeeNull=select * from ctstable2 where TYPE_ID=0
+
+Numeric_Query_Max=Select MAX_VAL from Numeric_Tab
+Numeric_Query_Min=Select MIN_VAL from Numeric_Tab
+Numeric_Query_Null=Select NULL_VAL from Numeric_Tab
+
+Decimal_Query_Max=Select MAX_VAL from Decimal_Tab
+Decimal_Query_Min=Select MIN_VAL from Decimal_Tab
+Decimal_Query_Null=Select NULL_VAL from Decimal_Tab
+
+Double_Query_Max=Select MAX_VAL from Double_Tab
+Double_Query_Min=Select MIN_VAL from Double_Tab
+Double_Query_Null=Select NULL_VAL from Double_Tab
+
+Float_Query_Max=Select MAX_VAL from Float_Tab
+Float_Query_Min=Select MIN_VAL from Float_Tab
+Float_Query_Null=Select NULL_VAL from Float_Tab
+
+Real_Query_Max=Select MAX_VAL from Real_Tab
+Real_Query_Min=Select MIN_VAL from Real_Tab
+Real_Query_Null=Select NULL_VAL from Real_Tab
+
+Bit_Query_Max=Select MAX_VAL from Bit_Tab
+Bit_Query_Min=Select MIN_VAL from Bit_Tab
+Bit_Query_Null=Select NULL_VAL from Bit_Tab
+
+Smallint_Query_Max=Select MAX_VAL from Smallint_Tab
+Smallint_Query_Min=Select MIN_VAL from Smallint_Tab
+Smallint_Query_Null=Select NULL_VAL from Smallint_Tab
+
+Tinyint_Query_Max=Select MAX_VAL from Tinyint_Tab
+Tinyint_Query_Min=Select MIN_VAL from Tinyint_Tab
+Tinyint_Query_Null=Select NULL_VAL from Tinyint_Tab
+
+Integer_Query_Max=Select MAX_VAL from Integer_Tab
+Integer_Query_Min=Select MIN_VAL from Integer_Tab
+Integer_Query_Null=Select NULL_VAL from Integer_Tab
+
+Bigint_Query_Max=Select MAX_VAL from Bigint_Tab
+Bigint_Query_Min=Select MIN_VAL from Bigint_Tab
+Bigint_Query_Null=Select NULL_VAL from Bigint_Tab
+
+Char_Query_Name=Select COFFEE_NAME from Char_Tab
+Char_Query_Null=Select NULL_VAL from Char_Tab
+
+Varchar_Query_Name=Select COFFEE_NAME from Varchar_Tab
+Varchar_Query_Null=Select NULL_VAL from Varchar_Tab
+
+Longvarchar_Query_Name=Select COFFEE_NAME from Longvarchar_Tab
+Longvarchar_Query_Null=Select NULL_VAL from Longvarcharnull_Tab
+
+Date_Query_Mfg=Select MFG_DATE from Date_Tab
+Date_Query_Null=Select NULL_VAL from Date_Tab
+
+Time_Query_Brk=Select BRK_TIME from Time_Tab
+Time_Query_Null=Select NULL_VAL from Time_Tab
+
+Timestamp_Query_In=Select IN_TIME from Timestamp_Tab
+Timestamp_Query_Null=Select NULL_VAL from Timestamp_Tab
+
+Binary_Query_Val=Select BINARY_VAL from Binary_Tab
+Varbinary_Query_Val=Select VARBINARY_VAL from Varbinary_Tab
+Longvarbinary_Query_Val=Select LONGVARBINARY_VAL from Longvarbinary_Tab
+
+
+
+
+
+#***************************************
+# SQL Statements for updating the tables
+#***************************************
+
+Numeric_Tab_Max_Update=update Numeric_Tab set MAX_VAL=?
+Numeric_Tab_Min_Update=update Numeric_Tab set MIN_VAL=?
+Numeric_Tab_Null_Update=update Numeric_Tab set NULL_VAL=?
+
+Decimal_Tab_Max_Update=update Decimal_Tab set MAX_VAL=?
+Decimal_Tab_Min_Update=update Decimal_Tab set MIN_VAL=?
+Decimal_Tab_Null_Update=update Decimal_Tab set NULL_VAL=?
+
+Double_Tab_Max_Update=update Double_Tab set MAX_VAL=?
+Double_Tab_Min_Update=update Double_Tab set MIN_VAL=?
+Double_Tab_Null_Update=update Double_Tab set NULL_VAL=?
+
+Float_Tab_Max_Update=update Float_Tab set MAX_VAL=?
+Float_Tab_Min_Update=update Float_Tab set MIN_VAL=?
+Float_Tab_Null_Update=update Float_Tab set NULL_VAL=?
+
+Real_Tab_Max_Update=update Real_Tab set MAX_VAL=?
+Real_Tab_Min_Update=update Real_Tab set MIN_VAL=?
+Real_Tab_Null_Update=update Real_Tab set NULL_VAL=?
+
+Bit_Tab_Max_Update=update Bit_Tab set MAX_VAL=?
+Bit_Tab_Min_Update=update Bit_Tab set MIN_VAL=?
+Bit_Tab_Null_Update=update Bit_Tab set NULL_VAL=?
+
+Smallint_Tab_Max_Update=update Smallint_Tab set MAX_VAL=?
+Smallint_Tab_Min_Update=update Smallint_Tab set MIN_VAL=?
+Smallint_Tab_Null_Update=update Smallint_Tab set NULL_VAL=?
+
+Tinyint_Tab_Max_Update=update Tinyint_Tab set MAX_VAL=?
+Tinyint_Tab_Min_Update=update Tinyint_Tab set MIN_VAL=?
+Tinyint_Tab_Null_Update=update Tinyint_Tab set NULL_VAL=?
+
+Integer_Tab_Max_Update=update Integer_Tab set MAX_VAL=?
+Integer_Tab_Min_Update=update Integer_Tab set MIN_VAL=?
+Integer_Tab_Null_Update=update Integer_Tab set NULL_VAL=?
+
+Bigint_Tab_Max_Update=update Bigint_Tab set MAX_VAL=?
+Bigint_Tab_Min_Update=update Bigint_Tab set MIN_VAL=?
+Bigint_Tab_Null_Update=update Bigint_Tab set NULL_VAL=?
+
+Char_Tab_Name_Update=update Char_Tab set COFFEE_NAME=?
+Char_Tab_Null_Update=update Char_Tab set NULL_VAL=?
+
+Varchar_Tab_Name_Update=update Varchar_Tab set COFFEE_NAME=?
+Varchar_Tab_Null_Update=update Varchar_Tab set NULL_VAL=?
+
+Longvarchar_Tab_Name_Update=update Longvarchar_Tab set COFFEE_NAME=?
+Longvarchar_Tab_Null_Update=update Longvarcharnull_Tab set NULL_VAL=?
+
+Date_Tab_Mfgdate_Update=update Date_Tab set MFG_DATE=?
+Date_Tab_Null_Update=update Date_Tab set NULL_VAL=?
+
+Time_Tab_Brktime_Update=update Time_Tab set BRK_TIME=?
+Time_Tab_Null_Update=update Time_Tab set NULL_VAL=?
+
+Timestamp_Tab_Intime_Update=update Timestamp_Tab set IN_TIME=?
+Timestamp_Tab_Null_Update=update Timestamp_Tab set NULL_VAL=?
+
+Binary_Tab_Val_Update=update Binary_Tab set BINARY_VAL=?
+Varbinary_Tab_Val_Update=update Varbinary_Tab set VARBINARY_VAL=?
+Longvarbinary_Tab_Val_Update=update Longvarbinary_Tab set LONGVARBINARY_VAL=?
+
+CoffeeTab_Query=select COF_NAME,PRICE from ctstable2 where TYPE_ID=?
+CoffeeTab_Delete=delete from ctstable2 where KEY_ID=?
+
+CoffeeTab_Select=select PRICE from ctstable2 where KEY_ID=?
+CoffeeTab_Update=update ctstable2 set PRICE=PRICE*20 where TYPE_ID=?
+
+Ins_Coffee_Tab=insert into ctstable2 values (9,'COFFEE-9',9.0,5)
+Del_Coffee_Tab=delete from ctstable2 where KEY_ID=9
+Upd_Coffee_Tab=update ctstable2 set PRICE=PRICE*20 where TYPE_ID=1
+Sel_Coffee_Tab=select PRICE from ctstable2 where KEY_ID>4
+
+#**********************************************************************************
+# is used in ResultSet. To update with BIT value.
+#**********************************************************************************
+Update_decimal_tab=update Decimal_Tab set MAX_VAL=1.0, MIN_VAL=0.0, NULL_VAL=null
+Update_numeric_tab=update Numeric_Tab set MAX_VAL=1.0, MIN_VAL=0.0, NULL_VAL=null
+Update_char_tab1=update Char_Tab set COFFEE_NAME=1, NULL_VAL=null
+Update_char_tab2=update Char_Tab set COFFEE_NAME=0, NULL_VAL=null
+Update_varchar_tab1=update Varchar_Tab set COFFEE_NAME=1, NULL_VAL=null
+Update_varchar_tab2=update Varchar_Tab set COFFEE_NAME=0, NULL_VAL=null
+
+#**********************************************************************************
+# is used in BatchUpdate Tests.
+#**********************************************************************************
+BatchUpdate_Query=select count(*) from ctstable2 where TYPE_ID=?
+BatchUpdate_Delete=delete from ctstable2
+BatchInsert_String=insert into ctstable2 values(?,?,?,?)
+
+#**********************************************************************************
+# is used in BatchUpdate exception
+#**********************************************************************************
+Coffee_InsTab=insert into ctstable2 values (9,'COFFEE-9',9.0,5)
+Coffee_DelTab=delete from ctstable2 where KEY_ID=2
+Coffee_UpdTab=update ctstable2 set PRICE=PRICE*20 where TYPE_ID=1
+Coffee_SelTab=select PRICE from ctstable2 where KEY_ID>4
+Coffee_Inscount_Query=select count(*) from ctstable2 where KEY_ID=9
+Coffee_Delcount_Query=select count(*) from ctstable2 where KEY_ID=2
+Coffee_Updcount_Query=select count(*) from ctstable2 where TYPE_ID=1
+CoffeeTab_Continue1=update ctstable2 set KEY_ID=?, COF_NAME=? where COF_NAME=?
+CoffeeTab_ContinueSelect1=Select count(*) from ctstable2 where COF_NAME in ('Continue-1')
+CoffeeTab_Continue2=update ctstable2 set KEY_ID=1,COF_NAME = 'Continue-1' where COF_NAME='COFFEE-1'
+CoffeeTab_Continue3=update ctstable2 set KEY_ID=1 ,COF_NAME = 'Invalid' where COF_NAME='COFFEE-3'
+CoffeeTab_Continue4=update ctstable2 set KEY_ID=2,COF_NAME = 'Continue-3' where COF_NAME='COFFEE-2'
+Coffee_Proc1=create procedure Coffee_Proc1(keyid in Numeric) as begin update ctstable2 set KEY_ID=keyid,COF_NAME = 'Continue-1' where KEY_ID=1;end;
+Coffee_Proc1_Delete=Drop procedure Coffee_Proc1
+#**********************************************************************************
+# is used in DataTruncation exception
+#**********************************************************************************
+DTrunc_Ins_Coffee=insert into ctstable2 values (10,'kumarjadjsjdhsjhdjsjdajhdjasdsdsdsd',21.00,1)
+
+#**********************************************************************************
+# is used in SQLException
+#**********************************************************************************
+Error_Query=select * from
+
+#**********************************************************************************
+# Constructor arguments for exceptions
+#**********************************************************************************
+Reason_BatUpdExec=Message
+SQLState_BatUpdExec=S100
+VendorCode_BatUpdExec=10
+IntialValue_BatUpdExec={1,1,1}
+Index_DataTrunc=1
+Param_DataTrunc=true
+Read_DataTrunc=true
+DataSize_DataTrunc=100
+TranSize_DataTrunc=50
+
+#**********************************************************************************
+# is used to print a message to the current logging writer
+#**********************************************************************************
+JDBCLogstream_Message=Hello World
+
+
+#**********************************************************************************
+#The following pair of values are related and so must be changed simultaneously
+#The first one is a reference value and the second one is a equivalent in millisecond after epoch
+#**********************************************************************************
+DateTime_Str_Val1=1970-01-02 00:00:00.001
+DateTime_Long_Val1=86400001
+
+#**********************************************************************************
+#The following pair of values are related and so must be changed simultaneously
+#The first one is a reference value and the second one is a equivalent in millisecond after epoch
+#**********************************************************************************
+DateTime_Str_Val2=1969-12-30 23:59:59.999
+DateTime_Long_Val2=-86400001
+
+#**********************************************************************************
+#value in millisecond for testing after() and before() in Timestamp
+#**********************************************************************************
+Ref_Milli_Val = 86400000
+
+#**********************************************************************************
+#Value in nanoseconds for testing time values
+#**********************************************************************************
+Ref_Nano_Val = 999999999
+
+
+#**********************************************************************************
+#Value in nanoseconds and must be equivalent equivalent to multiples of milliseconds
+#**********************************************************************************
+Ref_Nano_Val2 = 1000000
+
+Trial_String=TrialSetting
+Escape_Seq_Query=select count(*) from ctstable2 where cof_name like '\%-%' { escape '\\' }
+Escape_Seq_ChkQuery=select count(*) from ctstable2
+Max_Set_Val=10
+
+
+#**********************************************************************************
+#The SQL Statements which are used to test the Scalar functions using escape syntax
+#**********************************************************************************
+Concat_Fn_Query=SELECT {FN CONCAT(STRING1,STRING2)} FROM ctstable3
+Ascii_Fn_Query=SELECT {FN ASCII(STRING1)} FROM ctstable3
+Insert_Fn_Query=SELECT {FN INSERT(STRING1,2,4,STRING2)} FROM ctstable3
+Lcase_Fn_Query=SELECT {FN LCASE(STRING1)} FROM ctstable3
+Left_Fn_Query=SELECT {FN LEFT(STRING1,2)} FROM ctstable3
+Length_Fn_Query=SELECT {FN LENGTH(STRING1)} FROM ctstable3
+Locate_Fn_Query=SELECT {FN LOCATE(STRING1,STRING2)} FROM ctstable3
+Ltrim_Fn_Query=SELECT {FN LTRIM(STRING2)} FROM ctstable3
+Repeat_Fn_Query=SELECT {FN REPEAT(STRING1,3)} FROM ctstable3
+Right_Fn_Query=SELECT {FN RIGHT(STRING1,3)} FROM ctstable3
+Rtrim_Fn_Query=SELECT {FN RTRIM(STRING2)} FROM ctstable3
+Soundex_Fn_Query=SELECT {FN SOUNDEX(STRING1)} FROM ctstable3
+Space_Fn_Query=SELECT {FN SPACE(5)} FROM ctstable3
+Substring_Fn_Query=SELECT {FN SUBSTR(STRING2,2,3)} FROM ctstable3
+Ucase_Fn_Query=SELECT {FN UCASE(STRING1)} FROM ctstable3
+Char_Fn_Query=SELECT {FN CHAR(NUMCOL)} FROM ctstable3
+Replace_Fn_Query=SELECT {FN REPLACE(STRING2,STRING1,STRING3)} FROM ctstable3
+User_Fn_Query=SELECT {FN USER()} FROM ctstable3
+Ifnull_Fn_Query=SELECT {FN IFNULL(STRING1,100)} FROM ctstable3
+Sin_Fn_Query=SELECT {FN SIN(0)} FROM ctstable3
+Abs_Fn_Query=SELECT {FN ABS(NUMCOL)} FROM ctstable3
+Power_Fn_Query=SELECT {FN POWER(NUMCOL,2)} FROM ctstable3
+Round_Fn_Query=SELECT {FN ROUND(FLOATCOL,2)} FROM ctstable3
+Sign_Fn_Query=SELECT {FN SIGN(NUMCOL)} FROM ctstable3
+Sqrt_Fn_Query=SELECT {FN SQRT(FLOATCOL)} FROM ctstable3
+Truncate_Fn_Query=SELECT {FN TRUNCATE(FLOATCOL,1)} FROM ctstable3
+Mod_Fn_Query=SELECT {FN MOD(NUMCOL,7)} FROM ctstable3
+Floor_Fn_Query=SELECT {FN FLOOR(FLOATCOL)} FROM ctstable3
+Ceiling_Fn_Query=SELECT {FN CEILING(NUMCOL)} FROM ctstable3
+Log10_Fn_Query=SELECT {FN LOG10(NUMCOL)} FROM ctstable3
+Log_Fn_Query=SELECT {FN LOG(NUMCOL)} FROM ctstable3
+Exp_Fn_Query=SELECT {FN EXP(FLOATCOL)} FROM ctstable3
+Cos_Fn_Query=SELECT {FN COS(FLOATCOL)} FROM ctstable3
+Tan_Fn_Query=SELECT {FN TAN(FLOATCOL)} FROM ctstable3
+Cot_Fn_Query=SELECT {FN COT(FLOATCOL)} FROM ctstable3
+Curdate_Fn_Query=SELECT {FN CURDATE()} FROM ctstable3
+Dayname_Fn_Query=SELECT {FN DAYNAME(DATECOL)} FROM ctstable3
+Dayofmonth_Fn_Query=SELECT {FN DAYOFMONTH(DATECOL)} FROM ctstable3
+Dayofweek_Fn_Query=SELECT {FN DAYOFWEEK(DATECOL)} FROM ctstable3
+Dayofyear_Fn_Query=SELECT {FN DAYOFYEAR(DATECOL)} FROM ctstable3
+Week_Fn_Query=SELECT {FN WEEK(DATECOL)} FROM ctstable3
+Month_Fn_Query=SELECT {FN MONTH(DATECOL)} FROM ctstable3
+Year_Fn_Query=SELECT {FN YEAR(DATECOL)} FROM ctstable3
+Monthname_Fn_Query=SELECT {FN MONTHNAME(DATECOL)} FROM ctstable3
+Quarter_Fn_Query=SELECT {FN QUARTER(DATECOL)} FROM ctstable3
+Now_Fn_Query=SELECT {FN NOW()} FROM ctstable3
+Hour_Fn_Query=SELECT {FN HOUR(TIMECOL)} FROM ctstable3
+Minute_Fn_Query=SELECT {FN MINUTE(TIMECOL)} FROM ctstable3
+Second_Fn_Query=SELECT {FN SECOND(TIMECOL)} FROM ctstable3
+Database_Fn_Query=SELECT {FN DATABASE()} FROM ctstable3
+Acos_Fn_Query=SELECT {FN ACOS(FLOATCOL)} FROM ctstable3
+Asin_Fn_Query=SELECT {FN ASIN(FLOATCOL)} FROM ctstable3
+Atan_Fn_Query=SELECT {FN ATAN(FLOATCOL)} FROM ctstable3
+Atan2_Fn_Query=SELECT {FN ATAN2(FLOATCOL,FLOATCOL)} FROM ctstable3
+Degrees_Fn_Query=SELECT {FN DEGREES(NUMCOL)} FROM ctstable3
+Radians_Fn_Query=SELECT {FN RADIANS(NUMCOL)} FROM ctstable3
+Pi_Fn_Query=SELECT {FN PI()} FROM ctstable3
+Rand_Fn_Query=SELECT {FN RAND(NUMCOL)} FROM ctstable3
+Difference_Fn_Query=SELECT {FN DIFFERENCE(STRING1,STRING2)} FROM ctstable3
+Locate_Fn_Query=SELECT {FN LOCATE(STRING1,STRING2,2)} FROM ctstable3
+Timestampaddfrac_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_FRAC_SECOND,2,TSCOL1)} FROM ctstable3
+Timestampaddsecond_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_SECOND,2,TSCOL1)} FROM ctstable3
+Timestampaddminute_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_MINUTE,2,TSCOL1)} FROM ctstable3
+Timestampaddhour_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_HOUR,2,TSCOL1)} FROM ctstable3
+Timestampaddday_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_DAY,2,TSCOL1)} FROM ctstable3
+Timestampaddweek_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_WEEK,2,TSCOL1)} FROM ctstable3
+Timestampaddmonth_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_MONTH,2,TSCOL1)} FROM ctstable3
+Timestampaddquarter_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_QUARTER,2,TSCOL1)} FROM ctstable3
+Timestampaddyear_Fn_Query=SELECT {FN TIMESTAMPADD(SQL_TSI_YEAR,2,TSCOL1)} FROM ctstable3
+Timestampdifffrac_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_FRAC_SECOND,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffsecond_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_SECOND,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffminute_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_MINUTE,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffhour_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_HOUR,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffday_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_DAY,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffweek_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_WEEK,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffmonth_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_MONTH,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffquarter_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_QUARTER,TSCOL1,TSCOL2)} FROM ctstable3
+Timestampdiffyear_Fn_Query=SELECT {FN TIMESTAMPDIFF(SQL_TSI_YEAR,TSCOL1,TSCOL2)} FROM ctstable3
+
+
+#*****************************************************************************
+#The SQL Statements which are used to test the Outer Joins using escape syntax
+#*****************************************************************************
+Left_Oj_Query=SELECT * FROM {OJ ctstable3 LEFT OUTER JOIN ctstable4 ON ctstable3.NUMCOL=ctstable4.NUMCOL}
+Right_Oj_Query=SELECT * FROM {OJ ctstable3 RIGHT OUTER JOIN ctstable4 ON ctstable3.NUMCOL=ctstable4.NUMCOL}
+Full_Oj_Query=SELECT * FROM {OJ ctstable3 FULL OUTER JOIN ctstable4 ON ctstable3.NUMCOL=ctstable4.NUMCOL}
+
+
+#*****************************************************************************
+#The SQL Statements for creating, inserting and dropping the tables which are
+#used in testing the scalar functions and outer joins using escape syntax
+#*****************************************************************************
+
+Fnschema_Tab1_Insert=INSERT INTO ctstable3 VALUES ('Java',' HotJava ','JAVA',100,0.5,{d '1993-07-13'},{t '10:30:55'},{ts '1996-05-10 10:07:04'},{ts '1996-05-10 10:07:05'})
+Fnschema_Tab2_Insert=INSERT INTO ctstable4 VALUES ('STRING3',100)
+
+Fnschema_Tab1_Delete=delete from ctstable3
+Fnschema_Tab2_Delete=delete from ctstable4
+
+#*****************************************************************************
+#The SQL Statements which are used in TxBean (Session bean)
+#*****************************************************************************
+TxBean_insert1=insert into TxBean_Tab1 values(?, ?, ?)
+TxBean_insert2=insert into TxBean_Tab2 values(?, ?, ?)
+
+TxBean_delete1=delete from TxBean_Tab1 where KEY_ID = ?
+TxBean_delete2=delete from TxBean_Tab2 where KEY_ID = ?
+
+TxBean_update1=update TxBean_Tab1 set TABONE_NAME = ? where KEY_ID = ?
+TxBean_update2=update TxBean_Tab2 set TABTWO_NAME = ? where KEY_ID = ?
+TxBean_update3=update TxBean_Tab1 set PRICE = ? where KEY_ID = ?
+TxBean_update4=update TxBean_Tab2 set PRICE = ? where KEY_ID = ?
+
+TxBean_query1=select * from TxBean_Tab1
+TxBean_query2=select * from TxBean_Tab2
+TxBean_query3=select KEY_ID, TABONE_NAME, PRICE from TxBean_Tab1 where KEY_ID = ?
+TxBean_query4=select KEY_ID, TABTWO_NAME, PRICE from TxBean_Tab2 where KEY_ID = ?
+
+
+TxBean_Tab1_Delete=delete from TxBean_Tab1
+TxBean_Tab2_Delete=delete from TxBean_Tab2
+
+#*****************************************************************************
+#The SQL Statements which are used in TxEBean (Entity bean)
+#*****************************************************************************
+TxEBean_updateString1=insert into TxEBean_Tab values(?, ?, ?)
+TxEBean_updateString2=delete from TxEBean_Tab where KEY_ID = ?
+TxEBean_updateString3=update TxEBean_Tab set BRAND_NAME = ?, PRICE = ? where KEY_ID = ?
+
+TxEBean_selectString1=select KEY_ID from TxEBean_Tab where KEY_ID = ?
+TxEBean_selectString2=select KEY_ID from TxEBean_Tab where BRAND_NAME = ?
+TxEBean_selectString3=select KEY_ID from TxEBean_Tab where PRICE = ?
+TxEBean_selectString4=select KEY_ID, BRAND_NAME, PRICE from TxEBean_Tab where KEY_ID = ?
+TxEBean_selectString5=select BRAND_NAME from TxEBean_Tab where KEY_ID = ?
+TxEBean_selectString6=select PRICE from TxEBean_Tab where KEY_ID = ?
+
+TxEBean_queryStr1=select KEY_ID from TxEBean_Tab where KEY_ID = ?
+
+TxEBean_Delete=delete from TxEBean_Tab
+
+#*****************************************************************************
+#The SQL Statements which are used in the integration/session and
+#integration/entity tests
+#*****************************************************************************
+Integration_Tab_Delete=delete from Integration_Tab
+Integration_Insert=insert into Integration_Tab values(?, ?)
+Integration_Insert1=insert into Integration_Tab values(1000, 50000.0)
+Integration_Insert2=insert into Integration_Tab values(1075, 10490.75)
+Integration_Insert3=insert into Integration_Tab values(40, 200.50)
+Integration_Insert4=insert into Integration_Tab values(30564, 25000.0)
+Integration_Insert5=insert into Integration_Tab values(387, 1000000.0)
+Integration_Select_Account=select * from Integration_Tab WHERE ACCOUNT = ?
+Integration_Select_All=select * from Integration_Tab
+Integration_Update_Account=update Integration_Tab set BALANCE = ? where ACCOUNT = ?
+Integration_Delete_Account=delete from Integration_Tab where ACCOUNT = ?
+
+#*****************************************************************************
+#The SQL Statements which are used in the integration/sec tests
+#*****************************************************************************
+Integration_Sec_Tab_Delete=delete from Integration_Sec_Tab
+Integration_Sec_Tab_Insert=insert into Integration_Sec_Tab values(?, ?, ?)
+Integration_Sec_Tab_Delete1=delete from Integration_Sec_Tab WHERE LOG_NO=?
+Integration_Sec_Tab_Delete2=delete FROM Integration_Sec_Tab where LOG_NO=? and not ( LINE_NO = ? )
+Integration_Sec_Tab_Update=update Integration_Sec_Tab set MESSAGE= ? where LOG_NO = ? and LINE_NO = ?
+Integration_Sec_Tab_Select1=select MESSAGE, LINE_NO from Integration_Sec_Tab where LOG_NO = ? and not( LINE_NO= ? ) order by LINE_NO
+Integration_Sec_Tab_Select2=select MESSAGE FROM Integration_Sec_Tab where LOG_NO = ? and LINE_NO = ?
+Integration_Sec_Tab_Select3=select MAX(LOG_NO) FROM Integration_Sec_Tab
+Integration_Sec_Tab_Select4=select LOG_NO from Integration_Sec_Tab where MESSAGE = ? and LINE_NO = ?
+Integration_Sec_Tab_Select5=select LINE_NO from Integration_Sec_Tab where LOG_NO = ? and LINE_NO= ?
+
+
+#*****************************************************************************
+#The SQL Statements which are used in DBSupport used by ejb/ee/bb tests
+#*****************************************************************************
+BB_Tab_Delete=delete from BB_Tab
+BB_Insert1=insert into BB_Tab values(?, ?, ?)
+BB_Select1=select KEY_ID from BB_Tab where KEY_ID = ?
+BB_Select2=select KEY_ID from BB_Tab where BRAND_NAME = ?
+BB_Select3=select KEY_ID from BB_Tab where PRICE = ?
+BB_Select4=select KEY_ID from BB_Tab where PRICE >= ? and PRICE <= ?
+BB_Select5=select KEY_ID from BB_Tab where KEY_ID >= ? and KEY_ID <= ?
+BB_Select6=select PRICE from BB_Tab where KEY_ID = ?
+BB_Update1=update BB_Tab set PRICE = ? where KEY_ID = ?
+BB_Delete1=delete from BB_Tab where KEY_ID = ?
+
+#*****************************************************************************
+#The SQL Statements which are used in DAO by ejb/ee/bb tests
+#*****************************************************************************
+COFFEE_BB_Tab_Delete=delete from BB_Tab
+COFFEE_BB_Insert1=insert into BB_Tab values(?, ?, ?)
+COFFEE_BB_Select1=select KEY_ID from BB_Tab where KEY_ID = ?
+COFFEE_BB_Select2=select KEY_ID from BB_Tab where BRAND_NAME = ?
+COFFEE_BB_Select3=select KEY_ID from BB_Tab where PRICE = ?
+COFFEE_BB_Select4=select KEY_ID from BB_Tab where PRICE >= ? and PRICE <= ?
+COFFEE_BB_Select5=select KEY_ID from BB_Tab where KEY_ID >= ? and KEY_ID <= ?
+COFFEE_BB_Select6=select PRICE from BB_Tab where KEY_ID = ?
+COFFEE_BB_Update1=update BB_Tab set PRICE = ? where KEY_ID = ?
+COFFEE_BB_Delete1=delete from BB_Tab where KEY_ID = ?
+
+#*****************************************************************************
+#The SQL Statements which are used in DBSupport in jta/ee/txpropagationtest
+#*****************************************************************************
+JTA_Tab1_Delete=delete from JTA_Tab1
+JTA_Tab2_Delete=delete from JTA_Tab2
+
+JTA_Tab1_Insert=insert into JTA_Tab1 values(?, ?, ?)
+JTA_Tab2_Insert=insert into JTA_Tab2 values(?, ?, ?)
+
+JTA_Delete1=delete from JTA_Tab1 where KEY_ID = ?
+JTA_Delete2=delete from JTA_Tab2 where KEY_ID = ?
+
+JTA_Tab1_Update1=update JTA_Tab1 set COF_NAME = ? where KEY_ID = ?
+JTA_Tab2_Update1=update JTA_Tab2 set CHOC_NAME = ? where KEY_ID = ?
+
+JTA_Tab1_Update2=update JTA_Tab1 set PRICE = ? where KEY_ID = ?
+JTA_Tab2_Update2=update JTA_Tab2 set PRICE = ? where KEY_ID = ?
+
+JTA_Tab1_Select=select * from JTA_Tab1
+JTA_Tab2_Select=select * from JTA_Tab2
+
+JTA_Tab1_Select1=select KEY_ID, COF_NAME, PRICE FROM JTA_Tab1 where KEY_ID = ?
+JTA_Tab2_Select1=select KEY_ID, CHOC_NAME, PRICE FROM JTA_Tab2 where KEY_ID = ?
+
+
+#*****************************************************************************
+# SQL Statements used by deployment tests
+#
+# See /tests/assembly/util/dbsupport for more details
+#
+#*****************************************************************************
+
+#
+# BMP table with Integer Primary Key
+#
+DEPLOY_intPKTable_Insert=insert into Deploy_Tab1 values(?, ?, ?)
+DEPLOY_intPKTable_Select_PK=select KEY_ID from Deploy_Tab1 where KEY_ID = ?
+DEPLOY_intPKTable_Select_Price=select PRICE from Deploy_Tab1 where KEY_ID = ?
+DEPLOY_intPKTable_Update=update Deploy_Tab1 set PRICE = ? where KEY_ID = ?
+DEPLOY_intPKTable_Delete=delete from Deploy_Tab1 where KEY_ID = ?
+DEPLOY_intPKTable_Cleanup=delete from Deploy_Tab1
+
+#
+# BMP table with String Primary Key
+#
+DEPLOY_strPKTable_Insert=insert into Deploy_Tab2 values(?, ?, ?)
+DEPLOY_strPKTable_Select_PK=select KEY_ID from Deploy_Tab2 where KEY_ID = ?
+DEPLOY_strPKTable_Select_Price=select PRICE from Deploy_Tab2 where KEY_ID = ?
+DEPLOY_strPKTable_Update=update Deploy_Tab2 set PRICE = ? where KEY_ID = ?
+DEPLOY_strPKTable_Delete=delete from Deploy_Tab2 where KEY_ID = ?
+DEPLOY_strPKTable_Cleanup=delete from Deploy_Tab2
+
+#
+# BMP table with Long Primary Key
+#
+DEPLOY_longPKTable_Insert=insert into Deploy_Tab3 values(?, ?, ?)
+DEPLOY_longPKTable_Select_PK=select KEY_ID from Deploy_Tab3 where KEY_ID = ?
+DEPLOY_longPKTable_Select_Price=select PRICE from Deploy_Tab3 where KEY_ID = ?
+DEPLOY_longPKTable_Update=update Deploy_Tab3 set PRICE = ? where KEY_ID = ?
+DEPLOY_longPKTable_Delete=delete from Deploy_Tab3 where KEY_ID = ?
+DEPLOY_longPKTable_Cleanup=delete from Deploy_Tab3
+
+#
+# BMP table with Float Primary Key
+#
+DEPLOY_floatPKTable_Insert=insert into Deploy_Tab4 values(?, ?, ?)
+DEPLOY_floatPKTable_Select_PK=select KEY_ID from Deploy_Tab4 where KEY_ID = ?
+DEPLOY_floatPKTable_Select_Price=select PRICE from Deploy_Tab4 where KEY_ID = ?
+DEPLOY_floatPKTable_Update=update Deploy_Tab4 set PRICE = ? where KEY_ID = ?
+DEPLOY_floatPKTable_Delete=delete from Deploy_Tab4 where KEY_ID = ?
+DEPLOY_floatPKTable_Cleanup=delete from Deploy_Tab4
+
+#
+# BMP table with Compound Primary Key
+#
+DEPLOY_compoundPKTable_Insert=insert into Deploy_Tab5 values(?, ?, ?, ?, ?)
+DEPLOY_compoundPKTable_Select_PK=select KEY_ID1, KEY_ID2, KEY_ID3 from Deploy_Tab5 where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+DEPLOY_compoundPKTable_Select_Price=select PRICE from Deploy_Tab5 where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+DEPLOY_compoundPKTable_Update=update Deploy_Tab5 set PRICE = ? where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+DEPLOY_compoundPKTable_Delete=delete from Deploy_Tab5 where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+DEPLOY_compoundPKTable_Cleanup=delete from Deploy_Tab5
+
+#*****************************************************************************
+#The SQL Statements which are used in DBSupport2 used by secpropagation tests
+#*****************************************************************************
+SEC_Insert1=insert into SEC_Tab1 values(?, ?, ?)
+SEC_Select1=select KEY_ID from SEC_Tab1 where KEY_ID = ?
+SEC_Select2=select KEY_ID from SEC_Tab1 where BRAND = ?
+SEC_Select3=select KEY_ID from SEC_Tab1 where PRICE = ?
+SEC_Select4=select KEY_ID from SEC_Tab1 where PRICE >= ? and PRICE <= ?
+SEC_Select5=select KEY_ID from SEC_Tab1 where KEY_ID >= ? and KEY_ID <= ?
+SEC_Select6=select PRICE from SEC_Tab1 where KEY_ID = ?
+SEC_Update1=update SEC_Tab1 set PRICE = ? where KEY_ID = ?
+SEC_Delete1=delete from SEC_Tab1 where KEY_ID = ?
+SEC_Tab1_Delete=delete from SEC_Tab1
+
+#*****************************************************************************
+# Connector tests in src/tests/connector
+#*****************************************************************************
+ConnectorTable_Insert=insert into Connector_Tab values(?, ?, ?)
+ConnectorTable_Delete=delete from Connector_Tab
+
+#*****************************************************************************
+# insert values EIS
+#*****************************************************************************
+TSEIS_insert_init=1
+TSEIS_insert1=2
+TSEIS_insert2=3
+
+#*****************************************************************************
+#The SQL Statements which are used in xa multires tests
+#*****************************************************************************
+
+Xa_Tab1_Select=select * from Xa_Tab1
+
+# insert values
+Xa_Tab1_Insert=insert into Xa_Tab1 values(?, ?, ?)
+
+# delete using id
+Xa_Tab1_Delete1=delete from Xa_Tab1 where col1 = ?
+
+Xa_Tab1_Delete=delete from Xa_Tab1
+Xa_Tab2_Delete=delete from Xa_Tab2
+
+#initial insert
+Xa_Tab1_insert_init=insert into Xa_Tab1 values (1, 'Table1 Line one ', '1.0' )
+Xa_Tab2_insert_init=insert into Xa_Tab2 values (1, 'Table2 Line one ', '2.0' )
+
+#subsequent insert
+Xa_Tab1_insert1=insert into Xa_Tab1 values (2, 'Table1 Line two ', '11.0' )
+Xa_Tab1_insert2=insert into Xa_Tab1 values (3, 'Table1 Line three ','111.0' )
+
+Xa_Tab2_insert1=insert into Xa_Tab2 values (2, 'Table2 Line two ', '22.0' )
+Xa_Tab2_insert2=insert into Xa_Tab2 values (3, 'Table2 Line three ', '222.0' )
+
+#get results
+
+Xa_Tab1_query=select col1 from Xa_Tab1 order by col1
+Xa_Tab2_query=select col1 from Xa_Tab2 order by col1
+
+
+
+#*****************************************************************************
+# Coffee DAO SQL statements
+#*****************************************************************************
+
+#
+# Standard Coffee DAO
+#
+COFFEE_insert=insert into Coffee_Table values(?, ?, ?)
+COFFEE_select=select BRAND_NAME, PRICE from Coffee_Table where KEY_ID = ?
+COFFEE_select_pk_by_name=select KEY_ID from Coffee_Table where BRAND_NAME = ?
+COFFEE_select_pk_by_price=select KEY_ID from Coffee_Table where PRICE = ?
+COFFEE_select_pk_by_price_range=select KEY_ID from Coffee_Table where PRICE >= ? and PRICE <= ?
+COFFEE_select_pk_by_pk_range=select KEY_ID from Coffee_Table where KEY_ID >= ? and KEY_ID <= ?
+COFFEE_select_price=select PRICE from Coffee_Table where KEY_ID = ?
+COFFEE_update=update Coffee_Table set BRAND_NAME = ?, PRICE = ? where KEY_ID = ?
+COFFEE_update_price=update Coffee_Table set PRICE = ? where KEY_ID = ?
+COFFEE_delete=delete from Coffee_Table where KEY_ID = ?
+COFFEE_delete_all=delete from Coffee_Table
+
+
+#
+# Coffee DAO variant with String Primary Key
+#
+COFFEE_STRING_PK_insert=insert into Coffee_StringPK_Table values(?, ?, ?)
+COFFEE_STRING_PK_select=select KEY_ID from Coffee_StringPK_Table where KEY_ID = ?
+COFFEE_STRING_PK_select_price=select PRICE from Coffee_StringPK_Table where KEY_ID = ?
+COFFEE_STRING_PK_update_price=update Coffee_StringPK_Table set PRICE = ? where KEY_ID = ?
+COFFEE_STRING_PK_delete=delete from Coffee_StringPK_Table where KEY_ID = ?
+COFFEE_STRING_PK_delete_all=delete from Coffee_StringPK_Table
+
+#
+# Coffee DAO variant with Long Primary Key
+#
+COFFEE_LONG_PK_insert=insert into Coffee_LongPK_Table values(?, ?, ?)
+COFFEE_LONG_PK_select=select KEY_ID from Coffee_LongPK_Table where KEY_ID = ?
+COFFEE_LONG_PK_select_price=select PRICE from Coffee_LongPK_Table where KEY_ID = ?
+COFFEE_LONG_PK_update_price=update Coffee_LongPK_Table set PRICE = ? where KEY_ID = ?
+COFFEE_LONG_PK_delete=delete from Coffee_LongPK_Table where KEY_ID = ?
+COFFEE_LONG_PK_delete_all=delete from Coffee_LongPK_Table
+
+#
+# Coffee DAO variant with Float Primary Key
+#
+COFFEE_FLOAT_PK_insert=insert into Coffee_FloatPK_Table values(?, ?, ?)
+COFFEE_FLOAT_PK_select=select KEY_ID from Coffee_FloatPK_Table where KEY_ID = ?
+COFFEE_FLOAT_PK_select_price=select PRICE from Coffee_FloatPK_Table where KEY_ID = ?
+COFFEE_FLOAT_PK_update_price=update Coffee_FloatPK_Table set PRICE = ? where KEY_ID = ?
+COFFEE_FLOAT_PK_delete=delete from Coffee_FloatPK_Table where KEY_ID = ?
+COFFEE_FLOAT_PK_delete_all=delete from Coffee_FloatPK_Table
+
+#
+# Coffee DAO variant with Compound Primary Key
+#
+COFFEE_COMPOUND_PK_insert=insert into Coffee_CompoundPK_Table values(?, ?, ?, ?, ?)
+COFFEE_COMPOUND_PK_select=select KEY_ID1, KEY_ID2, KEY_ID3 from Coffee_CompoundPK_Table where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+COFFEE_COMPOUND_PK_select_price=select PRICE from Coffee_CompoundPK_Table where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+COFFEE_COMPOUND_PK_update_price=update Coffee_CompoundPK_Table set PRICE = ? where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+COFFEE_COMPOUND_PK_delete=delete from Coffee_CompoundPK_Table where KEY_ID1 = ? and KEY_ID2 = ? and KEY_ID3 = ?
+COFFEE_COMPOUND_PK_delete_all=delete from Coffee_CompoundPK_Table
+
+
+Simple_Select_Query= SELECT * FROM jstl_tab1
+Select_NoRows_Query= SELECT * FROM jstl_tab1 WHERE idNum = -9999
+Select_Jstl_Tab1_OneRow_Query= SELECT * FROM jstl_tab1 where idNum = 1
+Select_Jstl_Tab1_By_Id_Query= SELECT * FROM jstl_tab1 ORDER BY idNum
+Select_Jstl_Tab1_Using_Param_Query= SELECT * FROM jstl_tab1 WHERE idNum = ?
+Select_Jstl_Tab2_Using_Param_Query= SELECT idNum, lastName FROM jstl_tab2 WHERE idNum = ?
+
+Update_Jstl_Tab2_Using_Param_Query= UPDATE jstl_tab2 SET lastName= ? WHERE idNum = ?
+
+Delete_NoRows_Query= DELETE FROM jstl_tab2 WHERE idNum = -9999
+Delete_AllRows_Query= DELETE FROM jstl_tab2
+
+Insert_Row_Query= INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (1, {d '1961-08-30'}, 'Clark', 'Kent', 1, 4.5)
+Insert2_Row_Query= INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (2, {d '1980-12-30'}, 'Fred', 'Flinstone', 2, 4.5)
+Insert3_Row_Query= INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (3, {d '1961-01-01'}, 'Scooby', 'Doo', 4, 4.5)
+Insert4_Row_Query= INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (4, {d '1990-03-15'}, 'Bruce', 'Wayne', 3, 4.5)
+Delete_Jstl_Tab2_Using_Param_Query=DELETE FROM jstl_tab2 where idNum = ?
+Failed_Insert_Query=INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (2, '1992-02-03'}, NULL,NULL, 2, 4.5)
+Select_Jstl_Tab2_AllRows_Query=SELECT * from jstl_tab2
+Invalid_SQL_Query=This Will Fail on Any RDBMS I Hope!
+Select_Jstl_Tab1_MultiParam_Query=SELECT idNum, firstName, lastName from jstl_tab1 where idNum= ? and lastName = ?
+Delete_Jstl_Tab2_MultiParam_Query=DELETE FROM jstl_tab2 where idNum = ? and lastName = ?
+Select_Jstl_Tab3_Date_Query=SELECT * from jstl_tab3 where aDate= ?
+Select_Jstl_Tab3_Time_Query=SELECT * from jstl_tab3 where aTime= ?
+Select_Jstl_Tab3_Timestamp_Query=SELECT * from jstl_tab3 where aTimestamp= ?
+Insert_Jstl_Tab3_Query=INSERT INTO jstl_tab3(idNum, aDate, aTime, aTimestamp) VALUES(1, {d '2001-08-30'}, {t '20:20:20'}, {ts '2001-08-30 20:20:20'})
+Insert_Jstl_Tab3_Date_Query=INSERT INTO jstl_tab3(idNum, aDate, aTime, aTimestamp) VALUES(1, ?, {t '20:20:20'}, {ts '2001-08-30 20:20:20'})
+Insert_Jstl_Tab3_Time_Query=INSERT INTO jstl_tab3(idNum, aDate, aTime, aTimestamp) VALUES(1, {d '2001-08-30'}, ?, {ts '2001-08-30 20:20:20'})
+Insert_Jstl_Tab3_Timestamp_Query=INSERT INTO jstl_tab3(idNum, aDate, aTime, aTimestamp) VALUES(1, {d '2001-08-30'}, {t '20:20:20'}, ?)
+Delete_Jstl_Tab3_AllRows_Query= DELETE FROM jstl_tab3
+
+Insert_Jstl_Tab3_Null_Query=INSERT INTO jstl_tab3(idNum, aDate, aTime, aTimestamp) VALUES(99, null, null, null)
+Select_Jstl_Tab2_NullParam_Query= SELECT * FROM jstl_tab2 WHERE rank = ?
+Insert_Jstl_Tab2_Null_Query=INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (5, {d '1970-07-04'}, 'Peter', 'Parker', 5, null)
+Insert_Jstl_Tab2_NullParam_Query=INSERT INTO jstl_tab2(idNum, dob, firstName, lastName, rank, rating) VALUES (5, {d '1970-07-04'}, 'Peter', 'Parker', 5, ?)
diff --git a/glassfish-runner/appclient-platform-tck/jakartaeetck/tmp/tstest.jte b/glassfish-runner/appclient-platform-tck/jakartaeetck/tmp/tstest.jte
new file mode 100644
index 0000000000..a4a4dbea56
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/jakartaeetck/tmp/tstest.jte
@@ -0,0 +1,84 @@
+#Properties for test: testStateful
+#Mon Oct 21 11:26:38 IST 2024
+harness.socket.retry.count=10
+logical.hostname.servlet=server
+harness.temp.directory=${ts.home}/tmp
+whitebox-anno_no_md=java\:comp/env/eis/whitebox-anno_no_md
+porting.ts.HttpsURLConnection.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+javamail.protocol=imap
+whitebox-tx=java\:comp/env/eis/whitebox-tx
+porting.ts.HttpsURLConnection.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+log.file.location=${vi.domain}/logs
+password=j2ee
+porting.ts.deploy.class.1=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeployment
+porting.ts.deploy.class.2=com.sun.ts.lib.implementation.sun.javaee.glassfish.AutoDeploymentSeparateVM
+db.supports.sequence=true
+varbinarySize=48
+sigTestClasspath=${s1as.modules}/glassfish-corba-omgapi.jar${pathsep}${s1as.modules}/glassfish-corba-orb.jar${pathsep}${s1as.modules}/jakarta.enterprise.cdi-api.jar${pathsep}${s1as.modules}/jakarta.json-api.jar${pathsep}${s1as.modules}/jakarta.json.bind-api.jar${pathsep}${s1as.modules}/jakarta.batch-api.jar${pathsep}${s1as.modules}/jakarta.interceptor-api.jar${pathsep}${s1as.modules}/stax2-api.jar${pathsep}${s1as.modules}/jakarta.enterprise.concurrent-api.jar${pathsep}${s1as.modules}/jakarta.websocket-api.jar${pathsep}${s1as.modules}/jakarta.websocket-client-api.jar${pathsep}${s1as.modules}/jakarta.jms-api.jar${pathsep}${s1as.modules}/jakarta.faces.jar${pathsep}${s1as.modules}/jakarta.validation-api.jar${pathsep}${s1as.modules}/jakarta.annotation-api.jar${pathsep}${s1as.modules}/jakarta.xml.bind-api.jar${pathsep}${s1as.modules}/webservices-api-osgi.jar${pathsep}${pathsep}${s1as.modules}/jakarta.ws.rs-api.jar${pathsep}${s1as.modules}/weld-osgi-bundle.jar${pathsep}${s1as.modules}/jakarta.ejb-api.jar${pathsep}${s1as.modules}/jakarta.mail-api.jar${pathsep}${s1as.modules}/jakarta.persistence-api.jar${pathsep}${s1as.modules}/jakarta.resource-api.jar${pathsep}${s1as.modules}/jakarta.authorization-api.jar${pathsep}${s1as.modules}/jakarta.authentication-api.jar${pathsep}${s1as.modules}/jakarta.servlet-api.jar${pathsep}${s1as.modules}/jakarta.inject-api.jar${pathsep}${s1as.modules}/jakarta.el-api.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp-api.jar${pathsep}${s1as.modules}/jakarta.servlet.jsp.jstl-api.jar${pathsep}${jtaJarClasspath}${pathsep}${s1as.modules}/jakarta.security.enterprise-api.jar${pathsep}${s1as.modules}/jakarta.activation-api.jar${pathsep}${jimage.dir}/java.base${pathsep}${jimage.dir}/java.rmi${pathsep}${jimage.dir}/java.sql${pathsep}${jimage.dir}/java.naming
+porting.ts.login.class.1=com.sun.ts.lib.implementation.sun.javaee.GlassFishLoginContext
+porting.ts.login.class.2=com.sun.ts.lib.implementation.sun.javaee.GlassFishLoginContext
+DriverManager=no
+authuser=javajoe
+jstl.db.user=${derby.user}
+securedWebServicePort=1044
+binarySize=24
+whitebox-multianno=java\:comp/env/eis/whitebox-multianno
+cofSize=5
+javamail.mailbox=test1
+finder=cts
+authpassword=javajoe
+work.dir=/home/jenkins/agent/workspace/jakartaee-tck_master/JTWork
+variable.mapper=org.glassfish.expressly.lang.VariableMapperImpl
+imap.port=1143
+ftable=ctstable2
+whitebox-xa=java\:comp/env/eis/whitebox-xa
+whitebox-mdcomplete=java\:comp/env/eis/whitebox-mdcomplete
+harness.log.delayseconds=0
+mailuser1=user01@james.local
+harness.log.traceflag=true
+transport_protocol=smtp
+org.omg.CORBA.ORBClass=foo
+javamail.root.path=mailboxes
+whitebox-notx-param=java\:comp/env/eis/whitebox-notx-param
+jms_timeout=10000
+test_classname=com.sun.ts.tests.appclient.deploy.ejbref.single.Client
+rauser1=cts1
+whitebox-mixedmode=java\:comp/env/eis/whitebox-mixedmode
+javamail.server=localhost
+db.dml.file=derby/derby.dml.sql
+java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory
+Driver=DriverOnlyUsedIfDriverManagerIsYes
+rauser2=cts2
+harness.log.port=2000
+ws_wait=5
+vehicle=none
+whitebox-notx=java\:comp/env/eis/whitebox-notx
+javamail.username=user01@james.local
+smtp.port=1025
+jdbc.db=derby
+iofile=MailIOFile.txt
+porting.ts.url.class.2=com.sun.ts.lib.implementation.sun.common.SunRIURL
+password1=cts1
+porting.ts.url.class.1=com.sun.ts.lib.implementation.sun.common.SunRIURL
+webServerPort=8080
+user1=cts1
+porting.ts.jms.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+cofTypeSize=5
+platform.mode=jakartaEE
+vehicle_archive_name=appclient_dep_ejbref_single
+ts_home=/home/g/tck/platform-tck/glassfish-runner/appclient-platform-tck/jakartaeetck/
+whitebox-permissiondd=java\:comp/env/eis/whitebox-permissiondd
+porting.ts.jms.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+whitebox-xa-param=java\:comp/env/eis/whitebox-xa-param
+service_eetest.vehicles=none
+javamail.password=1234
+jstl.db.password=${derby.passwd}
+ptable=ctstable1
+rapassword2=cts2
+db1=db1OnlyUsedIfDriverManagerIsYes
+whitebox-tx-param=java\:comp/env/eis/whitebox-tx-param
+longvarbinarySize=50
+db2=db1OnlyUsedIfDriverManagerIsYes
+user=j2ee
+rapassword1=cts1
+webServerHost=localhost
diff --git a/glassfish-runner/appclient-platform-tck/pom.xml b/glassfish-runner/appclient-platform-tck/pom.xml
new file mode 100644
index 0000000000..0d4b0b58ba
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/pom.xml
@@ -0,0 +1,572 @@
+
+
+
+ 4.0.0
+
+ org.glassfish
+ standalone-tck
+ 11.0.0-SNAPSHOT
+ ../pom.xml
+
+ jakarta
+ glassfish.appclient-platform-tck
+ 11.0.0-SNAPSHOT
+ jar
+
+ admin
+ /tmp/ripassword
+ ${admin.pass.file}.encoded
+ admin
+ 1.9.1.Final
+ 1.9.1.Final
+ ${glassfish.home}/glassfish/bin/asadmin
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/bin/asadmin
+ ${ri.home}/bin/imqbrokerd
+ ${ri.home}/bin/imqcmd
+ ${ri.home}/bin/imqobjmgr
+ ${ri.home}/bin/imqusermgr
+ ${project.build.directory}/glassfish7
+ ${glassfish.home}/glassfish/lib
+ ${glassfish.home}/glassfish/modules
+ glassfish7
+
+
+ 1234
+ imap
+
+ localhost
+ user01@james.local
+ java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory
+ /tmp/ri_admin_objects
+ java.naming.provider.url=file:///${jndi.fs.dir}
+ mail/Session
+
+ 5.9.1
+ ${project.build.directory}/${glassfish.toplevel.dir}/mq
+
+ jakarta.jms-tck
+ 11.0.0-SNAPSHOT
+ 3.1.0
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.jupiter.version}
+ pom
+ import
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.jupiter.version}
+
+
+ jakarta.tck
+ common
+ ${project.version}
+
+
+ jakarta.tck
+ libutil
+ ${project.version}
+
+
+ jakarta.tck
+ runtime
+ ${project.version}
+
+
+ jakarta.tck
+ appclient
+ 11.0.0-SNAPSHOT
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+ ${arquillian.core.version}
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ ${arquillian.core.version}
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${project.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-common
+ ${project.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${project.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ ${project.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${project.version}
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.6
+ test
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ ${arquillian.junit}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-build
+ ${arquillian.junit}
+ pom
+ import
+
+
+ org.jboss.arquillian.container
+ arquillian-container-spi
+ ${arquillian.junit}
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+ ${arquillian.junit}
+
+
+ org.jboss.arquillian.core
+ arquillian-core-spi
+ ${arquillian.junit}
+
+
+ org.jboss.arquillian.test
+ arquillian-test-impl-base
+ ${arquillian.junit}
+
+
+ org.jboss.shrinkwrap
+ shrinkwrap-api
+ 1.2.6
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ 1-unpack
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.container.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ 1-unpack
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.container.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+ 2-copy-lib
+
+ copy
+
+ pre-integration-test
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ true
+ ${glassfish.lib.dir}
+ arquillian-protocol-lib.jar
+
+
+ jakarta.tck
+ libutil
+ true
+ ${glassfish.lib.dir}
+ libutil.jar
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ true
+ ${glassfish.lib.dir}
+ tck-porting-lib.jar
+
+
+ jakarta.tck
+ runtime
+ true
+ ${glassfish.lib.dir}
+ runtime.jar
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.0.0
+
+
+ 1-startbkr
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2-init
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+ 3-encodeAdminPassword
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+
+ 4-create.tck.users
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+ 5-create.tck.jms.objects
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 6-list.tck.jms.objects
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ 1-stop-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ stop-domain
+
+
+
+
+ 2-start-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ start-domain
+
+
+
+
+ 91-create-mail-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-mail-resource
+ --mailhost
+ ${mail.host}
+ --mailuser
+ ${mail.user}
+ --fromaddress
+ ${mail.from}
+ --property
+ mail.smtp.port=${smtp.port}
+ ${jndiName}
+
+
+
+
+ 92-create-jms-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jms-resource
+ --restype
+ jakarta.jms.QueueConnectionFactory
+ jms/QueueConnectionFactory
+
+
+
+
+ 93-create-jms-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jms-resource
+ --restype
+ jakarta.jms.TopicConnectionFactory
+ jms/TopicConnectionFactory
+
+
+
+
+ 93-list-jndi-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ list-jndi-resources
+
+
+
+
+ 95-stop-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ stop-domain
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.0.0-M5
+
+
+ mail-tests-appclient
+
+ integration-test
+ verify
+
+
+ jakarta.tck:appclient
+
+ **/ejblink/casesens/*.*
+
+
+ ${glassfish.module.dir}/angus-mail.jar
+ ${glassfish.module.dir}/jakarta.mail-api.jar
+ ${glassfish.module.dir}/mail-connector.jar
+ ${glassfish.module.dir}/mail-runtime.jar
+ ${glassfish.module.dir}/glassfish-naming.jar
+ ${glassfish.module.dir}/glassfish-api.jar
+ ${glassfish.module.dir}/jakarta.jms-api.jar
+ ${glassfish.module.dir}/glassfish-corba-omgapi.jar
+ ${glassfish.module.dir}/glassfish-corba-orb.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/javadb/lib/derbyclient.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/javadb/lib/derby.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/mq/lib/imq.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/mq/lib/jms.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/mq/lib/fscontext.jar
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ ${env.TS_HOME}
+ ${project.basedir}
+ arquillian.xml
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+ web
+
+ web
+
+
+
+
diff --git a/glassfish-runner/appclient-platform-tck/src/main/resources/jndi.properties b/glassfish-runner/appclient-platform-tck/src/main/resources/jndi.properties
new file mode 100644
index 0000000000..50c75accbc
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/main/resources/jndi.properties
@@ -0,0 +1,28 @@
+#
+# Copyright (c) 2013, 2018 Oracle and/or its affiliates. All rights reserved.
+#
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License v. 2.0, which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# This Source Code may also be made available under the following Secondary
+# Licenses when the conditions for such availability set forth in the
+# Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+# version 2 with the GNU Classpath Exception, which is available at
+# https://www.gnu.org/software/classpath/license.html.
+#
+# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+#
+
+# Properties for establishing initial JNDI Context. These properties
+# are automatically read by JNDI during new InitialContext() as long
+# as this file is in the search path. For JMS TCK the Open Message
+# Queue uses the JNDI FileSystem Context Provider.
+#
+# If on a WINDOWS based system then the path below will need to contain
+# the drive letter in the path. The path below is for UNIX based systems.
+# So for WINDOWS platforms the (java.naming.provider.url) MUST BE:
+# java.naming.provider.url=file:///C:/tmp/ri_admin_objects
+#
+java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory
+java.naming.provider.url=file:///tmp/ri_admin_objects
diff --git a/glassfish-runner/appclient-platform-tck/src/main/resources/logging.properties b/glassfish-runner/appclient-platform-tck/src/main/resources/logging.properties
new file mode 100644
index 0000000000..5139b6bf9d
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/main/resources/logging.properties
@@ -0,0 +1,15 @@
+handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+tck.jakarta.platform.ant.level = FINER
+org.glassfish.appclient.client.level = FINER
+
+java.util.logging.FileHandler.pattern = tck-run.log
+java.util.logging.FileHandler.level = FINEST
+#java.util.logging.FileHandler.formatter = tck.conversion.log.TestLogFormatter
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
+# date(1), source(2), logger(3), level(4), message(5), thrown(6)
+java.util.logging.SimpleFormatter.format = [%1$tH:%tM:%1$tS.%1$tL] %2$.12s/%4$s %5$s %n
+
+# Limit the message that are printed on the console to INFO and above.
+java.util.logging.ConsoleHandler.level = FINEST
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
\ No newline at end of file
diff --git a/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/AppclientConfigTest.txt b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/AppclientConfigTest.txt
new file mode 100644
index 0000000000..56fcdb2ec1
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/AppclientConfigTest.txt
@@ -0,0 +1,34 @@
+package arquillian;
+
+import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
+import org.jboss.arquillian.config.descriptor.api.ProtocolDef;
+import org.jboss.arquillian.container.test.impl.MapObject;
+import org.jboss.shrinkwrap.descriptor.api.Descriptors;
+import org.junit.jupiter.api.Test;
+import tck.arquillian.protocol.appclient.AppClientProtocolConfiguration;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Map;
+
+public class AppclientConfigTest {
+ @Test
+ public void testLoadAppclientConfig() throws Exception{
+ System.out.println("AppclientConfigTest.testLoadAppclientConfig");
+ InputStream input = AppclientConfigTest.class.getResource("/arquillian.xml").openStream();
+ ArquillianDescriptor descriptor = Descriptors.importAs(ArquillianDescriptor.class)
+ .fromStream(input);
+ System.out.println("########################" +descriptor.getGroups().get(0));
+ AppClientProtocolConfiguration config = new AppClientProtocolConfiguration();
+ ProtocolDef appclientDef = descriptor.getGroups().get(0).getGroupContainers().get(0).getProtocols().get(0);
+ System.out.println(appclientDef);
+ Map props = appclientDef.getProtocolProperties();
+ System.out.println(props);
+ MapObject.populate(config, props);
+ System.out.println(config.getClientCmdLineString());
+ System.out.println("--- ENV array:");
+ System.out.println(Arrays.asList(config.clientEnvAsArray()));
+ System.out.println("--- CMD array:");
+ System.out.println(Arrays.asList(config.clientCmdLineAsArray()));
+ }
+}
diff --git a/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishTckExtension.java b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishTckExtension.java
new file mode 100644
index 0000000000..413555b96a
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishTckExtension.java
@@ -0,0 +1,13 @@
+package arquillian;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+
+public class GlassfishTckExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder builder) {
+ builder.service(ResourceProvider.class, GlassfishXmlProcessor.class);
+ builder.observer(GlassfishXmlProcessor.class);
+ }
+}
\ No newline at end of file
diff --git a/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishXmlProcessor.java b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishXmlProcessor.java
new file mode 100644
index 0000000000..0db6d11f0b
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/java/arquillian/GlassfishXmlProcessor.java
@@ -0,0 +1,139 @@
+package arquillian;
+
+import org.jboss.arquillian.config.descriptor.api.ArquillianDescriptor;
+import org.jboss.arquillian.config.descriptor.api.ExtensionDef;
+import org.jboss.arquillian.core.api.annotation.Observes;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.container.ManifestContainer;
+import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
+import org.jboss.shrinkwrap.api.spec.JavaArchive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import tck.arquillian.porting.lib.spi.AbstractTestArchiveProcessor;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.logging.Logger;
+
+public class GlassfishXmlProcessor extends AbstractTestArchiveProcessor {
+ static Logger log = Logger.getLogger(GlassfishXmlProcessor.class.getName());
+ static HashSet sunXmlFiles = new HashSet();
+ static {
+ sunXmlFiles.add("META-INF/sun-application-client.xml");
+ sunXmlFiles.add("META-INF/sun-application.xml");
+ sunXmlFiles.add("META-INF/sun-ra.xml");
+ sunXmlFiles.add("WEB-INF/sun-web.xml");
+ sunXmlFiles.add("META-INF/sun-ejb-jar.xml");
+ }
+
+ private Path descriptorDirRoot;
+
+ /**
+ * Called on completion of the Arquillian configuration.
+ */
+ public void initalize(@Observes ArquillianDescriptor descriptor) {
+ // Must call to setup the ResourceProvider
+ super.initalize(descriptor);
+
+ // Get the descriptor path
+ ExtensionDef descriptorsDef = descriptor.extension("jboss-descriptors");
+ String descriptorDir = descriptorsDef.getExtensionProperties().get("descriptorDir");
+ if(descriptorDir == null) {
+ String msg = "Specify the descriptorDir property in arquillian.xml as extension:\n"+
+ "\n" +
+ " path-to-descriptors-dir\n" +
+ "";
+ //throw new IllegalStateException(msg);
+ } else {
+ this.descriptorDirRoot = Paths.get(descriptorDir);
+ if(!Files.exists(this.descriptorDirRoot)) {
+ //throw new RuntimeException("Descriptor directory does not exist: " + this.descriptorDirRoot);
+ }
+ }
+ }
+
+ @Override
+ public void processClientArchive(JavaArchive clientArchive, Class> testClass, URL sunXmlURL) {
+ String name = clientArchive.getName();
+ addDescriptors(name, clientArchive, testClass);
+ }
+
+ @Override
+ public void processWebArchive(WebArchive webArchive, Class> testClass, URL sunXmlURL) {
+ String name = webArchive.getName();
+ addDescriptors(name, webArchive, testClass);
+ }
+
+ @Override
+ public void processRarArchive(JavaArchive warArchive, Class> testClass, URL sunXmlURL) {
+
+ }
+
+ @Override
+ public void processParArchive(JavaArchive javaArchive, Class> aClass, URL url) {
+
+ }
+
+ @Override
+ public void processEarArchive(EnterpriseArchive earArchive, Class> testClass, URL sunXmlURL) {
+ String name = earArchive.getName();
+ addDescriptors(name, earArchive, testClass);
+ }
+
+ @Override
+ public void processEjbArchive(JavaArchive ejbArchive, Class> testClass, URL sunXmlURL) {
+ String name = ejbArchive.getName();
+ addDescriptors(name, ejbArchive, testClass);
+ }
+
+ /**
+ *
+ * @param archiveName
+ * @param archive
+ * @param testClass
+ */
+ protected void addDescriptors(String archiveName, ManifestContainer> archive, Class> testClass) {
+ /*String pkgName = testClass.getPackageName();
+ Path pkgPath = Paths.get(pkgName.replace(".", "/"));
+ Path descriptorDir = descriptorDirRoot.resolve(pkgPath);
+ List files = findJBossDescriptors(descriptorDir);
+ for (File f : files) {
+ String name = f.getName();
+ if(!name.startsWith(archiveName)) {
+ continue;
+ }
+ try {
+ URL url = f.toURL();
+ // stateful_migration_threetwo_annotated.ear.jboss-deployment-structure.xml -> jboss-deployment-structure.xml
+ String descriptorName = name.replace(archiveName+".", "");
+ if(archive instanceof WebArchive webArchive) {
+ webArchive.addAsWebInfResource(url, descriptorName);
+ } else {
+
+ archive.addAsManifestResource(url, descriptorName);
+ }
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }*/
+ }
+ protected List findJBossDescriptors(Path pkgPath) {
+ try {
+ List files = Files.walk(pkgPath, 1)
+ .map(Path::toFile)
+ .filter(File::isFile)
+ .toList();
+ return files;
+ } catch (Exception e) {
+ }
+ return Collections.emptyList();
+ }
+}
diff --git a/glassfish-runner/appclient-platform-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/glassfish-runner/appclient-platform-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 0000000000..213f7f5aa9
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+arquillian.GlassfishTckExtension
\ No newline at end of file
diff --git a/glassfish-runner/appclient-platform-tck/src/test/resources/appclient-arquillian.xml b/glassfish-runner/appclient-platform-tck/src/test/resources/appclient-arquillian.xml
new file mode 100644
index 0000000000..0c311e2a65
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/resources/appclient-arquillian.xml
@@ -0,0 +1,64 @@
+
+
+
+
+
+ true
+ true
+ target/appclient
+ true
+
+ ${glassfish.home}/glassfish/bin/appclient \
+ -Djdk.tls.client.enableSessionTicketExtension=false \
+ -Djdk.tls.server.enableSessionTicketExtension=false \
+ -Djava.security.policy=${glassfish.home}/glassfish/lib/appclient/client.policy \
+ -Dcts.tmp=${ts.home}/tmp \
+ -Djava.security.auth.login.config=${glassfish.home}/glassfish/lib/appclient/appclientlogin.conf \
+ -Djava.protocol.handler.pkgs=javax.net.ssl \
+ -Djavax.net.ssl.keyStore=${ts.home}/bin/certificates/clientcert.jks \
+ -Djavax.net.ssl.keyStorePassword=changeit \
+ -Djavax.net.ssl.trustStore=${glassfish.home}/glassfish/domains/domain1/config/cacerts.jks \
+ -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl \
+ -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl \
+ -Djavax.xml.transform.TransformerFactory=com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl \
+ -Dorg.xml.sax.driver=com.sun.org.apache.xerces.internal.parsers.SAXParser \
+ -Dorg.xml.sax.parser=org.xml.sax.helpers.XMLReaderAdapter \
+ -Doracle.jdbc.J2EE13Compliant=true \
+ -Doracle.jdbc.mapDateToTimestamp \
+ -Dstartup.login=false \
+ -Dauth.gui=false \
+ -Dlog.file.location=${glassfish.home}/glassfish/domains/domain1/logs \
+ -Dri.log.file.location=${glassfish.home}/glassfish/domains/domain1/logs \
+ -DwebServerHost.2=localhost \
+ -DwebServerPort.2=8080 \
+ -Ddeliverable.class=com.sun.ts.lib.deliverable.cts.CTSDeliverable \
+ -jar \
+ ${clientEarDir}/${clientAppArchive}
+
+ \\
+
+ PATH=${env.PATH};LD_LIBRARY_PATH=${glassfish.home}/lib;AS_DEBUG=true;
+ APPCPATH=${glassfish.home}/glassfish/lib/arquillian-protocol-lib.jar:target/appclient/lib/arquillian-core.jar:target/appclient/lib/arquillian-junit5.jar:${glassfish.home}/glassfish/modules/security.jar
+ ${project.basedir}
+ ${ts.home}/tmp
+ ${ts.home}/bin/ts.jte
+ ${ts.home}/bin/tssql.stmt
+ true
+ 20000
+
+
+
\ No newline at end of file
diff --git a/glassfish-runner/appclient-platform-tck/src/test/resources/arquillian.xml b/glassfish-runner/appclient-platform-tck/src/test/resources/arquillian.xml
new file mode 100644
index 0000000000..02ab1a7c68
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/resources/arquillian.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+ true
+ true
+ target/appclient
+ true
+ ${project.basedir}
+ ${ts.home}/tmp
+ ${ts.home}/bin/ts.jte
+ ${ts.home}/bin/tssql.stmt
+ true
+ 20000
+
+
+
\ No newline at end of file
diff --git a/glassfish-runner/appclient-platform-tck/src/test/resources/logging.properties b/glassfish-runner/appclient-platform-tck/src/test/resources/logging.properties
new file mode 100644
index 0000000000..5139b6bf9d
--- /dev/null
+++ b/glassfish-runner/appclient-platform-tck/src/test/resources/logging.properties
@@ -0,0 +1,15 @@
+handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+tck.jakarta.platform.ant.level = FINER
+org.glassfish.appclient.client.level = FINER
+
+java.util.logging.FileHandler.pattern = tck-run.log
+java.util.logging.FileHandler.level = FINEST
+#java.util.logging.FileHandler.formatter = tck.conversion.log.TestLogFormatter
+java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
+# date(1), source(2), logger(3), level(4), message(5), thrown(6)
+java.util.logging.SimpleFormatter.format = [%1$tH:%tM:%1$tS.%1$tL] %2$.12s/%4$s %5$s %n
+
+# Limit the message that are printed on the console to INFO and above.
+java.util.logging.ConsoleHandler.level = FINEST
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
\ No newline at end of file