diff --git a/appserver/extras/embedded/web/src/assembly/package.xml b/appserver/extras/embedded/web/src/assembly/package.xml
index 61559c78611..26749ebd69e 100644
--- a/appserver/extras/embedded/web/src/assembly/package.xml
+++ b/appserver/extras/embedded/web/src/assembly/package.xml
@@ -26,6 +26,7 @@
META-INF/MANIFEST.MFMETA-INF/hk2-locator/*META-INF/loggerinfo/*
+ META-INF/beans.xml
diff --git a/appserver/tests/tck/glassfish-runner/README.md b/appserver/tests/tck/glassfish-runner/README.md
new file mode 100644
index 00000000000..f25e4c2cac3
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/README.md
@@ -0,0 +1,52 @@
+* Directories containing the keyword `extra` are runners for tests
+ that must be run in addition to that component tck.
+
+ As of 2025-03-12, this is:
+
+ - cdi-platform-extra-tck
+ - jsonb-platform-extra-tck
+ - jsonp-platform-extra-tck
+ - pages-platform-extra-tck
+ - rest-platform-extra-tck
+ - websocket-platform-extra-tck
+
+* Directories containing the keyword `subst` are runners for tests
+ where the component TCK completely replaces the component tck. In
+ other words, the component TCK can be completely ignored.
+
+ As of 2025-03-12, this is:
+
+ - expression-language-platform-subst-tck
+
+* Directories that do not contain either of the preceding keywords
+ contain runners for tests where component TCK is the necessary and
+ sufficient set of tests. These tests are produced and published by
+ the respective component specification project.
+
+ As of 2025-03-12, this is:
+
+ - annotations-tck
+ - batch-tck
+ - cdi-model-tck
+ - cdi-tck
+ - concurrency-tck
+ - connector-platform-tck
+ - data-tck
+ - enterprise-beans-tck
+ - expression-language-tck
+ - jsonb-tck
+ - jsonp-tck
+ - mail-platform-tck
+ - messaging-platform-tck
+ - messaging-tck
+ - pages-tck
+ - persistence-platform-tck
+ - persistence-tck
+ - platform
+ - rest-tck
+ - servlet-tck
+ - signature
+ - tags-tck
+ - transactions-tck
+ - validation-tck
+ - websocket-tck
diff --git a/appserver/tests/tck/glassfish-runner/annotations-tck/README b/appserver/tests/tck/glassfish-runner/annotations-tck/README
new file mode 100644
index 00000000000..bdfc1d7ae8d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/annotations-tck/README
@@ -0,0 +1,22 @@
+//TODO: Update this file for any incomplete/incorrect information
+
+The pom.xml in this folder can be used to run the Jakarta Annotations Standalone TCK
+against Glassfish 8.0.0
+
+
+Below are the instructions to run the Jakarta Annotations TCK
+
+1. Install Java17+ , set JAVAHOME
+2. Install Maven 3.6+ set M2_HOME
+3. SET PATH : add M2_HOME/bin, JAVA_HOME/bin
+eg: export PATH=$ANT_HOME/bin:$M2_HOME/bin:$JAVA_HOME/bin:
+
+4. Install the tck jar jakarta-annotations-tck-.jar that is built from jakarta-tck/annotations
+in this repository using below mvn install command:
+`mvn install:install-file -DcreateChecksum=true -Dpackaging=jar
+-Dfile=jakarta-annotations-tck-.jar -DgroupId=jakartatck
+-DartifactId=jakarta-annotations-tck -Dversion=`
+
+
+5. Verify the system properties set in glassfish-runner/annotations-tck/pom.xml
+Run `mvn clean verify` from the current directory
diff --git a/appserver/tests/tck/glassfish-runner/annotations-tck/pom.xml b/appserver/tests/tck/glassfish-runner/annotations-tck/pom.xml
new file mode 100644
index 00000000000..3599d91d4fb
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/annotations-tck/pom.xml
@@ -0,0 +1,181 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ glassfish.annotations-tck
+ 11.0.0
+ jar
+
+
+ 8.0.0-M9
+ glassfish8
+ jakarta-annotations-tck
+ 3.0.0
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ jakartatck
+ jakarta-annotations-tck
+ 3.0.0
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.4
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.2.0
+
+
+ unpack
+
+ unpack
+
+ generate-resources
+
+
+
+ jakartatck
+ ${tck.artifactId}
+ ${tck.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.2.0
+
+
+ unpack
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.0.0-M5
+
+
+ sig-test
+
+ integration-test
+ verify
+
+
+ jakartatck:${tck.artifactId}
+
+ ${project.build.directory}/jdk11-bundle
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.annotation-api.jar:${project.build.directory}/jdk11-bundle/java.base:${project.build.directory}/jdk11-bundle/java.rmi:${project.build.directory}/jdk11-bundle/java.sql:${project.build.directory}/jdk11-bundle/java.naming
+ true
+ false
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+ web
+
+ web
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/README.md b/appserver/tests/tck/glassfish-runner/batch-tck/README.md
new file mode 100644
index 00000000000..5cbcf3dd75a
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/README.md
@@ -0,0 +1,40 @@
+
+
+# Executing Jakarta Batch TCK against GlassFish
+
+To test the setup, run:
+
+```
+mvn clean verify -Dit.test=CDITests
+```
+
+To run the full TCK, execute:
+
+```
+mvn clean verify
+```
+
+## Details
+
+This module is composed of 2 modules, which are executed from the root module:
+
+* apitests - executes API behavior tests against a running GlassFish server
+* sigtest - executes API signature tests against GlassFish classes
+
+Each of the modules can be executed separately by going into its directory and execute the same command as for the root module:
+
+```
+mvn clean verify
+```
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/apitests/pom.xml b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/pom.xml
new file mode 100644
index 00000000000..8a74a4c8394
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/pom.xml
@@ -0,0 +1,196 @@
+
+
+
+ 4.0.0
+
+ org.glassfish
+ glassfish.batch-tck
+ 2.1.5
+
+
+ glassfish.batch-tck.apitests
+ jar
+ Jakarta Batch API TCK Runner for Glassfish
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ 5.10.2
+ 1.10.2
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${version.org.junit.jupiter}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+ 1.9.3.Final
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+ 1.9.3.Final
+ test
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ 1.9.3.Final
+ test
+
+
+
+
+
+
+
+
+ jakarta.batch
+ com.ibm.jbatch.tck
+ test
+
+
+ jakarta.batch
+ com.ibm.jbatch.tck.spi
+ test
+
+
+ jakarta.batch
+ jakarta.batch.arquillian.extension
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+ test
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+ jakarta.batch
+ jakarta.batch.reporting
+ test
+
+
+ org.slf4j
+ slf4j-jdk14
+
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+
+ org.omnifaces.arquillian
+ glassfish-client-ee11
+ 1.7.1
+ test
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ unpack
+
+ unpack
+
+ generate-resources
+
+
+
+ org.glassfish.main.distributions
+ glassfish
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ xml-maven-plugin
+
+
+ com.github.ekryd.echo-maven-plugin
+ echo-maven-plugin
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.1
+
+
+ ${glassfish.home}
+ org.glassfish
+ true
+ ${glassfish.home}/glassfish/domains/domain1/config/batch;create=true
+ ${basedir}/src/test/resources/derby.ddl.jbatch-tck.sql
+ batch
+ ${basedir}/src/test/resources/password.txt
+
+ set server-config.network-config.protocols.protocol.http-listener-1.http.trace-enabled=true
+ create-jdbc-connection-pool --resType=javax.sql.DataSource --datasourceClassname=org.apache.derby.jdbc.ClientDataSource40 --property databaseName=${glassfish.home}/glassfish/domains/domain1/config/batch:serverName=localhost:PortNumber=1527:User=batch:Password=batch batchtck
+ create-jdbc-resource --poolName=batchtck jdbc/orderDB
+ list-jdbc-resources
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/derby.ddl.jbatch-tck.sql b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/derby.ddl.jbatch-tck.sql
new file mode 100644
index 00000000000..c6a5cad449e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/derby.ddl.jbatch-tck.sql
@@ -0,0 +1,85 @@
+DROP TABLE app.Numbers;
+DROP TABLE app.Orders;
+DROP TABLE app.Inventory;
+
+CREATE TABLE app.Numbers
+(
+ item INT,
+ quantity INT
+);
+
+CREATE TABLE app.Orders
+(
+ orderID INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1) PRIMARY KEY,
+ itemID INT,
+ quantity INT
+);
+
+CREATE TABLE app.Inventory
+(
+ itemID INT NOT NULL PRIMARY KEY,
+ quantity INT NOT NULL
+);
+
+INSERT INTO app.Inventory
+VALUES (1, 100);
+
+INSERT INTO app.Numbers
+VALUES (1, 10);
+
+INSERT INTO app.Numbers
+VALUES (2, 10);
+
+INSERT INTO app.Numbers
+VALUES (3, 10);
+
+INSERT INTO app.Numbers
+VALUES (4, 10);
+
+INSERT INTO app.Numbers
+VALUES (5, 10);
+
+INSERT INTO app.Numbers
+VALUES (6, 10);
+
+INSERT INTO app.Numbers
+VALUES (7, 10);
+
+INSERT INTO app.Numbers
+VALUES (8, 10);
+
+INSERT INTO app.Numbers
+VALUES (9, 10);
+
+INSERT INTO app.Numbers
+VALUES (10, 10);
+
+INSERT INTO app.Numbers
+VALUES (11, 10);
+
+INSERT INTO app.Numbers
+VALUES (12, 10);
+
+INSERT INTO app.Numbers
+VALUES (13, 10);
+
+INSERT INTO app.Numbers
+VALUES (14, 10);
+
+INSERT INTO app.Numbers
+VALUES (15, 10);
+
+INSERT INTO app.Numbers
+VALUES (16, 10);
+
+INSERT INTO app.Numbers
+VALUES (17, 10);
+
+INSERT INTO app.Numbers
+VALUES (18, 10);
+
+INSERT INTO app.Numbers
+VALUES (19, 10);
+
+INSERT INTO app.Numbers
+VALUES (20, 10);
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/password.txt
new file mode 100644
index 00000000000..5ab0eec136d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/apitests/src/test/resources/password.txt
@@ -0,0 +1,4 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
+AS_ADMIN_DBPASSWORD=batch
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/pom.xml b/appserver/tests/tck/glassfish-runner/batch-tck/pom.xml
new file mode 100644
index 00000000000..f04da1ce2fb
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/pom.xml
@@ -0,0 +1,53 @@
+
+
+
+ 4.0.0
+
+ jakarta.batch
+ jakarta.batch.arquillian.exec-parent
+ 2.1.5
+
+
+
+ org.glassfish
+ glassfish.batch-tck
+
+ pom
+ Jakarta Batch TCK Runner for Glassfish
+
+
+ apitests
+ sigtests
+
+
+
+ glassfish8
+ 8.0.0-M9
+ 2.1.5
+
+
+
+
+ jakarta-snapshots
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/batch-tck/sigtests/pom.xml b/appserver/tests/tck/glassfish-runner/batch-tck/sigtests/pom.xml
new file mode 100644
index 00000000000..4a2f216d5e7
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/batch-tck/sigtests/pom.xml
@@ -0,0 +1,167 @@
+
+
+ 4.0.0
+
+
+
+
+ org.glassfish
+ glassfish.batch-tck
+ 2.1.5
+
+
+ glassfish.batch-tck.sigtests
+
+
+ glassfish8
+ 8.0.0-M9
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ 2.1.5
+
+
+
+
+ jakarta-snapshots
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+
+ central
+ https://repo1.maven.org/maven2
+
+
+ jboss
+ https://repository.jboss.org/nexus/content/repositories/releases/
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack-classes
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ glassfish
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+ unpack-sigfiles
+
+ unpack
+
+ pre-integration-test
+
+
+
+ jakarta.batch
+ com.ibm.jbatch.tck
+ ${jakarta.batch.version}
+
+
+ sigtest/*
+ ${project.build.directory}/sigtest-copy
+
+
+
+
+
+ maven-antrun-plugin
+ 3.1.0
+
+
+ default-cli
+
+ run
+
+ pre-integration-test
+
+
+
+
+
+
+
+
+
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+
+ strictcheck
+ true
+ jakarta.batch.**
+
+
+
+ default-cli
+
+ check
+
+ integration-test
+
+
+
+
+
+
+
+
+ jdk21
+
+ true
+ 21
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+
+ ${project.build.directory}/sigtest-copy/sigtest/jakarta.sigtest-2.2-batch.standalone.tck.sig-2.1-se21-Temurin
+ 21
+
+
+
+
+
+
+ jdk17
+
+ false
+ 17
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+
+ ${project.build.directory}/sigtest-copy/sigtest/sigtest-1.6-batch.standalone.tck.sig-2.1-se17-TemurinHotSpot
+ 17
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-model-tck/pom.xml
new file mode 100644
index 00000000000..b1bbdfe4456
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/pom.xml
@@ -0,0 +1,290 @@
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.jboss.weld
+ lang-model-tck-runner
+ 4.1.0-SNAPSHOT
+
+ CDI Lite Language Model TCK Runner
+
+
+ 4.1.0
+ ${glassfish.root}/glassfish8
+ ${project.build.directory}
+ 8.0.0-SNAPSHOT
+ 17
+ 6.0.1.Final
+
+
+
+
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ jakarta.enterprise
+ cdi-tck-lang-model
+ ${cdi.tck-4-0.version}
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+ org.jboss.weld
+ weld-core-test-common
+ ${weld.version}
+
+
+ org.jboss.weld
+ weld-core-impl
+ ${weld.version}
+
+
+
+
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+
+
+
+ junit
+ junit
+ 4.13.2
+ test
+
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-container
+ test
+
+
+
+ org.jboss.weld
+ weld-core-test-common
+ test
+
+
+
+ org.jboss.weld
+ weld-core-impl
+ test
+
+
+
+ jakarta.enterprise
+ cdi-tck-lang-model
+ test
+
+
+
+ org.jboss.weld.module
+ weld-web
+ ${weld.version}
+
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ ${cdi.tck-4-0.version}
+
+
+ jakarta.el
+ jakarta.el-api
+
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ test
+
+
+
+
+ org.omnifaces.arquillian
+ ${arquillian.connector}
+ 1.7-SNAPSHOT
+
+
+
+
+
+ jakarta-snapshots
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.10.1
+
+
+ -proc:none
+
+
+
+ maven-jar-plugin
+ 3.4.2
+
+
+
+ test-jar
+
+
+ ${project.build.directory}/dependency/lib
+
+
+ false
+
+
+
+
+
+
+
+ maven-surefire-plugin
+
+ -Xmx1g -XX:+UseParallelGC --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 3.5.2
+
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ arquillian-glassfish-server-managed
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack-glassfish
+
+ unpack
+
+ test-compile
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ true
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+
+
+ web
+
+ web
+ arquillian-glassfish-server-managed
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack-glassfish
+
+ unpack
+
+ test-compile
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ true
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+
+
+ embedded-core
+
+ arquillian-glassfish-server-embedded
+
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-web
+ ${glassfish.version}
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/CleanupExtension.java b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/CleanupExtension.java
new file mode 100644
index 00000000000..40156aae41d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/CleanupExtension.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2022, 2022 Contributors to the Eclipse Foundation. 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 org.jboss.weld.lang.model.tck;
+
+import jakarta.annotation.Priority;
+import jakarta.enterprise.event.Observes;
+import jakarta.enterprise.inject.spi.Extension;
+import jakarta.enterprise.inject.spi.ProcessAnnotatedType;
+
+public class CleanupExtension implements Extension {
+
+ public void enhancement(@Priority(Integer.MAX_VALUE) @Observes ProcessAnnotatedType> pat) {
+ if (LangModelExtension.ENHANCEMENT_INVOKED > 0 &&
+ pat.getAnnotatedType().getJavaClass().getName().startsWith("org.jboss.cdi.lang.model.tck")) {
+ pat.veto();
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelExtension.java b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelExtension.java
new file mode 100644
index 00000000000..d13fcb87c8e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelExtension.java
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2021, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.weld.lang.model.tck;
+
+import jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension;
+import jakarta.enterprise.inject.build.compatible.spi.Enhancement;
+import jakarta.enterprise.lang.model.declarations.ClassInfo;
+import org.jboss.cdi.lang.model.tck.LangModelVerifier;
+
+public class LangModelExtension implements BuildCompatibleExtension {
+
+ public static int ENHANCEMENT_INVOKED = 0;
+
+ @Enhancement(types = LangModelVerifier.class)
+ public void run(ClassInfo clazz) {
+ ENHANCEMENT_INVOKED++;
+ LangModelVerifier.verify(clazz);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelTckTest.java b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelTckTest.java
new file mode 100644
index 00000000000..4bd55020ae0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/java/org/jboss/weld/lang/model/tck/LangModelTckTest.java
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2021, Red Hat, Inc., and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jboss.weld.lang.model.tck;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.cdi.lang.model.tck.LangModelVerifier;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.BeanDiscoveryMode;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.impl.BeansXml;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import jakarta.enterprise.inject.build.compatible.spi.BuildCompatibleExtension;
+import jakarta.enterprise.inject.spi.Extension;
+import jakarta.enterprise.lang.model.declarations.ClassInfo;
+
+/**
+ *
+ * Executes CDI TCK for language model used in CDI Lite, current setup requires discovery mode ALL plus adding
+ * {@link LangModelVerifier} into the deployment to discover it as a bean. Alternatively, this could be added
+ * synthetically inside {@link LangModelExtension}.
+ *
+ *
+ *
+ * Actual test happens inside {@link LangModelExtension} by calling {@link LangModelVerifier#verify(ClassInfo)}.
+ *
+ */
+@RunWith(Arquillian.class)
+public class LangModelTckTest {
+
+ @Deployment
+ public static Archive> deploy() {
+ return ShrinkWrap.create(WebArchive.class, LangModelTckTest.class.getSimpleName() + ".war")
+ // beans.xml with discovery mode "all"
+ .addAsWebInfResource(new BeansXml(BeanDiscoveryMode.ALL), "beans.xml")
+ .addAsServiceProvider(BuildCompatibleExtension.class, LangModelExtension.class)
+ // add this class into the deployment so that it's subject to discovery
+ .addPackage(LangModelVerifier.class.getPackage())
+ .addClasses(LangModelExtension.class)
+ // The cleanup extension that vetoes all classes that we're testing, since they are only
+ // meant for the lang model verifier and shouldn't be processed afterwards.
+ .addClass(CleanupExtension.class)
+ .addAsServiceProvider(Extension.class, CleanupExtension.class);
+
+ }
+
+ @Test
+ public void testLangModel() {
+ // test is executed in LangModelExtension; here we just assert that the relevant extension method was invoked
+ Assert.assertTrue(LangModelExtension.ENHANCEMENT_INVOKED == 1);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..a92026eb522
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/arquillian.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+ target/
+
+
+
+
+
+ localhost
+ 4848
+ admin
+
+ ./target/glassfish8
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/log4j.xml b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/log4j.xml
new file mode 100644
index 00000000000..61e40a067fe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/log4j.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/password.txt
new file mode 100644
index 00000000000..10da04386dd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-model-tck/src/test/resources/password.txt
@@ -0,0 +1,3 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-install/pom.xml
new file mode 100644
index 00000000000..de426207b50
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-install/pom.xml
@@ -0,0 +1,89 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ cdi-extra-tck-install
+ 4.0.0-SNAPSHOT
+ pom
+ TCK: Install Jakarta cdi Platform Extra TCK
+
+
+ jakartaeetck-${tck.test.cdi-extra.version}-dist.zip
+ https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee11/staged/eftl/${tck.test.cdi-extra.file}
+
+ 11.0.0
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ false
+ ${tck.test.cdi-extra.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-cdi-extra-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+ 3.1.3
+
+
+ install-cdi-extra-tck-pom
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/cdi-tck-ee-impl-${tck.test.cdi-extra.version}.jar
+ ${project.build.directory}/jakartaeetck/artifacts/cdi-tck-ee-impl-${tck.test.cdi-extra.version}-sources.jar
+ jakarta.tck
+ cdi-tck-ee-impl
+ ${tck.test.cdi-extra.version}
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/pom.xml
new file mode 100644
index 00000000000..c007e5b3bee
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/pom.xml
@@ -0,0 +1,487 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.cdi-platform-extra-tck
+ 4.1.0-SNAPSHOT
+
+ Jakarta CDI TCK Runner for Glassfish
+ Aggregates dependencies and runs the CDI TCK (both standalone and on GlassFish)
+
+
+ 4.1.0
+
+ 11.0.0
+
+ ${project.build.directory}
+
+
+ 8.0.0-M9
+
+ false
+
+
+ 6.0.1.Final
+ 6.0.Final
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ 4.1.0
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ 2.0.0
+
+
+
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ provided
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-el-api
+ 4.1.0
+ provided
+
+
+ jakarta.el
+ jakarta.el-api
+ 6.0.0
+ provided
+
+
+
+ jakarta.faces
+ jakarta.faces-api
+ 4.1.2
+ test
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+ test
+
+
+ jakarta.jms
+ jakarta.jms-api
+ 3.1.0
+ test
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ 2.0.1
+ test
+
+
+ jakarta.resource
+ jakarta.resource-api
+ 2.1.0
+ test
+
+
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
+ 4.0.0
+ test
+
+
+ jakarta.ws.rs
+ jakarta.ws.rs-api
+ 4.0.0
+ test
+
+
+
+
+ org.jboss.weld
+ weld-api
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-spi
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-core-impl
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld.module
+ weld-web
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.tck
+ cdi-tck-ee-impl
+ ${tck.version}
+ test
+
+
+
+ org.glassfish.expressly
+ expressly
+ 6.0.0-M1
+ provided
+
+
+ *
+ *
+
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ test
+
+
+ org.htmlunit
+ htmlunit
+ 4.9.0
+ test
+
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+
+ org.testng
+ testng
+ 7.9.0
+ test
+
+
+ org.jboss.arquillian.testng
+ arquillian-testng-container
+ test
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ test
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+ org.seleniumhq.selenium
+ selenium-devtools-v133
+ 4.29.0
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+
+ -proc:none
+
+
+
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+ ${project.build.directory}/dependency/lib
+
+
+ false
+
+
+
+
+
+
+
+ maven-dependency-plugin
+
+
+
+ copy-test-suites
+
+ unpack
+
+ pre-integration-test
+
+
+
+ jakarta.tck
+ cdi-tck-ee-impl
+ ${tck.version}
+ false
+
+
+ tck-tests.xml
+ target/suites
+ false
+ true
+
+
+
+
+
+ install-cdi-tck-ext-lib
+
+ copy
+
+ pre-integration-test
+
+
+
+ jakarta.enterprise
+ cdi-tck-ext-lib
+ ${cdi.tck-4-1.version}
+ jar
+ true
+ ${glassfish.root}/glassfish8/glassfish/domains/domain1/lib/applibs
+ cdi-tck-ext-lib.jar
+
+
+
+
+
+
+ unpack-glassfish
+
+ unpack
+
+ pre-integration-test
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.2
+
+
+ org.apache.maven.surefire
+ surefire-testng
+ 3.5.2
+
+
+
+
+ run ee tck
+
+ integration-test
+ verify
+
+
+ -Xmx768m
+
+
+
+ target/suites/tck-tests.xml
+
+ ${excluded.groups}
+
+ jakarta.tck:cdi-tck-ee-impl
+
+
+
+
+ surefire.testng.verbose
+ 1
+
+
+ 1
+ true
+
+
+
+ ${glassfish.root}/glassfish8
+ true
+ 2048m
+ :org.jboss.cdi.tck...
+
+ cdiTckExcludeDummy=true
+ glassfish.servlet.loadAllOnStartup=true
+
+
+ create-jms-resource --restype jakarta.jms.Queue --property Name=queue_test queue_test
+ create-jms-resource --restype jakarta.jms.Topic --property Name=topic_test topic_test
+ set configs.config.server-config.cdi-service.enable-implicit-cdi=true
+ create-file-user --groups student --passwordfile ${project.build.directory}/test-classes/password.txt student
+ create-file-user --groups printer --passwordfile ${project.build.directory}/test-classes/password.txt printer
+ create-file-user --groups student:alarm --passwordfile ${project.build.directory}/test-classes/password.txt alarm
+
+
+ ${project.build.outputDirectory}
+ ${project.build.directory}/dependency/lib
+ true
+
+
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+ ${project.build.directory}/failsafe-reports/junitreports
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ se
+ glassfish
+
+
+
+ web
+
+ javaee-full,se
+ web
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
new file mode 100644
index 00000000000..bf419df51f4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.jboss.cdi.tck.spi.Beans;
+
+/**
+ * CDI TCK tests use this class as an adapter between the test application and server container.
+ * Then it's implementation can simplify the behavior, ie. explicit passivation, while
+ * in a real application the decision to passivate/activate some object is on the container
+ * and cannot be requested by the application.
+ *
+ * Until GlassFish provides standalone utility to do that, we have to fake
+ * the passivation/activation.
+ *
+ * @author David Matejcek
+ */
+public class GlassFishBeansImpl implements Beans {
+
+ private Object fakeSerialized;
+
+ @Override
+ public boolean isProxy(Object instance) {
+ return instance.getClass().getName().indexOf("_$$_Weld") > 0;
+ }
+
+
+ @Override
+ public byte[] passivate(Object instance) throws IOException {
+ fakeSerialized = instance;
+ return instance.toString().getBytes();
+ }
+
+
+ @Override
+ public Object activate(byte[] bytes) throws IOException, ClassNotFoundException {
+ if (Arrays.equals(fakeSerialized.toString().getBytes(), bytes)) {
+ Object result = fakeSerialized;
+ fakeSerialized = null;
+ return result;
+ }
+ return null;
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
new file mode 100644
index 00000000000..a225eb1c8e0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+
+import org.jboss.cdi.tck.spi.Contexts;
+import org.jboss.weld.Container;
+import org.jboss.weld.context.ApplicationContext;
+import org.jboss.weld.context.DependentContext;
+import org.jboss.weld.context.ManagedContext;
+import org.jboss.weld.context.RequestContext;
+import org.jboss.weld.context.http.HttpRequestContext;
+import org.jboss.weld.util.ForwardingContext;
+
+public class GlassFishContextImpl implements Contexts {
+ @Override
+ public RequestContext getRequestContext() {
+ return Container.instance().deploymentManager().instance().select(HttpRequestContext.class).get();
+ }
+
+ @Override
+ public void setActive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).activate();
+ } else if (context instanceof ApplicationContext) {
+ // No-op, always active
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public void setInactive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).deactivate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public DependentContext getDependentContext() {
+ return Container.instance().deploymentManager().instance().select(DependentContext.class).get();
+ }
+
+ @Override
+ public void destroyContext(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ManagedContext managedContext = (ManagedContext) context;
+ managedContext.invalidate();
+ managedContext.deactivate();
+ managedContext.activate();
+ } else if (context instanceof ApplicationContext) {
+ ((ApplicationContext) context).invalidate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
new file mode 100644
index 00000000000..0c1ea19ae85
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2024 Eclipse Foundation and/or its affiliates.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.CreationalContext;
+import org.jboss.cdi.tck.spi.Contextuals;
+
+public class GlassFishContextualsImpl implements Contextuals {
+
+ @Override
+ public Inspectable create(T instance, Context context) {
+ return new InspectableContextual<>(instance);
+ }
+
+ static class InspectableContextual implements Inspectable {
+
+ private T instancePassedToConstructor;
+ private T instancePassedToDestroy;
+
+ private CreationalContext creationalContextPassedToCreate;
+ private CreationalContext creationalContextPassedToDestroy;
+
+ InspectableContextual(T instance) {
+ this.instancePassedToConstructor = instance;
+ }
+
+ @Override
+ public T create(CreationalContext creationalContext) {
+ this.creationalContextPassedToCreate = creationalContext;
+ return instancePassedToConstructor;
+ }
+
+ @Override
+ public void destroy(T instance, CreationalContext creationalContext) {
+ instancePassedToDestroy = instance;
+ creationalContextPassedToDestroy = creationalContext;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToCreate() {
+ return creationalContextPassedToCreate;
+ }
+
+ @Override
+ public T getInstancePassedToDestroy() {
+ return instancePassedToDestroy;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToDestroy() {
+ return creationalContextPassedToDestroy;
+ }
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
new file mode 100644
index 00000000000..05f52b3c2e2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Contextual;
+import org.jboss.cdi.tck.spi.CreationalContexts;
+import org.jboss.weld.contexts.CreationalContextImpl;
+
+/**
+ * This returns the Weld (and thus GlassFish) specific CreationalContextImpl with added methods
+ * for inspection.
+ */
+public class GlassFishCreationalContextsImpl implements CreationalContexts {
+
+ @Override
+ public Inspectable create(Contextual contextual) {
+ return new InspectableCreationalContext<>(contextual);
+ }
+
+ static class InspectableCreationalContext extends CreationalContextImpl implements Inspectable {
+
+ private T lastBeanPushed;
+ private boolean pushCalled;
+ private boolean releaseCalled;
+
+ public InspectableCreationalContext(Contextual contextual) {
+ super(contextual);
+ }
+
+ @Override
+ public void push(T incompleteInstance) {
+ lastBeanPushed = incompleteInstance;
+
+ pushCalled = true;
+ super.push(incompleteInstance);
+ }
+
+ @Override
+ public Object getLastBeanPushed() {
+ return lastBeanPushed;
+ }
+
+ @Override
+ public boolean isPushCalled() {
+ return pushCalled;
+ }
+
+ @Override
+ public boolean isReleaseCalled() {
+ return releaseCalled;
+ }
+
+ @Override
+ public void release(Contextual contextual, T instance) {
+ releaseCalled = true;
+ super.release(contextual, instance);
+ }
+
+ @Override
+ public void release() {
+ releaseCalled = true;
+ super.release();
+ }
+
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
new file mode 100644
index 00000000000..d0982342390
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation.
+ * Copyright (c) 2013, 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 org.jboss.weld.tck.glassfish;
+
+import java.util.List;
+
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+
+import jakarta.enterprise.inject.spi.DefinitionException;
+import jakarta.enterprise.inject.spi.DeploymentException;
+
+/**
+ *
+ * See AS7-1197 for more details.
+ *
+ * @see org.jboss.weld.tck.glassfish.GlassFishExtension
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishDeploymentExceptionTransformer implements DeploymentExceptionTransformer {
+
+ private static final String[] DEPLOYMENT_EXCEPTION_FRAGMENTS = new String[] {
+ "Only normal scopes can be passivating",
+ "org.jboss.weld.exceptions.DeploymentException",
+ "org.jboss.weld.exceptions.UnserializableDependencyException",
+ "org.jboss.weld.exceptions.InconsistentSpecializationException",
+ "CDI deployment failure:",
+ "org.jboss.weld.exceptions.NullableDependencyException" };
+
+ private static final String[] DEFINITION_EXCEPTION_FRAGMENTS = new String[]
+ { "CDI definition failure:",
+ "org.jboss.weld.exceptions.DefinitionException" };
+
+ @Override
+ public Throwable transform(Throwable throwable) {
+
+ // Arquillian sometimes returns InvocationException with nested AS7
+ // exception and sometimes AS7 exception itself
+ @SuppressWarnings("unchecked")
+ List throwableList = ExceptionUtils.getThrowableList(throwable);
+ if (throwableList.size() < 1)
+ return throwable;
+
+ Throwable root = null;
+
+ if (throwableList.size() == 1) {
+ root = throwable;
+ } else {
+ root = ExceptionUtils.getRootCause(throwable);
+ }
+
+ if (root instanceof DeploymentException || root instanceof DefinitionException) {
+ return root;
+ }
+ if (isFragmentFound(DEPLOYMENT_EXCEPTION_FRAGMENTS, root)) {
+ return new DeploymentException(root.getMessage());
+ }
+ if (isFragmentFound(DEFINITION_EXCEPTION_FRAGMENTS, root)) {
+ return new DefinitionException(root.getMessage());
+ }
+ return throwable;
+ }
+
+ private boolean isFragmentFound(String[] fragments, Throwable rootException) {
+ for (String fragment : fragments) {
+ if (rootException.getMessage().contains(fragment)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
new file mode 100644
index 00000000000..187421b57f1
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.el.ArrayELResolver;
+import jakarta.el.BeanELResolver;
+import jakarta.el.CompositeELResolver;
+import jakarta.el.ELContext;
+import jakarta.el.ELContextEvent;
+import jakarta.el.ELContextListener;
+import jakarta.el.ELResolver;
+import jakarta.el.ExpressionFactory;
+import jakarta.el.FunctionMapper;
+import jakarta.el.ListELResolver;
+import jakarta.el.MapELResolver;
+import jakarta.el.ResourceBundleELResolver;
+import jakarta.el.VariableMapper;
+import jakarta.enterprise.inject.spi.BeanManager;
+
+import org.jboss.cdi.tck.spi.EL;
+import org.jboss.weld.bean.builtin.BeanManagerProxy;
+import org.jboss.weld.manager.BeanManagerImpl;
+import org.jboss.weld.module.web.el.WeldELContextListener;
+import org.jboss.weld.module.web.el.WeldExpressionFactory;
+
+public class GlassFishELImpl implements EL {
+
+ private static final ExpressionFactory EXPRESSION_FACTORY = new WeldExpressionFactory(ExpressionFactory.newInstance());
+
+ private static final ELContextListener[] EL_CONTEXT_LISTENERS = { new WeldELContextListener() };
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateValueExpression(BeanManager beanManager, String expression, Class expectedType) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createValueExpression(elContext, expression, expectedType).getValue(elContext);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateMethodExpression(BeanManager beanManager, String expression, Class expectedType,
+ Class>[] expectedParamTypes, Object[] expectedParams) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createMethodExpression(elContext, expression, expectedType, expectedParamTypes).invoke(
+ elContext, expectedParams);
+ }
+
+ @Override
+ public ELContext createELContext(BeanManager beanManager) {
+ if (beanManager instanceof BeanManagerProxy) {
+ BeanManagerProxy proxy = (BeanManagerProxy) beanManager;
+ beanManager = proxy.delegate();
+ }
+ if (beanManager instanceof BeanManagerImpl) {
+ return createELContext((BeanManagerImpl) beanManager);
+ }
+ throw new IllegalStateException("Wrong manager");
+ }
+
+ private ELContext createELContext(BeanManagerImpl beanManagerImpl) {
+
+ final ELResolver resolver = createELResolver(beanManagerImpl);
+
+ ELContext context = new ELContext() {
+
+ @Override
+ public ELResolver getELResolver() {
+ return resolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper() {
+ return null;
+ }
+
+ @Override
+ public VariableMapper getVariableMapper() {
+ return null;
+ }
+
+ };
+ callELContextListeners(context);
+ return context;
+ }
+
+ private ELResolver createELResolver(BeanManagerImpl beanManagerImpl) {
+ CompositeELResolver resolver = new CompositeELResolver();
+ resolver.add(beanManagerImpl.getELResolver());
+ resolver.add(new MapELResolver());
+ resolver.add(new ListELResolver());
+ resolver.add(new ArrayELResolver());
+ resolver.add(new ResourceBundleELResolver());
+ resolver.add(new BeanELResolver());
+ return resolver;
+ }
+
+ private void callELContextListeners(ELContext context) {
+ ELContextEvent event = new ELContextEvent(context);
+ for (ELContextListener listener : EL_CONTEXT_LISTENERS) {
+ listener.contextCreated(event);
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
new file mode 100644
index 00000000000..d0a16a28352
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
@@ -0,0 +1,38 @@
+/*
+ * 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
+ */
+
+package org.jboss.weld.tck.glassfish;
+
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+/**
+ * Registers the exception transformer to properly identify deployment failures.
+ *
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishExtension implements LoadableExtension {
+
+ private static final String GLASSFISH_CLIENTUTILS_CLASS = "org.omnifaces.arquillian.container.glassfish.clientutils.GlassFishClientUtil";
+
+ @Override
+ public void register(ExtensionBuilder builder) {
+ if (Validate.classExists(GLASSFISH_CLIENTUTILS_CLASS)) {
+ builder.service(DeploymentExceptionTransformer.class, GlassFishDeploymentExceptionTransformer.class);
+ }
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/cdi-tck.properties b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/cdi-tck.properties
new file mode 100644
index 00000000000..d04503bf95e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/cdi-tck.properties
@@ -0,0 +1,9 @@
+org.jboss.cdi.tck.spi.Beans=org.jboss.weld.tck.glassfish.GlassFishBeansImpl
+org.jboss.cdi.tck.spi.CreationalContexts=org.jboss.weld.tck.glassfish.GlassFishCreationalContextsImpl
+org.jboss.cdi.tck.spi.Contexts=org.jboss.weld.tck.glassfish.GlassFishContextImpl
+org.jboss.cdi.tck.spi.Contextuals=org.jboss.weld.tck.glassfish.GlassFishContextualsImpl
+org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.glassfish.GlassFishELImpl
+org.jboss.cdi.tck.testDataSource=jdbc/__default
+org.jboss.cdi.tck.testJmsConnectionFactory=java:comp/DefaultJMSConnectionFactory
+org.jboss.cdi.tck.testJmsQueue=queue_test
+org.jboss.cdi.tck.testJmsTopic=topic_test
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..8682cd7ed28
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.jboss.weld.tck.glassfish.GlassFishExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/log4j.xml b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/log4j.xml
new file mode 100644
index 00000000000..61e40a067fe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/log4j.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/password.txt
new file mode 100644
index 00000000000..10da04386dd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/cdi-platform-extra-tck-run/src/test/resources/password.txt
@@ -0,0 +1,3 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
diff --git a/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/pom.xml
new file mode 100644
index 00000000000..f64897ac375
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-platform-extra-tck/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ cdi-platform-extra-tck
+ 4.1.0-SNAPSHOT
+ pom
+
+
+ cdi-platform-extra-tck-install
+ cdi-platform-extra-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-install/pom.xml
new file mode 100644
index 00000000000..840a954f2fe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-install/pom.xml
@@ -0,0 +1,150 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ cdi-tck-install
+ pom
+ 4.1.0-SNAPSHOT
+ TCK: Install Jakarta CDI TCK
+
+
+ cdi-tck-${tck.test.cdi.version}-dist.zip
+ https://download.eclipse.org/ee4j/cdi/4.1/${tck.test.cdi.file}
+ 4.1.0
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.cdi.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-cdi-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+
+
+ install-tck-parent
+ package
+
+ install-file
+
+
+ jakarta.enterprise
+ cdi-tck-parent
+ 4.1.0
+ pom
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-parent-4.1.0.pom
+ false
+
+
+
+
+ install-cdi-tck-api
+ package
+
+ install-file
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ 4.1.0
+ jar
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-api-4.1.0.jar
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-api-4.1.0-javadoc.jar
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-api-4.1.0-sources.jar
+
+
+
+
+ install-cdi-tck-ext-lib
+ package
+
+ install-file
+
+
+ jakarta.enterprise
+ cdi-tck-ext-lib
+ 4.1.0
+ jar
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-ext-lib-4.1.0.jar
+
+
+
+
+ install-cdi-tck-core-impl
+ package
+
+ install-file
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ 4.1.0
+ jar
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-core-impl-4.1.0.jar
+
+
+
+ install-cdi-core-tck-suite
+ package
+
+ install-file
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ 4.1.0
+ xml
+ suite
+ ${project.build.directory}/cdi-tck-4.1.0/artifacts/cdi-tck-core-impl-4.1.0-suite.xml
+ false
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/pom.xml
new file mode 100644
index 00000000000..40b9fb19a6e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/pom.xml
@@ -0,0 +1,458 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.cdi-tck-embedded
+ 4.1.0-SNAPSHOT
+
+ Jakarta CDI TCK Runner for Glassfish
+ Aggregates dependencies and runs the CDI TCK (both standalone and on GlassFish)
+
+
+
+ 4.1.0
+ ${project.build.directory}
+
+ 8.0.0-SNAPSHOT
+
+
+ 2.50.0
+
+ false
+
+
+ 6.0.1.Final
+ 6.0.Final
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ 4.1.0
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ 2.0.0
+
+
+
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ provided
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-el-api
+ 4.1.0
+ provided
+
+
+ jakarta.el
+ jakarta.el-api
+ 6.0.0
+ provided
+
+
+
+ jakarta.faces
+ jakarta.faces-api
+ 4.1.2
+ test
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+ test
+
+
+ jakarta.jms
+ jakarta.jms-api
+ 3.1.0
+ test
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ 2.0.1
+ test
+
+
+ jakarta.resource
+ jakarta.resource-api
+ 2.1.0
+ test
+
+
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
+ 4.0.0
+ test
+
+
+ jakarta.ws.rs
+ jakarta.ws.rs-api
+ 4.0.0
+ test
+
+
+
+
+ org.jboss.weld
+ weld-api
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-spi
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-core-impl
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld.module
+ weld-web
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.tck.coreprofile
+ cdi-lite-tck-suite
+ 11.0.0
+ test
+
+
+ jakarta.tck.coreprofile
+ cdi-lite-tck-suite
+ 11.0.0
+ xml
+ test
+
+
+
+ org.glassfish.expressly
+ expressly
+ 6.0.0-M1
+ provided
+
+
+ *
+ *
+
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ test
+
+
+ net.sourceforge.htmlunit
+ htmlunit
+ ${htmlunit.version}
+ test
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+
+ org.testng
+ testng
+ 7.9.0
+ test
+
+
+ org.jboss.arquillian.testng
+ arquillian-testng-container
+ test
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ test
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-embedded
+ 1.7-SNAPSHOT
+ test
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-all
+
+
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-web
+ ${glassfish.version}
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+
+ -proc:none
+
+
+
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+ ${project.build.directory}/dependency/lib
+
+
+ false
+
+
+
+
+
+
+
+ maven-dependency-plugin
+
+
+
+ copy-test-suites
+
+ copy
+
+ pre-integration-test
+
+
+
+
+ jakarta.tck.coreprofile
+ cdi-lite-tck-suite
+ xml
+ 11.0.0
+ false
+ tck-lite-suite.xml
+
+
+ target/suites
+ false
+ true
+
+
+
+
+
+ install-cdi-tck-ext-lib
+
+ copy
+
+ pre-integration-test
+
+
+
+ jakarta.enterprise
+ cdi-tck-ext-lib
+ ${cdi.tck-4-1.version}
+ jar
+ true
+ ${project.build.directory}/dependency/lib
+ cdi-tck-ext-lib.jar
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.3.0
+
+ -Xmx1g -XX:+UseParallelGC --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
+
+
+
+ target/suites/tck-lite-suite.xml
+
+ cdi-full,se
+
+ jakarta.enterprise:cdi-tck-core-impl
+
+
+
+ surefire.testng.verbose
+ 1
+
+
+ 1
+ true
+
+
+ true
+ create-jms-resource --restype jakarta.jms.Queue --property Name=queue_test queue_test
+ create-jms-resource --restype jakarta.jms.Topic --property Name=topic_test topic_test
+ set configs.config.server-config.cdi-service.enable-implicit-cdi=true
+ create-file-user --groups student --passwordfile ${project.build.directory}/test-classes/password.txt student
+ create-file-user --groups printer --passwordfile ${project.build.directory}/test-classes/password.txt printer
+ create-file-user --groups student:alarm --passwordfile ${project.build.directory}/test-classes/password.txt alarm
+ ${project.build.outputDirectory}
+ ${project.build.directory}/dependency/lib
+ true
+ true
+ true
+
+
+
+
+ org.apache.maven.surefire
+ surefire-testng
+ 3.3.0
+
+
+
+
+ run tck
+
+ integration-test
+
+ integration-test
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+ ${project.build.directory}/failsafe-reports/junitreports
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
new file mode 100644
index 00000000000..bf419df51f4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.jboss.cdi.tck.spi.Beans;
+
+/**
+ * CDI TCK tests use this class as an adapter between the test application and server container.
+ * Then it's implementation can simplify the behavior, ie. explicit passivation, while
+ * in a real application the decision to passivate/activate some object is on the container
+ * and cannot be requested by the application.
+ *
+ * Until GlassFish provides standalone utility to do that, we have to fake
+ * the passivation/activation.
+ *
+ * @author David Matejcek
+ */
+public class GlassFishBeansImpl implements Beans {
+
+ private Object fakeSerialized;
+
+ @Override
+ public boolean isProxy(Object instance) {
+ return instance.getClass().getName().indexOf("_$$_Weld") > 0;
+ }
+
+
+ @Override
+ public byte[] passivate(Object instance) throws IOException {
+ fakeSerialized = instance;
+ return instance.toString().getBytes();
+ }
+
+
+ @Override
+ public Object activate(byte[] bytes) throws IOException, ClassNotFoundException {
+ if (Arrays.equals(fakeSerialized.toString().getBytes(), bytes)) {
+ Object result = fakeSerialized;
+ fakeSerialized = null;
+ return result;
+ }
+ return null;
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
new file mode 100644
index 00000000000..a225eb1c8e0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+
+import org.jboss.cdi.tck.spi.Contexts;
+import org.jboss.weld.Container;
+import org.jboss.weld.context.ApplicationContext;
+import org.jboss.weld.context.DependentContext;
+import org.jboss.weld.context.ManagedContext;
+import org.jboss.weld.context.RequestContext;
+import org.jboss.weld.context.http.HttpRequestContext;
+import org.jboss.weld.util.ForwardingContext;
+
+public class GlassFishContextImpl implements Contexts {
+ @Override
+ public RequestContext getRequestContext() {
+ return Container.instance().deploymentManager().instance().select(HttpRequestContext.class).get();
+ }
+
+ @Override
+ public void setActive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).activate();
+ } else if (context instanceof ApplicationContext) {
+ // No-op, always active
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public void setInactive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).deactivate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public DependentContext getDependentContext() {
+ return Container.instance().deploymentManager().instance().select(DependentContext.class).get();
+ }
+
+ @Override
+ public void destroyContext(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ManagedContext managedContext = (ManagedContext) context;
+ managedContext.invalidate();
+ managedContext.deactivate();
+ managedContext.activate();
+ } else if (context instanceof ApplicationContext) {
+ ((ApplicationContext) context).invalidate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
new file mode 100644
index 00000000000..0c1ea19ae85
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2024 Eclipse Foundation and/or its affiliates.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.CreationalContext;
+import org.jboss.cdi.tck.spi.Contextuals;
+
+public class GlassFishContextualsImpl implements Contextuals {
+
+ @Override
+ public Inspectable create(T instance, Context context) {
+ return new InspectableContextual<>(instance);
+ }
+
+ static class InspectableContextual implements Inspectable {
+
+ private T instancePassedToConstructor;
+ private T instancePassedToDestroy;
+
+ private CreationalContext creationalContextPassedToCreate;
+ private CreationalContext creationalContextPassedToDestroy;
+
+ InspectableContextual(T instance) {
+ this.instancePassedToConstructor = instance;
+ }
+
+ @Override
+ public T create(CreationalContext creationalContext) {
+ this.creationalContextPassedToCreate = creationalContext;
+ return instancePassedToConstructor;
+ }
+
+ @Override
+ public void destroy(T instance, CreationalContext creationalContext) {
+ instancePassedToDestroy = instance;
+ creationalContextPassedToDestroy = creationalContext;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToCreate() {
+ return creationalContextPassedToCreate;
+ }
+
+ @Override
+ public T getInstancePassedToDestroy() {
+ return instancePassedToDestroy;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToDestroy() {
+ return creationalContextPassedToDestroy;
+ }
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
new file mode 100644
index 00000000000..05f52b3c2e2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Contextual;
+import org.jboss.cdi.tck.spi.CreationalContexts;
+import org.jboss.weld.contexts.CreationalContextImpl;
+
+/**
+ * This returns the Weld (and thus GlassFish) specific CreationalContextImpl with added methods
+ * for inspection.
+ */
+public class GlassFishCreationalContextsImpl implements CreationalContexts {
+
+ @Override
+ public Inspectable create(Contextual contextual) {
+ return new InspectableCreationalContext<>(contextual);
+ }
+
+ static class InspectableCreationalContext extends CreationalContextImpl implements Inspectable {
+
+ private T lastBeanPushed;
+ private boolean pushCalled;
+ private boolean releaseCalled;
+
+ public InspectableCreationalContext(Contextual contextual) {
+ super(contextual);
+ }
+
+ @Override
+ public void push(T incompleteInstance) {
+ lastBeanPushed = incompleteInstance;
+
+ pushCalled = true;
+ super.push(incompleteInstance);
+ }
+
+ @Override
+ public Object getLastBeanPushed() {
+ return lastBeanPushed;
+ }
+
+ @Override
+ public boolean isPushCalled() {
+ return pushCalled;
+ }
+
+ @Override
+ public boolean isReleaseCalled() {
+ return releaseCalled;
+ }
+
+ @Override
+ public void release(Contextual contextual, T instance) {
+ releaseCalled = true;
+ super.release(contextual, instance);
+ }
+
+ @Override
+ public void release() {
+ releaseCalled = true;
+ super.release();
+ }
+
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
new file mode 100644
index 00000000000..d0982342390
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation.
+ * Copyright (c) 2013, 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 org.jboss.weld.tck.glassfish;
+
+import java.util.List;
+
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+
+import jakarta.enterprise.inject.spi.DefinitionException;
+import jakarta.enterprise.inject.spi.DeploymentException;
+
+/**
+ *
+ * See AS7-1197 for more details.
+ *
+ * @see org.jboss.weld.tck.glassfish.GlassFishExtension
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishDeploymentExceptionTransformer implements DeploymentExceptionTransformer {
+
+ private static final String[] DEPLOYMENT_EXCEPTION_FRAGMENTS = new String[] {
+ "Only normal scopes can be passivating",
+ "org.jboss.weld.exceptions.DeploymentException",
+ "org.jboss.weld.exceptions.UnserializableDependencyException",
+ "org.jboss.weld.exceptions.InconsistentSpecializationException",
+ "CDI deployment failure:",
+ "org.jboss.weld.exceptions.NullableDependencyException" };
+
+ private static final String[] DEFINITION_EXCEPTION_FRAGMENTS = new String[]
+ { "CDI definition failure:",
+ "org.jboss.weld.exceptions.DefinitionException" };
+
+ @Override
+ public Throwable transform(Throwable throwable) {
+
+ // Arquillian sometimes returns InvocationException with nested AS7
+ // exception and sometimes AS7 exception itself
+ @SuppressWarnings("unchecked")
+ List throwableList = ExceptionUtils.getThrowableList(throwable);
+ if (throwableList.size() < 1)
+ return throwable;
+
+ Throwable root = null;
+
+ if (throwableList.size() == 1) {
+ root = throwable;
+ } else {
+ root = ExceptionUtils.getRootCause(throwable);
+ }
+
+ if (root instanceof DeploymentException || root instanceof DefinitionException) {
+ return root;
+ }
+ if (isFragmentFound(DEPLOYMENT_EXCEPTION_FRAGMENTS, root)) {
+ return new DeploymentException(root.getMessage());
+ }
+ if (isFragmentFound(DEFINITION_EXCEPTION_FRAGMENTS, root)) {
+ return new DefinitionException(root.getMessage());
+ }
+ return throwable;
+ }
+
+ private boolean isFragmentFound(String[] fragments, Throwable rootException) {
+ for (String fragment : fragments) {
+ if (rootException.getMessage().contains(fragment)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
new file mode 100644
index 00000000000..187421b57f1
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.el.ArrayELResolver;
+import jakarta.el.BeanELResolver;
+import jakarta.el.CompositeELResolver;
+import jakarta.el.ELContext;
+import jakarta.el.ELContextEvent;
+import jakarta.el.ELContextListener;
+import jakarta.el.ELResolver;
+import jakarta.el.ExpressionFactory;
+import jakarta.el.FunctionMapper;
+import jakarta.el.ListELResolver;
+import jakarta.el.MapELResolver;
+import jakarta.el.ResourceBundleELResolver;
+import jakarta.el.VariableMapper;
+import jakarta.enterprise.inject.spi.BeanManager;
+
+import org.jboss.cdi.tck.spi.EL;
+import org.jboss.weld.bean.builtin.BeanManagerProxy;
+import org.jboss.weld.manager.BeanManagerImpl;
+import org.jboss.weld.module.web.el.WeldELContextListener;
+import org.jboss.weld.module.web.el.WeldExpressionFactory;
+
+public class GlassFishELImpl implements EL {
+
+ private static final ExpressionFactory EXPRESSION_FACTORY = new WeldExpressionFactory(ExpressionFactory.newInstance());
+
+ private static final ELContextListener[] EL_CONTEXT_LISTENERS = { new WeldELContextListener() };
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateValueExpression(BeanManager beanManager, String expression, Class expectedType) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createValueExpression(elContext, expression, expectedType).getValue(elContext);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateMethodExpression(BeanManager beanManager, String expression, Class expectedType,
+ Class>[] expectedParamTypes, Object[] expectedParams) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createMethodExpression(elContext, expression, expectedType, expectedParamTypes).invoke(
+ elContext, expectedParams);
+ }
+
+ @Override
+ public ELContext createELContext(BeanManager beanManager) {
+ if (beanManager instanceof BeanManagerProxy) {
+ BeanManagerProxy proxy = (BeanManagerProxy) beanManager;
+ beanManager = proxy.delegate();
+ }
+ if (beanManager instanceof BeanManagerImpl) {
+ return createELContext((BeanManagerImpl) beanManager);
+ }
+ throw new IllegalStateException("Wrong manager");
+ }
+
+ private ELContext createELContext(BeanManagerImpl beanManagerImpl) {
+
+ final ELResolver resolver = createELResolver(beanManagerImpl);
+
+ ELContext context = new ELContext() {
+
+ @Override
+ public ELResolver getELResolver() {
+ return resolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper() {
+ return null;
+ }
+
+ @Override
+ public VariableMapper getVariableMapper() {
+ return null;
+ }
+
+ };
+ callELContextListeners(context);
+ return context;
+ }
+
+ private ELResolver createELResolver(BeanManagerImpl beanManagerImpl) {
+ CompositeELResolver resolver = new CompositeELResolver();
+ resolver.add(beanManagerImpl.getELResolver());
+ resolver.add(new MapELResolver());
+ resolver.add(new ListELResolver());
+ resolver.add(new ArrayELResolver());
+ resolver.add(new ResourceBundleELResolver());
+ resolver.add(new BeanELResolver());
+ return resolver;
+ }
+
+ private void callELContextListeners(ELContext context) {
+ ELContextEvent event = new ELContextEvent(context);
+ for (ELContextListener listener : EL_CONTEXT_LISTENERS) {
+ listener.contextCreated(event);
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
new file mode 100644
index 00000000000..a394412f74f
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
@@ -0,0 +1,37 @@
+/*
+ * 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
+ */
+
+package org.jboss.weld.tck.glassfish;
+
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+/**
+ * Registers the exception transformer to properly identify deployment failures
+ * and the application archive processor to add a glassfish-web.xml file to the
+ * deployment to disable classloader delegation.
+ *
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder builder) {
+ builder.service(DeploymentExceptionTransformer.class, GlassFishDeploymentExceptionTransformer.class);
+ builder.service(ApplicationArchiveProcessor.class, GlassfishWebAdderExtension.class);
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassfishWebAdderExtension.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassfishWebAdderExtension.java
new file mode 100644
index 00000000000..ae662ac6a02
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/java/org/jboss/weld/tck/glassfish/GlassfishWebAdderExtension.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2025 Contributors to the Eclipse Foundation
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.test.spi.TestClass;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+
+/**
+ * Add a glassfish-web.xml file to the deployment to disable classloader delegation.
+ */
+public class GlassfishWebAdderExtension implements ApplicationArchiveProcessor {
+
+ @Override
+ public void process(Archive> archive, TestClass tc) {
+ archive.add(new StringAsset(""), "WEB-INF/glassfish-web.xml");
+ }
+
+}
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/cdi-tck.properties b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/cdi-tck.properties
new file mode 100644
index 00000000000..d04503bf95e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/cdi-tck.properties
@@ -0,0 +1,9 @@
+org.jboss.cdi.tck.spi.Beans=org.jboss.weld.tck.glassfish.GlassFishBeansImpl
+org.jboss.cdi.tck.spi.CreationalContexts=org.jboss.weld.tck.glassfish.GlassFishCreationalContextsImpl
+org.jboss.cdi.tck.spi.Contexts=org.jboss.weld.tck.glassfish.GlassFishContextImpl
+org.jboss.cdi.tck.spi.Contextuals=org.jboss.weld.tck.glassfish.GlassFishContextualsImpl
+org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.glassfish.GlassFishELImpl
+org.jboss.cdi.tck.testDataSource=jdbc/__default
+org.jboss.cdi.tck.testJmsConnectionFactory=java:comp/DefaultJMSConnectionFactory
+org.jboss.cdi.tck.testJmsQueue=queue_test
+org.jboss.cdi.tck.testJmsTopic=topic_test
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..8682cd7ed28
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.jboss.weld.tck.glassfish.GlassFishExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/log4j.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/log4j.xml
new file mode 100644
index 00000000000..61e40a067fe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/log4j.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/password.txt
new file mode 100644
index 00000000000..10da04386dd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run-embedded/src/test/resources/password.txt
@@ -0,0 +1,3 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/pom.xml
new file mode 100644
index 00000000000..8867d75ab7f
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/pom.xml
@@ -0,0 +1,507 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.cdi-tck
+ 4.1.0-SNAPSHOT
+
+ Jakarta CDI TCK Runner for Glassfish
+ Aggregates dependencies and runs the CDI TCK (both standalone and on GlassFish)
+
+
+
+ 4.1.0
+ ${project.build.directory}
+
+
+ 8.0.0-M9
+
+
+ 2.50.0
+
+ false
+
+
+ 6.0.1.Final
+ 6.0.Final
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ 4.1.0
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ 2.0.0
+
+
+
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ provided
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-el-api
+ 4.1.0
+ provided
+
+
+ jakarta.el
+ jakarta.el-api
+ 6.0.0
+ provided
+
+
+
+ jakarta.faces
+ jakarta.faces-api
+ 4.1.2
+ test
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+ test
+
+
+ jakarta.jms
+ jakarta.jms-api
+ 3.1.0
+ test
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ 2.0.1
+ test
+
+
+ jakarta.resource
+ jakarta.resource-api
+ 2.1.0
+ test
+
+
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
+ 4.0.0
+ test
+
+
+ jakarta.ws.rs
+ jakarta.ws.rs-api
+ 4.0.0
+ test
+
+
+
+
+ org.jboss.weld
+ weld-api
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-spi
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-core-impl
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld.module
+ weld-web
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ suite
+ xml
+ test
+
+
+ *
+ *
+
+
+
+
+
+ org.glassfish.expressly
+ expressly
+ 6.0.0-M1
+ provided
+
+
+ *
+ *
+
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ test
+
+
+ net.sourceforge.htmlunit
+ htmlunit
+ ${htmlunit.version}
+ test
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+
+ org.testng
+ testng
+ 7.9.0
+ test
+
+
+ org.jboss.arquillian.testng
+ arquillian-testng-container
+ test
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ test
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+
+ -proc:none
+
+
+
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+ ${project.build.directory}/dependency/lib
+
+
+ false
+
+
+
+
+
+
+
+ maven-dependency-plugin
+
+
+
+ copy-test-suites
+
+ copy
+
+ pre-integration-test
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ xml
+ suite
+ false
+ tck-core-suite.xml
+
+
+ target/suites
+ false
+ true
+
+
+
+
+
+ install-cdi-tck-ext-lib
+
+ copy
+
+ pre-integration-test
+
+
+
+ jakarta.enterprise
+ cdi-tck-ext-lib
+ ${cdi.tck-4-1.version}
+ jar
+ true
+ ${glassfish.root}/glassfish8/glassfish/domains/domain1/lib/applibs
+ cdi-tck-ext-lib.jar
+
+
+
+
+
+
+ unpack-glassfish
+
+ unpack
+
+ pre-integration-test
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.3.0
+
+ -Xmx768m
+
+
+
+ target/suites/tck-core-suite.xml
+
+ ${excluded.groups}
+
+ jakarta.enterprise:cdi-tck-core-impl
+
+
+
+ surefire.testng.verbose
+ 1
+
+
+ 1
+ true
+
+
+ ${glassfish.root}/glassfish8
+ true
+ 2048m
+ :org.jboss.cdi.tck...
+ cdiTckExcludeDummy=true
+ glassfish.servlet.loadAllOnStartup=true
+ create-jms-resource --restype jakarta.jms.Queue --property Name=queue_test queue_test
+ create-jms-resource --restype jakarta.jms.Topic --property Name=topic_test topic_test
+ set configs.config.server-config.cdi-service.enable-implicit-cdi=true
+ create-file-user --groups student --passwordfile ${project.build.directory}/test-classes/password.txt student
+ create-file-user --groups printer --passwordfile ${project.build.directory}/test-classes/password.txt printer
+ create-file-user --groups student:alarm --passwordfile ${project.build.directory}/test-classes/password.txt alarm
+ ${project.build.outputDirectory}
+ ${project.build.directory}/dependency/lib
+ true
+
+
+
+
+ org.apache.maven.surefire
+ surefire-testng
+ 3.3.0
+
+
+
+
+ run tck
+
+ integration-test
+
+ integration-test
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+ ${project.build.directory}/failsafe-reports/junitreports
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ se
+ glassfish
+
+
+
+ web
+
+ javaee-full,se
+ web
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
new file mode 100644
index 00000000000..bf419df51f4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishBeansImpl.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import java.io.IOException;
+import java.util.Arrays;
+import org.jboss.cdi.tck.spi.Beans;
+
+/**
+ * CDI TCK tests use this class as an adapter between the test application and server container.
+ * Then it's implementation can simplify the behavior, ie. explicit passivation, while
+ * in a real application the decision to passivate/activate some object is on the container
+ * and cannot be requested by the application.
+ *
+ * Until GlassFish provides standalone utility to do that, we have to fake
+ * the passivation/activation.
+ *
+ * @author David Matejcek
+ */
+public class GlassFishBeansImpl implements Beans {
+
+ private Object fakeSerialized;
+
+ @Override
+ public boolean isProxy(Object instance) {
+ return instance.getClass().getName().indexOf("_$$_Weld") > 0;
+ }
+
+
+ @Override
+ public byte[] passivate(Object instance) throws IOException {
+ fakeSerialized = instance;
+ return instance.toString().getBytes();
+ }
+
+
+ @Override
+ public Object activate(byte[] bytes) throws IOException, ClassNotFoundException {
+ if (Arrays.equals(fakeSerialized.toString().getBytes(), bytes)) {
+ Object result = fakeSerialized;
+ fakeSerialized = null;
+ return result;
+ }
+ return null;
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
new file mode 100644
index 00000000000..a225eb1c8e0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextImpl.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+
+import org.jboss.cdi.tck.spi.Contexts;
+import org.jboss.weld.Container;
+import org.jboss.weld.context.ApplicationContext;
+import org.jboss.weld.context.DependentContext;
+import org.jboss.weld.context.ManagedContext;
+import org.jboss.weld.context.RequestContext;
+import org.jboss.weld.context.http.HttpRequestContext;
+import org.jboss.weld.util.ForwardingContext;
+
+public class GlassFishContextImpl implements Contexts {
+ @Override
+ public RequestContext getRequestContext() {
+ return Container.instance().deploymentManager().instance().select(HttpRequestContext.class).get();
+ }
+
+ @Override
+ public void setActive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).activate();
+ } else if (context instanceof ApplicationContext) {
+ // No-op, always active
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public void setInactive(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ((ManagedContext) context).deactivate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public DependentContext getDependentContext() {
+ return Container.instance().deploymentManager().instance().select(DependentContext.class).get();
+ }
+
+ @Override
+ public void destroyContext(Context context) {
+ context = ForwardingContext.unwrap(context);
+ if (context instanceof ManagedContext) {
+ ManagedContext managedContext = (ManagedContext) context;
+ managedContext.invalidate();
+ managedContext.deactivate();
+ managedContext.activate();
+ } else if (context instanceof ApplicationContext) {
+ ((ApplicationContext) context).invalidate();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
new file mode 100644
index 00000000000..0c1ea19ae85
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishContextualsImpl.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2024 Eclipse Foundation and/or its affiliates.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Context;
+import jakarta.enterprise.context.spi.CreationalContext;
+import org.jboss.cdi.tck.spi.Contextuals;
+
+public class GlassFishContextualsImpl implements Contextuals {
+
+ @Override
+ public Inspectable create(T instance, Context context) {
+ return new InspectableContextual<>(instance);
+ }
+
+ static class InspectableContextual implements Inspectable {
+
+ private T instancePassedToConstructor;
+ private T instancePassedToDestroy;
+
+ private CreationalContext creationalContextPassedToCreate;
+ private CreationalContext creationalContextPassedToDestroy;
+
+ InspectableContextual(T instance) {
+ this.instancePassedToConstructor = instance;
+ }
+
+ @Override
+ public T create(CreationalContext creationalContext) {
+ this.creationalContextPassedToCreate = creationalContext;
+ return instancePassedToConstructor;
+ }
+
+ @Override
+ public void destroy(T instance, CreationalContext creationalContext) {
+ instancePassedToDestroy = instance;
+ creationalContextPassedToDestroy = creationalContext;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToCreate() {
+ return creationalContextPassedToCreate;
+ }
+
+ @Override
+ public T getInstancePassedToDestroy() {
+ return instancePassedToDestroy;
+ }
+
+ @Override
+ public CreationalContext getCreationalContextPassedToDestroy() {
+ return creationalContextPassedToDestroy;
+ }
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
new file mode 100644
index 00000000000..05f52b3c2e2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishCreationalContextsImpl.java
@@ -0,0 +1,80 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation.
+ *
+ * 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.enterprise.context.spi.Contextual;
+import org.jboss.cdi.tck.spi.CreationalContexts;
+import org.jboss.weld.contexts.CreationalContextImpl;
+
+/**
+ * This returns the Weld (and thus GlassFish) specific CreationalContextImpl with added methods
+ * for inspection.
+ */
+public class GlassFishCreationalContextsImpl implements CreationalContexts {
+
+ @Override
+ public Inspectable create(Contextual contextual) {
+ return new InspectableCreationalContext<>(contextual);
+ }
+
+ static class InspectableCreationalContext extends CreationalContextImpl implements Inspectable {
+
+ private T lastBeanPushed;
+ private boolean pushCalled;
+ private boolean releaseCalled;
+
+ public InspectableCreationalContext(Contextual contextual) {
+ super(contextual);
+ }
+
+ @Override
+ public void push(T incompleteInstance) {
+ lastBeanPushed = incompleteInstance;
+
+ pushCalled = true;
+ super.push(incompleteInstance);
+ }
+
+ @Override
+ public Object getLastBeanPushed() {
+ return lastBeanPushed;
+ }
+
+ @Override
+ public boolean isPushCalled() {
+ return pushCalled;
+ }
+
+ @Override
+ public boolean isReleaseCalled() {
+ return releaseCalled;
+ }
+
+ @Override
+ public void release(Contextual contextual, T instance) {
+ releaseCalled = true;
+ super.release(contextual, instance);
+ }
+
+ @Override
+ public void release() {
+ releaseCalled = true;
+ super.release();
+ }
+
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
new file mode 100644
index 00000000000..d0982342390
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishDeploymentExceptionTransformer.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2022, 2023 Contributors to the Eclipse Foundation.
+ * Copyright (c) 2013, 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 org.jboss.weld.tck.glassfish;
+
+import java.util.List;
+
+import org.apache.commons.lang.exception.ExceptionUtils;
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+
+import jakarta.enterprise.inject.spi.DefinitionException;
+import jakarta.enterprise.inject.spi.DeploymentException;
+
+/**
+ *
+ * See AS7-1197 for more details.
+ *
+ * @see org.jboss.weld.tck.glassfish.GlassFishExtension
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishDeploymentExceptionTransformer implements DeploymentExceptionTransformer {
+
+ private static final String[] DEPLOYMENT_EXCEPTION_FRAGMENTS = new String[] {
+ "Only normal scopes can be passivating",
+ "org.jboss.weld.exceptions.DeploymentException",
+ "org.jboss.weld.exceptions.UnserializableDependencyException",
+ "org.jboss.weld.exceptions.InconsistentSpecializationException",
+ "CDI deployment failure:",
+ "org.jboss.weld.exceptions.NullableDependencyException" };
+
+ private static final String[] DEFINITION_EXCEPTION_FRAGMENTS = new String[]
+ { "CDI definition failure:",
+ "org.jboss.weld.exceptions.DefinitionException" };
+
+ @Override
+ public Throwable transform(Throwable throwable) {
+
+ // Arquillian sometimes returns InvocationException with nested AS7
+ // exception and sometimes AS7 exception itself
+ @SuppressWarnings("unchecked")
+ List throwableList = ExceptionUtils.getThrowableList(throwable);
+ if (throwableList.size() < 1)
+ return throwable;
+
+ Throwable root = null;
+
+ if (throwableList.size() == 1) {
+ root = throwable;
+ } else {
+ root = ExceptionUtils.getRootCause(throwable);
+ }
+
+ if (root instanceof DeploymentException || root instanceof DefinitionException) {
+ return root;
+ }
+ if (isFragmentFound(DEPLOYMENT_EXCEPTION_FRAGMENTS, root)) {
+ return new DeploymentException(root.getMessage());
+ }
+ if (isFragmentFound(DEFINITION_EXCEPTION_FRAGMENTS, root)) {
+ return new DefinitionException(root.getMessage());
+ }
+ return throwable;
+ }
+
+ private boolean isFragmentFound(String[] fragments, Throwable rootException) {
+ for (String fragment : fragments) {
+ if (rootException.getMessage().contains(fragment)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
new file mode 100644
index 00000000000..187421b57f1
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishELImpl.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2022 Eclipse Foundation 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 org.jboss.weld.tck.glassfish;
+
+import jakarta.el.ArrayELResolver;
+import jakarta.el.BeanELResolver;
+import jakarta.el.CompositeELResolver;
+import jakarta.el.ELContext;
+import jakarta.el.ELContextEvent;
+import jakarta.el.ELContextListener;
+import jakarta.el.ELResolver;
+import jakarta.el.ExpressionFactory;
+import jakarta.el.FunctionMapper;
+import jakarta.el.ListELResolver;
+import jakarta.el.MapELResolver;
+import jakarta.el.ResourceBundleELResolver;
+import jakarta.el.VariableMapper;
+import jakarta.enterprise.inject.spi.BeanManager;
+
+import org.jboss.cdi.tck.spi.EL;
+import org.jboss.weld.bean.builtin.BeanManagerProxy;
+import org.jboss.weld.manager.BeanManagerImpl;
+import org.jboss.weld.module.web.el.WeldELContextListener;
+import org.jboss.weld.module.web.el.WeldExpressionFactory;
+
+public class GlassFishELImpl implements EL {
+
+ private static final ExpressionFactory EXPRESSION_FACTORY = new WeldExpressionFactory(ExpressionFactory.newInstance());
+
+ private static final ELContextListener[] EL_CONTEXT_LISTENERS = { new WeldELContextListener() };
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateValueExpression(BeanManager beanManager, String expression, Class expectedType) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createValueExpression(elContext, expression, expectedType).getValue(elContext);
+ }
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public T evaluateMethodExpression(BeanManager beanManager, String expression, Class expectedType,
+ Class>[] expectedParamTypes, Object[] expectedParams) {
+ ELContext elContext = createELContext(beanManager);
+ return (T) EXPRESSION_FACTORY.createMethodExpression(elContext, expression, expectedType, expectedParamTypes).invoke(
+ elContext, expectedParams);
+ }
+
+ @Override
+ public ELContext createELContext(BeanManager beanManager) {
+ if (beanManager instanceof BeanManagerProxy) {
+ BeanManagerProxy proxy = (BeanManagerProxy) beanManager;
+ beanManager = proxy.delegate();
+ }
+ if (beanManager instanceof BeanManagerImpl) {
+ return createELContext((BeanManagerImpl) beanManager);
+ }
+ throw new IllegalStateException("Wrong manager");
+ }
+
+ private ELContext createELContext(BeanManagerImpl beanManagerImpl) {
+
+ final ELResolver resolver = createELResolver(beanManagerImpl);
+
+ ELContext context = new ELContext() {
+
+ @Override
+ public ELResolver getELResolver() {
+ return resolver;
+ }
+
+ @Override
+ public FunctionMapper getFunctionMapper() {
+ return null;
+ }
+
+ @Override
+ public VariableMapper getVariableMapper() {
+ return null;
+ }
+
+ };
+ callELContextListeners(context);
+ return context;
+ }
+
+ private ELResolver createELResolver(BeanManagerImpl beanManagerImpl) {
+ CompositeELResolver resolver = new CompositeELResolver();
+ resolver.add(beanManagerImpl.getELResolver());
+ resolver.add(new MapELResolver());
+ resolver.add(new ListELResolver());
+ resolver.add(new ArrayELResolver());
+ resolver.add(new ResourceBundleELResolver());
+ resolver.add(new BeanELResolver());
+ return resolver;
+ }
+
+ private void callELContextListeners(ELContext context) {
+ ELContextEvent event = new ELContextEvent(context);
+ for (ELContextListener listener : EL_CONTEXT_LISTENERS) {
+ listener.contextCreated(event);
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
new file mode 100644
index 00000000000..d0a16a28352
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/java/org/jboss/weld/tck/glassfish/GlassFishExtension.java
@@ -0,0 +1,38 @@
+/*
+ * 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
+ */
+
+package org.jboss.weld.tck.glassfish;
+
+import org.jboss.arquillian.container.spi.client.container.DeploymentExceptionTransformer;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+/**
+ * Registers the exception transformer to properly identify deployment failures.
+ *
+ * @author J J Snyder (j.j.snyder@oracle.com)
+ */
+public class GlassFishExtension implements LoadableExtension {
+
+ private static final String GLASSFISH_CLIENTUTILS_CLASS = "org.omnifaces.arquillian.container.glassfish.clientutils.GlassFishClientUtil";
+
+ @Override
+ public void register(ExtensionBuilder builder) {
+ if (Validate.classExists(GLASSFISH_CLIENTUTILS_CLASS)) {
+ builder.service(DeploymentExceptionTransformer.class, GlassFishDeploymentExceptionTransformer.class);
+ }
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/cdi-tck.properties b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/cdi-tck.properties
new file mode 100644
index 00000000000..d04503bf95e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/cdi-tck.properties
@@ -0,0 +1,9 @@
+org.jboss.cdi.tck.spi.Beans=org.jboss.weld.tck.glassfish.GlassFishBeansImpl
+org.jboss.cdi.tck.spi.CreationalContexts=org.jboss.weld.tck.glassfish.GlassFishCreationalContextsImpl
+org.jboss.cdi.tck.spi.Contexts=org.jboss.weld.tck.glassfish.GlassFishContextImpl
+org.jboss.cdi.tck.spi.Contextuals=org.jboss.weld.tck.glassfish.GlassFishContextualsImpl
+org.jboss.cdi.tck.spi.EL=org.jboss.weld.tck.glassfish.GlassFishELImpl
+org.jboss.cdi.tck.testDataSource=jdbc/__default
+org.jboss.cdi.tck.testJmsConnectionFactory=java:comp/DefaultJMSConnectionFactory
+org.jboss.cdi.tck.testJmsQueue=queue_test
+org.jboss.cdi.tck.testJmsTopic=topic_test
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..8682cd7ed28
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.jboss.weld.tck.glassfish.GlassFishExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/log4j.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/log4j.xml
new file mode 100644
index 00000000000..61e40a067fe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/log4j.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/password.txt
new file mode 100644
index 00000000000..10da04386dd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/cdi-tck-run/src/test/resources/password.txt
@@ -0,0 +1,3 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/pom-not-working.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/pom-not-working.xml
new file mode 100644
index 00000000000..584d78bb40d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/pom-not-working.xml
@@ -0,0 +1,571 @@
+
+
+
+ 4.0.0
+
+
+ org.glassfish
+ standalone-tck
+ 11.0.0-SNAPSHOT
+
+
+ org.glassfish
+ glassfish.cdi-tck
+ Jakarta CDI TCK Runner for Glassfish
+ Aggregates dependencies and runs the CDI TCK (both standalone and on GlassFish)
+
+
+ 11.0.0-SNAPSHOT
+ 11.0.0-SNAPSHOT
+
+ 4.1.0
+ ${project.build.directory}
+
+
+ 8.0.0-JDK17-M7
+
+
+ 2.50.0
+
+ false
+
+
+ false
+ false
+
+ 5.1.2.Final
+ 6.0.Final
+
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ 4.1.0
+
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ 2.0.0
+
+
+
+
+
+
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ provided
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-el-api
+ 4.1.0
+ provided
+
+
+ jakarta.el
+ jakarta.el-api
+ 6.0.1
+ provided
+
+
+
+ jakarta.faces
+ jakarta.faces-api
+ test
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ test
+
+
+ jakarta.jms
+ jakarta.jms-api
+ test
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ test
+
+
+ jakarta.resource
+ jakarta.resource-api
+ test
+
+
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
+ test
+
+
+ jakarta.ws.rs
+ jakarta.ws.rs-api
+ test
+
+
+
+
+ org.jboss.weld
+ weld-api
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-spi
+ ${weld.version2}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld
+ weld-core-impl
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+ org.jboss.weld.module
+ weld-web
+ ${weld.version}
+ provided
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-api
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ test
+
+
+ *
+ *
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ suite
+ xml
+ test
+
+
+ *
+ *
+
+
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-ee-impl
+ ${cdi.ee.tck.version}
+ suite
+ xml
+ test
+
+
+
+ jakarta.enterprise
+ cdi-tck-ee-impl
+ ${cdi.ee.tck.version}
+ test
+
+
+
+ org.glassfish.expressly
+ expressly
+ 6.0.0-M1
+ provided
+
+
+ *
+ *
+
+
+
+
+
+ commons-lang
+ commons-lang
+ 2.6
+ test
+
+
+ net.sourceforge.htmlunit
+ htmlunit
+ ${htmlunit.version}
+ test
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+
+ org.testng
+ testng
+ 7.9.0
+ test
+
+
+ org.jboss.arquillian.testng
+ arquillian-testng-container
+ test
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-javaee
+ test
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.4
+ test
+
+
+
+
+
+
+ maven-compiler-plugin
+
+
+ -proc:none
+
+
+
+ maven-jar-plugin
+
+
+
+ test-jar
+
+
+ ${project.build.directory}/dependency/lib
+
+
+ false
+
+
+
+
+
+
+
+ maven-dependency-plugin
+
+
+
+ copy-test-suites
+
+ copy
+
+ pre-integration-test
+
+
+
+
+ jakarta.enterprise
+ cdi-tck-core-impl
+ ${cdi.tck-4-1.version}
+ xml
+ suite
+ false
+ tck-core-suite.xml
+
+
+ jakarta.tck
+ cdi-tck-ee-impl
+ ${cdi.ee.tck.version}
+ xml
+ suite
+ false
+ tck-ee-suite.xml
+
+
+
+ target/suites
+ false
+ true
+
+
+
+
+
+ install-cdi-tck-ext-lib
+
+ copy
+
+ pre-integration-test
+
+
+
+ jakarta.enterprise
+ cdi-tck-ext-lib
+ ${cdi.tck-4-1.version}
+ jar
+ true
+ ${glassfish.root}/glassfish8/glassfish/domains/domain1/lib/applibs
+ cdi-tck-ext-lib.jar
+
+
+
+
+
+
+ unpack-glassfish
+
+ unpack
+
+ pre-integration-test
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.2
+
+
+ org.apache.maven.surefire
+ surefire-testng
+ 3.5.2
+
+
+
+
+ run core tck
+
+ integration-test
+
+ integration-test
+
+ ${skip.core.cdi.tck}
+ -Xmx768m
+
+
+
+ target/suites/tck-core-suite.xml
+
+ ${excluded.groups}
+
+ jakarta.enterprise:cdi-tck-core-impl
+
+
+
+ surefire.testng.verbose
+ 1
+
+
+ 1
+ true
+
+
+ ${glassfish.root}/glassfish8
+ true
+ 2048m
+ :org.jboss.cdi.tck...
+ cdiTckExcludeDummy=true
+ glassfish.servlet.loadAllOnStartup=true
+ create-jms-resource --restype jakarta.jms.Queue --property Name=queue_test queue_test
+ create-jms-resource --restype jakarta.jms.Topic --property Name=topic_test topic_test
+ set configs.config.server-config.cdi-service.enable-implicit-cdi=true
+ create-file-user --groups student --passwordfile ${project.build.directory}/test-classes/password.txt student
+ create-file-user --groups printer --passwordfile ${project.build.directory}/test-classes/password.txt printer
+ create-file-user --groups student:alarm --passwordfile ${project.build.directory}/test-classes/password.txt alarm
+ ${project.build.outputDirectory}
+ ${project.build.directory}/dependency/lib
+ true
+
+
+
+
+
+ run ee tck
+
+ integration-test
+
+ integration-test
+
+ ${skip.ee.cdi.tck}
+ -Xmx768m
+
+
+
+ target/suites/tck-ee-suite.xml
+
+ ${excluded.groups}
+
+ jakarta.tck:cdi-tck-ee-impl
+
+
+
+ surefire.testng.verbose
+ 1
+
+
+ 1
+ true
+
+
+ ${glassfish.root}/glassfish8
+ true
+ 2048m
+ :org.jboss.cdi.tck...
+ cdiTckExcludeDummy=true
+ glassfish.servlet.loadAllOnStartup=true
+ create-jms-resource --restype jakarta.jms.Queue --property Name=queue_test queue_test
+ create-jms-resource --restype jakarta.jms.Topic --property Name=topic_test topic_test
+ set configs.config.server-config.cdi-service.enable-implicit-cdi=true
+ create-file-user --groups student --passwordfile ${project.build.directory}/test-classes/password.txt student
+ create-file-user --groups printer --passwordfile ${project.build.directory}/test-classes/password.txt printer
+ create-file-user --groups student:alarm --passwordfile ${project.build.directory}/test-classes/password.txt alarm
+ ${project.build.outputDirectory}
+ ${project.build.directory}/dependency/lib
+ true
+
+
+
+
+
+
+
+ maven-surefire-report-plugin
+
+ ${project.build.directory}/failsafe-reports/junitreports
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ se
+ glassfish
+
+
+
+ web
+
+ javaee-full,se
+ web
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/cdi-tck/pom.xml b/appserver/tests/tck/glassfish-runner/cdi-tck/pom.xml
new file mode 100644
index 00000000000..a9005eda9d9
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/cdi-tck/pom.xml
@@ -0,0 +1,60 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ cdi-tck
+ 4.1.0-SNAPSHOT
+ pom
+
+
+ cdi-tck-install
+
+
+
+
+ full
+
+ true
+
+
+ cdi-tck-run
+
+
+
+ web
+
+ cdi-tck-run
+
+
+
+ embedded-core
+
+ cdi-tck-run-embedded
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/concurrency-tck/arquillian.xml b/appserver/tests/tck/glassfish-runner/concurrency-tck/arquillian.xml
new file mode 100644
index 00000000000..522c1a35e95
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/concurrency-tck/arquillian.xml
@@ -0,0 +1,10 @@
+
+
+
+
+ target/
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/concurrency-tck/pom.xml b/appserver/tests/tck/glassfish-runner/concurrency-tck/pom.xml
new file mode 100644
index 00000000000..3e292454b0e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/concurrency-tck/pom.xml
@@ -0,0 +1,222 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.concurrency-tck
+ Jakarta Concurrency TCK Runner for Glassfish
+
+ Aggregates dependencies and runs the Concurrency TCK on GlassFish
+
+
+ ${glassfish.root}/glassfish8
+ ${project.build.directory}
+ 8.0.0-M9
+ UTF-8
+ UTF-8
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.enterprise.concurrent
+ jakarta.enterprise.concurrent-api
+ 3.1.1
+
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+
+
+ jakarta.ejb
+ jakarta.ejb-api
+ 4.0.1
+
+
+
+
+ jakarta.enterprise.concurrent
+ jakarta.enterprise.concurrent-tck
+ 3.1.1
+ test
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-impl-maven
+ 3.3.2
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+
+
+
+
+
+
+ maven-compiler-plugin
+ 3.13.0
+
+ 17
+
+
+
+
+ maven-dependency-plugin
+
+
+ unpack-glassfish
+
+ unpack
+
+ test-compile
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ -Xmx768m
+
+
+ jakarta.enterprise.concurrent:jakarta.enterprise.concurrent-tck
+
+
+
+ ${project.basedir}/arquillian.xml
+
+ ${glassfish.root}/glassfish8
+ true
+ 2048m
+
+ jimage.dir=${project.build.directory}/jimage
+
+
+ create-file-user --groups staff:mgr --passwordfile ${project.build.directory}/test-classes/j2ee.pass j2ee
+ create-file-user --groups Manager --passwordfile ${project.build.directory}/test-classes/javajoe.pass javajoe
+
+
+ ${project.build.directory}/jimage
+
+
+
+ ${jakarta.tck.platform}
+ ${jakarta.tck.platform}
+ ${basedir}/src/main/java/
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ platform
+
+
+
+ web
+
+ web
+ web
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/j2ee.pass b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/j2ee.pass
new file mode 100644
index 00000000000..906340cd6a0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/j2ee.pass
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2021 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
+#
+AS_ADMIN_USERPASSWORD=j2ee
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/javajoe.pass b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/javajoe.pass
new file mode 100644
index 00000000000..4e595a61687
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/javajoe.pass
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2021 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
+#
+AS_ADMIN_USERPASSWORD=javajoe
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/logging.properties b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/logging.properties
new file mode 100644
index 00000000000..ef1f9e3df6e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/concurrency-tck/src/test/resources/logging.properties
@@ -0,0 +1,40 @@
+# Ensure that both your client and sever JVMs point to this file using the java.util.logging property
+# -Djava.util.logging.config.file=/path/to/logging.properties
+
+#Handlers we plan to use
+handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+#Global logger - By default only log warnings
+.level=WARNING
+
+#Concurrency logger - By default log everything for concurrency loggers
+ee.jakarta.tck.concurrent.level=ALL
+
+#Formatting for the simple formatter
+java.util.logging.SimpleFormatter.class.log=true
+java.util.logging.SimpleFormatter.class.full=false
+java.util.logging.SimpleFormatter.class.length=30
+
+java.util.logging.SimpleFormatter.level.log=true
+
+java.util.logging.SimpleFormatter.method.log=true
+java.util.logging.SimpleFormatter.method.length=30
+
+java.util.logging.SimpleFormatter.thread.log=true
+java.util.logging.SimpleFormatter.thread.length=3
+
+java.util.logging.SimpleFormatter.time.log=true
+java.util.logging.SimpleFormatter.time.format=[MM/dd/yyyy HH:mm:ss:SSS z]
+
+java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] %4$.1s %3$s %5$s %n
+
+#File logging
+java.util.logging.FileHandler.pattern=target/ConcurrentTCK%g%u.log
+java.util.logging.FileHandler.limit = 500000
+java.util.logging.FileHandler.count = 5
+java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.level=CONFIG
+
+# Console Logging
+java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
+java.util.logging.ConsoleHandler.level=WARNING
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/admin.pass b/appserver/tests/tck/glassfish-runner/connector-platform-tck/admin.pass
new file mode 100644
index 00000000000..d7236669574
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/admin.pass
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2023 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
+#
+AS_ADMIN_USERPASSWORD=admin
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/annotated/whitebox-anno_no_md.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/annotated/whitebox-anno_no_md.rar
new file mode 100644
index 00000000000..151fc1807ce
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/annotated/whitebox-anno_no_md.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/ibanno/whitebox-ibanno_no_md.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/ibanno/whitebox-ibanno_no_md.rar
new file mode 100644
index 00000000000..1458aafe5fb
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/ibanno/whitebox-ibanno_no_md.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mdcomplete/whitebox-mdcomplete.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mdcomplete/whitebox-mdcomplete.rar
new file mode 100644
index 00000000000..7ae99532ef5
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mdcomplete/whitebox-mdcomplete.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mixedmode/whitebox-mixedmode.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mixedmode/whitebox-mixedmode.rar
new file mode 100644
index 00000000000..3f5bb522f0a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/mixedmode/whitebox-mixedmode.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/multianno/whitebox-multianno.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/multianno/whitebox-multianno.rar
new file mode 100644
index 00000000000..0521b82c943
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/multianno/whitebox-multianno.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/permissiondd/whitebox-permissiondd.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/permissiondd/whitebox-permissiondd.rar
new file mode 100644
index 00000000000..217145dfa19
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/permissiondd/whitebox-permissiondd.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx-param.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx-param.rar
new file mode 100644
index 00000000000..3b74e0980c7
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx-param.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx.rar
new file mode 100644
index 00000000000..80d149e9fd5
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-notx.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx-param.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx-param.rar
new file mode 100644
index 00000000000..167b324d953
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx-param.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx.rar
new file mode 100644
index 00000000000..e7b29ee35c8
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-tx.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa-param.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa-param.rar
new file mode 100644
index 00000000000..4ec234d49cd
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa-param.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa.rar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa.rar
new file mode 100644
index 00000000000..8cc72b5c35e
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox-xa.rar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox.jar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox.jar
new file mode 100644
index 00000000000..94540364b7f
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/connectors/whitebox/whitebox.jar differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/j2ee.pass b/appserver/tests/tck/glassfish-runner/connector-platform-tck/j2ee.pass
new file mode 100644
index 00000000000..88591706903
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/j2ee.pass
@@ -0,0 +1,17 @@
+
+#
+# Copyright (c) 2023 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
+#
+AS_ADMIN_USERPASSWORD=j2ee
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..b5f85dc381f
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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=
+mailuser1=
+mailFrom=
+javamail.password=
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/tssql.stmt b/appserver/tests/tck/glassfish-runner/connector-platform-tck/jakartaeetck/bin/tssql.stmt
new file mode 100644
index 00000000000..2d279c54022
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/javajoe.pass b/appserver/tests/tck/glassfish-runner/connector-platform-tck/javajoe.pass
new file mode 100644
index 00000000000..d69a7520e56
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/javajoe.pass
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2023 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
+#
+AS_ADMIN_USERPASSWORD=javajoe
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/pom.xml b/appserver/tests/tck/glassfish-runner/connector-platform-tck/pom.xml
new file mode 100644
index 00000000000..5c8255ab22a
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/pom.xml
@@ -0,0 +1,1516 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ glassfish.connector-platform-tck
+ 11.0.0
+ jar
+
+
+ 1.9.1.Final
+ cts-derby-pool
+ ;
+
+ derbyDB
+ cts1
+ 1527
+ localhost
+ cts1
+
+
+ ${glassfish.home}/glassfish/bin/asadmin
+ 8.0.0-M9
+ ${project.build.directory}/glassfish8
+ ${glassfish.home}/glassfish/lib
+ ${glassfish.home}/javadb/lib
+
+
+ derby
+ org.apache.derby.jdbc.ClientDriver
+ ${javadb.lib}/derbyclient.jar:${javadb.lib}/derbyshared.jar:${javadb.lib}/derbytools.jar
+ 64
+ cts1
+ 32
+ jdbc:derby://localhost:1527/derbyDB;create=true
+ cts1
+
+ 5.9.1
+ rapassword1
+ rauser1
+ ./sql
+ 11.0.0
+
+ 11.0.0
+
+
+ org.apache.derby.jdbc.ClientXADataSource
+ 64
+ cts-derby-XA-pool
+ serverName=${derby.server}:portNumber=${derby.port}:user=${derby.user}:password=${derby.passwd}:DatabaseName=${derby.dbName}:connectionAttributes=";create\=true;"
+ javax.sql.XADataSource
+ 32
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.jupiter.version}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+ jakarta.tck
+ connector
+ ${project.version}
+ test
+
+
+ jakarta.tck
+ common
+ 11.0.0-RC4
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-common
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${jakarta.tck.arquillian.version}
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.6
+ test
+
+
+ org.apache.derby
+ derbyclient
+ 10.15.2.0
+
+
+ org.apache.derby
+ derbytools
+ 10.15.2.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ 1-unpack
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.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
+ connector
+ true
+ ${glassfish.lib.dir}
+ connector.jar
+
+
+ jakarta.tck
+ common
+ true
+ ${glassfish.lib.dir}
+ common.jar
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ true
+ ${glassfish.lib.dir}
+ tck-porting-lib.jar
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ true
+ ${project.build.directory}/protocol
+ protocol.jar
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ 1-start-database
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ start-database
+
+
+
+
+
+
+ org.codehaus.mojo
+ sql-maven-plugin
+
+
+ org.apache.derby.jdbc.ClientDriver
+ jdbc:derby://localhost:1527/derbyDB;create=true
+ CTS1
+ CTS1
+ true
+ ;
+ continue
+
+
+
+
+ org.apache.derby
+ derbyclient
+ 10.15.2.0
+
+
+ org.apache.derby
+ derbytools
+ 10.15.2.0
+
+
+
+
+ sql-cli
+
+ execute
+
+ pre-integration-test
+
+ CREATE SCHEMA CTS1 AUTHORIZATION CTS1;
+
+
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ copy-resource-one
+
+ copy-resources
+
+ generate-sources
+
+ ${glassfish.lib.dir}
+
+
+ ${basedir}
+
+ *.jar
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ 1-start-database
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ start-database
+
+
+
+
+
+
+ maven-resources-plugin
+ 3.0.2
+
+
+ copy-resource-one
+
+ copy-resources
+
+ generate-sources
+
+ ${glassfish.lib.dir}
+
+
+ ${basedir}
+
+ *.jar
+
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+ 10-start-database
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ start-database
+
+
+
+
+ 11-stop-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ stop-domain
+
+
+
+
+ 12-start-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ start-domain
+
+
+
+
+ 13-create-jvm-options
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jvm-options
+ -Dwhitebox-tx-map=cts1=j2ee:-Dwhitebox-tx-param-map=cts1=j2ee:-Dwhitebox-notx-map=cts1=j2ee:-Dwhitebox-notx-param-map=cts1=j2ee:-Dwhitebox-xa-map=cts1=j2ee:-Dwhitebox-xa-param-map=cts1=j2ee:-Djava.security.manager:-Dj2eelogin.password=cts1:-Dj2eelogin.name=j2ee:-Dj2eelogin.password=j2ee:-Deislogin.name=cts1:-Deislogin.password=cts1
+
+
+
+
+ 14-create-file-user
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-file-user
+ --groups
+ staff:mgr
+ --passwordfile
+ ${project.basedir}/j2ee.pass
+ j2ee
+
+
+
+
+ 15-create-file-user
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-file-user
+ --groups
+ guest
+ --passwordfile
+ ${project.basedir}/javajoe.pass
+ javajoe
+
+
+
+
+ 18-create-xa-jdbc-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jdbc-connection-pool
+ --restype
+ ${xa.restype}
+ --datasourceclassname
+ ${xa.datasource.class}
+ --property
+ ${xa.properties}
+ --steadypoolsize
+ ${xa.steadypoolsize}
+ --maxpoolsize
+ ${xa.maxpoolsize}
+ ${xa.poolName}
+
+
+
+
+ 19-create-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jdbc-resource
+ --connectionpoolid
+ ${xa.poolName}
+ eis/JDBCwhitebox-xa
+
+
+
+
+ 20-create-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jdbc-resource
+ --connectionpoolid
+ ${xa.poolName}
+ eis/JDBCwhitebox-tx
+
+
+
+
+ 21-create-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ create-jdbc-resource
+ --connectionpoolid
+ ${xa.poolName}
+ eis/JDBCwhitebox-notx
+
+
+
+
+ 22-list-jdbc-connection-pools
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ list-jdbc-connection-pools
+
+
+
+
+ 23-ping-connection-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ ping-connection-pool
+ ${xa.poolName}
+
+
+
+
+ 24-deploy-whitebox-tx-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-tx.rar
+
+
+
+
+ 25-create-whitebox-tx-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-tx
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-tx-pool.rar
+
+
+
+
+ 26-create-whitebox-tx-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-tx-pool.rar
+ eis/whitebox-tx
+
+
+
+
+ 27-deploy-whitebox-xa-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-xa.rar
+
+
+
+
+ 28-create-whitebox-xa-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-xa
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-xa-pool.rar
+
+
+
+
+ 29-create-whitebox-xa-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-xa-pool.rar
+ eis/whitebox-xa
+
+
+
+
+ 30-deploy-whitebox-notx-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-notx.rar
+
+
+
+
+ 31-create-whitebox-notx-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-notx
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-notx-pool.rar
+
+
+
+
+ 32-create-whitebox-notx-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-notx-pool.rar
+ eis/whitebox-notx
+
+
+
+
+ 33-deploy-whitebox-mdcomplete-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/mdcomplete/whitebox-mdcomplete.rar
+
+
+
+
+ 34-create-whitebox-mdcomplete-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-mdcomplete
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-mdcomplete-pool.rar
+
+
+
+
+ 35-create-whitebox-mdcomplete-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-mdcomplete-pool.rar
+ eis/whitebox-mdcomplete
+
+
+
+
+ 36-deploy-whitebox-anno_no_md-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/annotated/whitebox-anno_no_md.rar
+
+
+
+
+ 37-create-whitebox-anno_no_md-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-anno_no_md
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-anno_no_md-pool.rar
+
+
+
+
+ 38-create-whitebox-anno_no_md-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-anno_no_md-pool.rar
+ eis/whitebox-anno_no_md
+
+
+
+
+ 39-deploy-whitebox-mixedmode-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/mixedmode/whitebox-mixedmode.rar
+
+
+
+
+ 40-create-whitebox-mixedmode-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-mixedmode
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-mixedmode-pool.rar
+
+
+
+
+ 41-create-whitebox-mixedmode-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-mixedmode-pool.rar
+ eis/whitebox-mixedmode
+
+
+
+
+ 42-deploy-whitebox-multianno-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/multianno/whitebox-multianno.rar
+
+
+
+
+ 43-create-whitebox-multianno-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-multianno
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-multianno.rar
+
+
+
+
+ 44-create-whitebox-multianno-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-multianno.rar
+ eis/whitebox-multianno
+
+
+
+
+ 45-deploy-whitebox-tx-param-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-tx-param.rar
+
+
+
+
+ 46-create-whitebox-tx-param-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-tx-param
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-tx-param.rar
+
+
+
+
+ 47-create-whitebox-tx-param-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-tx-param.rar
+ eis/whitebox-tx-param
+
+
+
+
+ 48-deploy-whitebox-notx-param-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-notx-param.rar
+
+
+
+
+ 49-create-whitebox-notx-param-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-notx-param
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-notx-param.rar
+
+
+
+
+ 50-create-whitebox-notx-param-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-notx-param.rar
+ eis/whitebox-notx-param
+
+
+
+
+ 51-deploy-whitebox-xa-param-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/whitebox-xa-param.rar
+
+
+
+
+ 52-create-whitebox-xa-param-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-xa-param
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-xa-param.rar
+
+
+
+
+ 53-create-whitebox-xa-param-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-xa-param.rar
+ eis/whitebox-xa-param
+
+
+
+
+ 54-deploy-whitebox-permissiondd-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/permissiondd/whitebox-permissiondd.rar
+
+
+
+
+ 55-create-whitebox-permissiondd-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-permissiondd
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-permissiondd.rar
+
+
+
+
+ 56-create-whitebox-permissiondd-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-permissiondd.rar
+ eis/whitebox-permissiondd
+
+
+
+
+ 57-deploy-whitebox-ibanno_no_md-connector
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ deploy
+ ${project.basedir}/connectors/whitebox/ibanno/whitebox-ibanno_no_md.rar
+
+
+
+
+ 58-create-whitebox-ibanno_no_md-connector-pool
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-connection-pool
+ --raname
+ whitebox-ibanno_no_md
+ --property
+ eisPrincipalName=j2ee:userName=j2ee:password=j2ee:TSRValue=comp/TransactionSynchronizationRegistry
+ --connectiondefinition
+ com.sun.ts.tests.common.connector.whitebox.TSConnectionFactory
+ cts-connector-pool-whitebox-ibanno_no_md.rar
+
+
+
+
+ 59-create-whitebox-ibanno_no_md-jndi
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/admin.pass
+ create-connector-resource
+ --poolname
+ cts-connector-pool-whitebox-ibanno_no_md.rar
+ eis/whitebox-ibanno_no_md
+
+
+
+
+ 60-list-connector-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ list-connector-resources
+
+
+
+
+ 61-list-jndi-entries
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ list-jndi-entries
+
+
+
+
+ 62-create-jms-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/j2ee.pass
+ create-jms-resource
+ --restype
+ jakarta.jms.QueueConnectionFactory
+ jms/QueueConnectionFactory
+
+
+
+
+ 63-create-jms-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/j2ee.pass
+ create-jms-resource
+ --restype
+ jakarta.jms.Queue
+ --property
+ imqDestinationName=MDB_QUEUE_REPLY
+ MDB_QUEUE
+
+
+
+
+ 64-create-jms-resource
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ --user
+ admin
+ --passwordfile
+ ${project.basedir}/j2ee.pass
+ create-jms-resource
+ --restype
+ jakarta.jms.Queue
+ --property
+ imqDestinationName=MDB_QUEUE_REPLY
+ MDB_QUEUE_REPLY
+
+
+
+
+ 90-stop-domain
+
+ exec
+
+ pre-integration-test
+
+ ${exec.asadmin}
+
+ stop-domain
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.0.0-M5
+
+
+ connector-javatest-tests
+
+ integration-test
+ verify
+
+
+ jakarta.tck:connector
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/javadb/lib/derbytools.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}/glassfish/modules/glassfish-naming.jar
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ com.sun.enterprise.naming.impl.SerialInitContextFactory
+ ${env.TS_HOME}
+ ${project.basedir}
+ arquillian.xml
+ cts1
+ cts1
+
+ cts1
+ cts1
+ cts1
+ cts1
+
+
+ **/*-Servlet*Test*.*
+ **/*MDB*Jsp*Test*.*
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.0.0-M5
+
+
+ connector-ejb-tests
+
+ integration-test
+ verify
+
+
+ jakarta.tck:connector
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/javadb/lib/derbytools.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}/glassfish/modules/glassfish-naming.jar
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ com.sun.enterprise.naming.impl.SerialInitContextFactory
+ ${env.TS_HOME}
+ ${project.basedir}
+ appclient-arquillian.xml
+ cts1
+ cts1
+
+ cts1
+ cts1
+ cts1
+ cts1
+
+
+ **/*-Ejb*Test.*
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+ web
+
+ web
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.cmp.sql b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.cmp.sql
new file mode 100644
index 00000000000..12466f0d55a
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.cmp.sql
@@ -0,0 +1,288 @@
+ALTER TABLE PHONEEJB_TABLE DROP CONSTRAINT FK_FOR_ADDRESSEJB_ ;
+ALTER TABLE ORDEREJB_TABLE DROP CONSTRAINT FK4_FOR_CUSTOMEREJ ;
+ALTER TABLE ORDEREJB_TABLE DROP CONSTRAINT FK0_FOR_LINEITEMEJ ;
+ALTER TABLE FKS_FOR_ALIAS_CUSTOMER DROP CONSTRAINT FK_FOR_ALIASEJB_TA ;
+ALTER TABLE LINEITEMEJB_TABLE DROP CONSTRAINT FK1_FOR_ORDEREJB_T ;
+ALTER TABLE LINEITEMEJB_TABLE DROP CONSTRAINT FK_FOR_PRODUCTEJB_ ;
+ALTER TABLE SPOUSEEJB_TABLE DROP CONSTRAINT FK_INFOEJBTAB ;
+ALTER TABLE SPOUSEEJB_TABLE DROP CONSTRAINT FK7_CUSTOMEREJBTAB ;
+ALTER TABLE INFOEJB_TABLE DROP CONSTRAINT FK_SPOUSEEJBTAB ;
+ALTER TABLE COMPLEXPK_TABLE1 DROP CONSTRAINT FK_FOR_LINEITEMS ;
+ALTER TABLE COMPLEXPK_LINEITEM_TABLE1 DROP CONSTRAINT FK_FOR_ID ;
+ALTER TABLE FKS_ALIASNOOP_CUSTNOOP DROP CONSTRAINT FK2_ALIASEJBTAB ;
+ALTER TABLE FKS_ALIASNOOP_CUSTNOOP DROP CONSTRAINT FK8_CUSTOMEREJBTAB ;
+ALTER TABLE FKS_FOR_ALIAS_CUSTOMER DROP CONSTRAINT FK_FOR_CUSTOMEREJB ;
+ALTER TABLE ALIASEJB_TABLE DROP CONSTRAINT FK1_FOR_CUSTOMEREJ ;
+ALTER TABLE ALIASEJB_TABLE DROP CONSTRAINT FK2_FOR_CUSTOMEREJ ;
+ALTER TABLE CREDITCARDEJB_TABLE DROP CONSTRAINT FK3_FOR_CUSTOMEREJ ;
+
+
+DROP TABLE COMMON_TABLE;
+CREATE TABLE COMMON_TABLE (ID INT NOT NULL, BRANDNAME VARCHAR(25), PRICE REAL, CONSTRAINT COMMON_TABLE PRIMARY KEY (ID));
+
+DROP TABLE COMMON_TABLE2;
+CREATE TABLE COMMON_TABLE2 (ID INT NOT NULL, BRANDNAME VARCHAR(25), PRICE REAL, CONSTRAINT COMMON_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE COMMON_TABLE3;
+CREATE TABLE COMMON_TABLE3 (ID INT NOT NULL, BRANDNAME VARCHAR(25), PRICE REAL, CONSTRAINT COMMON_TABLE3 PRIMARY KEY (ID));
+
+DROP TABLE LOCALACCESSTEST_TABLE1;
+CREATE TABLE LOCALACCESSTEST_TABLE1 ( ID INT NOT NULL, NAME VARCHAR(25) , VALUE REAL , CONSTRAINT LOCALACCESS_TAB1 PRIMARY KEY (ID));
+
+DROP TABLE EBACCESSTEST_TABLE2;
+CREATE TABLE EBACCESSTEST_TABLE2 ( ID INT NOT NULL, NAME VARCHAR(25) , VALUE REAL , CONSTRAINT EBACCESSTEST_TABL1 PRIMARY KEY (ID));
+
+DROP TABLE ENTITY_BEAN_TABLE1;
+CREATE TABLE ENTITY_BEAN_TABLE1 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT ENTITY_BEAN_TABLE2 PRIMARY KEY (KEY_ID));
+
+DROP TABLE PHONEEJB_TABLE;
+CREATE TABLE PHONEEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, AREA VARCHAR(255) , PHONE_NUMBER VARCHAR(255) , FK_FOR_ADDRESSEJB_TABLE VARCHAR(255) );
+
+DROP TABLE ADDRESSEJB_TABLE;
+CREATE TABLE ADDRESSEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, STREET VARCHAR(255) , CITY VARCHAR(255) , STATE VARCHAR(255) , ZIP VARCHAR(255) , FK5_FOR_CUSTOMEREJB_TABLE VARCHAR(255) , FK6_FOR_CUSTOMEREJB_TABLE VARCHAR(255) );
+
+DROP TABLE CUSTOMEREJB_TABLE;
+CREATE TABLE CUSTOMEREJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, NAME VARCHAR(255) , COUNTRY BLOB(2G));
+
+DROP TABLE ALIASEJB_TABLE;
+CREATE TABLE ALIASEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, ALIAS VARCHAR(255) , FK1_FOR_CUSTOMEREJB_TABLE VARCHAR(255) , FK2_FOR_CUSTOMEREJB_TABLE VARCHAR(255) );
+
+DROP TABLE FKS_FOR_ALIAS_CUSTOMER;
+CREATE TABLE FKS_FOR_ALIAS_CUSTOMER ( FK_FOR_CUSTOMEREJB_TABLE VARCHAR(255) NOT NULL, FK_FOR_ALIASEJB_TABLE VARCHAR(255) );
+
+DROP table FKS_ALIASNOOP_CUSTNOOP ;
+CREATE TABLE FKS_ALIASNOOP_CUSTNOOP( FK8_FOR_CUSTOMEREJB_TABLE VARCHAR(255) , FK2_FOR_ALIASEJB_TABLE VARCHAR(255));
+
+DROP TABLE CREDITCARDEJB_TABLE;
+CREATE TABLE CREDITCARDEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, TYPE VARCHAR(255) , EXPIRES VARCHAR(255) , APPROVED DECIMAL(18,0) , CREDITCARD_NUMBER VARCHAR(255) , BALANCE DOUBLE, FK3_FOR_CUSTOMEREJB_TABLE VARCHAR(255) , FK_FOR_ORDEREJB_TABLE VARCHAR(255) );
+
+DROP TABLE ORDEREJB_TABLE;
+CREATE TABLE ORDEREJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, TOTALPRICE DOUBLE , FK4_FOR_CUSTOMEREJB_TABLE VARCHAR(255) , FK0_FOR_LINEITEMEJB_TABLE VARCHAR(255) );
+
+DROP TABLE PRODUCTEJB_TABLE;
+CREATE TABLE PRODUCTEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, NAME VARCHAR(255) , PRICE DOUBLE , QUANTITY INT, PNUM INT );
+
+DROP table INFOEJB_TABLE ;
+CREATE TABLE INFOEJB_TABLE (ID VARCHAR(255) PRIMARY KEY NOT NULL, INFOSTREET VARCHAR(255), INFOCITY VARCHAR(255), INFOSTATE VARCHAR(255), INFOZIP VARCHAR(255), FK_FOR_SPOUSEEJB_TABLE VARCHAR(255) ) ;
+
+DROP table SPOUSEEJB_TABLE ;
+CREATE TABLE SPOUSEEJB_TABLE (ID VARCHAR(255) PRIMARY KEY NOT NULL, FIRSTNAME VARCHAR(255), MAIDENNAME VARCHAR(255), LASTNAME VARCHAR(255), SOCSECNUM VARCHAR(255), FK7_FOR_CUSTOMEREJB_TABLE VARCHAR(255), FK_FOR_INFOEJB_TABLE VARCHAR(255) );
+
+DROP TABLE LINEITEMEJB_TABLE;
+CREATE TABLE LINEITEMEJB_TABLE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, QUANTITY INT , FK_FOR_PRODUCTEJB_TABLE VARCHAR(255) , FK1_FOR_ORDEREJB_TABLE VARCHAR(255) );
+
+ALTER TABLE PHONEEJB_TABLE ADD CONSTRAINT FK_FOR_ADDRESSEJB_ FOREIGN KEY (FK_FOR_ADDRESSEJB_TABLE) REFERENCES ADDRESSEJB_TABLE (ID) ;
+
+ALTER TABLE ALIASEJB_TABLE ADD CONSTRAINT FK1_FOR_CUSTOMEREJ FOREIGN KEY (FK1_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE ALIASEJB_TABLE ADD CONSTRAINT FK2_FOR_CUSTOMEREJ FOREIGN KEY (FK2_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE FKS_FOR_ALIAS_CUSTOMER ADD CONSTRAINT FK_FOR_CUSTOMEREJB FOREIGN KEY (FK_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE FKS_FOR_ALIAS_CUSTOMER ADD CONSTRAINT FK_FOR_ALIASEJB_TA FOREIGN KEY (FK_FOR_ALIASEJB_TABLE) REFERENCES ALIASEJB_TABLE (ID) ;
+
+ALTER TABLE FKS_ALIASNOOP_CUSTNOOP add constraint FK2_ALIASEJBTAB Foreign Key (FK2_FOR_ALIASEJB_TABLE) references ALIASEJB_TABLE(id) ;
+
+ALTER TABLE FKS_ALIASNOOP_CUSTNOOP add constraint FK8_CUSTOMEREJBTAB Foreign Key (FK8_FOR_CUSTOMEREJB_TABLE) references CUSTOMEREJB_TABLE(id) ;
+
+ALTER TABLE CREDITCARDEJB_TABLE ADD CONSTRAINT FK3_FOR_CUSTOMEREJ FOREIGN KEY (FK3_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE CREDITCARDEJB_TABLE ADD CONSTRAINT FK_FOR_ORDEREJB_TA FOREIGN KEY (FK_FOR_ORDEREJB_TABLE) REFERENCES ORDEREJB_TABLE (ID) ;
+
+ALTER TABLE ORDEREJB_TABLE ADD CONSTRAINT FK4_FOR_CUSTOMEREJ FOREIGN KEY (FK4_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE ORDEREJB_TABLE ADD CONSTRAINT FK0_FOR_LINEITEMEJ FOREIGN KEY (FK0_FOR_LINEITEMEJB_TABLE) REFERENCES LINEITEMEJB_TABLE (ID) ;
+
+ALTER TABLE LINEITEMEJB_TABLE ADD CONSTRAINT FK_FOR_PRODUCTEJB_ FOREIGN KEY (FK_FOR_PRODUCTEJB_TABLE) REFERENCES PRODUCTEJB_TABLE (ID) ;
+
+ALTER TABLE LINEITEMEJB_TABLE ADD CONSTRAINT FK1_FOR_ORDEREJB_T FOREIGN KEY (FK1_FOR_ORDEREJB_TABLE) REFERENCES ORDEREJB_TABLE (ID) ;
+
+ALTER TABLE ADDRESSEJB_TABLE ADD CONSTRAINT FK5_FOR_CUSTOMEREJ FOREIGN KEY (FK5_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE ADDRESSEJB_TABLE ADD CONSTRAINT FK6_FOR_CUSTOMEREJ FOREIGN KEY (FK6_FOR_CUSTOMEREJB_TABLE) REFERENCES CUSTOMEREJB_TABLE (ID) ;
+
+ALTER TABLE SPOUSEEJB_TABLE add constraint FK7_CUSTOMEREJBTAB Foreign Key (FK7_FOR_CUSTOMEREJB_TABLE) references CUSTOMEREJB_TABLE(ID) ;
+
+ALTER TABLE SPOUSEEJB_TABLE add constraint FK_INFOEJBTAB Foreign Key (FK_FOR_INFOEJB_TABLE) references INFOEJB_TABLE(ID) ;
+
+ALTER TABLE INFOEJB_TABLE add constraint FK_SPOUSEEJBTAB Foreign Key (FK_FOR_SPOUSEEJB_TABLE) references SPOUSEEJB_TABLE(ID) ;
+
+DROP table COMPLEXPK_LINEITEM_TABLE1 ;
+CREATE table COMPLEXPK_LINEITEM_TABLE1(ID varchar(25) NOT NULL, QUANTITY INTEGER, FK_FOR_ID INTEGER, FK_FOR_BRANDNAME varchar(25), constraint PK_LineItem_Tab1 primary key(ID));
+
+DROP TABLE COMPLEXPK_TABLE1;
+CREATE TABLE COMPLEXPK_TABLE1 ( ID INT NOT NULL, BRANDNAME VARCHAR(25) NOT NULL, PRICE REAL , PRODUCT BLOB(2G), FK_FOR_LINEITEMS varchar(25), CONSTRAINT COMPLEXPK_TABLE1 PRIMARY KEY (ID, BRANDNAME));
+
+ALTER TABLE COMPLEXPK_TABLE1 add constraint FK_FOR_LINEITEMS Foreign Key (FK_FOR_LINEITEMS) references COMPLEXPK_LINEITEM_TABLE1(ID);
+
+ALTER TABLE COMPLEXPK_LINEITEM_TABLE1 add constraint FK_FOR_ID Foreign Key (FK_FOR_ID, FK_FOR_BRANDNAME) references COMPLEXPK_TABLE1(ID,BRANDNAME) ;
+
+DROP TABLE CMP20_ENTITYCMP_TABLE1;
+CREATE TABLE CMP20_ENTITYCMP_TABLE1 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , B BLOB(2G), CONSTRAINT CMP20_ENTITYCMP_TA PRIMARY KEY (KEY_ID));
+
+DROP table CMP20_ENTITY_CTX_TABLE1 ;
+CREATE TABLE CMP20_ENTITY_CTX_TABLE1 (KEY_ID VARCHAR(255) NOT NULL, BRAND_NAME VARCHAR(255) , CONSTRAINT CMP20ENTITYCTXTAB primary key (KEY_ID) ) ;
+
+DROP TABLE CMP20_HANDLE_TABLE1;
+CREATE TABLE CMP20_HANDLE_TABLE1 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_HANDLE_TABLE PRIMARY KEY (KEY_ID));
+
+DROP TABLE CMP20_HOMEM_TABLE1;
+CREATE TABLE CMP20_HOMEM_TABLE1 ( NAME VARCHAR(25) , STATE VARCHAR(25) , CODE VARCHAR(25) , ZIP INT , ID INT NOT NULL, EXPIRES VARCHAR(25) , STREET VARCHAR(25) , CARDBALANCE DOUBLE , CITY VARCHAR(25) , HOMEPHONE VARCHAR(25) , WORKPHONE VARCHAR(25) , LASTNAME VARCHAR(25) , PAYMENTTYPE VARCHAR(25) , CREDITCARDNUMBER VARCHAR(25) , ACCOUNTNUMBER VARCHAR(25) , MIDDLENAME VARCHAR(25) , FIRSTNAME VARCHAR(25) , CONSTRAINT CMP20_HOMEM_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE UNKNOWNPK_TABLE1;
+CREATE TABLE UNKNOWNPK_TABLE1 ( MIDDLENAME VARCHAR(255) , LASTNAME VARCHAR(25) , FIRSTNAME VARCHAR(25) , STREET VARCHAR(25) , CITY VARCHAR(25) , STATE VARCHAR(25) , ZIP INT , ACCOUNTNUMBER VARCHAR(25) , ABC DECIMAL(29,0) NOT NULL, CONSTRAINT UNKNOWNPK_TABLE11 PRIMARY KEY (ABC));
+
+DROP TABLE CMP_COMPLEXPK_TABLE1;
+CREATE TABLE CMP_COMPLEXPK_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) NOT NULL, PRICE REAL , PRODUCT BLOB(2G), CONSTRAINT CMP_COMPLEXPK_TABL PRIMARY KEY (ID, BRAND_NAME));
+
+DROP TABLE LRAPITEST_TABLE1;
+CREATE TABLE LRAPITEST_TABLE1 ( ID INT NOT NULL, NAME VARCHAR(25) , VALUE REAL , CONSTRAINT LRAPITEST_TABLE11 PRIMARY KEY (ID));
+
+DROP TABLE LRAPITEST_TABLE2;
+CREATE TABLE LRAPITEST_TABLE2 ( ID INT NOT NULL, NAME VARCHAR(25) , VALUE REAL , CONSTRAINT LRAPITEST_TABLE21 PRIMARY KEY (ID));
+
+DROP TABLE LRAPITEST_TABLE3;
+CREATE TABLE LRAPITEST_TABLE3 ( ID VARCHAR(25) NOT NULL, NAME VARCHAR(25) , VALUE REAL , CONSTRAINT LRAPITEST_TABLE31 PRIMARY KEY (ID));
+
+DROP TABLE COMPAT_ENTITYCMP_TABLE1;
+CREATE TABLE COMPAT_ENTITYCMP_TABLE1 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT COMPAT_ENTITYCMP_T PRIMARY KEY (KEY_ID));
+
+
+DROP TABLE TX_NOT_TABLE3;
+CREATE TABLE TX_NOT_TABLE3 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT TX_NOT_TABLE31 PRIMARY KEY (KEY_ID));
+
+DROP TABLE TX_NOT_TABLE4;
+CREATE TABLE TX_NOT_TABLE4 ( KEY_ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT TX_NOT_TABLE41 PRIMARY KEY (KEY_ID));
+
+DROP TABLE CMP11PK_TABLE1;
+CREATE TABLE CMP11PK_TABLE1 ( CMPID VARCHAR(25) NOT NULL, CMPBRANDNAME VARCHAR(25) , CMPPRICE REAL , CONSTRAINT CMP11PK_TABLE11 PRIMARY KEY (CMPID));
+
+DROP TABLE CMP11PK_TABLE2;
+CREATE TABLE CMP11PK_TABLE2 ( CMPID INT NOT NULL, CMPBRANDNAME VARCHAR(25) , CMPPRICE REAL , CONSTRAINT CMP11PK_TABLE21 PRIMARY KEY (CMPID));
+
+DROP TABLE CMP11PK_TABLE3;
+CREATE TABLE CMP11PK_TABLE3 ( CMPID REAL NOT NULL, CMPBRANDNAME VARCHAR(25) , CMPPRICE REAL , CONSTRAINT CMP11PK_TABLE31 PRIMARY KEY (CMPID));
+
+DROP TABLE CMP11PK_TABLE4;
+CREATE TABLE CMP11PK_TABLE4 ( PMIDINTEGER INT NOT NULL, PMIDSTRING VARCHAR(25) NOT NULL, PMIDFLOAT REAL NOT NULL, CMPBRANDNAME VARCHAR(25) , CMPPRICE REAL , CONSTRAINT CMP11PK_TABLE41 PRIMARY KEY (PMIDINTEGER, PMIDSTRING, PMIDFLOAT));
+
+DROP TABLE CMP20_DEP_PKEY_TABLE1;
+CREATE TABLE CMP20_DEP_PKEY_TABLE1 ( KEY_ID DECIMAL(18,0) NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_DEP_PKEY_TAB PRIMARY KEY (KEY_ID));
+
+DROP TABLE CMP20_DEP_PKEY_TABLE2;
+CREATE TABLE CMP20_DEP_PKEY_TABLE2 ( KEY_ID REAL NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_DEP_PKEY_TA1 PRIMARY KEY (KEY_ID));
+
+DROP TABLE CMP20_DEP_PKEY_TABLE3;
+CREATE TABLE CMP20_DEP_PKEY_TABLE3 ( KEY_ID VARCHAR(50) NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_DEP_PKEY_TA2 PRIMARY KEY (KEY_ID));
+
+DROP TABLE CMP20_DEP_PKEY_TABLE4;
+CREATE TABLE CMP20_DEP_PKEY_TABLE4 ( PMIDINTEGER INT NOT NULL, PMIDSTRING VARCHAR(25) NOT NULL, PMIDFLOAT REAL NOT NULL, BRANDNAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_DEP_PKEY_TA3 PRIMARY KEY (PMIDINTEGER, PMIDSTRING, PMIDFLOAT));
+
+DROP TABLE TABLER5_DELETE;
+CREATE TABLE TABLER5_DELETE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, NAME VARCHAR(255) , VALUE DECIMAL(18,0) NOT NULL, FK1_FOR_TABLER6_DELETE_ID VARCHAR(255) , FK2_FOR_TABLER6_DELETE_ID VARCHAR(255) , FK1_FOR_TABLER7_DELETE_ID VARCHAR(255) , FK2_FOR_TABLER7_DELETE_ID VARCHAR(255) );
+
+DROP TABLE TABLER7_DELETE;
+CREATE TABLE TABLER7_DELETE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, NAME VARCHAR(255) , VALUE DECIMAL(18,0) NOT NULL, FK_FOR_TABLER6_DELETE_ID VARCHAR(255) );
+
+DROP TABLE TABLER6_DELETE;
+CREATE TABLE TABLER6_DELETE ( ID VARCHAR(255) PRIMARY KEY NOT NULL, NAME VARCHAR(255) , VALUE DECIMAL(18,0) NOT NULL);
+
+ALTER TABLE TABLER5_DELETE ADD CONSTRAINT FK1_FOR_TABLER6_DE FOREIGN KEY (FK1_FOR_TABLER6_DELETE_ID) REFERENCES TABLER6_DELETE (ID) ;
+
+ALTER TABLE TABLER5_DELETE ADD CONSTRAINT FK2_FOR_TABLER6_DE FOREIGN KEY (FK2_FOR_TABLER6_DELETE_ID) REFERENCES TABLER6_DELETE (ID) ;
+
+ALTER TABLE TABLER5_DELETE ADD CONSTRAINT FK1_FOR_TABLER7_DE FOREIGN KEY (FK1_FOR_TABLER7_DELETE_ID) REFERENCES TABLER7_DELETE (ID) ;
+
+ALTER TABLE TABLER5_DELETE ADD CONSTRAINT FK2_FOR_TABLER7_DE FOREIGN KEY (FK2_FOR_TABLER7_DELETE_ID) REFERENCES TABLER7_DELETE (ID) ;
+
+ALTER TABLE TABLER7_DELETE ADD CONSTRAINT FK_FOR_TABLER6_DEL FOREIGN KEY (FK_FOR_TABLER6_DELETE_ID) REFERENCES TABLER6_DELETE (ID) ;
+
+DROP TABLE CMP20_LSECP_TABLE1;
+CREATE TABLE CMP20_LSECP_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECP_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_LSECP_TABLE2;
+CREATE TABLE CMP20_LSECP_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECP_TABLE3 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_LSECP_TABLE3;
+CREATE TABLE CMP20_LSECP_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECP_TABLE4 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_LSECR_TABLE1;
+CREATE TABLE CMP20_LSECR_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECR_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_LSECR_TABLE2;
+CREATE TABLE CMP20_LSECR_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECR_TABLE3 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_LSECR_TABLE3;
+CREATE TABLE CMP20_LSECR_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_LSECR_TABLE4 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SEC_TABLE1;
+CREATE TABLE CMP20_SEC_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SEC_TABLE11 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SEC_TABLE2;
+CREATE TABLE CMP20_SEC_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL ,
+ CONSTRAINT CMP20_SEC_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECP_TABLE1;
+CREATE TABLE CMP20_SECP_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECP_TABLE11 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECP_TABLE2;
+CREATE TABLE CMP20_SECP_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECP_TABLE21 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECP_TABLE3;
+CREATE TABLE CMP20_SECP_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECP_TABLE31 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SEC_TABLE1;
+CREATE TABLE CMP_SEC_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL ,
+ CONSTRAINT CMP_SEC_TABLE11 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SEC_TABLE2;
+CREATE TABLE CMP_SEC_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL ,
+ CONSTRAINT CMP_SEC_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECP_TABLE1;
+CREATE TABLE CMP_SECP_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL ,
+ CONSTRAINT CMP_SECP_TABLE1 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECP_TABLE2;
+CREATE TABLE CMP_SECP_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL ,
+ CONSTRAINT CMP_SECP_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECP_TABLE3;
+CREATE TABLE CMP_SECP_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP_SECP_TABLE PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECRASP_TABLE1;
+CREATE TABLE CMP20_SECRASP_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECRASP_TABL PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECRASP_TABLE2;
+CREATE TABLE CMP20_SECRASP_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECRASP_TAB1 PRIMARY KEY (ID));
+
+DROP TABLE CMP20_SECRASP_TABLE3;
+CREATE TABLE CMP20_SECRASP_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP20_SECRASP_TAB2 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECRASP_TABLE1;
+CREATE TABLE CMP_SECRASP_TABLE1 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP_SECRASP_TABLE2 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECRASP_TABLE2;
+CREATE TABLE CMP_SECRASP_TABLE2 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP_SECRASP_TABLE3 PRIMARY KEY (ID));
+
+DROP TABLE CMP_SECRASP_TABLE3;
+CREATE TABLE CMP_SECRASP_TABLE3 ( ID INT NOT NULL, BRAND_NAME VARCHAR(25) , PRICE REAL , CONSTRAINT CMP_SECRASP_TABLE4 PRIMARY KEY (ID));
+
+DROP table TIMER_TABLE1 ;
+CREATE TABLE TIMER_TABLE1 (KEY_ID INTEGER NOT NULL, BRAND_NAME VARCHAR(255), PRICE REAL NOT NULL, CONSTRAINT TIMER_TABLE1 PRIMARY KEY (KEY_ID) );
+
+DROP table TIMER_FLAGSTORE ;
+CREATE TABLE TIMER_FLAGSTORE (KEY_ID INTEGER NOT NULL, BRAND_NAME VARCHAR(255) , PRICE REAL NOT NULL , REQUIRESNEWACCESSED SMALLINT NOT NULL, REQUIREDACCESSED SMALLINT NOT NULL , CONSTRAINT TIMER_FLAGSTORE PRIMARY KEY (KEY_ID) );
+
+DROP table CMP20_JACC_TABLE1 ;
+CREATE TABLE CMP20_JACC_TABLE1 (ARG1 VARCHAR(255) NOT NULL, ARG2 INTEGER NOT NULL, ARG3 INTEGER NOT NULL, CONSTRAINT CMP20_JACC_TAB PRIMARY KEY (ARG1,ARG2,ARG3) );
+
+DROP TABLE EMPLOYEEEJB ;
+CREATE TABLE EMPLOYEEEJB (HIREDATE DATE , ID INTEGER NOT NULL, FIRSTNAME VARCHAR(256) , SALARY REAL NOT NULL, LASTNAME VARCHAR(256) , EMPLOYEEEJB_ID INTEGER , DEPARTMENTEJB_ID INTEGER , CONSTRAINT PK_EMPLOYEEEJB PRIMARY KEY (ID)) ;
+
+DROP TABLE DEPARTMENTEJB ;
+CREATE TABLE DEPARTMENTEJB (NAME VARCHAR(256) , ID INTEGER NOT NULL, CONSTRAINT PK_DEPARTMENTEJB PRIMARY KEY (ID)) ;
+
+ALTER TABLE EMPLOYEEEJB ADD CONSTRAINT FK_MANAGER FOREIGN KEY (EMPLOYEEEJB_ID) REFERENCES EMPLOYEEEJB (ID) ;
+ALTER TABLE EMPLOYEEEJB ADD CONSTRAINT FK_DEPARTMENT FOREIGN KEY (DEPARTMENTEJB_ID) REFERENCES DEPARTMENTEJB (ID) ;
+
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sprocs.sql b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sprocs.sql
new file mode 100644
index 00000000000..e1054cc9684
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sprocs.sql
@@ -0,0 +1,347 @@
+drop procedure Numeric_Proc ;
+create procedure Numeric_Proc(out MAX_PARAM NUMERIC(30,15), out MIN_PARAM NUMERIC(30,15), out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_Proc' parameter style java;
+
+drop procedure Decimal_Proc ;
+create procedure Decimal_Proc(out MAX_PARAM DECIMAL(30,15), out MIN_PARAM DECIMAL(30,15), out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_Proc' parameter style java;
+
+drop procedure Double_Proc ;
+create procedure Double_Proc (out MAX_PARAM DOUBLE PRECISION, out MIN_PARAM DOUBLE PRECISION, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_Proc' parameter style java;
+
+drop procedure Float_Proc ;
+create procedure Float_Proc (out MAX_PARAM FLOAT, out MIN_PARAM FLOAT, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_Proc' parameter style java;
+
+drop procedure Real_Proc ;
+create procedure Real_Proc (out MAX_PARAM REAL, out MIN_PARAM REAL, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_Proc' parameter style java;
+
+drop procedure Bit_Proc ;
+create procedure Bit_Proc (out MAX_PARAM BOOLEAN, out MIN_PARAM BOOLEAN, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_Proc' parameter style java;
+
+drop procedure Smallint_Proc ;
+create procedure Smallint_Proc (out MAX_PARAM SMALLINT, out MIN_PARAM SMALLINT, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_Proc' parameter style java;
+
+drop procedure Tinyint_Proc ;
+create procedure Tinyint_Proc (out MAX_PARAM INTEGER, out MIN_PARAM INTEGER, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_Proc' parameter style java;
+
+drop procedure Integer_Proc ;
+create procedure Integer_Proc (out MAX_PARAM INTEGER, out MIN_PARAM INTEGER, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_Proc' parameter style java;
+
+drop procedure Bigint_Proc ;
+create procedure Bigint_Proc (out MAX_PARAM BIGINT, out MIN_PARAM BIGINT, out NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_Proc' parameter style java;
+
+drop procedure Char_Proc ;
+create procedure Char_Proc (out NAME_PARAM CHAR(30), out NULL_PARAM CHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Char_Proc' parameter style java;
+
+drop procedure Varchar_Proc ;
+create procedure Varchar_Proc (out NAME_PARAM VARCHAR(30), out NULL_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varchar_Proc' parameter style java;
+
+drop procedure Longvarchar_Proc ;
+create procedure Longvarchar_Proc (out NAME_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarchar_Proc' parameter style java;
+
+drop procedure Lvarcharnull_Proc ;
+create procedure Lvarcharnull_Proc (out NULL_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarcharnull_Proc' parameter style java;
+
+drop procedure Date_Proc ;
+create procedure Date_Proc (out MFG_PARAM DATE, out NULL_PARAM DATE) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Date_Proc' parameter style java;
+
+drop procedure Time_Proc ;
+create procedure Time_Proc (out BRK_PARAM TIME, out NULL_PARAM TIME) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Time_Proc' parameter style java;
+
+drop procedure Timestamp_Proc ;
+create procedure Timestamp_Proc (out IN_PARAM TIMESTAMP, out NULL_PARAM TIMESTAMP) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Timestamp_Proc' parameter style java;
+
+drop procedure Binary_Proc ;
+create procedure Binary_Proc (out BINARY_PARAM VARCHAR(24) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Binary_Proc' parameter style java;
+
+drop procedure Varbinary_Proc ;
+create procedure Varbinary_Proc (out VARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varbinary_Proc' parameter style java;
+
+drop procedure Longvarbinary_Proc ;
+create procedure Longvarbinary_Proc (out LONGVARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarbinary_Proc' parameter style java;
+
+drop procedure Integer_In_Proc ;
+create procedure Integer_In_Proc (IN_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_In_Proc' parameter style java;
+
+drop procedure Integer_InOut_Proc ;
+create procedure Integer_InOut_Proc (inout INOUT_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_InOut_Proc' parameter style java;
+
+drop procedure UpdCoffee_Proc ;
+create procedure UpdCoffee_Proc (in TYPE_PARAM NUMERIC) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.UpdCoffee_Proc' parameter style java;
+
+drop procedure SelCoffee_Proc ;
+create procedure SelCoffee_Proc (out KEYID_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.SelCoffee_Proc' parameter style java;
+
+drop procedure IOCoffee_Proc ;
+create procedure IOCoffee_Proc (inout PRICE_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.IOCoffee_Proc' parameter style java;
+
+drop procedure Coffee_Proc ;
+create procedure Coffee_Proc (in TYPE_PARAM Numeric) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Coffee_Proc' parameter style java;
+
+drop procedure Numeric_Io_Max ;
+create procedure Numeric_Io_Max (inout MAX_PARAM NUMERIC(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_Io_Max' parameter style java;
+
+drop procedure Numeric_Io_Min ;
+create procedure Numeric_Io_Min (inout MIN_PARAM NUMERIC(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_Io_Min' parameter style java;
+
+drop procedure Numeric_Io_Null ;
+create procedure Numeric_Io_Null (inout NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_Io_Null' parameter style java;
+
+drop procedure Decimal_Io_Max ;
+create procedure Decimal_Io_Max (inout MAX_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_Io_Max' parameter style java;
+
+drop procedure Decimal_Io_Min ;
+create procedure Decimal_Io_Min (inout MIN_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_Io_Min' parameter style java;
+
+drop procedure Decimal_Io_Null ;
+create procedure Decimal_Io_Null (inout NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_Io_Null' parameter style java;
+
+drop procedure Double_Io_Max ;
+create procedure Double_Io_Max (inout MAX_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_Io_Max' parameter style java;
+
+drop procedure Double_Io_Min ;
+create procedure Double_Io_Min (inout MIN_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_Io_Min' parameter style java;
+
+drop procedure Double_Io_Null ;
+create procedure Double_Io_Null (inout NULL_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_Io_Null' parameter style java;
+
+drop procedure Float_Io_Max ;
+create procedure Float_Io_Max (inout MAX_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_Io_Max' parameter style java;
+
+drop procedure Float_Io_Min ;
+create procedure Float_Io_Min (inout MIN_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_Io_Min' parameter style java;
+
+drop procedure Float_Io_Null ;
+create procedure Float_Io_Null (inout NULL_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_Io_Null' parameter style java;
+
+drop procedure Real_Io_Max ;
+create procedure Real_Io_Max (inout MAX_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_Io_Max' parameter style java;
+
+drop procedure Real_Io_Min ;
+create procedure Real_Io_Min (inout MIN_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_Io_Min' parameter style java;
+
+drop procedure Real_Io_Null ;
+create procedure Real_Io_Null (inout NULL_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_Io_Null' parameter style java;
+
+drop procedure Bit_Io_Max ;
+create procedure Bit_Io_Max (inout MAX_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_Io_Max' parameter style java;
+
+drop procedure Bit_Io_Min ;
+create procedure Bit_Io_Min (inout MIN_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_Io_Min' parameter style java;
+
+drop procedure Bit_Io_Null ;
+create procedure Bit_Io_Null (inout NULL_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_Io_Null' parameter style java;
+
+drop procedure Smallint_Io_Max ;
+create procedure Smallint_Io_Max (inout MAX_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_Io_Max' parameter style java;
+
+drop procedure Smallint_Io_Min ;
+create procedure Smallint_Io_Min (inout MIN_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_Io_Min' parameter style java;
+
+drop procedure Smallint_Io_Null ;
+create procedure Smallint_Io_Null (inout NULL_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_Io_Null' parameter style java;
+
+drop procedure Tinyint_Io_Max ;
+create procedure Tinyint_Io_Max (inout MAX_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_Io_Max' parameter style java;
+
+drop procedure Tinyint_Io_Min ;
+create procedure Tinyint_Io_Min (inout MIN_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_Io_Min' parameter style java;
+
+drop procedure Tinyint_Io_Null ;
+create procedure Tinyint_Io_Null (inout NULL_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_Io_Null' parameter style java;
+
+drop procedure Integer_Io_Max ;
+create procedure Integer_Io_Max (inout MAX_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_Io_Max' parameter style java;
+
+drop procedure Integer_Io_Min ;
+create procedure Integer_Io_Min (inout MIN_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_Io_Min' parameter style java;
+
+drop procedure Integer_Io_Null ;
+create procedure Integer_Io_Null (inout NULL_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_Io_Null' parameter style java;
+
+drop procedure Bigint_Io_Max ;
+create procedure Bigint_Io_Max (inout MAX_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_Io_Max' parameter style java;
+
+drop procedure Bigint_Io_Min ;
+create procedure Bigint_Io_Min (inout MIN_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_Io_Min' parameter style java;
+
+drop procedure Bigint_Io_Null ;
+create procedure Bigint_Io_Null (inout NULL_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_Io_Null' parameter style java;
+
+drop procedure Char_Io_Name ;
+create procedure Char_Io_Name (inout NAME_PARAM CHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Char_Io_Name' parameter style java;
+
+drop procedure Char_Io_Null ;
+create procedure Char_Io_Null (inout NULL_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Char_Io_Null' parameter style java;
+
+drop procedure Varchar_Io_Name ;
+create procedure Varchar_Io_Name (inout NAME_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varchar_Io_Name' parameter style java;
+
+drop procedure Varchar_Io_Null ;
+create procedure Varchar_Io_Null (inout NULL_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varchar_Io_Null' parameter style java;
+
+drop procedure Lvarchar_Io_Name ;
+create procedure Lvarchar_Io_Name (inout NAME_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarchar_Io_Name' parameter style java;
+
+drop procedure Lvarchar_Io_Null ;
+create procedure Lvarchar_Io_Null (inout NULL_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarchar_Io_Null' parameter style java;
+
+drop procedure Date_Io_Mfg ;
+create procedure Date_Io_Mfg (inout MFG_PARAM DATE) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Date_Io_Mfg' parameter style java;
+
+drop procedure Date_Io_Null ;
+create procedure Date_Io_Null (inout NULL_PARAM DATE) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Date_Io_Null' parameter style java;
+
+drop procedure Time_Io_Brk ;
+create procedure Time_Io_Brk (inout BRK_PARAM TIME) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Time_Io_Brk' parameter style java;
+
+drop procedure Time_Io_Null ;
+create procedure Time_Io_Null (inout NULL_PARAM TIME) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Time_Io_Null' parameter style java;
+
+drop procedure Timestamp_Io_Intime ;
+create procedure Timestamp_Io_Intime (inout INTIME_PARAM TIMESTAMP) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Timestamp_Io_Intime' parameter style java;
+
+drop procedure Timestamp_Io_Null ;
+create procedure Timestamp_Io_Null (inout NULL_PARAM TIMESTAMP) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Timestamp_Io_Null' parameter style java;
+
+drop procedure Binary_Proc_Io ;
+create procedure Binary_Proc_Io (inout BINARY_PARAM VARCHAR(24) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Binary_Proc_Io' parameter style java;
+
+drop procedure Varbinary_Proc_Io ;
+create procedure Varbinary_Proc_Io (inout VARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varbinary_Proc_Io' parameter style java;
+
+drop procedure Longvarbinary_Io ;
+create procedure Longvarbinary_Io (inout LONGVARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarbinary_Io' parameter style java;
+
+drop procedure Numeric_In_Max ;
+create procedure Numeric_In_Max (in MAX_PARAM NUMERIC(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_In_Max' parameter style java;
+
+drop procedure Numeric_In_Min ;
+create procedure Numeric_In_Min (in MIN_PARAM NUMERIC(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_In_Min' parameter style java;
+
+drop procedure Numeric_In_Null ;
+create procedure Numeric_In_Null (in NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Numeric_In_Null' parameter style java;
+
+drop procedure Decimal_In_Max ;
+create procedure Decimal_In_Max (in MAX_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_In_Max' parameter style java;
+
+drop procedure Decimal_In_Min ;
+create procedure Decimal_In_Min (in MIN_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_In_Min' parameter style java;
+
+drop procedure Decimal_In_Null ;
+create procedure Decimal_In_Null (in NULL_PARAM DECIMAL(30,15)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Decimal_In_Null' parameter style java;
+
+drop procedure Double_In_Max ;
+create procedure Double_In_Max (in MAX_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_In_Max' parameter style java;
+
+drop procedure Double_In_Min ;
+create procedure Double_In_Min (in MIN_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_In_Min' parameter style java;
+
+drop procedure Double_In_Null ;
+create procedure Double_In_Null (in NULL_PARAM DOUBLE PRECISION) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Double_In_Null' parameter style java;
+
+drop procedure Float_In_Max ;
+create procedure Float_In_Max (in MAX_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_In_Max' parameter style java;
+
+drop procedure Float_In_Min ;
+create procedure Float_In_Min (in MIN_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_In_Min' parameter style java;
+
+drop procedure Float_In_Null ;
+create procedure Float_In_Null (in NULL_PARAM FLOAT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Float_In_Null' parameter style java;
+
+drop procedure Real_In_Max ;
+create procedure Real_In_Max (in MAX_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_In_Max' parameter style java;
+
+drop procedure Real_In_Min ;
+create procedure Real_In_Min (in MIN_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_In_Min' parameter style java;
+
+drop procedure Real_In_Null ;
+create procedure Real_In_Null (in NULL_PARAM REAL) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Real_In_Null' parameter style java;
+
+drop procedure Bit_In_Max ;
+create procedure Bit_In_Max (in MAX_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_In_Max' parameter style java;
+
+drop procedure Bit_In_Min ;
+create procedure Bit_In_Min (in MIN_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_In_Min' parameter style java;
+
+drop procedure Bit_In_Null ;
+create procedure Bit_In_Null (in NULL_PARAM BOOLEAN) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bit_In_Null' parameter style java;
+
+drop procedure Smallint_In_Max ;
+create procedure Smallint_In_Max (in MAX_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_In_Max' parameter style java;
+
+drop procedure Smallint_In_Min ;
+create procedure Smallint_In_Min (in MIN_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_In_Min' parameter style java;
+
+drop procedure Smallint_In_Null ;
+create procedure Smallint_In_Null (in NULL_PARAM SMALLINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Smallint_In_Null' parameter style java;
+
+drop procedure Tinyint_In_Max ;
+create procedure Tinyint_In_Max (in MAX_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_In_Max' parameter style java;
+
+drop procedure Tinyint_In_Min ;
+create procedure Tinyint_In_Min (in MIN_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_In_Min' parameter style java;
+
+drop procedure Tinyint_In_Null ;
+create procedure Tinyint_In_Null (in NULL_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Tinyint_In_Null' parameter style java;
+
+drop procedure Integer_In_Max ;
+create procedure Integer_In_Max (in MAX_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_In_Max' parameter style java;
+
+drop procedure Integer_In_Min ;
+create procedure Integer_In_Min (in MIN_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_In_Min' parameter style java;
+
+drop procedure Integer_In_Null ;
+create procedure Integer_In_Null (in NULL_PARAM INTEGER) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Integer_In_Null' parameter style java;
+
+drop procedure Bigint_In_Max ;
+create procedure Bigint_In_Max (in MAX_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_In_Max' parameter style java;
+
+drop procedure Bigint_In_Min ;
+create procedure Bigint_In_Min (in MIN_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_In_Min' parameter style java;
+
+drop procedure Bigint_In_Null ;
+create procedure Bigint_In_Null (in NULL_PARAM BIGINT) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Bigint_In_Null' parameter style java;
+
+drop procedure Char_In_Name ;
+create procedure Char_In_Name (in NAME_PARAM CHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Char_In_Name' parameter style java;
+
+drop procedure Char_In_Null ;
+create procedure Char_In_Null (in NULL_PARAM CHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Char_In_Null' parameter style java;
+
+drop procedure Varchar_In_Name ;
+create procedure Varchar_In_Name (in NAME_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varchar_In_Name' parameter style java;
+
+drop procedure Varchar_In_Null ;
+create procedure Varchar_In_Null (in NULL_PARAM VARCHAR(30)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varchar_In_Null' parameter style java;
+
+drop procedure Lvarchar_In_Name ;
+create procedure Lvarchar_In_Name (in NAME_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarchar_In_Name' parameter style java;
+
+drop procedure Lvarchar_In_Null ;
+create procedure Lvarchar_In_Null (in NULL_PARAM VARCHAR(448)) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarchar_In_Null' parameter style java;
+
+drop procedure Date_In_Mfg ;
+create procedure Date_In_Mfg (in MFG_PARAM DATE) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Date_In_Mfg' parameter style java;
+
+drop procedure Date_In_Null ;
+create procedure Date_In_Null (in NULL_PARAM DATE) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Date_In_Null' parameter style java;
+
+drop procedure Time_In_Brk ;
+create procedure Time_In_Brk (in BRK_PARAM TIME) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Time_In_Brk' parameter style java;
+
+drop procedure Time_In_Null ;
+create procedure Time_In_Null (in NULL_PARAM TIME) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Time_In_Null' parameter style java;
+
+drop procedure Timestamp_In_Intime ;
+create procedure Timestamp_In_Intime (in INTIME_PARAM TIMESTAMP) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Timestamp_In_Intime' parameter style java;
+
+drop procedure Timestamp_In_Null ;
+create procedure Timestamp_In_Null (in NULL_PARAM TIMESTAMP) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Timestamp_In_Null' parameter style java;
+
+drop procedure Binary_Proc_In ;
+create procedure Binary_Proc_In (in BINARY_PARAM VARCHAR(24) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Binary_Proc_In' parameter style java;
+
+drop procedure Varbinary_Proc_In ;
+create procedure Varbinary_Proc_In (in VARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Varbinary_Proc_In' parameter style java;
+
+drop procedure Longvarbinary_In ;
+create procedure Longvarbinary_In (in LONGVARBINARY_PARAM VARCHAR(255) FOR BIT DATA) language java external name 'com.sun.ts.lib.tests.jdbc.CS_Procs.Longvarbinary_Proc_In' parameter style java;
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sql b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sql
new file mode 100644
index 00000000000..b2bd2971826
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.ddl.sql
@@ -0,0 +1,176 @@
+drop table ctstable2 ;
+drop table ctstable1 ;
+create table ctstable1 (TYPE_ID int NOT NULL, TYPE_DESC varchar(32), primary key(TYPE_ID)) ;
+create table ctstable2 (KEY_ID int NOT NULL, COF_NAME varchar(32), PRICE float, TYPE_ID int, primary key(KEY_ID), foreign key(TYPE_ID) references ctstable1) ;
+
+drop table concurrencetable ;
+create table concurrencetable (TYPE_ID int NOT NULL, TYPE_DESC varchar(32), primary key(TYPE_ID)) ;
+
+drop table Numeric_Tab ;
+create table Numeric_Tab (MAX_VAL NUMERIC(30,15), MIN_VAL NUMERIC(30,15), NULL_VAL NUMERIC(30,15)) ;
+
+drop table Decimal_Tab ;
+ create table Decimal_Tab (MAX_VAL DECIMAL(30,15),MIN_VAL DECIMAL(30,15), NULL_VAL DECIMAL(30,15)) ;
+
+drop table Double_Tab ;
+create table Double_Tab (MAX_VAL DOUBLE PRECISION, MIN_VAL DOUBLE PRECISION, NULL_VAL DOUBLE PRECISION) ;
+
+drop table Float_Tab ;
+create table Float_Tab (MAX_VAL FLOAT, MIN_VAL FLOAT, NULL_VAL FLOAT) ;
+
+drop table Real_Tab ;
+create table Real_Tab (MAX_VAL REAL, MIN_VAL REAL,NULL_VAL REAL) ;
+
+drop table Bit_Tab ;
+create table Bit_Tab (MAX_VAL BOOLEAN, MIN_VAL BOOLEAN, NULL_VAL SMALLINT) ;
+
+drop table Smallint_Tab ;
+create table Smallint_Tab (MAX_VAL SMALLINT, MIN_VAL SMALLINT, NULL_VAL SMALLINT) ;
+
+drop table Tinyint_Tab ;
+create table Tinyint_Tab (MAX_VAL SMALLINT, MIN_VAL SMALLINT, NULL_VAL SMALLINT) ;
+
+drop table Integer_Tab ;
+create table Integer_Tab (MAX_VAL INTEGER, MIN_VAL INTEGER, NULL_VAL INTEGER) ;
+
+drop table Bigint_Tab ;
+create table Bigint_Tab (MAX_VAL BIGINT, MIN_VAL BIGINT, NULL_VAL BIGINT) ;
+
+drop table Char_Tab ;
+create table Char_Tab (COFFEE_NAME CHAR(30), NULL_VAL CHAR(30)) ;
+
+drop table Varchar_Tab ;
+create table Varchar_Tab (COFFEE_NAME VARCHAR(30), NULL_VAL VARCHAR(30)) ;
+
+drop table Longvarchar_Tab ;
+create table Longvarchar_Tab (COFFEE_NAME LONG VARCHAR) ;
+
+drop table Longvarcharnull_Tab ;
+create table Longvarcharnull_Tab (NULL_VAL LONG VARCHAR) ;
+
+drop table Date_Tab ;
+create table Date_Tab (MFG_DATE DATE, NULL_VAL DATE) ;
+
+drop table Time_Tab ;
+create table Time_Tab (BRK_TIME TIME, NULL_VAL TIME) ;
+
+drop table Timestamp_Tab ;
+create table Timestamp_Tab (IN_TIME TIMESTAMP, NULL_VAL TIMESTAMP) ;
+
+drop table Binary_Tab ;
+create table Binary_Tab (BINARY_VAL VARCHAR(24) FOR BIT DATA) ;
+
+drop table Varbinary_Tab ;
+create table Varbinary_Tab (VARBINARY_VAL VARCHAR(255) FOR BIT DATA) ;
+
+drop table Longvarbinary_Tab ;
+create table Longvarbinary_Tab (LONGVARBINARY_VAL VARCHAR(255) FOR BIT DATA) ;
+
+drop table ctstable3 ;
+create table ctstable3(STRING1 VARCHAR(20), STRING2 VARCHAR(20), STRING3 VARCHAR(20), NUMCOL INTEGER, FLOATCOL FLOAT, DATECOL DATE, TIMECOL TIME, TSCOL1 TIMESTAMP, TSCOL2 TIMESTAMP) ;
+
+drop table ctstable4 ;
+create table ctstable4(STRING4 VARCHAR(20), NUMCOL NUMERIC) ;
+
+
+drop table TxBean_Tab1 ;
+create table TxBean_Tab1 (KEY_ID int, TABONE_NAME varchar(32), PRICE float) ;
+
+drop table TxBean_Tab2 ;
+create table TxBean_Tab2 (KEY_ID int, TABTWO_NAME varchar(32), PRICE float) ;
+ ;
+drop table TxEBean_Tab ;
+create table TxEBean_Tab (KEY_ID INTEGER NOT NULL, BRAND_NAME VARCHAR(32), PRICE FLOAT, primary key(KEY_ID)) ;
+
+drop table Integration_Tab ;
+create table Integration_Tab (ACCOUNT INTEGER NOT NULL, BALANCE FLOAT, primary key(ACCOUNT)) ;
+
+drop table BB_Tab ;
+create table BB_Tab (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table JTA_Tab1 ;
+create table JTA_Tab1 (KEY_ID int, COF_NAME varchar(32), PRICE float) ;
+
+drop table JTA_Tab2 ;
+create table JTA_Tab2 (KEY_ID int, CHOC_NAME varchar(32), PRICE float) ;
+
+drop table Deploy_Tab1 ;
+create table Deploy_Tab1 (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab2 ;
+create table Deploy_Tab2 (KEY_ID VARCHAR(100) NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab3 ;
+create table Deploy_Tab3 (KEY_ID BIGINT NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab4 ;
+create table Deploy_Tab4 (KEY_ID FLOAT NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab5 ;
+create table Deploy_Tab5 (KEY_ID1 int NOT NULL, KEY_ID2 varchar(100) NOT NULL, KEY_ID3 float NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID1, KEY_ID2, KEY_ID3)) ;
+
+drop table Xa_Tab1 ;
+create table Xa_Tab1 (col1 int NOT NULL, col2 varchar(32), col3 varchar(32), primary key(col1)) ;
+
+drop table Xa_Tab2 ;
+create table Xa_Tab2 (col1 int NOT NULL, col2 varchar(32), col3 varchar(32), primary key(col1)) ;
+
+drop table SEC_Tab1 ;
+create table SEC_Tab1 (KEY_ID INTEGER NOT NULL, PRICE float, BRAND varchar(32), primary key(KEY_ID)) ;
+
+drop table Connector_Tab ;
+create table Connector_Tab (KEY_ID int, PRODUCT_NAME varchar(32), PRICE float) ;
+
+drop table Coffee_Table ;
+create table Coffee_Table (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_StringPK_Table ;
+create table Coffee_StringPK_Table (KEY_ID VARCHAR(100) NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_LongPK_Table ;
+create table Coffee_LongPK_Table (KEY_ID BIGINT NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_FloatPK_Table ;
+create table Coffee_FloatPK_Table (KEY_ID FLOAT NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_CompoundPK_Table ;
+create table Coffee_CompoundPK_Table (KEY_ID1 int NOT NULL, KEY_ID2 varchar(100) NOT NULL, KEY_ID3 float NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID1, KEY_ID2, KEY_ID3)) ;
+
+DROP TABLE COFFEEEJBLITE;
+CREATE TABLE COFFEEEJBLITE (ID INT NOT NULL, BRANDNAME VARCHAR(25), PRICE REAL, CONSTRAINT PK_COFFEEEJBLITE PRIMARY KEY (ID));
+
+
+DROP TABLE EJB_AUTOCLOSE_TAB ;
+CREATE TABLE EJB_AUTOCLOSE_TAB (NAME VARCHAR(25) NOT NULL, MESSAGE VARCHAR(25) NOT NULL);
+
+
+DROP TABLE caller ;
+DROP TABLE caller_groups ;
+
+CREATE TABLE caller(name VARCHAR(64) PRIMARY KEY, password VARCHAR(1024)) ;
+CREATE TABLE caller_groups(caller_name VARCHAR(64), group_name VARCHAR(64)) ;
+
+INSERT INTO caller VALUES('tom', 'secret1') ;
+INSERT INTO caller VALUES('emma', 'secret2') ;
+INSERT INTO caller VALUES('bob', 'secret3') ;
+
+INSERT INTO caller_groups VALUES('tom', 'Administrator') ;
+INSERT INTO caller_groups VALUES('tom', 'Manager') ;
+
+INSERT INTO caller_groups VALUES('emma', 'Administrator') ;
+INSERT INTO caller_groups VALUES('emma', 'Employee') ;
+
+INSERT INTO caller_groups VALUES('bob', 'Administrator') ;
+
+ INSERT INTO caller VALUES('tom_hash512_saltsize16', 'PBKDF2WithHmacSHA512:1024:DbjXqT9p8VhJ7OtU6DrqDw==:p/qihG8IZKkz03JzKd6XXA==') ;
+ INSERT INTO caller VALUES('tom_hash256_saltsize32', 'PBKDF2WithHmacSHA256:2048:suVayUIJMQMc6wCgckvAIgKRlo1UkxyFXhXbTxX6C7s=:cvdHkBXVUCN2WL3LRAYodeCdNZxEM4RLlNCCYP68Kmg=') ;
+ INSERT INTO caller VALUES('tom_hash512_saltsize32', 'PBKDF2WithHmacSHA512:2048:dPTjUfiklfyg2bas/KOQKqEfdtoXK8YvbBscIxA8tNg=:ixBg0wr3ySBI86y8HP7+Yw==') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize16', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize16', 'Manager') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash256_saltsize32', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash256_saltsize32', 'Manager') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize32', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize32', 'Manager') ;
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.dml.sql b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.dml.sql
new file mode 100644
index 00000000000..f1ccdae7808
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-platform-tck/sql/derby/derby.dml.sql
@@ -0,0 +1,770 @@
+# @(#)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(9999999999,0.000000000000001, null)
+
+Decimal_Tab_Insert= insert into Decimal_Tab values(9999999999,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
+
+
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/AppclientConfigTest.txt b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/AppclientConfigTest.txt
new file mode 100644
index 00000000000..56fcdb2ec1c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/GlassfishTckExtension.java b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/GlassfishTckExtension.java
new file mode 100644
index 00000000000..413555b96a0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/GlassfishXmlProcessor.java b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/java/arquillian/GlassfishXmlProcessor.java
new file mode 100644
index 00000000000..0db6d11f0ba
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..213f7f5aa9c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/appclient-arquillian.xml b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/appclient-arquillian.xml
new file mode 100644
index 00000000000..d8dc1dfe8b0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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:${glassfish.home}/glassfish/lib/connector.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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..02ab1a7c680
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/logging.properties b/appserver/tests/tck/glassfish-runner/connector-platform-tck/src/test/resources/logging.properties
new file mode 100644
index 00000000000..5139b6bf9de
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/connector-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
diff --git a/appserver/tests/tck/glassfish-runner/connector-platform-tck/whitebox.jar b/appserver/tests/tck/glassfish-runner/connector-platform-tck/whitebox.jar
new file mode 100644
index 00000000000..94540364b7f
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/connector-platform-tck/whitebox.jar differ
diff --git a/appserver/tests/tck/glassfish-runner/core-tck/pom.xml b/appserver/tests/tck/glassfish-runner/core-tck/pom.xml
new file mode 100644
index 00000000000..b9efb37a747
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/core-tck/pom.xml
@@ -0,0 +1,147 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.core-tck
+ 4.1.0-SNAPSHOT
+
+ Jakarta Core Profile TCK Runner for Glassfish
+
+
+
+ 4.1.0
+ ${project.build.directory}
+
+ 8.0.0-SNAPSHOT
+
+
+ 2.50.0
+
+ false
+
+
+ 6.0.1.Final
+ 6.0.Final
+
+
+
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.12.1
+ test
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ 1.9.3.Final
+ test
+
+
+ jakarta.tck.coreprofile
+ core-profile-tck-impl
+ 11.0.0
+ test
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-embedded
+ 1.7-SNAPSHOT
+ test
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-all
+
+
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-web
+ ${glassfish.version}
+ test
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.3.0
+
+ --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
+
+ jakarta.tck.coreprofile:core-profile-tck-impl
+
+
+
+
+ run tck
+
+ integration-test
+
+ integration-test
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+ ${project.build.directory}/failsafe-reports/junitreports
+ ${project.build.directory}/surefire-reports
+ test-report
+
+
+
+ generate-test-report
+
+ report-only
+
+ verify
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/LICENSE b/appserver/tests/tck/glassfish-runner/data-tck/LICENSE
new file mode 100644
index 00000000000..261eeb9e9f8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/LICENSE
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/README.md b/appserver/tests/tck/glassfish-runner/data-tck/README.md
new file mode 100644
index 00000000000..fbdebb3f333
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/README.md
@@ -0,0 +1,28 @@
+Sample runner repo Jakarta Data 1.0 TCK against Hibernate Data Repositories
+========================================
+A sample runner for validating the Hibernate Data Repositories implementation against the Jakarta Data 1.0 TCK.
+
+This uses the Hibernate ORM 6.6.0.Alpha1 release
+
+## Dependencies:
+### Java SE
+The Java SE version in use needs to be 17 or higher.
+
+### Jakarta Data API and TCK 1.0.0
+1. download https://www.eclipse.org/downloads/download.php?file=/ee4j/data/jakartaee/staged/eftl/data-tck-1.0.0.zip
+1. unizip data-tck-1.0.0.zip
+1. cd data-tck-1.0.0/artifacts
+2. bash artifact-install.sh
+
+### Jakarta Data Tools Fork
+1. cd tools
+2. mvn -Pstaging install
+
+## Build the augmented TCK test jar in this repo
+1. cd testjar
+1. mvn -Pstaging install
+
+## Running the TCK in GlassFish
+1. cd runner-web
+2. mvn -Pstaging -Pinstall-glassfish clean process-sources
+3. mvn -Pstaging test
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/osgi/pom.xml b/appserver/tests/tck/glassfish-runner/data-tck/osgi/pom.xml
new file mode 100644
index 00000000000..fab9f9068b0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/osgi/pom.xml
@@ -0,0 +1,131 @@
+
+
+ 4.0.0
+
+ org.glassfish.data
+ data-osgi-bundle
+ 1.0.0
+
+
+ 17
+ 17
+ UTF-8
+ 1.0.0
+ ${project.version}
+ ${project.version}
+
+
+
+
+ jakarta.data
+ jakarta.data-api
+ ${jakarta.data.version}
+
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ *; scope=compile; inline=true; optional=false;
+
+ <_exportcontents>
+
+ jakarta.data.*;
+ jakarta.data.exceptions.*;
+ jakarta.data.metamodel.*;
+ jakarta.data.metamodel.impl.*;
+ jakarta.data.page;
+ jakarta.data.repository;
+ jakarta.data.spi;
+
+ version=${osgi.version}
+
+
+
+
+
+ true
+
+
+
+ osgi-bundle
+
+ bundle
+
+ package
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+
+
+ src-dependencies
+ prepare-package
+
+ unpack-dependencies
+
+
+ sources
+ false
+ ${project.build.directory}/sources
+ *
+ jakarta.data
+
+
+
+
+
+
+
+
+
+
+ staging
+
+ false
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/pom.xml b/appserver/tests/tck/glassfish-runner/data-tck/pom.xml
new file mode 100644
index 00000000000..b225e05da25
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/pom.xml
@@ -0,0 +1,39 @@
+
+
+
+ 4.0.0
+
+ org.hibernate
+ hiberate-data-tck-runner-parent
+ 1.0
+ pom
+ Hibernate Jakarta Data TCK Runner Parent
+
+
+ 2.1.214
+
+
+
+ tools
+ testjar
+ runner-web
+ osgi
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/pom.xml-back b/appserver/tests/tck/glassfish-runner/data-tck/pom.xml-back
new file mode 100644
index 00000000000..fe1413cfef3
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/pom.xml-back
@@ -0,0 +1,280 @@
+
+
+
+ 4.0.0
+ jakarta.data
+ data-tck-ee-runner
+ 1.0-SNAPSHOT
+ Jakarta Data TCK Runner for Glassfish
+
+
+ UTF-8
+ 17
+ 17
+
+ 1.0.0
+ 6.1.0
+ 4.1.0
+ 1.9.1.Final
+ 10.0.0.Final
+ 5.12.0
+ 2.3
+ 1.2.6
+ 3.3.1
+ 3.3.0
+ 3.13.0
+ 3.5.0
+
+ ${project.build.directory}/glassfish8/glassfish/lib
+
+ ${project.basedir}/logging.properties
+
+ ${project.build.directory}/jimage/
+
+
+ glassfish8
+ 8.0.0-JDK17-M9
+
+
+
+
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ ${arquillian.version}
+ pom
+ import
+
+
+ org.jboss.arquillian.jakarta
+ arquillian-jakarta-bom
+ ${arquillian.jakarta.version}
+ pom
+ import
+
+
+ org.jboss.shrinkwrap
+ shrinkwrap-bom
+ ${shrinkwrap.version}
+ pom
+ import
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-bom
+ ${shrinkwrap.resolver.version}
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.data
+ jakarta.data-tck
+ ${jakarta.data.version}
+
+
+
+ jakarta.data
+ jakarta.data-api
+ ${jakarta.data.version}
+
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ ${sigtest.version}
+
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ ${jakarta.servlet.version}
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ ${jakarta.enterprise.cdi.version}
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.6
+ test
+
+
+
+ org.omnifaces.arquillian
+ glassfish-client-ee11
+ 1.6
+ test
+
+
+
+
+ target
+ clean test
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ ${maven.comp.plugin.version}
+
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.1
+
+
+ download-gf
+
+ unpack
+
+ generate-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-failsafe-plugin
+ 3.5.2
+
+
+ gf-tests
+
+ integration-test
+ verify
+
+
+
+ jakarta.data:jakarta.data-tck
+
+
+ **/*.*
+ **/*Entity*.*
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.transaction-api.jar
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+
+ localhost
+ localhost
+ j2ee
+ j2ee
+ 8080
+ 8081
+
+
+ ${jimage.dir}
+ ${project.build.directory}/glassfish8/glassfish/modules/jakarta.data-api.jar:${jimage.dir}/java.base:${jimage.dir}/java.rmi:${jimage.dir}/java.sql:${jimage.dir}/java.naming
+
+
+ ${logging.config}
+
+
+
+ false
+
+
+
+
+ ${includedTests}
+
+ ${basedir}/src/main/java/
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ platform
+
+
+
+ web
+
+ web
+ web
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/pom.xml b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/pom.xml
new file mode 100644
index 00000000000..0a678eb9729
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/pom.xml
@@ -0,0 +1,310 @@
+
+
+
+ 4.0.0
+
+ org.hibernate
+ hiberate-data-tck-web-glassfish-runner
+ 1.0
+ Hibernate Jakarta Data TCK Web Runner for GlassFish
+
+ 3.3.0
+ 3.10.1
+ 3.2.5
+
+ 1.8.0.Final
+ 1.0.0
+ 5.10.2
+ 2.3
+ 6.6.0.Alpha1
+ 5.1.2.Final
+ 4.0.2.Final
+ 2.1.214
+ ${project.build.directory}/glassfish-8.0.0-JDK17-M6.zip
+ 1.4
+ ${project.build.directory}/glassfish8
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ ${arquillian.version}
+ pom
+ import
+
+
+
+
+
+
+
+
+ org.hibernate
+ hibernate-data-tck-tests
+ 1.0
+ test
+
+
+
+
+ org.glassfish.data
+ data-osgi-bundle
+ ${jakarta.data.version}
+
+
+
+ org.hibernate.orm
+ hibernate-core
+ ${hibernate.data.version}
+
+
+ com.h2database
+ h2
+ ${h2.version}
+
+
+
+ org.jboss.weld
+ weld-lite-extension-translator
+ ${weld.version}
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.2
+
+
+
+ org.jboss.shrinkwrap
+ shrinkwrap-api
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ ${glassfish.arquillian.version}
+ test
+
+
+ org.jboss.arquillian.protocol
+ arquillian-protocol-rest-jakarta
+ ${arquillian.version}
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+ 17
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.6.1
+
+
+ copy-dependencies
+ process-sources
+
+ copy-dependencies
+
+
+
+
+ org.hibernate,org.glassfish,io.smallrye,net.bytebuddy,org.antlr,com.h2database
+ hibernate-core,hibernate-commons-annotations,data-osgi-bundle,jandex,byte-buddy,antlr4-runtime,h2
+ ${glassfish.home}/glassfish/domains/domain1/lib/
+ false
+ false
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven.surefire.plugin.version}
+
+ 1
+
+ org.hibernate:hibernate-data-tck-tests
+
+
+
+ core
+
+ target/jimage
+ core
+ ${project.build.directory}/glassfish8/glassfish/domains/domain1/lib/data-osgi-bundle-1.0.0.jar
+ target/test-classes/logging.properties
+ ${settings.localRepository}
+ ${glassfish.home}
+ true
+ glassfish
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+ install-glassfish
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.1.0
+
+
+ install-glassfish
+ process-sources
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ staging
+
+ false
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/GlassFishJtaPlatform.java b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/GlassFishJtaPlatform.java
new file mode 100644
index 00000000000..9d43dea5bb6
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/GlassFishJtaPlatform.java
@@ -0,0 +1,50 @@
+package org.hibernate.data.tck.ext;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.transaction.TransactionManager;
+import jakarta.transaction.UserTransaction;
+import org.hibernate.engine.jndi.JndiException;
+import org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform;
+
+/**
+ * Provides the JTA platform for GlassFish.
+ */
+@ApplicationScoped
+public class GlassFishJtaPlatform extends AbstractJtaPlatform {
+ public static final String UT_NAME = "java:comp/UserTransaction";
+ public static final String TM_NAME = "java:appserver/TransactionManager";
+ private TransactionManager transactionManager;
+
+ @Override
+ protected boolean canCacheUserTransactionByDefault() {
+ return true;
+ }
+
+ @Override
+ protected boolean canCacheTransactionManagerByDefault() {
+ return true;
+ }
+
+ @Override
+ protected TransactionManager locateTransactionManager() {
+ if(transactionManager == null) {
+ try {
+ transactionManager = (TransactionManager) jndiService().locate( TM_NAME );
+ }
+ catch (JndiException jndiException) {
+ throw new JndiException( "unable to find TransactionManager", jndiException );
+ }
+ }
+ return transactionManager;
+ }
+
+ @Override
+ protected UserTransaction locateUserTransaction() {
+ try {
+ return (UserTransaction) jndiService().locate( UT_NAME );
+ }
+ catch (JndiException jndiException) {
+ throw new JndiException( "unable to find UserTransaction", jndiException );
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/HibernateLoadableExtension.java b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/HibernateLoadableExtension.java
new file mode 100644
index 00000000000..e6c3073b800
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/HibernateLoadableExtension.java
@@ -0,0 +1,14 @@
+package org.hibernate.data.tck.ext;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.container.test.spi.client.deployment.AuxiliaryArchiveAppender;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+public class HibernateLoadableExtension implements LoadableExtension {
+
+ @Override
+ public void register(ExtensionBuilder builder) {
+ builder.service(ApplicationArchiveProcessor.class, JPAProcessor.class);
+ //builder.service(AuxiliaryArchiveAppender.class, TCKFrameworkAppender.class);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/JPAProcessor.java b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/JPAProcessor.java
new file mode 100644
index 00000000000..26d90309bb0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/java/org/hibernate/data/tck/ext/JPAProcessor.java
@@ -0,0 +1,72 @@
+package org.hibernate.data.tck.ext;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.test.spi.TestClass;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ArchivePath;
+import org.jboss.shrinkwrap.api.Node;
+import org.jboss.shrinkwrap.api.asset.EmptyAsset;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+import java.util.Map;
+
+/**
+ * Creates and adds a persistence.xml for HibernatePersistenceProvider, an emtpy beans.xml, and the annotation processor
+ * generated classes to the deployment archive.
+ */
+public class JPAProcessor implements ApplicationArchiveProcessor {
+ static final String PERSISTENCE_XML = """
+
+
+
+
+ Hibernate Entity Manager for Jakarta Data TCK
+ org.hibernate.jpa.HibernatePersistenceProvider
+ jdbc/DataTCK
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """;
+
+ @Override
+ public void process(Archive> archive, TestClass testClass) {
+ System.out.printf("Processing archive %s, test=%s\n", archive.getName(), testClass.getName());
+ if(archive instanceof WebArchive) {
+ WebArchive webArchive = (WebArchive) archive;
+ webArchive.addAsWebInfResource(new StringAsset(PERSISTENCE_XML), "classes/META-INF/persistence.xml");
+ webArchive.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
+ webArchive.addClass(GlassFishJtaPlatform.class);
+ for (Map.Entry e : webArchive.getContent().entrySet()) {
+ String path = e.getKey().get();
+ if (path.endsWith(".class")) {
+ // Look for X_.class
+ String className = path.substring("/WEB-INF/classes/".length(), path.length() - ".class".length())
+ .replace('/', '.');
+ try {
+ webArchive.addClass(className + "_");
+ System.out.printf("Added %s_\n", className);
+ } catch (IllegalArgumentException ex) {
+ // Ignore
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..5aa32198cc4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.hibernate.data.tck.ext.HibernateLoadableExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..d9537213c72
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/arquillian.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+ target/deployments
+
+
+
+
+ target/glassfish8
+ localhost
+ 4848
+ ${enableDerby:true}
+ 8081
+ true
+ true
+ false
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/logging.properties b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/logging.properties
new file mode 100644
index 00000000000..b459c6bebd2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/runner-web/src/test/resources/logging.properties
@@ -0,0 +1,40 @@
+# Ensure that both your client and sever JVMs point to this file using the java.util.logging property
+# -Djava.util.logging.config.file=/path/to/logging.properties
+
+#Handlers we plan to use
+handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+.level=ALL
+
+org.junit.level=FINEST
+#Jakarta Data TCK logger - By default log everything for ee.jakarta.tck.data
+ee.jakarta.tck.data.level=ALL
+
+#Formatting for the simple formatter
+java.util.logging.SimpleFormatter.class.log=true
+java.util.logging.SimpleFormatter.class.full=false
+java.util.logging.SimpleFormatter.class.length=10
+
+java.util.logging.SimpleFormatter.level.log=true
+
+java.util.logging.SimpleFormatter.method.log=true
+java.util.logging.SimpleFormatter.method.length=30
+
+java.util.logging.SimpleFormatter.thread.log=true
+java.util.logging.SimpleFormatter.thread.length=3
+
+java.util.logging.SimpleFormatter.time.log=true
+java.util.logging.SimpleFormatter.time.format=[MM/dd/yyyy HH:mm:ss:SSS z]
+
+java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] %4$.1s %3$s %5$s %n
+
+# Log warnings to console
+java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
+java.util.logging.ConsoleHandler.level=WARNING
+
+# Log everything else to file
+java.util.logging.FileHandler.pattern=DataTCK%g%u.log
+java.util.logging.FileHandler.limit = 500000
+java.util.logging.FileHandler.count = 5
+java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.level=ALL
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyApplicationArchiveProcessor.java b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyApplicationArchiveProcessor.java
new file mode 100644
index 00000000000..bc95de69f91
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyApplicationArchiveProcessor.java
@@ -0,0 +1,23 @@
+package ee.jakarta.tck.data.example.extension;
+
+import java.util.List;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.test.spi.TestClass;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+
+//tag::applicationProcessor[]
+public class MyApplicationArchiveProcessor implements ApplicationArchiveProcessor {
+
+ //List of test classes that deploy application that you need to customize
+ List testClasses;
+
+ @Override
+ public void process(Archive> archive, TestClass testClass) {
+ //if(testClasses.contains(testClass.getClass().getCanonicalName())){
+ // ((WebArchive) archive).addAsWebInfResource("my-custom-sun-web.xml", "sun-web.xml");
+ //}
+ }
+}
+//end::applicationProcessor[]
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyLoadableExtension.java b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyLoadableExtension.java
new file mode 100644
index 00000000000..8a617983597
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/java/ee/jakarta/tck/data/example/extension/MyLoadableExtension.java
@@ -0,0 +1,13 @@
+package ee.jakarta.tck.data.example.extension;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+//tag::loadableExtension[]
+public class MyLoadableExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder extensionBuilder) {
+ extensionBuilder.service(ApplicationArchiveProcessor.class, MyApplicationArchiveProcessor.class);
+ }
+}
+//end::loadableExtension[]
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..94f4ca5c8e4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/src-back/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+ee.jakarta.tck.data.example.extension.MyLoadableExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/src-back/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/data-tck/src-back/test/resources/arquillian.xml
new file mode 100644
index 00000000000..3908bce33d8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/src-back/test/resources/arquillian.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+ target/
+
+
+
+
+
+ ${tck_server}
+ ${tck_hostname}
+ ${tck_username}
+ ${tck_password}
+ ${tck_port}
+ ${tck_port_secure}
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/testjar/pom.xml b/appserver/tests/tck/glassfish-runner/data-tck/testjar/pom.xml
new file mode 100644
index 00000000000..a56649aaf0f
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/testjar/pom.xml
@@ -0,0 +1,271 @@
+
+
+
+ 4.0.0
+
+ org.hibernate
+ hibernate-data-tck-tests
+ 1.0
+ Hibernate Jakarta Data TCK Test Jar
+
+ 3.3.0
+ 3.10.1
+ 3.3.0
+ 3.2.5
+
+ 1.8.0.Final
+ 1.0.0
+ 1.0.0
+ 2.0.1
+ 5.9.0
+ 4.1.0
+ 6.0.0
+ 6.6.0.Alpha1
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ ${arquillian.version}
+ pom
+ import
+
+
+
+
+
+
+
+
+ jakarta.data
+ jakarta.data-tck
+ ${jakarta.data.tck.version}
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+
+
+ jakarta.data
+ jakarta.data-tck
+ ${jakarta.data.tck.version}
+ sources
+
+
+
+ jakarta.data
+ jakarta.data-api
+ ${jakarta.data.version}
+
+
+
+ jakarta.nosql
+ nosql-core
+ 1.0.0-b7
+ provided
+
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+
+ org.jboss.shrinkwrap
+ shrinkwrap-api
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0-M2
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ 4.1.0.RC1
+
+
+ jakarta.validation
+ jakarta.validation-api
+ 3.1.0-M2
+
+
+ jakarta.transaction
+ jakarta.transaction-api
+ ${jakarta.transaction.version}
+ provided
+
+
+ jakarta.persistence
+ jakarta.persistence-api
+ 3.1.0
+ provided
+
+
+ jakarta.data
+ jakarta.data-tools
+ ${jakarta.data.version}
+
+
+ org.hibernate.orm
+ hibernate-jpamodelgen
+ ${hibernate.data.version}
+
+
+
+
+
+
+ src/main/resources
+
+
+ ${project.build.directory}/tck-sources
+
+ ee/jakarta/tck/data/framework/signature/jakarta.data.sig_17
+ ee/jakarta/tck/data/framework/signature/jakarta.data.sig_21
+ ee/jakarta/tck/data/framework/signature/sig-test.map
+ ee/jakarta/tck/data/framework/signature/sig-test-pkg-list.txt
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.6.1
+
+
+ src-dependencies
+ initialize
+
+ unpack-dependencies
+
+
+ jakarta.data
+ jakarta.data-tck
+ sources
+ true
+ **/_AsciiChar.java,**/_AsciiCharacter.java
+ true
+ ${project.build.directory}/tck-sources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.13.0
+
+
+ -parameters
+ -XprintRounds
+
+
+ ${project.basedir}/src/main/java
+ ${project.build.directory}/tck-sources
+ ${project.build.directory}/generated-source/annotations
+
+ ${project.build.directory}/tck-tool-sources
+ 17
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ ${maven.surefire.plugin.version}
+
+ true
+
+
+
+
+
+
+
+
+ staging
+
+ false
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/testjar/src/main/resources/META-INF/services/javax.annotation.processing.Processor b/appserver/tests/tck/glassfish-runner/data-tck/testjar/src/main/resources/META-INF/services/javax.annotation.processing.Processor
new file mode 100644
index 00000000000..c2ae1ddd786
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/testjar/src/main/resources/META-INF/services/javax.annotation.processing.Processor
@@ -0,0 +1 @@
+ee.jakarta.tck.data.tools.annp.RespositoryProcessor
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/testjar/src/main/resources/ee.jakarta.tck.data.web.validation.Rectangles.stg b/appserver/tests/tck/glassfish-runner/data-tck/testjar/src/main/resources/ee.jakarta.tck.data.web.validation.Rectangles.stg
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/pom.xml b/appserver/tests/tck/glassfish-runner/data-tck/tools/pom.xml
new file mode 100644
index 00000000000..0f47f8b50d8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/pom.xml
@@ -0,0 +1,125 @@
+
+
+
+
+ 4.0.0
+
+
+ jakarta.data
+ jakarta.data-tools
+ 1.0.0
+ Jakarta Data Tools
+
+
+ 4.13.1
+ 1.8.0.Final
+ 5.10.2
+ 17
+ 17
+
+
+
+
+
+ org.junit
+ junit-bom
+ ${junit.version}
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ ${arquillian.version}
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.data
+ jakarta.data-api
+ 1.0.0-RC1
+
+
+ jakarta.persistence
+ jakarta.persistence-api
+ 3.1.0
+ provided
+
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-api
+
+
+
+ org.antlr
+ antlr4
+ ${antlr.version}
+
+
+ org.antlr
+ antlr4-runtime
+ ${antlr.version}
+
+
+ org.antlr
+ ST4
+ 4.3.4
+
+
+ org.junit.jupiter
+ junit-jupiter-engine
+ test
+
+
+
+
+
+
+ org.antlr
+ antlr4-maven-plugin
+ ${antlr.version}
+
+ true
+ true
+ ${project.build.directory}/generated-sources/ee/jakarta/tck/data/tools/antlr
+
+
+
+ antlr
+
+ antlr4
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/antlr4/QBN.g4 b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/antlr4/QBN.g4
new file mode 100644
index 00000000000..01936a7c42e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/antlr4/QBN.g4
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * 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
+ */
+// 4.6.1. BNF Grammar for Query Methods
+grammar QBN;
+
+@header {
+// TBD
+package ee.jakarta.tck.data.tools.antlr;
+}
+
+query_method : find_query | action_query ;
+
+find_query : find limit? ignored_text? restriction? order? ;
+action_query : action ignored_text? restriction? ;
+
+action : delete | update | count | exists ;
+
+find : 'find' ;
+delete : 'delete' ;
+update : 'update' ;
+count : 'count' ;
+exists : 'exists' ;
+
+restriction : BY predicate ;
+
+limit : FIRST INTEGER? ;
+
+predicate : condition ( (AND | OR) condition )* ;
+
+condition : property ignore_case? not? operator? ;
+ignore_case : IGNORE_CASE ;
+not : NOT ;
+
+operator
+ : CONTAINS
+ | ENDSWITH
+ | STARTSWITH
+ | LESSTHAN
+ | LESSTHANEQUAL
+ | GREATERTHAN
+ | GREATERTHANEQUAL
+ | BETWEEN
+ | EMPTY
+ | LIKE
+ | IN
+ | NULL
+ | TRUE
+ | FALSE
+ ;
+property : (IDENTIFIER | IDENTIFIER '_' property)+ ;
+
+order : ORDER_BY ( property | order_item+) ;
+
+order_item : property ( ASC | DESC ) ;
+
+ignored_text : IDENTIFIER ;
+
+// Lexer rules
+FIRST : 'First' ;
+BY : 'By' ;
+CONTAINS : 'Contains' ;
+ENDSWITH : 'EndsWith' ;
+STARTSWITH : 'StartsWith' ;
+LESSTHAN : 'LessThan' ;
+LESSTHANEQUAL : 'LessThanEqual' ;
+GREATERTHAN : 'GreaterThan' ;
+GREATERTHANEQUAL : 'GreaterThanEqual' ;
+BETWEEN : 'Between' ;
+EMPTY : 'Empty' ;
+LIKE : 'Like' ;
+IN : 'In' ;
+NULL : 'Null' ;
+TRUE : 'True' ;
+FALSE : 'False' ;
+IGNORE_CASE : 'IgnoreCase' ;
+NOT : 'Not' ;
+ORDER_BY : 'OrderBy' ;
+AND : 'And' ;
+OR : 'Or' ;
+ASC : 'Asc' ;
+DESC : 'Desc' ;
+
+IDENTIFIER : ([A-Z][a-z]+)+? ;
+INTEGER : [0-9]+ ;
+WS : [ \t\r\n]+ -> skip ;
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/AnnProcUtils.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/AnnProcUtils.java
new file mode 100644
index 00000000000..640116d24d8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/AnnProcUtils.java
@@ -0,0 +1,159 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package ee.jakarta.tck.data.tools.annp;
+
+import ee.jakarta.tck.data.tools.qbyn.ParseUtils;
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo;
+import jakarta.data.repository.Delete;
+import jakarta.data.repository.Find;
+import jakarta.data.repository.Insert;
+import jakarta.data.repository.Query;
+import jakarta.data.repository.Save;
+import jakarta.data.repository.Update;
+import org.stringtemplate.v4.ST;
+import org.stringtemplate.v4.STGroup;
+import org.stringtemplate.v4.STGroupFile;
+
+import javax.annotation.processing.Filer;
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ElementKind;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.type.DeclaredType;
+import javax.lang.model.type.TypeMirror;
+import javax.tools.JavaFileObject;
+import java.io.IOException;
+import java.io.Writer;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+public class AnnProcUtils {
+ // The name of the template for the TCK override imports
+ public static final String TCK_IMPORTS = "/tckImports";
+ // The name of the template for the TCK overrides
+ public static final String TCK_OVERRIDES = "/tckOverrides";
+
+ /**
+ * Get a list of non-lifecycle methods in a type element. This will also process superinterfaces
+ * @param typeElement a repository interface
+ * @return a list of non-lifecycle methods as candidate repository methods
+ */
+ public static List methodsIn(TypeElement typeElement) {
+ ArrayList methods = new ArrayList<>();
+ List typeMethods = methodsIn(typeElement.getEnclosedElements());
+ methods.addAll(typeMethods);
+ List extends TypeMirror> superifaces = typeElement.getInterfaces();
+ for (TypeMirror iface : superifaces) {
+ if(iface instanceof DeclaredType) {
+ DeclaredType dt = (DeclaredType) iface;
+ System.out.printf("Processing superinterface %s<%s>\n", dt.asElement(), dt.getTypeArguments());
+ methods.addAll(methodsIn((TypeElement) dt.asElement()));
+ }
+ }
+ return methods;
+ }
+
+ /**
+ * Get a list of non-lifecycle methods in a list of repository elements
+ * @param elements - a list of repository elements
+ * @return possibly empty list of non-lifecycle methods
+ */
+ public static List methodsIn(Iterable extends Element> elements) {
+ ArrayList methods = new ArrayList<>();
+ for (Element e : elements) {
+ if(e.getKind() == ElementKind.METHOD) {
+ ExecutableElement method = (ExecutableElement) e;
+ // Skip lifecycle methods
+ if(!isLifeCycleMethod(method)) {
+ methods.add(method);
+ }
+ }
+ }
+ return methods;
+ }
+
+ /**
+ * Is a method annotated with a lifecycle or Query annotation
+ * @param method a repository method
+ * @return true if the method is a lifecycle method
+ */
+ public static boolean isLifeCycleMethod(ExecutableElement method) {
+ boolean standardLifecycle = method.getAnnotation(Insert.class) != null
+ || method.getAnnotation(Find.class) != null
+ || method.getAnnotation(Update.class) != null
+ || method.getAnnotation(Save.class) != null
+ || method.getAnnotation(Delete.class) != null
+ || method.getAnnotation(Query.class) != null;
+ return standardLifecycle;
+ }
+
+ public static String getFullyQualifiedName(Element element) {
+ if (element instanceof TypeElement) {
+ return ((TypeElement) element).getQualifiedName().toString();
+ }
+ return null;
+ }
+
+
+ public static QueryByNameInfo isQBN(ExecutableElement m) {
+ String methodName = m.getSimpleName().toString();
+ try {
+ return ParseUtils.parseQueryByName(methodName);
+ }
+ catch (Throwable e) {
+ System.out.printf("Failed to parse %s: %s\n", methodName, e.getMessage());
+ }
+ return null;
+ }
+
+ /**
+ * Write a repository interface to a source file using the {@linkplain RepositoryInfo}. This uses the
+ * RepoTemplate.stg template file to generate the source code. It also looks for a
+ *
+ * @param repo - parsed repository info
+ * @param processingEnv - the processing environment
+ * @throws IOException - if the file cannot be written
+ */
+ public static void writeRepositoryInterface(RepositoryInfo repo, ProcessingEnvironment processingEnv) throws IOException {
+ STGroup repoGroup = new STGroupFile("RepoTemplate.stg");
+ ST genRepo = repoGroup.getInstanceOf("genRepo");
+ try {
+ URL stgURL = AnnProcUtils.class.getResource("/"+repo.getFqn()+".stg");
+ STGroup tckGroup = new STGroupFile(stgURL);
+ long count = tckGroup.getTemplateNames().stream().filter(t -> t.equals(TCK_IMPORTS) | t.equals(TCK_OVERRIDES)).count();
+ if(count != 2) {
+ System.out.printf("No TCK overrides for %s\n", repo.getFqn());
+ } else {
+ tckGroup.importTemplates(repoGroup);
+ System.out.printf("Found TCK overrides(%s) for %s\n", tckGroup.getRootDirURL(), repo.getFqn());
+ System.out.printf("tckGroup: %s\n", tckGroup.show());
+ genRepo = tckGroup.getInstanceOf("genRepo");
+ }
+ } catch (IllegalArgumentException e) {
+ System.out.printf("No TCK overrides for %s\n", repo.getFqn());
+ }
+
+ genRepo.add("repo", repo);
+
+ String ifaceSrc = genRepo.render();
+ String ifaceName = repo.getFqn() + "$";
+ Filer filer = processingEnv.getFiler();
+ JavaFileObject srcFile = filer.createSourceFile(ifaceName, repo.getRepositoryElement());
+ try(Writer writer = srcFile.openWriter()) {
+ writer.write(ifaceSrc);
+ writer.flush();
+ }
+ System.out.printf("Wrote %s, to: %s\n", ifaceName, srcFile.toUri());
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RepositoryInfo.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RepositoryInfo.java
new file mode 100644
index 00000000000..1848c9f2eff
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RepositoryInfo.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package ee.jakarta.tck.data.tools.annp;
+
+import ee.jakarta.tck.data.tools.qbyn.ParseUtils;
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo;
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo.OrderBy;
+import jakarta.data.repository.Repository;
+
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
+import javax.lang.model.element.VariableElement;
+import javax.lang.model.type.DeclaredType;
+import javax.lang.model.util.Types;
+import java.util.ArrayList;
+import java.util.List;
+
+
+public class RepositoryInfo {
+ public static class MethodInfo {
+ String name;
+ String returnType;
+ String query;
+ List orderBy;
+ List parameters = new ArrayList<>();
+ List exceptions = new ArrayList<>();
+
+ public MethodInfo(String name, String returnType, String query, List orderBy) {
+ this.name = name;
+ this.returnType = returnType;
+ this.query = query;
+ this.orderBy = orderBy;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getReturnType() {
+ return returnType;
+ }
+
+ public void setReturnType(String returnType) {
+ this.returnType = returnType;
+ }
+
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ }
+ public List getParameters() {
+ return parameters;
+ }
+ public void addParameter(String p) {
+ parameters.add(p);
+ }
+ public List getOrderBy() {
+ return orderBy;
+ }
+ }
+ private Element repositoryElement;
+ private String fqn;
+ private String pkg;
+ private String name;
+ private String dataStore = "";
+ private ArrayList methods = new ArrayList<>();
+ public ArrayList qbnMethods = new ArrayList<>();
+
+ public RepositoryInfo() {
+ }
+ public RepositoryInfo(Element repositoryElement) {
+ this.repositoryElement = repositoryElement;
+ Repository ann = repositoryElement.getAnnotation(Repository.class);
+ setFqn(AnnProcUtils.getFullyQualifiedName(repositoryElement));
+ setName(repositoryElement.getSimpleName().toString());
+ setDataStore(ann.dataStore());
+ }
+
+ public Element getRepositoryElement() {
+ return repositoryElement;
+ }
+ public String getFqn() {
+ return fqn;
+ }
+
+ public void setFqn(String fqn) {
+ this.fqn = fqn;
+ int index = fqn.lastIndexOf(".");
+ if(index > 0) {
+ setPkg(fqn.substring(0, index));
+ }
+ }
+
+ public String getPkg() {
+ return pkg;
+ }
+
+ public void setPkg(String pkg) {
+ this.pkg = pkg;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDataStore() {
+ return dataStore;
+ }
+
+ public void setDataStore(String dataStore) {
+ this.dataStore = dataStore;
+ }
+
+
+ /**
+ * Add a Query By Name method to the repository
+ * @param m - the method
+ * @param info - parsed QBN info
+ * @param types - annotation processing types utility
+ */
+ public void addQBNMethod(ExecutableElement m, QueryByNameInfo info, Types types) {
+ qbnMethods.add(m);
+ // Deal with generics
+ DeclaredType returnType = null;
+ if(m.getReturnType() instanceof DeclaredType) {
+ returnType = (DeclaredType) m.getReturnType();
+ }
+ String returnTypeStr = returnType == null ? m.getReturnType().toString() : toString(returnType);
+ System.out.printf("addQBNMethod: %s, returnType: %s, returnTypeStr: %s\n",
+ m.getSimpleName().toString(), returnType, returnTypeStr);
+ ParseUtils.ToQueryOptions options = ParseUtils.ToQueryOptions.NONE;
+ String methodName = m.getSimpleName().toString();
+ // Select the appropriate cast option if this is a countBy method
+ if(methodName.startsWith("count")) {
+ options = switch (returnTypeStr) {
+ case "long" -> ParseUtils.ToQueryOptions.CAST_LONG_TO_INTEGER;
+ case "int" -> ParseUtils.ToQueryOptions.CAST_COUNT_TO_INTEGER;
+ default -> ParseUtils.ToQueryOptions.NONE;
+ };
+ }
+ // Build the query string
+ String query = ParseUtils.toQuery(info, options);
+
+ MethodInfo mi = new MethodInfo(methodName, m.getReturnType().toString(), query, info.getOrderBy());
+ for (VariableElement p : m.getParameters()) {
+ mi.addParameter(p.asType().toString() + " " + p.getSimpleName());
+ }
+ addMethod(mi);
+ }
+ public String toString(DeclaredType tm) {
+ StringBuilder buf = new StringBuilder();
+ TypeElement returnTypeElement = (TypeElement) tm.asElement();
+ buf.append(returnTypeElement.getQualifiedName());
+ if (!tm.getTypeArguments().isEmpty()) {
+ buf.append('<');
+ buf.append(tm.getTypeArguments().toString());
+ buf.append(">");
+ }
+ return buf.toString();
+ }
+ public List getQBNMethods() {
+ return qbnMethods;
+ }
+ public boolean hasQBNMethods() {
+ return !qbnMethods.isEmpty();
+ }
+
+ public ArrayList getMethods() {
+ return methods;
+ }
+
+ public void addMethod(MethodInfo m) {
+ methods.add(m);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RespositoryProcessor.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RespositoryProcessor.java
new file mode 100644
index 00000000000..cbd621bf858
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/annp/RespositoryProcessor.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package ee.jakarta.tck.data.tools.annp;
+
+import javax.annotation.processing.AbstractProcessor;
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedOptions;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.AnnotationMirror;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.ExecutableElement;
+import javax.lang.model.element.TypeElement;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo;
+import jakarta.data.repository.Repository;
+import jakarta.persistence.Entity;
+
+import javax.lang.model.element.VariableElement;
+import javax.lang.model.type.DeclaredType;
+import javax.lang.model.type.TypeMirror;
+import javax.lang.model.util.Types;
+
+
+/**
+ * Annotation processor for {@link Repository} annotations that creates sub-interfaces for repositories
+ * that use Query By Name (QBN) methods.
+ */
+@SupportedAnnotationTypes("jakarta.data.repository.Repository")
+@SupportedSourceVersion(SourceVersion.RELEASE_17)
+@SupportedOptions({"debug", "generatedSourcesDirectory"})
+public class RespositoryProcessor extends AbstractProcessor {
+ private Map repoInfoMap = new HashMap<>();
+
+ @Override
+ public synchronized void init(ProcessingEnvironment processingEnv) {
+ super.init(processingEnv);
+ processingEnv.getOptions();
+ }
+
+ @Override
+ public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ System.out.printf("RespositoryProcessor: Processing repositories, over=%s\n", roundEnv.processingOver());
+ boolean newRepos = false;
+ Set extends Element> repositories = roundEnv.getElementsAnnotatedWith(Repository.class);
+ for (Element repository : repositories) {
+ String provider = repository.getAnnotation(Repository.class).provider();
+ if(provider.isEmpty() || provider.equalsIgnoreCase("hibernate")) {
+ String fqn = AnnProcUtils.getFullyQualifiedName(repository);
+ System.out.printf("Processing repository %s\n", fqn);
+ if(repoInfoMap.containsKey(fqn) || repoInfoMap.containsKey(fqn.substring(0, fqn.length()-1))) {
+ System.out.printf("Repository(%s) already processed\n", fqn);
+ continue;
+ }
+
+ System.out.printf("Repository(%s) as kind:%s\n", repository.asType(), repository.getKind());
+ TypeElement entityType = null;
+ TypeElement repositoryType = null;
+ if(repository instanceof TypeElement) {
+ repositoryType = (TypeElement) repository;
+ entityType = getEntityType(repositoryType);
+ System.out.printf("\tRepository(%s) entityType(%s)\n", repository, entityType);
+ }
+ // If there
+ if(entityType == null) {
+ System.out.printf("Repository(%s) does not have an JPA entity type\n", repository);
+ continue;
+ }
+ //
+ newRepos |= checkRespositoryForQBN(repositoryType, entityType, processingEnv.getTypeUtils());
+ }
+ }
+
+ // Generate repository interfaces for QBN methods
+ if(newRepos) {
+ for (Map.Entry entry : repoInfoMap.entrySet()) {
+ RepositoryInfo repoInfo = entry.getValue();
+ System.out.printf("Generating repository interface for %s\n", entry.getKey());
+ try {
+ AnnProcUtils.writeRepositoryInterface(repoInfo, processingEnv);
+ } catch (IOException e) {
+ processingEnv.getMessager().printMessage(javax.tools.Diagnostic.Kind.ERROR, e.getMessage());
+ }
+ }
+ }
+ return true;
+ }
+
+ private TypeElement getEntityType(TypeElement repo) {
+ if(repo.getQualifiedName().toString().equals("ee.jakarta.tck.data.common.cdi.Directory")) {
+ System.out.println("Directory");
+ }
+ // Check super interfaces for Repository
+ for (TypeMirror iface : repo.getInterfaces()) {
+ System.out.printf("\tRepository(%s) interface(%s)\n", repo, iface);
+ if (iface instanceof DeclaredType) {
+ DeclaredType declaredType = (DeclaredType) iface;
+ if(!declaredType.getTypeArguments().isEmpty()) {
+ TypeElement candidateType = (TypeElement) processingEnv.getTypeUtils().asElement(declaredType.getTypeArguments().get(0));
+ Entity entity = candidateType.getAnnotation(Entity.class);
+ if (entity != null) {
+ System.out.printf("Repository(%s) entityType(%s)\n", repo, candidateType);
+ return candidateType;
+ } else {
+ // Look for custom Entity types based on '*Entity' naming convention
+ // A qualifier annotation would be better, see https://github.com/jakartaee/data/issues/638
+ List extends AnnotationMirror> x = candidateType.getAnnotationMirrors();
+ for (AnnotationMirror am : x) {
+ DeclaredType dt = am.getAnnotationType();
+ String annotationName = dt.asElement().getSimpleName().toString();
+ if(annotationName.endsWith("Entity")) {
+ System.out.printf("Repository(%s) entityType(%s) from custom annotation:(%s)\n", repo, candidateType, annotationName);
+ return candidateType;
+ }
+ }
+ }
+ }
+ }
+ }
+ // Look for lifecycle methods
+ for (Element e : repo.getEnclosedElements()) {
+ if (e instanceof ExecutableElement) {
+ ExecutableElement ee = (ExecutableElement) e;
+ if (AnnProcUtils.isLifeCycleMethod(ee)) {
+ List extends VariableElement> params = ee.getParameters();
+ for (VariableElement parameter : params) {
+ // Get the type of the parameter
+ TypeMirror parameterType = parameter.asType();
+
+ if (parameterType instanceof DeclaredType) {
+ DeclaredType declaredType = (DeclaredType) parameterType;
+ Entity entity = declaredType.getAnnotation(jakarta.persistence.Entity.class);
+ System.out.printf("%s, declaredType: %s\n", ee.getSimpleName(), declaredType, entity);
+ if(entity != null) {
+ System.out.printf("Repository(%s) entityType(%s)\n", repo, declaredType);
+ return (TypeElement) processingEnv.getTypeUtils().asElement(declaredType);
+ }
+
+ // Get the type arguments
+ List extends TypeMirror> typeArguments = declaredType.getTypeArguments();
+
+ for (TypeMirror typeArgument : typeArguments) {
+ TypeElement argType = (TypeElement) processingEnv.getTypeUtils().asElement(typeArgument);
+ Entity entity2 = argType.getAnnotation(jakarta.persistence.Entity.class);
+ System.out.printf("%s, typeArgument: %s, entity: %s\n", ee.getSimpleName(), typeArgument, entity2);
+ if(entity2 != null) {
+ System.out.printf("Repository(%s) entityType(%s)\n", repo, typeArgument);
+ return (TypeElement) processingEnv.getTypeUtils().asElement(typeArgument);
+ }
+ }
+ }
+ }
+
+ }
+ }
+ }
+
+ return null;
+ }
+
+
+ /**
+ * Check a repository for Query By Name methods, and create a {@link RepositoryInfo} object if found.
+ * @param repository a repository element
+ * @param entityType the entity type for the repository
+ * @return true if the repository has QBN methods
+ */
+ private boolean checkRespositoryForQBN(TypeElement repository, TypeElement entityType, Types types) {
+ System.out.println("RespositoryProcessor: Checking repository for Query By Name");
+ boolean addedRepo = false;
+
+ String entityName = entityType.getQualifiedName().toString();
+ List methods = AnnProcUtils.methodsIn(repository);
+ RepositoryInfo repoInfo = new RepositoryInfo(repository);
+ for (ExecutableElement m : methods) {
+ System.out.printf("\t%s\n", m.getSimpleName());
+ QueryByNameInfo qbn = AnnProcUtils.isQBN(m);
+ if(qbn != null) {
+ qbn.setEntity(entityName);
+ repoInfo.addQBNMethod(m, qbn, types);
+ }
+
+ }
+ if(repoInfo.hasQBNMethods()) {
+ System.out.printf("Repository(%s) has QBN(%d) methods\n", repository, repoInfo.qbnMethods.size());
+ repoInfoMap.put(AnnProcUtils.getFullyQualifiedName(repository), repoInfo);
+ addedRepo = true;
+ } else {
+ System.out.printf("Repository(%s) has NO QBN methods\n", repository);
+ }
+ return addedRepo;
+ }
+
+ private void generateQBNRepositoryInterfaces() {
+ for (Map.Entry entry : repoInfoMap.entrySet()) {
+ RepositoryInfo repoInfo = entry.getValue();
+ System.out.printf("Generating repository interface for %s\n", entry.getKey());
+
+ }
+ }
+}
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/ParseUtils.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/ParseUtils.java
new file mode 100644
index 00000000000..e99ed71eacd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/ParseUtils.java
@@ -0,0 +1,304 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package ee.jakarta.tck.data.tools.qbyn;
+
+import org.antlr.v4.runtime.BaseErrorListener;
+import org.antlr.v4.runtime.CharStreams;
+import org.antlr.v4.runtime.CodePointCharStream;
+import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.tree.ErrorNode;
+import org.antlr.v4.runtime.tree.ParseTree;
+
+import ee.jakarta.tck.data.tools.antlr.QBNLexer;
+import ee.jakarta.tck.data.tools.antlr.QBNParser;
+import ee.jakarta.tck.data.tools.antlr.QBNBaseListener;
+
+import java.util.Arrays;
+import java.util.HashSet;
+
+/**
+ * A utility class for parsing query by name method names using the Antlr4 generated parser
+ */
+public class ParseUtils {
+ /**
+ * Options for the toQuery method
+ */
+ public enum ToQueryOptions {
+ INCLUDE_ORDER_BY,
+ // select cast(count(this) as Integer)
+ CAST_COUNT_TO_INTEGER,
+ // select count(this) as Integer
+ CAST_LONG_TO_INTEGER,
+ NONE
+ }
+
+ /**
+ * Parse a query by name method name into a QueryByNameInfo object
+ * @param queryByName the query by name method name
+ * @return the parsed QueryByNameInfo object
+ */
+ public static QueryByNameInfo parseQueryByName(String queryByName) {
+ CodePointCharStream input = CharStreams.fromString(queryByName);
+ QBNLexer lexer = new QBNLexer(input); // create a buffer of tokens pulled from the lexer
+ CommonTokenStream tokens = new CommonTokenStream(lexer); // create a parser that feeds off the tokens buffer
+ QBNParser parser = new QBNParser(tokens);
+ QueryByNameInfo info = new QueryByNameInfo();
+ parser.addErrorListener(new BaseErrorListener() {
+ @Override
+ public void syntaxError(org.antlr.v4.runtime.Recognizer, ?> recognizer, Object offendingSymbol, int line, int charPositionInLine, String msg, org.antlr.v4.runtime.RecognitionException e) {
+ throw new IllegalArgumentException("Invalid query by name method name: " + queryByName);
+ }
+ });
+ parser.addParseListener(new QBNBaseListener() {
+ @Override
+ public void visitErrorNode(ErrorNode node) {
+ throw new IllegalArgumentException("Invalid query by name method name: " + queryByName);
+ }
+
+
+ @Override
+ public void exitPredicate(ee.jakarta.tck.data.tools.antlr.QBNParser.PredicateContext ctx) {
+ int count = ctx.condition().size();
+ for (int i = 0; i < count; i++) {
+ ee.jakarta.tck.data.tools.antlr.QBNParser.ConditionContext cctx = ctx.condition(i);
+ String property = cctx.property().getText();
+ QueryByNameInfo.Operator operator = QueryByNameInfo.Operator.EQUAL;
+ if(cctx.operator() != null) {
+ operator = QueryByNameInfo.Operator.valueOf(cctx.operator().getText().toUpperCase());
+ }
+ boolean ignoreCase = cctx.ignore_case() != null;
+ boolean not = cctx.not() != null;
+ boolean and = false;
+ if(i > 0) {
+ // The AND/OR is only present if there is more than one condition
+ and = ctx.AND(i-1) != null;
+ }
+ // String property, Operator operator, boolean ignoreCase, boolean not, boolean and
+ info.addCondition(property, operator, ignoreCase, not, and);
+ }
+ }
+
+ @Override
+ public void exitAction_query(QBNParser.Action_queryContext ctx) {
+ QueryByNameInfo.Action action = QueryByNameInfo.Action.valueOf(ctx.action().getText().toUpperCase());
+ info.setAction(action);
+ if(ctx.ignored_text() != null) {
+ info.setIgnoredText(ctx.ignored_text().getText());
+ }
+ }
+
+ @Override
+ public void exitFind_query(QBNParser.Find_queryContext ctx) {
+ if (ctx.limit() != null) {
+ int findCount = 0;
+ if (ctx.limit().INTEGER() != null) {
+ findCount = Integer.parseInt(ctx.limit().INTEGER().getText());
+ }
+ info.setFindExpressionCount(findCount);
+ }
+ if(ctx.ignored_text() != null) {
+ info.setIgnoredText(ctx.ignored_text().getText());
+ }
+ }
+
+ @Override
+ public void exitOrder(ee.jakarta.tck.data.tools.antlr.QBNParser.OrderContext ctx) {
+ int count = ctx.order_item().size();
+ if(ctx.property() != null) {
+ String property = camelCase(ctx.property().getText());
+ info.addOrderBy(property, QueryByNameInfo.OrderBySortDirection.NONE);
+ }
+ for (int i = 0; i < count; i++) {
+ ee.jakarta.tck.data.tools.antlr.QBNParser.Order_itemContext octx = ctx.order_item(i);
+ String property = camelCase(octx.property().getText());
+ QueryByNameInfo.OrderBySortDirection direction = octx.ASC() != null ? QueryByNameInfo.OrderBySortDirection.ASC : QueryByNameInfo.OrderBySortDirection.DESC;
+ info.addOrderBy(property, direction);
+ }
+ }
+ });
+ // Run the parser
+ ParseTree tree = parser.query_method();
+
+ return info;
+ }
+
+ /**
+ * Simple function to transfer the first character of a string to lower case
+ * @param s - phrase
+ * @return camel case version of s
+ */
+ public static String camelCase(String s) {
+ return s.substring(0, 1).toLowerCase() + s.substring(1);
+ }
+
+ /**
+ * Convert a QueryByNameInfo object into a JDQL query string
+ * @param info - parse QBN info
+ * @return toQuery(info, false)
+ * @see #toQuery(QueryByNameInfo, ToQueryOptions...)
+ */
+ public static String toQuery(QueryByNameInfo info) {
+ return toQuery(info, ToQueryOptions.NONE);
+ }
+ /**
+ * Convert a QueryByNameInfo object into a JDQL query string
+ * @param info - parse QBN info
+ * @param options -
+ * @return the JDQL query string
+ */
+ public static String toQuery(QueryByNameInfo info, ToQueryOptions... options) {
+ // Collect the options into a set
+ HashSet optionsSet = new HashSet<>(Arrays.asList(options));
+ StringBuilder sb = new StringBuilder();
+ int paramIdx = 1;
+ QueryByNameInfo.Action action = info.getAction();
+ switch (action) {
+ case FIND:
+ break;
+ case DELETE:
+ sb.append("delete ").append(info.getSimpleName()).append(' ');
+ break;
+ case UPDATE:
+ sb.append("update ").append(info.getSimpleName()).append(' ');
+ break;
+ case COUNT:
+ if(optionsSet.contains(ToQueryOptions.CAST_COUNT_TO_INTEGER)) {
+ sb.append("select cast(count(this) as Integer) ");
+ } else if(optionsSet.contains(ToQueryOptions.CAST_LONG_TO_INTEGER)) {
+ sb.append("select count(this) as Integer ");
+ } else {
+ sb.append("select count(this) ");
+ }
+ break;
+ case EXISTS:
+ sb.append("select count(this)>0 ");
+ break;
+ }
+ //
+ if(info.getPredicates().isEmpty()) {
+ return sb.toString().trim();
+ }
+
+ sb.append("where ");
+ for(int n = 0; n < info.getPredicates().size(); n ++) {
+ QueryByNameInfo.Condition c = info.getPredicates().get(n);
+
+ // EndWith -> right(property, length(?1)) = ?1
+ if(c.operator == QueryByNameInfo.Operator.ENDSWITH) {
+ sb.append("right(").append(camelCase(c.property))
+ .append(", length(?")
+ .append(paramIdx)
+ .append(")) = ?")
+ .append(paramIdx)
+ ;
+ paramIdx ++;
+ }
+ // StartsWith -> left(property, length(?1)) = ?1
+ else if(c.operator == QueryByNameInfo.Operator.STARTSWITH) {
+ sb.append("left(").append(camelCase(c.property))
+ .append(", length(?")
+ .append(paramIdx)
+ .append(")) = ?")
+ .append(paramIdx)
+ ;
+ paramIdx ++;
+ }
+ // Contains -> property like '%'||?1||'%'
+ else if(c.operator == QueryByNameInfo.Operator.CONTAINS) {
+ sb.append(camelCase(c.property)).append(" like '%'||?").append(paramIdx).append("||'%'");
+ paramIdx++;
+ }
+ // Null
+ else if(c.operator == QueryByNameInfo.Operator.NULL) {
+ if(c.not) {
+ sb.append(camelCase(c.property)).append(" is not null");
+ } else {
+ sb.append(camelCase(c.property)).append(" is null");
+ }
+ }
+ // Empty
+ else if(c.operator == QueryByNameInfo.Operator.EMPTY) {
+ if(c.not) {
+ sb.append(camelCase(c.property)).append(" is not empty");
+ } else {
+ sb.append(camelCase(c.property)).append(" is empty");
+ }
+ }
+ // Other operators
+ else {
+ boolean ignoreCase = c.ignoreCase;
+ if(ignoreCase) {
+ sb.append("lower(");
+ }
+ sb.append(camelCase(c.property));
+ if(ignoreCase) {
+ sb.append(")");
+ }
+ if (c.operator == QueryByNameInfo.Operator.EQUAL && c.not) {
+ sb.append(" <>");
+ } else {
+ if(c.not) {
+ sb.append(" not");
+ }
+ String jdql = c.operator.getJDQL();
+ sb.append(jdql);
+ }
+ // Other operators that need a parameter, add a placeholder
+ if (c.operator.parameters() > 0) {
+ if (ignoreCase) {
+ sb.append(" lower(?").append(paramIdx).append(")");
+ } else {
+ sb.append(" ?").append(paramIdx);
+ }
+ paramIdx++;
+ if (c.operator.parameters() == 2) {
+ if (ignoreCase) {
+ sb.append(" and lower(?").append(paramIdx).append(")");
+ } else {
+ sb.append(" and ?").append(paramIdx);
+ }
+ paramIdx++;
+ }
+ }
+ }
+ // See if we need to add an AND or OR
+ if(n < info.getPredicates().size()-1) {
+ // The and/or comes from next condition
+ boolean isAnd = info.getPredicates().get(n+1).and;
+ if (isAnd) {
+ sb.append(" and ");
+ } else {
+ sb.append(" or ");
+ }
+ }
+ }
+
+ // If there is an orderBy clause, add it to query
+ int limit = info.getFindExpressionCount() == 0 ? 1 : info.getFindExpressionCount();
+ if(optionsSet.contains(ToQueryOptions.INCLUDE_ORDER_BY) && !info.getOrderBy().isEmpty()) {
+ for (QueryByNameInfo.OrderBy ob : info.getOrderBy()) {
+ sb.append(" order by ").append(ob.property).append(' ');
+ if(ob.direction != QueryByNameInfo.OrderBySortDirection.NONE) {
+ sb.append(ob.direction.name().toLowerCase());
+ }
+ }
+ // We pass the find expression count as the limit
+ if(limit > 0) {
+ sb.append(" limit ").append(limit);
+ }
+ } else if(limit > 0) {
+ sb.append(" order by '' limit ").append(limit);
+ }
+
+ return sb.toString().trim();
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/QueryByNameInfo.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/QueryByNameInfo.java
new file mode 100644
index 00000000000..dea1c9ef667
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/java/ee/jakarta/tck/data/tools/qbyn/QueryByNameInfo.java
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package ee.jakarta.tck.data.tools.qbyn;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A collection of the information parsed from a Query by name method name
+ * using the BNF grammar defined in QBN.g4
+ */
+public class QueryByNameInfo {
+ /**
+ * The support <action> types
+ */
+ public enum Action {
+ // find | delete | update | count | exists
+ FIND, DELETE, UPDATE, COUNT, EXISTS, NONE
+ }
+
+ /**
+ * The support <operator> types
+ */
+ public enum Operator {
+ CONTAINS("%||...||%"), ENDSWITH("right(...)"), STARTSWITH("left(...)"), LESSTHAN(" <"), LESSTHANEQUAL(" <="),
+ GREATERTHAN(" >"), GREATERTHANEQUAL(" >="), BETWEEN(" between", 2) , EMPTY(" empty") ,
+ LIKE(" like") , IN(" in") , NULL(" null", 0), TRUE("=true", 0) ,
+ FALSE("=false", 0), EQUAL(" =")
+ ;
+ private Operator(String jdql) {
+ this(jdql, 1);
+ }
+ private Operator(String jdql, int parameters) {
+ this.jdql = jdql;
+ this.parameters = parameters;
+ }
+ private String jdql;
+ private int parameters = 0;
+ public String getJDQL() {
+ return jdql;
+ }
+ public int parameters() {
+ return parameters;
+ }
+ }
+ public enum OrderBySortDirection {
+ ASC, DESC, NONE
+ }
+
+ /**
+ * A <condition> in the <predicate> statement
+ */
+ public static class Condition {
+ // an entity property name
+ String property;
+ // the operator to apply to the property
+ Operator operator = Operator.EQUAL;
+ // is the condition case-insensitive
+ boolean ignoreCase;
+ // is the condition negated
+ boolean not;
+ // for multiple conditions, is this condition joined by AND(true) or OR(false)
+ boolean and;
+ }
+
+ /**
+ * A <order-item> or <property> in the <order-clause>
+ */
+ public static class OrderBy {
+ // an entity property name
+ public String property;
+ // the direction to sort the property
+ public OrderBySortDirection direction = OrderBySortDirection.NONE;
+
+ public OrderBy() {
+ }
+ public OrderBy(String property, OrderBySortDirection direction) {
+ this.property = property;
+ this.direction = direction;
+ }
+ public boolean isDescending() {
+ return direction == OrderBySortDirection.DESC;
+ }
+ }
+ private Action action = Action.NONE;
+ private List predicates = new ArrayList<>();
+ private List orderBy = new ArrayList<>();
+ // > 0 means find expression exists
+ int findExpressionCount = -1;
+ String ignoredText;
+ // The entity FQN name
+ String entity;
+
+ /**
+ * The entity FQN
+ * @return entity FQN
+ */
+ public String getEntity() {
+ return entity;
+ }
+
+ public void setEntity(String entity) {
+ this.entity = entity;
+ }
+
+ public String getSimpleName() {
+ String simpleName = entity;
+ int lastDot = entity.lastIndexOf('.');
+ if(lastDot >= 0) {
+ simpleName = entity.substring(lastDot + 1);
+ }
+ return simpleName;
+ }
+
+ public Action getAction() {
+ return action;
+ }
+
+ public void setAction(Action action) {
+ this.action = action;
+ }
+
+ public List getPredicates() {
+ return predicates;
+ }
+
+ public void setPredicates(List predicates) {
+ this.predicates = predicates;
+ }
+ public List addCondition(Condition condition) {
+ this.predicates.add(condition);
+ return this.predicates;
+ }
+ public List addCondition(String property, Operator operator, boolean ignoreCase, boolean not, boolean and) {
+ Condition c = new Condition();
+ c.property = property;
+ c.operator = operator;
+ c.ignoreCase = ignoreCase;
+ c.not = not;
+ c.and = and;
+ this.predicates.add(c);
+ return this.predicates;
+ }
+
+ public int getFindExpressionCount() {
+ return findExpressionCount;
+ }
+
+ public void setFindExpressionCount(int findExpressionCount) {
+ this.findExpressionCount = findExpressionCount;
+ }
+
+ public String getIgnoredText() {
+ return ignoredText;
+ }
+ public void setIgnoredText(String ignoredText) {
+ this.ignoredText = ignoredText;
+ }
+
+ public List getOrderBy() {
+ return orderBy;
+ }
+ public void setOrderBy(List orderBy) {
+ this.orderBy = orderBy;
+ }
+ public List addOrderBy(OrderBy orderBy) {
+ this.orderBy.add(orderBy);
+ return this.orderBy;
+ }
+ public List addOrderBy(String property, OrderBySortDirection direction) {
+ OrderBy ob = new OrderBy();
+ ob.property = property;
+ ob.direction = direction;
+ this.orderBy.add(ob);
+ return this.orderBy;
+ }
+
+ /**
+ * Returns a string representation of the parsed query by name method
+ * @return
+ */
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append('(');
+ // Subject
+ if(action != Action.NONE) {
+ sb.append(action.name().toLowerCase());
+ } else {
+ sb.append("findFirst");
+ if(findExpressionCount > 0) {
+ sb.append(findExpressionCount);
+ }
+ }
+ if(ignoredText != null && !ignoredText.isEmpty()) {
+ sb.append(ignoredText);
+ }
+ // Predicates
+ boolean first = true;
+ if(!predicates.isEmpty()) {
+ sb.append("By");
+ for(Condition c : predicates) {
+ // Add the join condition
+ if(!first) {
+ sb.append(c.and ? "AND" : "OR");
+ }
+ sb.append('(');
+ sb.append(c.property);
+ sb.append(' ');
+ if(c.ignoreCase) {
+ sb.append("IgnoreCase");
+ }
+ if(c.not) {
+ sb.append("NOT");
+ }
+ if(c.operator != Operator.EQUAL) {
+ sb.append(c.operator.name().toUpperCase());
+ }
+ sb.append(')');
+ first = false;
+ }
+ sb.append(')');
+ }
+ // OrderBy
+ if(!orderBy.isEmpty()) {
+ sb.append("(OrderBy ");
+ for(OrderBy ob : orderBy) {
+ sb.append('(');
+ sb.append(ob.property);
+ sb.append(' ');
+ if(ob.direction != OrderBySortDirection.NONE) {
+ sb.append(ob.direction.name().toUpperCase());
+ }
+ sb.append(')');
+ }
+ sb.append(')');
+ }
+ sb.append(')');
+ return sb.toString();
+ }
+
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/resources/RepoTemplate.stg b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/resources/RepoTemplate.stg
new file mode 100644
index 00000000000..e5fff9375f8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/main/resources/RepoTemplate.stg
@@ -0,0 +1,37 @@
+//
+delimiters "#", "#"
+
+/* The base template for creating a repository subinterface
+@repo is a ee.jakarta.tck.data.tools.annp.RepositoryInfo object
+*/
+genRepo(repo) ::= <<
+package #repo.pkg#;
+import jakarta.annotation.Generated;
+import jakarta.data.repository.OrderBy;
+import jakarta.data.repository.Query;
+import jakarta.data.repository.Repository;
+import #repo.fqn#;
+#tckImports()#
+
+@Repository(dataStore = "#repo.dataStore#")
+@Generated("ee.jakarta.tck.data.tools.annp.RespositoryProcessor")
+interface #repo.name#$ extends #repo.name# {
+ #repo.methods :{m |
+ @Override
+ @Query("#m.query#")
+ #m.orderBy :{o | @OrderBy(value="#o.property#", descending = #o.descending#)}#
+ public #m.returnType# #m.name# (#m.parameters: {p | #p#}; separator=", "#);
+
+ }
+ #
+
+ #tckOverrides()#
+}
+>>
+
+/* This is an extension point for adding TCK overrides. Create a subtemplate
+ group and include the tckOverrides that generates the overrides.
+*/
+tckOverrides() ::= "// TODO; Implement TCK overrides"
+
+tckImports() ::= ""
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/QBNParserTest.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/QBNParserTest.java
new file mode 100644
index 00000000000..d576885e7a8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/QBNParserTest.java
@@ -0,0 +1,529 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package qbyn;
+
+import ee.jakarta.tck.data.tools.qbyn.ParseUtils;
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo;
+import org.antlr.v4.runtime.CharStreams;
+import org.antlr.v4.runtime.CodePointCharStream;
+import org.antlr.v4.runtime.CommonTokenStream;
+import org.antlr.v4.runtime.tree.ParseTree;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
+import ee.jakarta.tck.data.tools.antlr.QBNLexer;
+import ee.jakarta.tck.data.tools.antlr.QBNParser;
+import ee.jakarta.tck.data.tools.antlr.QBNBaseListener;
+
+import java.io.IOException;
+
+public class QBNParserTest {
+ // Some of these are not actual query by name examples even though they follow the pattern
+ String actionExamples = """
+ findByHexadecimalContainsAndIsControlNot
+ findByDepartmentCountAndPriceBelow
+ countByHexadecimalNotNull
+ existsByThisCharacter
+ findByDepartmentsContains
+ findByDepartmentsEmpty
+ findByFloorOfSquareRootNotAndIdLessThanOrderByBitsRequiredDesc
+ findByFloorOfSquareRootOrderByIdAsc
+ findByHexadecimalIgnoreCase
+ findByHexadecimalIgnoreCaseBetweenAndHexadecimalNotIn
+ findById
+ findByIdBetween
+ findByIdBetweenOrderByNumTypeAsc
+ findByIdGreaterThanEqual
+ findByIdIn
+ findByIdLessThan
+ findByIdLessThanEqual
+ findByIdLessThanOrderByFloorOfSquareRootDesc
+ findByIsControlTrueAndNumericValueBetween
+ findByIsOddFalseAndIdBetween
+ findByIsOddTrueAndIdLessThanEqualOrderByIdDesc
+ findByNameLike
+ findByNumTypeAndFloorOfSquareRootLessThanEqual
+ findByNumTypeAndNumBitsRequiredLessThan
+ findByNumTypeInOrderByIdAsc
+ findByNumTypeNot
+ findByNumTypeOrFloorOfSquareRoot
+ findByNumericValue
+ findByNumericValueBetween
+ findByNumericValueLessThanEqualAndNumericValueGreaterThanEqual
+ findFirst3ByNumericValueGreaterThanEqualAndHexadecimalEndsWith
+ findFirstByHexadecimalStartsWithAndIsControlOrderByIdAsc
+ findByPriceNotNullAndPriceLessThanEqual
+ findByPriceNull
+ findByProductNumLike
+ """;
+
+ /**
+ * Test the parser using a local QBNBaseListener implementation
+ * @throws IOException
+ */
+ @Test
+ public void testQueryByNameExamples() throws IOException {
+ String[] examples = actionExamples.split("\n");
+ for (String example : examples) {
+ System.out.println(example);
+ CodePointCharStream input = CharStreams.fromString(example); // create a lexer that feeds off of input CharStream
+ QBNLexer lexer = new QBNLexer(input); // create a buffer of tokens pulled from the lexer
+ CommonTokenStream tokens = new CommonTokenStream(lexer); // create a parser that feeds off the tokens buffer
+ QBNParser parser = new QBNParser(tokens);
+ QueryByNameInfo info = new QueryByNameInfo();
+ parser.addParseListener(new QBNBaseListener() {
+ @Override
+ public void exitPredicate(QBNParser.PredicateContext ctx) {
+ int count = ctx.condition().size();
+ for (int i = 0; i < count; i++) {
+ QBNParser.ConditionContext cctx = ctx.condition(i);
+ String property = cctx.property().getText();
+ QueryByNameInfo.Operator operator = QueryByNameInfo.Operator.EQUAL;
+ if(cctx.operator() != null) {
+ operator = QueryByNameInfo.Operator.valueOf(cctx.operator().getText().toUpperCase());
+ }
+ boolean ignoreCase = cctx.ignore_case() != null;
+ boolean not = cctx.not() != null;
+ boolean and = false;
+ if(i > 0) {
+ // The AND/OR is only present if there is more than one condition
+ and = ctx.AND(i-1) != null;
+ }
+ // String property, Operator operator, boolean ignoreCase, boolean not, boolean and
+ info.addCondition(property, operator, ignoreCase, not, and);
+ }
+ }
+
+ @Override
+ public void exitFind_query(QBNParser.Find_queryContext ctx) {
+ System.out.println("find: " + ctx.find().getText());
+ if(ctx.limit() != null) {
+ System.out.println("find_expression.INTEGER: " + ctx.limit().INTEGER());
+ int findCount = 0;
+ if(ctx.limit().INTEGER() != null) {
+ findCount = Integer.parseInt(ctx.limit().INTEGER().getText());
+ }
+ info.setFindExpressionCount(findCount);
+ if(ctx.ignored_text() != null) {
+ info.setIgnoredText(ctx.ignored_text().getText());
+ }
+ }
+ }
+
+ @Override
+ public void exitAction_query(QBNParser.Action_queryContext ctx) {
+ QueryByNameInfo.Action action = QueryByNameInfo.Action.valueOf(ctx.action().getText().toUpperCase());
+ info.setAction(action);
+ if(ctx.ignored_text() != null) {
+ info.setIgnoredText(ctx.ignored_text().getText());
+ }
+ }
+
+ @Override
+ public void exitOrder(QBNParser.OrderContext ctx) {
+ int count = ctx.order_item().size();
+ if(ctx.property() != null) {
+ String property = ctx.property().getText();
+ info.addOrderBy(property, QueryByNameInfo.OrderBySortDirection.NONE);
+ }
+ for (int i = 0; i < count; i++) {
+ QBNParser.Order_itemContext octx = ctx.order_item(i);
+ String property = octx.property().getText();
+ QueryByNameInfo.OrderBySortDirection direction = octx.ASC() != null ? QueryByNameInfo.OrderBySortDirection.ASC : QueryByNameInfo.OrderBySortDirection.DESC;
+ info.addOrderBy(property, direction);
+ }
+ }
+ });
+ ParseTree tree = parser.query_method();
+ // print LISP-style tree for the
+ System.out.println(tree.toStringTree(parser));
+ // Print out the parsed QueryByNameInfo
+ System.out.println(info);
+
+ }
+ }
+
+ /**
+ * Test the parser using the ParseUtils class
+ */
+ @Test
+ public void testParseUtils() {
+ String[] examples = actionExamples.split("\n");
+ for (String example : examples) {
+ System.out.println(example);
+ QueryByNameInfo info = ParseUtils.parseQueryByName(example);
+ System.out.println(info);
+ }
+ }
+
+ @Test
+ /** Should produce:
+ @Query("where floorOfSquareRoot <> ?1 and id < ?2")
+ @OrderBy("numBitsRequired", descending = true)
+ */
+ public void test_findByFloorOfSquareRootNotAndIdLessThanOrderByNumBitsRequiredDesc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByFloorOfSquareRootNotAndIdLessThanOrderByNumBitsRequiredDesc");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where floorOfSquareRoot <> ?1 and id < ?2", query);
+ Assertions.assertEquals(1, info.getOrderBy().size());
+ Assertions.assertEquals("numBitsRequired", info.getOrderBy().get(0).property);
+ Assertions.assertEquals(QueryByNameInfo.OrderBySortDirection.DESC, info.getOrderBy().get(0).direction);
+ }
+
+ /** Should produce
+ @Query("where isOdd=true and id <= ?1")
+ @OrderBy(value = "id", descending = true)
+ */
+ @Test
+ public void test_findByIsOddTrueAndIdLessThanEqualOrderByIdDesc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByIsOddTrueAndIdLessThanEqualOrderByIdDesc");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where isOdd=true and id <= ?1", query);
+ Assertions.assertTrue(info.getOrderBy().size() == 1);
+ Assertions.assertEquals("id", info.getOrderBy().get(0).property);
+ Assertions.assertEquals(QueryByNameInfo.OrderBySortDirection.DESC, info.getOrderBy().get(0).direction);
+ }
+ /** Should produce
+ @Query("where isOdd=false and id between ?1 and ?2")
+ */
+ @Test
+ public void test_findByIsOddFalseAndIdBetween() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByIsOddFalseAndIdBetween");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where isOdd=false and id between ?1 and ?2", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+ /** Should produce
+ @Query("where numType in ?1 order by id asc")
+ */
+ @Test
+ public void test_findByNumTypeInOrderByIdAsc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNumTypeInOrderByIdAsc");
+ String query = ParseUtils.toQuery(info, ParseUtils.ToQueryOptions.INCLUDE_ORDER_BY);
+ System.out.println(query);
+ Assertions.assertEquals("where numType in ?1 order by id asc", query);
+ Assertions.assertEquals(1, info.getOrderBy().size());
+ Assertions.assertEquals(QueryByNameInfo.OrderBySortDirection.ASC, info.getOrderBy().get(0).direction);
+ }
+
+ /** Should produce
+ @Query("where numType = ?1 or floorOfSquareRoot = ?2")
+ */
+ @Test
+ public void test_findByNumTypeOrFloorOfSquareRoot() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNumTypeOrFloorOfSquareRoot");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where numType = ?1 or floorOfSquareRoot = ?2", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("where numType <> ?1")
+ */
+ @Test
+ public void test_findByNumTypeNot() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNumTypeNot");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where numType <> ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("where numType = ?1 and numBitsRequired < ?2")
+ */
+ @Test
+ public void test_findByNumTypeAndNumBitsRequiredLessThan() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNumTypeAndNumBitsRequiredLessThan");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where numType = ?1 and numBitsRequired < ?2", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("where id between ?1 and ?2")
+ */
+ @Test
+ public void test_findByIdBetweenOrderByNumTypeAsc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByIdBetweenOrderByNumTypeAsc");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where id between ?1 and ?2", query);
+ Assertions.assertEquals(1, info.getOrderBy().size());
+ Assertions.assertEquals(QueryByNameInfo.OrderBySortDirection.ASC, info.getOrderBy().get(0).direction);
+ }
+
+
+ /** Should produce
+ @Query("where lower(hexadecimal) between lower(?1) and lower(?2) and hexadecimal not in ?3")
+ */
+ @Test
+ public void test_findByHexadecimalIgnoreCaseBetweenAndHexadecimalNotIn() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByHexadecimalIgnoreCaseBetweenAndHexadecimalNotIn");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where lower(hexadecimal) between lower(?1) and lower(?2) and hexadecimal not in ?3", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("where numericValue >= ?1 and right(hexadecimal, length(?2)) = ?2")
+ */
+ @Test
+ public void test_findByNumericValueGreaterThanEqualAndHexadecimalEndsWith() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNumericValueGreaterThanEqualAndHexadecimalEndsWith");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where numericValue >= ?1 and right(hexadecimal, length(?2)) = ?2", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+ /** Should produce
+ @Query("where left(hexadecimal, length(?1)) = ?1 and isControl = ?2 order by id asc")
+ */
+ @Test
+ public void test_findByHexadecimalStartsWithAndIsControlOrderByIdAsc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByHexadecimalStartsWithAndIsControlOrderByIdAsc");
+ String query = ParseUtils.toQuery(info, ParseUtils.ToQueryOptions.INCLUDE_ORDER_BY);
+ System.out.println(query);
+ Assertions.assertEquals("where left(hexadecimal, length(?1)) = ?1 and isControl = ?2 order by id asc", query);
+ Assertions.assertEquals(1, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("where name like ?1")
+ */
+ @Test
+ public void test_findByNameLike() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByNameLike");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where name like ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("where hexadecimal like '%'||?1||'%' and isControl <> ?2")
+ */
+ @Test
+ public void test_findByHexadecimalContainsAndIsControlNot() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByHexadecimalContainsAndIsControlNot");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where hexadecimal like '%'||?1||'%' and isControl <> ?2", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("where price is not null and price <= ?1")
+ */
+ @Test
+ public void test_findByPriceNotNullAndPriceLessThanEqual() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByPriceNotNullAndPriceLessThanEqual");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where price is not null and price <= ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("where price is null")
+ */
+ @Test
+ public void test_findByPriceNull() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByPriceNull");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where price is null", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("where departments is empty")
+ */
+ @Test
+ public void test_findByDepartmentsEmpty() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findByDepartmentsEmpty");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where departments is empty", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ @Test
+ public void test_countBy() {
+ IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class, () -> {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("countBy");
+ });
+ Assertions.assertNotNull(ex, "parse of countBy should fail");
+ }
+
+ /** Should produce
+ @Query("delete Product where productNum like ?1")
+ */
+ @Test
+ public void test_deleteByProductNumLike() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("deleteByProductNumLike");
+ info.setEntity("Product");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("delete Product where productNum like ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+
+ }
+ /** Should produce
+ @Query("delete Product where productNum like ?1")
+ */
+ @Test
+ public void test_deleteByProductNumLikeNoFQN() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("deleteByProductNumLike");
+ info.setEntity("com.example.Product");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("delete Product where productNum like ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+
+ }
+
+ /** Should produce
+ @Query("select count(this)>0 where thisCharacter = ?1")
+ */
+ @Test
+ public void test_existsByThisCharacter() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("existsByThisCharacter");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this)>0 where thisCharacter = ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("select count(this) where hexadecimal is not null")
+ */
+ @Test
+ public void test_countByHexadecimalNotNull() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("countByHexadecimalNotNull");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this) where hexadecimal is not null", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("select count(this) where id(this) < ?1")
+ */
+ @Test
+ @Disabled("Disabled until id refs are fixed")
+ public void test_countByIdLessThan() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("countByIdLessThan");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this) where id(this) < ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ /** Should produce
+ @Query("select count(this)>0 where id in ?1")
+ */
+ @Test
+ public void test_existsByIdIn() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("existsByIdIn");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this)>0 where id in ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+
+ /** Should produce
+ @Query("select count(this)>0 where id > ?1")
+ */
+ @Test
+ public void test_existsByIdGreaterThan() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("existsByIdGreaterThan");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this)>0 where id > ?1", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ @Test
+ public void test_findFirstNameByIdInOrderByAgeDesc() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findFirstXxxxxByIdInOrderByAgeDesc");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where id in ?1 order by '' limit 1", query);
+ Assertions.assertEquals(1, info.getOrderBy().size());
+ }
+
+ @Test
+ public void test_findFirst3ByNumericValueGreaterThanEqualAndHexadecimalEndsWith() {
+ QueryByNameInfo info = ParseUtils.parseQueryByName("findFirst3ByNumericValueGreaterThanEqualAndHexadecimalEndsWith");
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("where numericValue >= ?1 and right(hexadecimal, length(?2)) = ?2 order by '' limit 3", query);
+ Assertions.assertEquals(0, info.getOrderBy().size());
+ }
+
+ @Test
+ public void test_countByByHand() {
+ QueryByNameInfo info = new QueryByNameInfo();
+ info.setAction(QueryByNameInfo.Action.COUNT);
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this)", query);
+ }
+
+ /**
+ * Test the countBy method with an int return type is cast to an integer
+ */
+ @Test
+ public void test_countByByHandIntReturn() {
+ QueryByNameInfo info = new QueryByNameInfo();
+ info.setAction(QueryByNameInfo.Action.COUNT);
+ String query = ParseUtils.toQuery(info, ParseUtils.ToQueryOptions.CAST_COUNT_TO_INTEGER);
+ System.out.println(query);
+ Assertions.assertEquals("select cast(count(this) as Integer)", query);
+ }
+
+ /**
+ * Test the countBy method with a long return type is cast to an integer
+ */
+ @Test
+ public void test_countByByHandLongReturn() {
+ QueryByNameInfo info = new QueryByNameInfo();
+ info.setAction(QueryByNameInfo.Action.COUNT);
+ String query = ParseUtils.toQuery(info, ParseUtils.ToQueryOptions.CAST_LONG_TO_INTEGER);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this) as Integer", query);
+ }
+
+ @Test
+ public void testExistsBy() {
+ QueryByNameInfo info = new QueryByNameInfo();
+ info.setAction(QueryByNameInfo.Action.EXISTS);
+ String query = ParseUtils.toQuery(info);
+ System.out.println(query);
+ Assertions.assertEquals("select count(this)>0", query);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/ST4RepoGenTest.java b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/ST4RepoGenTest.java
new file mode 100644
index 00000000000..e5af046ef22
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/java/qbyn/ST4RepoGenTest.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2024 Contributors to the Eclipse Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+package qbyn;
+
+import ee.jakarta.tck.data.tools.annp.RepositoryInfo;
+import ee.jakarta.tck.data.tools.qbyn.ParseUtils;
+import ee.jakarta.tck.data.tools.qbyn.QueryByNameInfo;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+import org.stringtemplate.v4.ST;
+import org.stringtemplate.v4.STGroup;
+import org.stringtemplate.v4.STGroupFile;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import static ee.jakarta.tck.data.tools.annp.AnnProcUtils.TCK_IMPORTS;
+import static ee.jakarta.tck.data.tools.annp.AnnProcUtils.TCK_OVERRIDES;
+
+public class ST4RepoGenTest {
+ static String REPO_TEMPLATE = """
+ import jakarta.annotation.Generated;
+ import jakarta.data.repository.OrderBy;
+ import jakarta.data.repository.Query;
+ import jakarta.data.repository.Repository;
+ import #repo.fqn#;
+
+ @Repository(dataStore = "#repo.dataStore#")
+ @Generated("ee.jakarta.tck.data.tools.annp.RespositoryProcessor")
+ public interface #repo.name#$ extends #repo.name# {
+ #repo.methods :{m |
+ @Override
+ @Query("#m.query#")
+ #m.orderBy :{o | @OrderBy(value="#o.property#", descending = #o.descending#)}#
+ public #m.returnType# #m.name# (#m.parameters: {p | #p#}; separator=", "#);
+
+ }
+ #
+ }
+ """;
+ @Test
+ public void testSyntax() {
+ List methods = Arrays.asList("findByFloorOfSquareRootOrderByIdAsc", "findByHexadecimalIgnoreCase",
+ "findById", "findByIdBetween", "findByHexadecimalIgnoreCaseBetweenAndHexadecimalNotIn");
+ ST s = new ST( " ();\n}>");
+ s.add("methods", methods);
+ System.out.println(s.render());
+ }
+
+ private RepositoryInfo createRepositoryInfo() {
+ RepositoryInfo repo = new RepositoryInfo();
+ repo.setFqn("org.acme.BookRepository");
+ repo.setName("BookRepository");
+ repo.setDataStore("book");
+
+ RepositoryInfo.MethodInfo findByTitleLike = new RepositoryInfo.MethodInfo("findByTitleLike", "List", "from Book where title like :title", null);
+ findByTitleLike.addParameter("String title");
+ repo.addMethod(findByTitleLike);
+ RepositoryInfo.MethodInfo findByNumericValue = new RepositoryInfo.MethodInfo("findByNumericValue", "Optional",
+ "from AsciiCharacter where numericValue = :numericValue",
+ Collections.singletonList(new QueryByNameInfo.OrderBy("numericValue", QueryByNameInfo.OrderBySortDirection.ASC)));
+ findByNumericValue.addParameter("int id");
+ repo.addMethod(findByNumericValue);
+ return repo;
+ }
+ @Test
+ public void testRepoGen() {
+ RepositoryInfo repo = createRepositoryInfo();
+ ST st = new ST(REPO_TEMPLATE, '#', '#');
+ st.add("repo", repo);
+ System.out.println(st.render());
+ }
+
+ @Test
+ public void testRepoGenViaGroupFiles() {
+ STGroup repoGroup = new STGroupFile("RepoTemplate.stg");
+ ST genRepo = repoGroup.getInstanceOf("genRepo");
+ RepositoryInfo repo = createRepositoryInfo();
+ genRepo.add("repo", repo);
+ String classSrc = genRepo.render();
+ System.out.println(classSrc);
+ Assertions.assertTrue(classSrc.contains("interface BookRepository$"));
+ Assertions.assertTrue(classSrc.contains("// TODO; Implement TCK overrides"));
+ }
+
+ @Test
+ public void testRepoGenWithTckOverride() {
+ STGroup repoGroup = new STGroupFile("RepoTemplate.stg");
+ repoGroup.defineTemplate("tckImports", "import jakarta.data.Delete;\n");
+ repoGroup.defineTemplate("tckOverrides", "@Delete\nvoid deleteAllBy();\n");
+ ST genRepo = repoGroup.getInstanceOf("genRepo");
+ RepositoryInfo repo = createRepositoryInfo();
+ genRepo.add("repo", repo);
+ String classSrc = genRepo.render();
+ System.out.println(classSrc);
+ Assertions.assertTrue(classSrc.contains("interface BookRepository$"));
+ Assertions.assertTrue(!classSrc.contains("// TODO; Implement TCK overrides"));
+ Assertions.assertTrue(classSrc.contains("void deleteAllBy();"));
+ Assertions.assertTrue(classSrc.contains("import jakarta.data.Delete;"));
+ }
+
+ @Test
+ public void testRepoGenWithTckOverrideFromImport() {
+ STGroup repoGroup = new STGroupFile("RepoTemplate.stg");
+ STGroup tckGroup = new STGroupFile("org.acme.BookRepository_tck.stg");
+ tckGroup.importTemplates(repoGroup);
+ ST genRepo = tckGroup.getInstanceOf("genRepo");
+ long count = tckGroup.getTemplateNames().stream().filter(t -> t.equals(TCK_IMPORTS) | t.equals(TCK_OVERRIDES)).count();
+ System.out.printf("tckGroup.templates(%d) %s\n", count, tckGroup.getTemplateNames());
+ System.out.printf("tckGroup: %s\n", tckGroup.show());
+
+ RepositoryInfo repo = createRepositoryInfo();
+ genRepo.add("repo", repo);
+ String classSrc = genRepo.render();
+ System.out.println(classSrc);
+ Assertions.assertTrue(classSrc.contains("interface BookRepository$"));
+ Assertions.assertTrue(!classSrc.contains("// TODO; Implement TCK overrides"));
+ Assertions.assertTrue(classSrc.contains("void deleteAllBy();"));
+ Assertions.assertTrue(classSrc.contains("import jakarta.data.Delete;"));
+ }
+
+ @Test
+ public void testMissingGroupTemplate() {
+ IllegalArgumentException ex = Assertions.assertThrows(IllegalArgumentException.class, () -> {
+ STGroup repoGroup = new STGroupFile("Rectangles_tck.stg");
+ repoGroup.getTemplateNames();
+ });
+ Assertions.assertNotNull(ex, "Load of Rectangles_tck should fail");
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/resources/org.acme.BookRepository_tck.stg b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/resources/org.acme.BookRepository_tck.stg
new file mode 100644
index 00000000000..8bbf199fadc
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/data-tck/tools/src/test/resources/org.acme.BookRepository_tck.stg
@@ -0,0 +1,11 @@
+//
+delimiters "#", "#"
+tckOverrides() ::= <<
+ @Override
+ @Delete
+ public void deleteAllBy();
+>>
+
+tckImports() ::= <<
+import jakarta.data.Delete;
+>>
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/di-tck/installer/pom.xml b/appserver/tests/tck/glassfish-runner/di-tck/installer/pom.xml
new file mode 100644
index 00000000000..17f180438e6
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/di-tck/installer/pom.xml
@@ -0,0 +1,82 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.eclipse.ee4j.di
+ installer
+ 2.0
+ pom
+
+
+ ${project.build.directory}/tck
+ 6.0.1.Final
+ 17
+ 2.0.2
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.1.0
+
+
+ pre-integration-test
+ pre-integration-test
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/di-tck/pom.xml b/appserver/tests/tck/glassfish-runner/di-tck/pom.xml
new file mode 100644
index 00000000000..a3a52d06ca4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/di-tck/pom.xml
@@ -0,0 +1,36 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ di-tck
+ 4.1.0-SNAPSHOT
+ pom
+
+
+ installer
+ runner
+
+
diff --git a/appserver/tests/tck/glassfish-runner/di-tck/runner/pom.xml b/appserver/tests/tck/glassfish-runner/di-tck/runner/pom.xml
new file mode 100644
index 00000000000..f55b5e875e8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/di-tck/runner/pom.xml
@@ -0,0 +1,72 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ runner
+ pom
+
+
+ 17
+ ${project.build.directory}/../../installer/target/tck
+
+
+
+
+ org.eclipse.ee4j.di
+ installer
+ 2.0
+ pom
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 3.1.0
+
+
+ integration-test
+ integration-test
+
+ run
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-install/pom.xml
new file mode 100644
index 00000000000..dd3964804e0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-install/pom.xml
@@ -0,0 +1,99 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ enterprise-beans-tck-install
+ pom
+ TCK: Install Jakarta enterprise-beans TCK
+
+
+ jakartaeetck-${tck.test.enterprise-beans.version}-dist.zip
+ https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee11/staged/eftl/${tck.test.enterprise-beans.file}
+ 11.0.0
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.enterprise-beans.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-enterprise-beans-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+ 3.1.3
+
+
+ install-enterprise-beans-tck-ejb30
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/ejb30-${tck.test.enterprise-beans.version}.jar
+ jakarta.tck
+ ejb30
+ 4.0.0-M1
+ jar
+
+
+
+ install-enterprise-beans-tck-ejb32
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/ejb32-${tck.test.enterprise-beans.version}.jar
+ jakarta.tck
+ ejb32
+ 4.0.0-M1
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/lib/tsharness.jar b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/lib/tsharness.jar
new file mode 100644
index 00000000000..72e9dfbb54c
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/lib/tsharness.jar differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/pom.xml
new file mode 100644
index 00000000000..ddb74431c3c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/pom.xml
@@ -0,0 +1,1083 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ enterprise-beans-tck-run
+ jar
+
+ enterprise-beans-tck
+ Aggregates dependencies and runs the Enterprise Beans TCK on GlassFish
+
+
+
+ Apache License Version 2.0
+ https://repository.jboss.org/licenses/apache-2.0.txt
+ repo
+
+
+
+
+
+
+ ${glassfish.home}/javadb/lib
+ ${glassfish.root}/glassfish${glassfish.version.main}
+ ${project.build.directory}
+ 8.0.0-M9
+ 8
+ glassfish
+
+
+ 17
+ ${ts.home}/bin/ts.jte
+
+
+ ${basedir}/src/test/resources/jakartaeetck
+
+ 4.0.1
+ 4.0.1
+ 2.0.1
+ 5.0.0
+ 11.0.0-10
+ 4.0.0-M1
+ 11.0.0
+
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.10.2
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.2
+
+
+
+
+
+
+
+ jakarta.platform
+ jakarta.jakartaee-api
+ 11.0.0-RC1
+ provided
+
+
+
+ jakarta.ejb
+ jakarta.ejb-api
+ ${version.jakarta.ejb}
+ test
+
+
+
+ jakarta.enterprise
+ jakarta.enterprise.cdi-api
+ ${version.jakarta.enterprise}
+ test
+
+
+
+ jakarta.annotation
+ jakarta.annotation-api
+
+
+
+
+ jakarta.inject
+ jakarta.inject-api
+ ${version.jakarta.inject}
+ test
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ ${version.jakarta.servlet}
+ test
+
+
+
+
+ jakarta.tck
+ ejb30
+ ${version.ejb.tck}
+ test
+
+
+ jakarta.tck
+ ejb32
+ ${version.ejb.tck}
+ test
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${jakarta.tck.arquillian.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+ org.junit.platform
+ junit-platform-suite-engine
+ test
+
+
+ org.junit.platform
+ junit-platform-reporting
+ test
+
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+ org.jboss.arquillian.container
+ arquillian-container-spi
+ test
+
+
+
+ org.jboss.shrinkwrap.descriptors
+ shrinkwrap-descriptors-impl-base
+ 2.0.0
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+
+ org.yaml
+ snakeyaml
+ 2.1
+ test
+
+
+
+
+ commons-httpclient
+ commons-httpclient
+ 3.1
+ test
+
+
+
+
+
+
+
+ true
+ src/test/resources
+
+ **/cts_cert
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.3.1
+
+
+ jks
+ p12
+ cer
+ keystore
+ cts_cert
+
+
+
+
+
+ maven-dependency-plugin
+ 3.7.1
+
+
+ unpack-glassfish
+
+ unpack
+
+ test-compile
+
+ ${glassfish.root}/dependency-maven-plugin-markers
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${glassfish.root}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.2
+
+
+ **/*Test.java
+ **/*TestCase.java
+ **/*TestSuite.java
+
+
+
+ ${glassfish.home}
+ 8080
+ javatest-arquillian.xml
+ ${ts.home}
+
+ true
+ ${glassfish.home}/glassfish/domains/domain1/config/derbyDB;create=true
+ ${project.build.directory}/test-classes/derby.ddl.sql
+ cts1
+ ${project.build.directory}/test-classes/password.txt
+
+ set server-config.network-config.protocols.protocol.http-listener-1.http.trace-enabled=true
+ create-jdbc-connection-pool --restype javax.sql.XADataSource --datasourceclassname org.apache.derby.jdbc.ClientDataSource --property databaseName=${glassfish.home}/glassfish/domains/domain1/config/derbyDB:serverName=localhost:portNumber=1527:user=cts1:password=cts1 cts-derby-XA-pool
+ create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname org.apache.derby.jdbc.ClientDataSource --property databaseName=${glassfish.home}/glassfish/domains/domain1/config/derbyDB:serverName=localhost:portNumber=1527:user=cts1:password=cts1 cts-derby-pool
+ create-jdbc-resource --connectionpoolid cts-derby-XA-pool jdbc/DBTimer
+ create-jdbc-resource --connectionpoolid cts-derby-pool jdbc/DB1
+ create-jms-resource --restype jakarta.jms.QueueConnectionFactory jms/QueueConnectionFactory
+ create-jms-resource --restype jakarta.jms.Queue --property imqDestinationName=MDB_QUEUE MDB_QUEUE
+ create-jms-resource --restype jakarta.jms.Queue --property imqDestinationName=MDB_QUEUE_REPLY MDB_QUEUE_REPLY
+ list-jdbc-resources
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 3.3.1
+
+ jakartaee-report
+
+
+
+
+
+
+
+ ejb30
+
+
+ true
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ 001-ejb-30-javatest
+
+ test
+
+ test
+
+ jakarta.tck:ejb30
+ ${groups}
+
+
+ com.sun.ts.tests.ejb30.assembly.initorder.warejb.ClientTest
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjbliteservlet2Test
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjbliteservletTest
+ com.sun.ts.tests.ejb30.misc.datasource.twowars.ClientTest
+ com.sun.ts.tests.ejb30.misc.moduleName.twowars.ClientTest
+ com.sun.ts.tests.ejb30.misc.moduleName.conflict.ClientTest
+ com.sun.ts.tests.ejb30.tx.session.stateless.cm.covariant.ClientTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.descriptor.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.descriptor.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservlet2Test
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservletTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.JsfClientEjblitejsfTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservlet2Test
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservletTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.JsfClientEjblitejsfTest
+
+
+
+
+
+
+
+
+
+
+ ejb32
+
+
+ true
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ 001-ejb-30-javatest
+
+ test
+
+ test
+
+ jakarta.tck:ejb32
+ ${groups}
+
+
+
+
+
+
+
+
+
+ exclude-timeout
+
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.5.2
+
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.descriptor.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.descriptor.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservlet2Test
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservletTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.JsfClientEjblitejsfTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjblitejspTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservlet2Test
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservletTest
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.JsfClientEjblitejsfTest
+
+ ${groups}
+
+
+
+
+
+
+
+
+
+ ejb30_assembly_misc_tx
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.assembly.**.*Test
+ com.sun.ts.tests.ejb30.misc.**.*Test
+ com.sun.ts.tests.ejb30.tx.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_bb
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.descriptor.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservlet2Test
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservletTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.JsfClientEjblitejsfTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjblitejspTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservlet2Test
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservletTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.JsfClientEjblitejsfTest
+
+
+ com.sun.ts.tests.ejb30.bb.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_timer
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.timer.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_lite_singleton
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.lite.singleton.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_lite_appexception
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.lite.appexception.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_lite_rest
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.lite.ejbcontext.**.*Test
+ com.sun.ts.tests.ejb30.lite.basic.**.*Test
+ com.sun.ts.tests.ejb30.lite.naming.**.*Test
+ com.sun.ts.tests.ejb30.lite.lookup.**.*Test
+ com.sun.ts.tests.ejb30.lite.async.**.*Test
+ com.sun.ts.tests.ejb30.lite.interceptor.**.*Test
+ com.sun.ts.tests.ejb30.lite.packaging.**.*Test
+ com.sun.ts.tests.ejb30.lite.nointerface.**.*Test
+ com.sun.ts.tests.ejb30.lite.view.**.*Test
+ com.sun.ts.tests.ejb30.lite.xmloverride.**.*Test
+ com.sun.ts.tests.ejb30.lite.tx.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_lite_env
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.lite.enventry.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb30_lite_stateful_concurrency
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb30.lite.stateful.concurrency.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+
+
+ ejb32_nonlite
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.mdb.**.*Test
+ com.sun.ts.tests.ejb32.relaxedclientview.**.*Test
+ com.sun.ts.tests.ejb32.timer.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_basic
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.basic.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_interceptor
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.interceptor.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_auto
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.auto.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_descriptor_expression_lifecycle
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.descriptor.**.*Test
+ com.sun.ts.tests.ejb32.lite.timer.schedule.expression.**.*Test
+ com.sun.ts.tests.ejb32.lite.timer.schedule.lifecycle.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_expire
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.expire.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_tx
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.tx.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_txnonpersistent
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.txnonpersistent.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+
+ ejb32_lite_timer_schedule_tz_service_timerconfig
+
+
+
+ maven-surefire-plugin
+
+
+ com.sun.ts.tests.ejb32.lite.timer.schedule.tz.**.*Test
+ com.sun.ts.tests.ejb32.lite.timer.service.**.*Test
+ com.sun.ts.tests.ejb32.lite.timer.timerconfig.**.*Test
+
+ ${groups}
+
+
+
+
+
+
+
+ timeout1
+
+
+ ${project.build.directory}/timeout1
+ ${ts.home}/bin/ts9081.jte
+
+
+
+
+
+ maven-surefire-plugin
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.annotated.ClientEjblitejspTest
+
+ 9081
+
+ ${groups}
+
+
+
+
+
+
+
+ timeout2
+
+
+ ${project.build.directory}/timeout2
+ ${ts.home}/bin/ts9082.jte
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ com.sun.ts.tests.ejb30.bb.session.stateful.timeout.descriptor.ClientEjblitejspTest
+
+ 9082
+ false
+
+ ${groups}
+
+
+
+
+
+
+
+ timeout3
+
+
+ ${project.build.directory}/timeout3
+ ${ts.home}/bin/ts9083.jte
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.annotated.ClientEjblitejspTest
+
+ 9083
+
+ ${groups}
+
+
+
+
+
+
+
+ timeout4
+
+
+ ${project.build.directory}/timeout4
+ ${ts.home}/bin/ts9084.jte
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ com.sun.ts.tests.ejb30.lite.stateful.timeout.descriptor.ClientEjblitejspTest
+
+ 9084
+
+ ${groups}
+
+
+
+
+
+
+
+ timeout5
+
+
+
+
+ maven-surefire-plugin
+
+ ${groups}
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservlet2Test,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjbliteservletTest
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.JsfClientEjblitejsfTest,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.accesstimeout.annotated.ClientEjblitejspTest,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjblitejspTest,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservlet2Test,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.ClientEjbliteservletTest,
+ com.sun.ts.tests.ejb30.bb.session.stateful.concurrency.metadata.annotated.JsfClientEjblitejsfTest
+
+
+
+
+
+
+
+ failures
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ ${groups}
+ com.sun.ts.tests.ejb30.assembly.initorder.warejb.ClientTest,
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjblitejspTest,
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjbliteservlet2Test,
+ com.sun.ts.tests.ejb30.lite.singleton.concurrency.container.annotated.ClientEjbliteservletTest,
+ com.sun.ts.tests.ejb30.misc.datasource.twowars.ClientTest,
+ com.sun.ts.tests.ejb30.misc.moduleName.twowars.ClientTest,
+ com.sun.ts.tests.ejb30.misc.moduleName.conflict.ClientTest,
+ com.sun.ts.tests.ejb30.tx.session.stateless.cm.covariant.ClientTest
+
+
+
+
+
+
+
+ datasource
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ ${groups}
+
+ com.sun.ts.tests.ejb30.lite.packaging.war.datasource.**.*Test
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ platform
+
+
+
+ web
+
+ web
+ web
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossTckExtension.java b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossTckExtension.java
new file mode 100644
index 00000000000..a896646ea9d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossTckExtension.java
@@ -0,0 +1,13 @@
+package wildfly.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 JBossTckExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder builder) {
+ builder.service(ResourceProvider.class, JBossXmlProcessor.class);
+ builder.observer(JBossXmlProcessor.class);
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossXmlProcessor.java b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossXmlProcessor.java
new file mode 100644
index 00000000000..d1011d5693c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/java/wildfly/arquillian/JBossXmlProcessor.java
@@ -0,0 +1,134 @@
+package wildfly.arquillian;
+
+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;
+
+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.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;
+
+public class JBossXmlProcessor extends AbstractTestArchiveProcessor {
+
+ static Logger log = Logger.getLogger(JBossXmlProcessor.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.
+ */
+ @Override
+ 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);
+// }
+// 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..cc7e4fd0dc2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+wildfly.arquillian.JBossTckExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 00000000000..4cef2da4ea2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1 @@
+ejb32.lite.timer.basic.xa.JavaDBSetupExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/appclient-arquillian.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/appclient-arquillian.xml
new file mode 100644
index 00000000000..be95c6cf655
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/appclient-arquillian.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+ true
+
+ ${jboss.home}/bin/appclient.sh;target/appclient/ejb3_bb_stateless_basic.ear#ejb3_bb_stateless_basic_client.jar;-p;${tck.jte.path}
+
+ JAVA_OPTS=-Djboss.modules.system.pkgs=com.sun.ts.lib,com.sun.javatest;CLASSPATH=${project.build.directory}/appclient/javatest.jar:${project.build.directory}/appclient/libutil.jar:${project.build.directory}/appclient/libcommon.jar
+
+ ${project.basedir}
+
+
+
+
+
+
+
+
+ ${jboss.home}
+ -P=src/test/resources/testfile.properties
+ ${debug.vm.args} ${jvm.args}
+ ${wildfly.standalone.config}
+ false
+
+
+ true
+ ${jboss.home}/bin/appclient.sh;target/appclient/ejb3_bb_stateless_basic.ear#ejb3_bb_stateless_basic_client.jar
+ MY_EN=my-env-stting;JAVA_OPTS=-Djboss.modules.system.pkgs=com.sun.ts.lib,com.sun.javatest;CLASSPATH=${project.build.directory}/appclient/javatest.jar:${project.build.directory}/appclient/libutil.jar:${project.build.directory}/appclient/libcommon.jar
+ ${project.basedir}
+ ${ts.home}/tmp
+ ${ts.home}/bin/ts.jte
+ true
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/derby.ddl.sql b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/derby.ddl.sql
new file mode 100644
index 00000000000..b2bd2971826
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/derby.ddl.sql
@@ -0,0 +1,176 @@
+drop table ctstable2 ;
+drop table ctstable1 ;
+create table ctstable1 (TYPE_ID int NOT NULL, TYPE_DESC varchar(32), primary key(TYPE_ID)) ;
+create table ctstable2 (KEY_ID int NOT NULL, COF_NAME varchar(32), PRICE float, TYPE_ID int, primary key(KEY_ID), foreign key(TYPE_ID) references ctstable1) ;
+
+drop table concurrencetable ;
+create table concurrencetable (TYPE_ID int NOT NULL, TYPE_DESC varchar(32), primary key(TYPE_ID)) ;
+
+drop table Numeric_Tab ;
+create table Numeric_Tab (MAX_VAL NUMERIC(30,15), MIN_VAL NUMERIC(30,15), NULL_VAL NUMERIC(30,15)) ;
+
+drop table Decimal_Tab ;
+ create table Decimal_Tab (MAX_VAL DECIMAL(30,15),MIN_VAL DECIMAL(30,15), NULL_VAL DECIMAL(30,15)) ;
+
+drop table Double_Tab ;
+create table Double_Tab (MAX_VAL DOUBLE PRECISION, MIN_VAL DOUBLE PRECISION, NULL_VAL DOUBLE PRECISION) ;
+
+drop table Float_Tab ;
+create table Float_Tab (MAX_VAL FLOAT, MIN_VAL FLOAT, NULL_VAL FLOAT) ;
+
+drop table Real_Tab ;
+create table Real_Tab (MAX_VAL REAL, MIN_VAL REAL,NULL_VAL REAL) ;
+
+drop table Bit_Tab ;
+create table Bit_Tab (MAX_VAL BOOLEAN, MIN_VAL BOOLEAN, NULL_VAL SMALLINT) ;
+
+drop table Smallint_Tab ;
+create table Smallint_Tab (MAX_VAL SMALLINT, MIN_VAL SMALLINT, NULL_VAL SMALLINT) ;
+
+drop table Tinyint_Tab ;
+create table Tinyint_Tab (MAX_VAL SMALLINT, MIN_VAL SMALLINT, NULL_VAL SMALLINT) ;
+
+drop table Integer_Tab ;
+create table Integer_Tab (MAX_VAL INTEGER, MIN_VAL INTEGER, NULL_VAL INTEGER) ;
+
+drop table Bigint_Tab ;
+create table Bigint_Tab (MAX_VAL BIGINT, MIN_VAL BIGINT, NULL_VAL BIGINT) ;
+
+drop table Char_Tab ;
+create table Char_Tab (COFFEE_NAME CHAR(30), NULL_VAL CHAR(30)) ;
+
+drop table Varchar_Tab ;
+create table Varchar_Tab (COFFEE_NAME VARCHAR(30), NULL_VAL VARCHAR(30)) ;
+
+drop table Longvarchar_Tab ;
+create table Longvarchar_Tab (COFFEE_NAME LONG VARCHAR) ;
+
+drop table Longvarcharnull_Tab ;
+create table Longvarcharnull_Tab (NULL_VAL LONG VARCHAR) ;
+
+drop table Date_Tab ;
+create table Date_Tab (MFG_DATE DATE, NULL_VAL DATE) ;
+
+drop table Time_Tab ;
+create table Time_Tab (BRK_TIME TIME, NULL_VAL TIME) ;
+
+drop table Timestamp_Tab ;
+create table Timestamp_Tab (IN_TIME TIMESTAMP, NULL_VAL TIMESTAMP) ;
+
+drop table Binary_Tab ;
+create table Binary_Tab (BINARY_VAL VARCHAR(24) FOR BIT DATA) ;
+
+drop table Varbinary_Tab ;
+create table Varbinary_Tab (VARBINARY_VAL VARCHAR(255) FOR BIT DATA) ;
+
+drop table Longvarbinary_Tab ;
+create table Longvarbinary_Tab (LONGVARBINARY_VAL VARCHAR(255) FOR BIT DATA) ;
+
+drop table ctstable3 ;
+create table ctstable3(STRING1 VARCHAR(20), STRING2 VARCHAR(20), STRING3 VARCHAR(20), NUMCOL INTEGER, FLOATCOL FLOAT, DATECOL DATE, TIMECOL TIME, TSCOL1 TIMESTAMP, TSCOL2 TIMESTAMP) ;
+
+drop table ctstable4 ;
+create table ctstable4(STRING4 VARCHAR(20), NUMCOL NUMERIC) ;
+
+
+drop table TxBean_Tab1 ;
+create table TxBean_Tab1 (KEY_ID int, TABONE_NAME varchar(32), PRICE float) ;
+
+drop table TxBean_Tab2 ;
+create table TxBean_Tab2 (KEY_ID int, TABTWO_NAME varchar(32), PRICE float) ;
+ ;
+drop table TxEBean_Tab ;
+create table TxEBean_Tab (KEY_ID INTEGER NOT NULL, BRAND_NAME VARCHAR(32), PRICE FLOAT, primary key(KEY_ID)) ;
+
+drop table Integration_Tab ;
+create table Integration_Tab (ACCOUNT INTEGER NOT NULL, BALANCE FLOAT, primary key(ACCOUNT)) ;
+
+drop table BB_Tab ;
+create table BB_Tab (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table JTA_Tab1 ;
+create table JTA_Tab1 (KEY_ID int, COF_NAME varchar(32), PRICE float) ;
+
+drop table JTA_Tab2 ;
+create table JTA_Tab2 (KEY_ID int, CHOC_NAME varchar(32), PRICE float) ;
+
+drop table Deploy_Tab1 ;
+create table Deploy_Tab1 (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab2 ;
+create table Deploy_Tab2 (KEY_ID VARCHAR(100) NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab3 ;
+create table Deploy_Tab3 (KEY_ID BIGINT NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab4 ;
+create table Deploy_Tab4 (KEY_ID FLOAT NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID)) ;
+
+drop table Deploy_Tab5 ;
+create table Deploy_Tab5 (KEY_ID1 int NOT NULL, KEY_ID2 varchar(100) NOT NULL, KEY_ID3 float NOT NULL, BRAND_NAME varchar(32), PRICE float, primary key(KEY_ID1, KEY_ID2, KEY_ID3)) ;
+
+drop table Xa_Tab1 ;
+create table Xa_Tab1 (col1 int NOT NULL, col2 varchar(32), col3 varchar(32), primary key(col1)) ;
+
+drop table Xa_Tab2 ;
+create table Xa_Tab2 (col1 int NOT NULL, col2 varchar(32), col3 varchar(32), primary key(col1)) ;
+
+drop table SEC_Tab1 ;
+create table SEC_Tab1 (KEY_ID INTEGER NOT NULL, PRICE float, BRAND varchar(32), primary key(KEY_ID)) ;
+
+drop table Connector_Tab ;
+create table Connector_Tab (KEY_ID int, PRODUCT_NAME varchar(32), PRICE float) ;
+
+drop table Coffee_Table ;
+create table Coffee_Table (KEY_ID INTEGER NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_StringPK_Table ;
+create table Coffee_StringPK_Table (KEY_ID VARCHAR(100) NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_LongPK_Table ;
+create table Coffee_LongPK_Table (KEY_ID BIGINT NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_FloatPK_Table ;
+create table Coffee_FloatPK_Table (KEY_ID FLOAT NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID)) ;
+
+drop table Coffee_CompoundPK_Table ;
+create table Coffee_CompoundPK_Table (KEY_ID1 int NOT NULL, KEY_ID2 varchar(100) NOT NULL, KEY_ID3 float NOT NULL, BRAND_NAME varchar(32) NOT NULL, PRICE float NOT NULL, primary key(KEY_ID1, KEY_ID2, KEY_ID3)) ;
+
+DROP TABLE COFFEEEJBLITE;
+CREATE TABLE COFFEEEJBLITE (ID INT NOT NULL, BRANDNAME VARCHAR(25), PRICE REAL, CONSTRAINT PK_COFFEEEJBLITE PRIMARY KEY (ID));
+
+
+DROP TABLE EJB_AUTOCLOSE_TAB ;
+CREATE TABLE EJB_AUTOCLOSE_TAB (NAME VARCHAR(25) NOT NULL, MESSAGE VARCHAR(25) NOT NULL);
+
+
+DROP TABLE caller ;
+DROP TABLE caller_groups ;
+
+CREATE TABLE caller(name VARCHAR(64) PRIMARY KEY, password VARCHAR(1024)) ;
+CREATE TABLE caller_groups(caller_name VARCHAR(64), group_name VARCHAR(64)) ;
+
+INSERT INTO caller VALUES('tom', 'secret1') ;
+INSERT INTO caller VALUES('emma', 'secret2') ;
+INSERT INTO caller VALUES('bob', 'secret3') ;
+
+INSERT INTO caller_groups VALUES('tom', 'Administrator') ;
+INSERT INTO caller_groups VALUES('tom', 'Manager') ;
+
+INSERT INTO caller_groups VALUES('emma', 'Administrator') ;
+INSERT INTO caller_groups VALUES('emma', 'Employee') ;
+
+INSERT INTO caller_groups VALUES('bob', 'Administrator') ;
+
+ INSERT INTO caller VALUES('tom_hash512_saltsize16', 'PBKDF2WithHmacSHA512:1024:DbjXqT9p8VhJ7OtU6DrqDw==:p/qihG8IZKkz03JzKd6XXA==') ;
+ INSERT INTO caller VALUES('tom_hash256_saltsize32', 'PBKDF2WithHmacSHA256:2048:suVayUIJMQMc6wCgckvAIgKRlo1UkxyFXhXbTxX6C7s=:cvdHkBXVUCN2WL3LRAYodeCdNZxEM4RLlNCCYP68Kmg=') ;
+ INSERT INTO caller VALUES('tom_hash512_saltsize32', 'PBKDF2WithHmacSHA512:2048:dPTjUfiklfyg2bas/KOQKqEfdtoXK8YvbBscIxA8tNg=:ixBg0wr3ySBI86y8HP7+Yw==') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize16', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize16', 'Manager') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash256_saltsize32', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash256_saltsize32', 'Manager') ;
+
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize32', 'Administrator') ;
+ INSERT INTO caller_groups VALUES('tom_hash512_saltsize32', 'Manager') ;
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/assembly/initorder/warejb/ejb3_assembly_initorder_warejb_ejb.jar.jboss-ejb3.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/assembly/initorder/warejb/ejb3_assembly_initorder_warejb_ejb.jar.jboss-ejb3.xml
new file mode 100644
index 00000000000..d6df88f375c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/assembly/initorder/warejb/ejb3_assembly_initorder_warejb_ejb.jar.jboss-ejb3.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ InitOrderBean
+
+
+ destination
+ java:/ejb3_assembly_initorder_warejb_InitOrderBean
+
+
+
+
+
+
+ InitOrderBean
+ ejb3_assembly_initorder_warejb_InitOrderBean
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_client.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_client.xml
new file mode 100644
index 00000000000..da2d6909ede
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_client.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+ ejb/RemoteCalculatorBean
+ Session
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ RemoteCalculatorBean
+
+
+ ejb/RemoteCalculatorBean2
+ Session
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ RemoteCalculatorBean2
+
+
+ ejb/RemoteCalculatorBean3
+ Session
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ RemoteCalculatorBean3
+
+
+ ejb/RemoteCalculatorBean4
+ Session
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ RemoteCalculatorBean4
+
+
+ ejb/RemoteCalculatorBean5
+
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ RemoteCalculatorBean5
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.jar.sun-ejb-jar.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.jar.sun-ejb-jar.xml
new file mode 100644
index 00000000000..8442954c83d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.jar.sun-ejb-jar.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+ RemoteCalculatorBean
+ com_sun_ts_tests_ejb30_bb_session_stateless_basic_RemoteCalculatorBean
+
+
+ RemoteCalculatorBean2
+ com_sun_ts_tests_ejb30_bb_session_stateless_basic_RemoteCalculatorBean2
+
+
+ RemoteCalculatorBean3
+ com_sun_ts_tests_ejb30_bb_session_stateless_basic_RemoteCalculatorBean3
+
+
+ RemoteCalculatorBean4
+ com_sun_ts_tests_ejb30_bb_session_stateless_basic_RemoteCalculatorBean4
+
+
+ RemoteCalculatorBean5
+ com_sun_ts_tests_ejb30_bb_session_stateless_basic_RemoteCalculatorBean5
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.xml
new file mode 100644
index 00000000000..085fb5fddd2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/bb/session/stateless/basic/ejb3_bb_stateless_basic_ejb.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+ RemoteCalculatorBean2
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ com.sun.ts.tests.ejb30.bb.session.stateless.basic.RemoteCalculatorBean2
+ Stateless
+ Container
+
+
+ postConstruct
+
+
+
+
+
+
+
+
+ RemoteCalculatorBean3
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ com.sun.ts.tests.ejb30.bb.session.stateless.basic.RemoteCalculatorBean3
+ Stateless
+ Container
+
+
+
+
+
+
+
+
+
+ RemoteCalculatorBean4
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ com.sun.ts.tests.ejb30.bb.session.stateless.basic.RemoteCalculatorBean4
+ Stateless
+ Container
+
+
+
+
+
+
+
+ RemoteCalculatorBean5
+ com.sun.ts.tests.ejb30.common.calc.RemoteCalculator
+ com.sun.ts.tests.ejb30.bb.session.stateless.basic.RemoteCalculatorBean5
+ Stateless
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/lite/view/singleton/annotated/ejbliteservlet_vehicle_web.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/lite/view/singleton/annotated/ejbliteservlet_vehicle_web.xml
new file mode 100644
index 00000000000..29dc7e83a6c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/lite/view/singleton/annotated/ejbliteservlet_vehicle_web.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+ EJBLiteServletVehicle
+ ejb30.lite.view.singleton.annotated.EJBLiteServletVehicle
+
+
+ EJBLiteServletVehicle
+ /ejbliteservlet_vehicle.jsp
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/misc/sameejbclass/misc_sameejbclass_ejb.jar.jboss-ejb3.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/misc/sameejbclass/misc_sameejbclass_ejb.jar.jboss-ejb3.xml
new file mode 100644
index 00000000000..451525358c2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/ejb30/misc/sameejbclass/misc_sameejbclass_ejb.jar.jboss-ejb3.xml
@@ -0,0 +1,60 @@
+
+
+
+ SameEJBClassBean1
+
+
+ destination
+ java:/misc_sameejbclass_SameEJBClassBean1
+
+
+
+
+ SameEJBClassBean2
+
+
+ destination
+ java:/misc_sameejbclass_SameEJBClassBean2
+
+
+
+
+ SameEJBClassBean3
+
+
+ destination
+ java:/misc_sameejbclass_SameEJBClassBean3
+
+
+
+
+ SameEJBClassBean4
+
+
+ destination
+ java:/misc_sameejbclass_SameEJBClassBean4
+
+
+
+
+
+
+ SameEJBClassBean1
+ misc_sameejbclass_SameEJBClassBean1
+
+
+ SameEJBClassBean2
+ misc_sameejbclass_SameEJBClassBean2
+
+
+ SameEJBClassBean3
+ misc_sameejbclass_SameEJBClassBean3
+
+
+ SameEJBClassBean4
+ misc_sameejbclass_SameEJBClassBean4
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..00522b2259e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts.jte
@@ -0,0 +1,2079 @@
+#
+# 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=/files/JTWork
+report.dir=/files/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", "wsmd"
+# ex 1/ javaee.level=web connector jms
+# ex 2/ javaee.level=web
+# 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 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}
+
+
+
+###############################################################
+## 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=false
+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=8002
+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=dummy
+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=${jdk.home}/lib/tools.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=-Djavax.xml.accessExternalSchema=all
+
+###########################################################################
+# 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=-Djavax.xml.accessExternalSchema=all
+
+#####################################
+## 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 3.x Stateless wrapper
+ts.wrappers.classes.stateless.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateless3xWrapper.class
+
+## Classes to package in ejb-jar for EJB 3.x Stateful wrapper
+ts.wrappers.classes.stateful.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateful3xWrapper.class
+
+## 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 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.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=foo
+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.
+#
+# @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
+#
+##########################################################################
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+
+##########################################################################
+# @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=jsepc04.us.oracle.com
+mailuser1=cts1@jsepc04.us.oracle.com
+mailFrom=cts1@jsepc04.us.oracle.com
+javamail.password=cts1
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9081.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9081.jte
new file mode 100644
index 00000000000..5a3bb82a548
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9081.jte
@@ -0,0 +1,2079 @@
+#
+# 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=/files/JTWork
+report.dir=/files/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", "wsmd"
+# ex 1/ javaee.level=web connector jms
+# ex 2/ javaee.level=web
+# 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 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}
+
+
+
+###############################################################
+## 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=false
+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=9081
+webServerHost.2=${orb.host.ri}
+webServerPort.2=9001
+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=dummy
+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=${jdk.home}/lib/tools.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=-Djavax.xml.accessExternalSchema=all
+
+###########################################################################
+# 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=-Djavax.xml.accessExternalSchema=all
+
+#####################################
+## 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 3.x Stateless wrapper
+ts.wrappers.classes.stateless.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateless3xWrapper.class
+
+## Classes to package in ejb-jar for EJB 3.x Stateful wrapper
+ts.wrappers.classes.stateful.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateful3xWrapper.class
+
+## 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 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.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=foo
+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.
+#
+# @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
+#
+##########################################################################
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+
+##########################################################################
+# @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=jsepc04.us.oracle.com
+mailuser1=cts1@jsepc04.us.oracle.com
+mailFrom=cts1@jsepc04.us.oracle.com
+javamail.password=cts1
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9082.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9082.jte
new file mode 100644
index 00000000000..d3ba5e7e8d1
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9082.jte
@@ -0,0 +1,2079 @@
+#
+# 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=/files/JTWork
+report.dir=/files/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", "wsmd"
+# ex 1/ javaee.level=web connector jms
+# ex 2/ javaee.level=web
+# 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 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}
+
+
+
+###############################################################
+## 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=false
+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=9082
+webServerHost.2=${orb.host.ri}
+webServerPort.2=9002
+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=dummy
+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=${jdk.home}/lib/tools.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=-Djavax.xml.accessExternalSchema=all
+
+###########################################################################
+# 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=-Djavax.xml.accessExternalSchema=all
+
+#####################################
+## 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 3.x Stateless wrapper
+ts.wrappers.classes.stateless.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateless3xWrapper.class
+
+## Classes to package in ejb-jar for EJB 3.x Stateful wrapper
+ts.wrappers.classes.stateful.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateful3xWrapper.class
+
+## 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 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.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=foo
+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.
+#
+# @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
+#
+##########################################################################
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+
+##########################################################################
+# @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=jsepc04.us.oracle.com
+mailuser1=cts1@jsepc04.us.oracle.com
+mailFrom=cts1@jsepc04.us.oracle.com
+javamail.password=cts1
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9083.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9083.jte
new file mode 100644
index 00000000000..d2b0352f50e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9083.jte
@@ -0,0 +1,2079 @@
+#
+# 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=/files/JTWork
+report.dir=/files/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", "wsmd"
+# ex 1/ javaee.level=web connector jms
+# ex 2/ javaee.level=web
+# 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 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}
+
+
+
+###############################################################
+## 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=false
+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=9083
+webServerHost.2=${orb.host.ri}
+webServerPort.2=9003
+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=dummy
+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=${jdk.home}/lib/tools.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=-Djavax.xml.accessExternalSchema=all
+
+###########################################################################
+# 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=-Djavax.xml.accessExternalSchema=all
+
+#####################################
+## 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 3.x Stateless wrapper
+ts.wrappers.classes.stateless.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateless3xWrapper.class
+
+## Classes to package in ejb-jar for EJB 3.x Stateful wrapper
+ts.wrappers.classes.stateful.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateful3xWrapper.class
+
+## 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 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.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=foo
+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.
+#
+# @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
+#
+##########################################################################
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+
+##########################################################################
+# @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=jsepc04.us.oracle.com
+mailuser1=cts1@jsepc04.us.oracle.com
+mailFrom=cts1@jsepc04.us.oracle.com
+javamail.password=cts1
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9084.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9084.jte
new file mode 100644
index 00000000000..0a665aed4c4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/ts9084.jte
@@ -0,0 +1,2079 @@
+#
+# 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=/files/JTWork
+report.dir=/files/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", "wsmd"
+# ex 1/ javaee.level=web connector jms
+# ex 2/ javaee.level=web
+# 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 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}
+
+
+
+###############################################################
+## 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=false
+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=9084
+webServerHost.2=${orb.host.ri}
+webServerPort.2=9004
+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=dummy
+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=${jdk.home}/lib/tools.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=-Djavax.xml.accessExternalSchema=all
+
+###########################################################################
+# 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=-Djavax.xml.accessExternalSchema=all
+
+#####################################
+## 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 3.x Stateless wrapper
+ts.wrappers.classes.stateless.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateless3xWrapper.class
+
+## Classes to package in ejb-jar for EJB 3.x Stateful wrapper
+ts.wrappers.classes.stateful.ejb.3x=\
+ ${ts.wrappers.ejb.root}/Stateful3xWrapper.class
+
+## 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 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.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=foo
+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.
+#
+# @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
+#
+##########################################################################
+schema.file.location=${javaee.home}/lib/schemas
+logical.hostname.servlet=server
+logical.hostname.soap=localhost
+appclient.log.output=true
+
+##########################################################################
+# @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=jsepc04.us.oracle.com
+mailuser1=cts1@jsepc04.us.oracle.com
+mailFrom=cts1@jsepc04.us.oracle.com
+javamail.password=cts1
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/tssql.stmt b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/bin/tssql.stmt
new file mode 100644
index 00000000000..08b13c96120
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/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(9999999999,0.000000000000001, null)
+
+Decimal_Tab_Insert= insert into Decimal_Tab values(9999999999,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/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/tmp/.keepme b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/tmp/.keepme
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/tmp/tstest.jte b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/tmp/tstest.jte
new file mode 100644
index 00000000000..08f0806140e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/jakartaeetck/tmp/tstest.jte
@@ -0,0 +1,85 @@
+#Properties for test: lookupTimerService
+#Sat Feb 22 13:23:02 CET 2025
+Driver=DriverOnlyUsedIfDriverManagerIsYes
+DriverManager=no
+authpassword=javajoe
+authuser=javajoe
+binarySize=24
+cofSize=5
+cofTypeSize=5
+db.dml.file=derby/derby.dml.sql
+db.supports.sequence=true
+db1=db1OnlyUsedIfDriverManagerIsYes
+db2=db1OnlyUsedIfDriverManagerIsYes
+finder=cts
+ftable=ctstable2
+harness.log.delayseconds=0
+harness.log.port=2000
+harness.log.traceflag=false
+harness.socket.retry.count=10
+harness.temp.directory=${ts.home}/tmp
+imap.port=143
+iofile=MailIOFile.txt
+java.naming.factory.initial=foo
+javamail.mailbox=test1
+javamail.password=cts1
+javamail.protocol=imap
+javamail.root.path=""
+javamail.server=jsepc04.us.oracle.com
+javamail.username=cts1@jsepc04.us.oracle.com
+jdbc.db=derby
+jms_timeout=10000
+jstl.db.password=${derby.passwd}
+jstl.db.user=${derby.user}
+log.file.location=${vi.domain}/logs
+logical.hostname.servlet=server
+longvarbinarySize=50
+mailuser1=cts1@jsepc04.us.oracle.com
+org.omg.CORBA.ORBClass=foo
+password=j2ee
+password1=cts1
+platform.mode=jakartaEE
+porting.ts.HttpsURLConnection.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+porting.ts.HttpsURLConnection.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIHttpsURLConnection
+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
+porting.ts.jms.class.1=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+porting.ts.jms.class.2=com.sun.ts.lib.implementation.sun.javaee.SunRIJMSAdmin
+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
+porting.ts.url.class.1=com.sun.ts.lib.implementation.sun.common.SunRIURL
+porting.ts.url.class.2=com.sun.ts.lib.implementation.sun.common.SunRIURL
+ptable=ctstable1
+rapassword1=cts1
+rapassword2=cts2
+rauser1=cts1
+rauser2=cts2
+s1as.modules=${javaee.home}/modules
+securedWebServicePort=1044
+service_eetest.vehicles=ejblitejsf
+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
+smtp.port=25
+test_classname=com.sun.ts.tests.ejb32.lite.timer.basic.concurrency.JsfClient
+transport_protocol=smtp
+ts_home=dummy
+user=j2ee
+user1=cts1
+varbinarySize=48
+variable.mapper=org.glassfish.expressly.lang.VariableMapperImpl
+vehicle=ejblitejsf
+vehicle_archive_name=ejb32_lite_timer_basic_concurrency_ejblitejsf_vehicle_web
+webServerHost=localhost
+webServerPort=8080
+whitebox-anno_no_md=java\:comp/env/eis/whitebox-anno_no_md
+whitebox-mdcomplete=java\:comp/env/eis/whitebox-mdcomplete
+whitebox-mixedmode=java\:comp/env/eis/whitebox-mixedmode
+whitebox-multianno=java\:comp/env/eis/whitebox-multianno
+whitebox-notx=java\:comp/env/eis/whitebox-notx
+whitebox-notx-param=java\:comp/env/eis/whitebox-notx-param
+whitebox-permissiondd=java\:comp/env/eis/whitebox-permissiondd
+whitebox-tx=java\:comp/env/eis/whitebox-tx
+whitebox-tx-param=java\:comp/env/eis/whitebox-tx-param
+whitebox-xa=java\:comp/env/eis/whitebox-xa
+whitebox-xa-param=java\:comp/env/eis/whitebox-xa-param
+work.dir=/files/JTWork
+ws_wait=5
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-appclient-arquillian.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-appclient-arquillian.xml
new file mode 100644
index 00000000000..e25d579955b
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-appclient-arquillian.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+ target/deployments
+
+
+ ${tck.descriptor.path}
+
+
+
+
+ ${jboss.home}
+ -y=${project.build.testOutputDirectory}/wildfly-tck-min.yml -y=${project.build.testOutputDirectory}/derby.yml
+
+ ${wildfly.standalone.config}
+ true
+
+
+ true
+ true
+ target/appclient
+ ${jboss.home}/bin/appclient.sh;-y=${project.build.testOutputDirectory}/appclient.yml:${project.build.testOutputDirectory}/derby.yml;${clientEarDir}/${vehicleArchiveName}.ear#${vehicleArchiveName}_client.jar
+ MY_EN=my-env-stting
+ ${project.basedir}
+ ${ts.home}/tmp
+ ${ts.home}/bin/ts.jte
+ ${ts.home}/bin/tssql.stmt
+ true
+ 20000
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-arquillian.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-arquillian.xml
new file mode 100644
index 00000000000..affa4a71638
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/javatest-arquillian.xml
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+ target/deployments
+
+
+ ${tck.descriptor.path}
+
+
+
+
+ true
+ false
+ false
+
+
+ ${ts.home}/tmp
+ ${tck.jte.path}
+ ${ts.home}/bin/tssql.stmt
+ true
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/logging.properties b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/logging.properties
new file mode 100644
index 00000000000..742f73500ab
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/logging.properties
@@ -0,0 +1,14 @@
+handlers=java.util.logging.FileHandler,java.util.logging.ConsoleHandler
+
+tck.jakarta.platform.ant.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 = INFO
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/password.txt b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/password.txt
new file mode 100644
index 00000000000..c7546fecbe9
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/password.txt
@@ -0,0 +1,4 @@
+AS_ADMIN_MASTERPASSWORD=
+AS_ADMIN_PASSWORD=
+AS_ADMIN_USERPASSWORD=
+AS_ADMIN_DBPASSWORD=CTS1
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/ProviderConfiguration.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/ProviderConfiguration.xml
new file mode 100644
index 00000000000..1ad4fe21eb4
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/ProviderConfiguration.xml
@@ -0,0 +1,47 @@
+
+
+
+
+ com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProvider
+
+ false
+ USER_NAME_PASSWORD
+
+ SOAP
+ null
+ TestSuite JSR 196 Config Provider
+
+
+ com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProvider
+
+ false
+ USER_NAME_PASSWORD
+
+ SOAP
+ localhost /Hello_web/Hello
+ TestSuite JSR 196 Config Provider
+
+
+ com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProviderServlet
+
+ true
+ USER_NAME_PASSWORD
+
+ HttpServlet
+ default-host /spitests_servlet_web
+ Registration for TSAuthConfigProviderServlet using spitests_servlet_web
+
+
+ com.sun.ts.tests.jaspic.tssv.config.TSAuthConfigProviderServlet
+
+ true
+ USER_NAME_PASSWORD
+
+ HttpServlet
+ server /spitests_servlet_web
+ Registration for TSAuthConfigProviderServlet using spitests_servlet_web
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/appclientlogin.conf b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/appclientlogin.conf
new file mode 100644
index 00000000000..37870764af0
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/appclientlogin.conf
@@ -0,0 +1,11 @@
+/*
+ * JBoss Group - all rights reserved
+ *
+ * $Id: appclientlogin.conf 2 2004-03-18 09:20:48Z starksm $
+ */
+
+cts {
+ org.jboss.security.ClientLoginModule required debug=false;
+};
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-roles.properties b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-roles.properties
new file mode 100644
index 00000000000..3132ccfd609
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-roles.properties
@@ -0,0 +1,12 @@
+# The CTS username to role mappings
+#
+# See CTS-UserGuide 4.3.3
+
+j2ee=Employee,j2ee,Guest,guest
+javaee=javaee,guest
+javajoe=Employee,Manager,javajoe,Guest,guest
+
+cts-user=guest
+guest=guest
+
+CN\=CTS,\ OU\=Java\ Software,\ O\=Sun\ Microsystems\ Inc.,\ L\=Burlington,\ ST\=MA,\ C\=US=Administrator
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-users.properties b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-users.properties
new file mode 100644
index 00000000000..af1ea809d63
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/cts-users.properties
@@ -0,0 +1,14 @@
+# The CTS usernames and passwords
+#
+# See CTS-UserGuide 4.3.3
+
+javaee_vi=javaee_vi
+javajoe=javajoe
+javaee=javaee
+j2ee=j2ee
+# Added for Connector tests
+cts1=cts1
+
+
+# access to the status page
+tck=fishandgrits
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.jks b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.p12 b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.p12
new file mode 100644
index 00000000000..24cd353a2a6
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.cer b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.cer
new file mode 100644
index 00000000000..9d556d08ea9
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.cer
@@ -0,0 +1,13 @@
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcMCBEDpJA0wDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCR1IxEDAOBgNVBAgTB1Vu
+a25vd24xDzANBgNVBAcTBkF0aGVuczETMBEGA1UEChMKSkJvc3MgSW5jLjEQMA4GA1UECxMHVW5r
+bm93bjEbMBkGA1UEAxMSRGltaXRyaXMgQW5kcmVhZGlzMB4XDTA0MDcwNTA5NDkwMVoXDTE0MDcw
+MzA5NDkwMVowdDELMAkGA1UEBhMCR1IxEDAOBgNVBAgTB1Vua25vd24xDzANBgNVBAcTBkF0aGVu
+czETMBEGA1UEChMKSkJvc3MgSW5jLjEQMA4GA1UECxMHVW5rbm93bjEbMBkGA1UEAxMSRGltaXRy
+aXMgQW5kcmVhZGlzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDR1uXAhgaCFmFSaMUsVFdn
+cKDFmPcarFUPkC3KY+cM3WDgugxD2UReiU3VvbAC3WqXWCitvy+hRlNkWuDdnGhy9QjaYAw8L/+k
+hSom/q5mYC3GZ6iYsrQ+LT6q4TVyUY7ssMojfrFTTflaK+EhqSML+wF+TQ2Wpr+MOogrzrYLiwID
+AQABMA0GCSqGSIb3DQEBBAUAA4GBAAWfJ2Vb9cbeuOWws8/dlo5Slajb4JftcxGoHvJjdEvSKxuh
+GyxC53FbdaG9o3gNHAQJNX1M0cenN/aBH9tFJlGjDfZzdFtAQImy6EYU6lRqfm6sqyfnB8pCsGu8
+FNRtoRtGY6arvy4vtni6G0HBFBSEfd9+3P/2wO82bQuimgBJ
+-----END CERTIFICATE-----
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.keystore b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.keystore
new file mode 100644
index 00000000000..74d38f83f1b
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/security/keystores/tomcat.keystore differ
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/testfile.properties b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/testfile.properties
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_client.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_client.xml
new file mode 100644
index 00000000000..e548026fae6
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_client.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ TS ejbvehicle client
+ ejb_vehicle_client
+
+ ejb/EJBVehicle
+ Session
+ com.sun.ts.tests.common.vehicle.ejb.EJBVehicleRemote
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_ejb.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_ejb.xml
new file mode 100644
index 00000000000..09ad3eae1ec
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/ejb/ejb_vehicle_ejb.xml
@@ -0,0 +1,44 @@
+
+
+
+
+ Ejb1
+
+
+ com_sun_ts_tests_common_vehicle_ejb_EJBVehicle
+ com.sun.ts.tests.common.vehicle.ejb.EJBVehicleRemote
+ com.sun.ts.tests.common.vehicle.ejb.EJBVehicle
+ Stateful
+ Container
+
+
+
+
+
+
+
+
+ com_sun_ts_tests_common_vehicle_ejb_EJBVehicle
+ Remote
+ runTest
+
+ Required
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/client.html b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/client.html
new file mode 100644
index 00000000000..fe2a10403c3
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/client.html
@@ -0,0 +1,30 @@
+
+
+
+
+
+ Invoke the generic Jsp for testing purposes
+
+
+
Invoke the generic Jsp for testing purposes
+
+
+ Invoke the jsp here!
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/jsp_vehicle.jsp b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/jsp_vehicle.jsp
new file mode 100644
index 00000000000..3ee91e0e296
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/contentRoot/jsp_vehicle.jsp
@@ -0,0 +1,118 @@
+<%--
+
+ Copyright (c) 2006, 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
+
+--%>
+
+<%@ page language="java" %>
+<%@ page import="javax.naming.*" %>
+<%@ page import="java.rmi.RemoteException" %>
+<%@ page import="java.util.*" %>
+<%@ page import="java.io.*" %>
+<%@ page import="com.sun.ts.lib.util.*" %>
+<%@ page import="com.sun.ts.lib.harness.*" %>
+<%@ page import="com.sun.ts.lib.porting.*" %>
+<%@ page import="com.sun.javatest.Status" %>
+<%@ page session="false" %>
+
+<%! Properties properties = null;
+ String[] arguments = null;
+ EETest testObj = null;
+ Properties stp=new Properties();
+ StringBuffer propsData = new StringBuffer();
+
+%>
+
+<%! private RemoteStatus runTest() throws RemoteException {
+ RemoteStatus sTestStatus = new RemoteStatus(Status.passed(""));
+ try
+ {
+ //call EETest impl's run method
+ sTestStatus = new RemoteStatus(testObj.run(arguments, properties));
+ if(sTestStatus.getType() == Status.PASSED)
+ TestUtil.logMsg("Test running in jsp vehicle passed");
+ else
+ TestUtil.logMsg("Test running in jsp vehicle failed");
+ }
+ catch(Throwable e)
+ {
+ TestUtil.logErr("Test running in jsp vehicle failed", e);
+ sTestStatus =
+ new RemoteStatus(Status.failed("Test running in jsp vehicle failed"));
+ }
+ return sTestStatus;
+ }
+
+%>
+
+<%
+ try {
+ //get the inputstream and read any objects passed from the
+ //client, e.g. properties, args, etc.
+ //wrap the Inputstream in an ObjectInputstream and read
+ //the properties and args.
+ TestUtil.logTrace("JSPVehicle - In doJSPGet");
+ ObjectInputStream objInStream =
+ new ObjectInputStream(new BufferedInputStream(request.getInputStream()));
+ TestUtil.logTrace("JSPVehicle - got InputStream");
+ properties = (Properties)objInStream.readObject();
+ TestUtil.logTrace("JSP Vehicle -read properties!!!");
+ TestUtil.logTrace("JSP Vehicle - list the props ");
+ TestUtil.list(properties);
+
+ //create an instance of the test client and run here
+ Class c =
+ Class.forName(properties.getProperty("test_classname"));
+ testObj = (EETest) c.newInstance();
+
+ arguments = (String[])objInStream.readObject();
+ //arguments = new String[1];
+ //arguments[0] = "";
+ TestUtil.logTrace("JSPVehicle - read Objects");
+ try
+ {
+ TestUtil.init(properties);
+ TestUtil.logTrace("Remote logging set for JSP Vehicle");
+ TestUtil.logTrace("JSPVehicle - Here are the props");
+ //TestUtil.list(properties);
+ }
+ catch (Exception e)
+ {
+ throw new ServletException("unable to initialize remote logging");
+ }
+ //now run the test and return the result
+ RemoteStatus finalStatus = runTest();
+ // Create properties object
+ stp.setProperty("type", String.valueOf(finalStatus.toStatus().getType()));
+ stp.setProperty("reason", finalStatus.toStatus().getReason());
+ java.util.Enumeration key = stp.keys();
+ String name;
+ while (key.hasMoreElements())
+ {
+ name = (String)key.nextElement();
+ propsData.append(name+"="+stp.getProperty(name)+"\n");
+ }
+
+ }
+ catch(Exception e2)
+ {
+ System.out.println(e2.getMessage());
+ TestUtil.logTrace(e2.getMessage());
+ e2.printStackTrace();
+ throw new ServletException("test failed to run within the Servlet Vehicle");
+ }
+%>
+
+<%= propsData.toString() %>
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/jsp_vehicle_web.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/jsp_vehicle_web.xml
new file mode 100644
index 00000000000..3cab255dd92
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/enterprise-beans-tck-run/src/test/resources/vehicle/jsp/jsp_vehicle_web.xml
@@ -0,0 +1,30 @@
+
+
+
+
+ jsp_vehicle
+
+ jsp_vehicle
+ /jsp_vehicle.jsp
+ 0
+
+
+ 54
+
+
diff --git a/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/pom.xml b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/pom.xml
new file mode 100644
index 00000000000..83bc8b735be
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/enterprise-beans-tck/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ enterprise-beans-tck
+ 4.0.0-SNAPSHOT
+ pom
+
+
+ enterprise-beans-tck-install
+ enterprise-beans-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-install/pom.xml
new file mode 100644
index 00000000000..db31120becc
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-install/pom.xml
@@ -0,0 +1,86 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ expression-language-extra-tck-install
+ 11.0.0
+ pom
+ TCK: Install Jakarta Expression Language Platform Substitute TCK
+
+
+ jakartaeetck-${tck.test.expression-language-extra.version}-dist.zip
+ https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee11/staged/eftl/${tck.test.expression-language-extra.file}
+ ${project.version}
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.expression-language-extra.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-expression-language-extra-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+ 3.1.3
+
+
+ install-expression-language-extra-tck-pom
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/el-platform-tck-${tck.test.expression-language-extra.version}.jar
+ jakarta.tck
+ el-platform-tck
+ ${tck.test.expression-language-extra.version}
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/j2ee.pass b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/j2ee.pass
new file mode 100644
index 00000000000..88591706903
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/j2ee.pass
@@ -0,0 +1,17 @@
+
+#
+# Copyright (c) 2023 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
+#
+AS_ADMIN_USERPASSWORD=j2ee
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..c0ed2c0203c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/jakartaeetck/bin/ts.jte
@@ -0,0 +1,2463 @@
+#
+# 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_10.0.x/JTWork
+report.dir=/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=/Users/alwjosep/Documents/jakartaee-tck/glassfish-runner/el-platform-tck/target/glassfish8
+orb.host=localhost
+orb.port=4848
+
+########################################################################
+## 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=
+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=cts1
+password1=cts1
+user2=cts1
+password2=cts1
+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=false
+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.porting.implementation.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=8002
+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_10.0.x/modules/webservices-tools.jar:/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=foo
+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=
+mailuser1=
+mailFrom=
+javamail.password=
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/javajoe.pass b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/javajoe.pass
new file mode 100644
index 00000000000..d69a7520e56
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/javajoe.pass
@@ -0,0 +1,16 @@
+#
+# Copyright (c) 2023 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
+#
+AS_ADMIN_USERPASSWORD=javajoe
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/pom.xml
new file mode 100644
index 00000000000..c29d16b168e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/pom.xml
@@ -0,0 +1,240 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta
+ glassfish.el-platform-tck
+ 11.0.0
+ jar
+
+
+ 1.9.3.Final
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ glassfish8
+ 8.0.0-M10
+
+ 11.0.0-RC1
+ 11.0.0
+ ./jakartaeetck
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.el
+ jakarta.el-api
+ 6.0.1
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+
+
+
+
+ jakarta.tck
+ el-platform-tck
+ ${tck.version}
+
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ 11.0.0
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ 11.0.0
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-spi
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+
+
+ org.jboss.arquillian.junit
+ arquillian-junit-core
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-api
+ 3.2.0
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-impl-maven
+ 3.2.0
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-api-maven
+ 3.2.0
+
+
+ org.jboss.shrinkwrap.resolver
+ shrinkwrap-resolver-spi-maven
+ 3.2.0
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ 001-unpack
+
+ unpack
+
+ generate-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.2
+
+
+ gf-tests
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/expressly.jar
+
+
+ jakarta.tck:el-platform-tck
+
+ com/sun/ts/tests/el/**/*
+
+
+ ${groups}
+
+
+ ${glassfish.home}
+ true
+ true
+ true
+ /tmp
+ ${ts.home}
+ org.glassfish.expressly.lang.VariableMapperImpl
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ platform
+
+
+
+ web
+
+ web
+ web
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..af756b874cc
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/expression-language-platform-subst-tck-run/src/test/resources/arquillian.xml
@@ -0,0 +1,26 @@
+
+
+
+
+ target/
+
+
+
+ ${ts.home}/dist/
+
+
+
+
+
+ target/glassfish8
+
+
+ true
+ /tmp
+ ${ts.home}/bin/ts.jte
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/pom.xml
new file mode 100644
index 00000000000..d28ccc9038d
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-platform-subst-tck/pom.xml
@@ -0,0 +1,37 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ expression-language-platform-subst-tck
+ 6.0.0-SNAPSHOT
+ pom
+
+
+ expression-language-platform-subst-tck-install
+ expression-language-platform-subst-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/pom.xml
new file mode 100644
index 00000000000..723485e0caf
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/pom.xml
@@ -0,0 +1,83 @@
+
+
+
+ 4.0.0
+
+
+ org.glassfish
+ expression-language-tck
+ 6.0.0-SNAPSHOT
+
+
+ expression-language-tck-install
+ pom
+ TCK: Install Jakarta expression-language TCK
+
+
+ jakarta-expression-language-tck-${tck.test.expression-language.version}.zip
+ https://download.eclipse.org/jakartaee/expression-language/6.0/${tck.test.expression-language.file}
+ 6.0.0
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.expression-language.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-expression-language-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+
+
+ install-expression-language-tck-pom
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/el-tck/artifacts/jakarta-expression-language-tck-${tck.test.expression-language.version}.jar
+ jakarta.tck
+ expression-language-tck
+ ${tck.test.expression-language.version}
+ src/resources/expression-language-tck-6.0.0.pom
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/src/resources/expression-language-tck-6.0.0.pom b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/src/resources/expression-language-tck-6.0.0.pom
new file mode 100644
index 00000000000..45ba3b0e749
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-install/src/resources/expression-language-tck-6.0.0.pom
@@ -0,0 +1,167 @@
+
+
+
+ 4.0.0
+
+ jakarta.tck
+ jakarta-expression-language-tck
+ 6.0.0
+ jar
+
+ el-tck
+ EL TCK
+
+
+ 6.0.0
+
+
+
+
+ jakarta.el
+ jakarta.el-api
+ ${jakarta.el-api.version}
+
+
+ org.junit.jupiter
+ junit-jupiter
+ 5.10.3
+ compile
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.1
+
+
+
+
+
+ ${bundle-name}-${project.version}
+
+
+ src/main/resources
+
+ LICENSE_${license}.md
+ com/
+
+
+
+
+
+ maven-javadoc-plugin
+
+ none
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar-no-fork
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-assembly-plugin
+ 3.3.0
+
+
+ distribution
+
+ single
+
+ package
+
+
+ src/main/assembly/assembly.xml
+
+ \
+ false
+ ${bundle-name}-${project.version}
+
+
+
+
+
+ maven-compiler-plugin
+
+ 17
+
+
+
+
+
+
+
+ EFTL
+
+ true
+
+
+ jakarta-expression-language-tck
+ EFTL
+
+
+
+ EPL
+
+ expression-language-tck
+ EPL
+
+
+
+ record-signature
+
+ false
+
+
+ jakarta-expression-language-tck
+ EFTL
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.2
+
+ ${project.build.directory}/jakarta.el.sig_${project.parent.version}
+ jakarta.el
+
+
+
+
+ generate
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-run/pom.xml
new file mode 100644
index 00000000000..549dc462bf7
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-tck/expression-language-tck-run/pom.xml
@@ -0,0 +1,184 @@
+
+
+
+
+ 4.0.0
+
+
+
+ org.glassfish
+ expression-language-tck-run
+ jar
+ 6.0.0
+
+ expression-language-tck
+ Aggregates dependencies and runs the Expression Language TCK using jars from GlassFish
+
+
+
+ 8.0.0-JDK17-M7
+ glassfish8
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.3
+ pom
+ import
+
+
+
+
+
+
+
+
+ jakarta.tck
+ jakarta-expression-language-tck
+ 6.0.2-SNAPSHOT
+
+
+
+ *
+ *
+
+
+ test
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ test
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+ test
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ pre-integration-test
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ true
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.2
+
+
+ gf-tests
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/expressly.jar
+
+
+ jakarta.tck:jakarta-expression-language-tck
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/expressly.jar
+ org.glassfish.expressly.lang.VariableMapperImpl
+ true
+ true
+ true
+ ${project.build.directory}/jdk-bundle
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.el-api.jar:${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/expressly.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+ web
+
+ web
+
+
+
+ staging
+
+ false
+
+
+
+ sonatype-nexus-staging
+ Sonatype Nexus Staging
+ https://jakarta.oss.sonatype.org/content/repositories/staging/
+
+ true
+
+
+ false
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/expression-language-tck/pom.xml b/appserver/tests/tck/glassfish-runner/expression-language-tck/pom.xml
new file mode 100644
index 00000000000..fd873d47542
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/expression-language-tck/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ expression-language-tck
+ org.glassfish
+ 6.0.0-SNAPSHOT
+ pom
+
+
+ expression-language-tck-install
+ expression-language-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-install/pom.xml
new file mode 100644
index 00000000000..c773eada5d5
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-install/pom.xml
@@ -0,0 +1,89 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ jsonb-tck-install
+ 11.0.0
+ pom
+ TCK: Install Jakarta JSON-B Extra TCK
+
+
+ jakartaeetck-${tck.test.jsonb.version}-dist.zip
+ https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee11/staged/eftl/${tck.test.jsonb.extra.file}
+
+ ${project.version}
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.jsonb.extra.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-jsonb-extra-tck
+ generate-resources
+
+ wget
+
+
+
+
+
+
+ maven-install-plugin
+
+
+
+ install-jsonb-tck-common-jar
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/jsonb-platform-tck-${tck.test.jsonb.version}.jar
+ ${project.build.directory}/jakartaeetck/artifacts/jsonb-platform-tck-${tck.test.jsonb.version}-sources.jar
+ jakarta.tck
+ jsonb-platform-tck
+ 3.0.0-M1
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..b03a7616897
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/jakartaeetck/bin/ts.jte
@@ -0,0 +1,2463 @@
+#
+# 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_10.0.x/JTWork
+report.dir=/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=/Users/alwjosep/Documents/jakartaee-tck/glassfish-runner/jsonb-platform-tck/target/glassfish8
+orb.host=localhost
+orb.port=4848
+
+########################################################################
+## 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=
+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=cts1
+password1=cts1
+user2=cts1
+password2=cts1
+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=false
+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.porting.implementation.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=8002
+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_10.0.x/modules/webservices-tools.jar:/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=foo
+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=
+mailuser1=
+mailFrom=
+javamail.password=
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/pom.xml
new file mode 100644
index 00000000000..0a0982bfed2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/pom.xml
@@ -0,0 +1,399 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta
+ glassfish.jsonb-platform-tck
+ 11.0.0
+ jar
+
+
+ UTF-8
+ UTF-8
+ 17
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ ${glassfish.home}/glassfish/lib
+ glassfish8
+
+ 8.0.0-JDK17-M9
+
+ 11.0.0
+ 11.0.0
+ 3.0.0-M1
+ /jakartaeetck
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.json.bind
+ jakarta.json.bind-api
+ 3.0.1
+ provided
+
+
+ jakarta.json
+ jakarta.json-api
+ 2.1.3
+ provided
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+
+
+
+
+ jakarta.tck
+ jsonb-platform-tck
+ ${tck.version}
+
+
+
+
+
+ jakarta.tck
+ common
+ ${jakarta.tck.common.version}
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-common
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${jakarta.tck.arquillian.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+ org.omnifaces.arquillian
+ glassfish-client-ee11
+ 1.7.1
+ test
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.2.0
+
+
+ 01-unpack
+
+ unpack
+
+ generate-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.0
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ true
+ true
+ true
+
+
+
+
+
+ cdi-tests-javatest
+
+ integration-test
+ verify
+
+
+ jakarta.tck:jsonb-platform-tck
+ ${javatest-testGroups}
+
+ com/sun/ts/tests/jsonb/cdi/**/*Servlet*.java
+ com/sun/ts/tests/jsonb/cdi/**/*Jsp*.java
+
+
+
+
+
+ pluggability-tests-javatest
+
+ integration-test
+ verify
+
+
+ jakarta.tck:jsonb-platform-tck
+ tck-javatest
+
+ com/sun/ts/tests/jsonb/pluggability/jsonbprovidertests/*Servlet*.java
+ com/sun/ts/tests/jsonb/pluggability/jsonbprovidertests/*Jsp*.java
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ tck-javatest
+
+
+
+ web
+
+ web
+ web
+
+
+
+ appclient
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${jakarta.tck.arquillian.version}
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.6.1
+
+
+ 04-copy-lib
+
+ copy
+
+ generate-resources
+
+
+
+ jakarta.tck
+ common
+ true
+ ${project.build.directory}/lib
+ common.jar
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ true
+ ${project.build.directory}/lib
+ tck-porting-lib.jar
+
+
+ jakarta.tck
+ jsonp-platform-tck
+ true
+ ${project.build.directory}/lib
+ jsonp-platform-tck.jar
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ true
+ ${project.build.directory}/lib
+ arquillian-protocol-lib.jar
+
+
+
+
+
+ 07-copy-protocol-lib
+
+ copy
+
+ process-test-resources
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ jar
+ true
+ ${project.build.directory}/protocol
+ protocol.jar
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+
+
+
+ cdi-tests-appclient
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/yasson.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+ com/sun/ts/tests/jsonb/cdi/**/*Ejb*.java
+
+
+ tck-appclient
+ jakarta.tck:${tck.artifactId}
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ true
+ true
+ true
+ /tmp
+ ${project.basedir}
+ appclient-arquillian.xml
+
+
+
+
+ pluggability-tests-appclient
+
+ integration-test
+ verify
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/yasson.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+ com/sun/ts/tests/jsonb/pluggability/jsonbprovidertests/*Appclient*.java
+ com/sun/ts/tests/jsonb/pluggability/jsonbprovidertests/*Ejb*.java
+
+
+ tck-appclient
+ jakarta.tck:${tck.artifactId}
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ true
+ true
+ true
+ /tmp
+ ${project.basedir}
+ appclient-arquillian.xml
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishLoadableExtension.java b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishLoadableExtension.java
new file mode 100644
index 00000000000..60608a6906b
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishLoadableExtension.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2024 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 org.glassfish.jsonb.tck;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+public class GlassfishLoadableExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder extensionBuilder) {
+ extensionBuilder.service(ResourceProvider.class, GlassfishTestArchiveProcessor.class);
+ extensionBuilder.observer(GlassfishTestArchiveProcessor.class);
+
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishTestArchiveProcessor.java b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishTestArchiveProcessor.java
new file mode 100644
index 00000000000..83caccc0a89
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/java/org/glassfish/jsonb/tck/GlassfishTestArchiveProcessor.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2024 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 org.glassfish.jsonb.tck;
+
+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 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 GlassfishTestArchiveProcessor extends AbstractTestArchiveProcessor {
+
+ static Logger log = Logger.getLogger(GlassfishTestArchiveProcessor.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("glassfish-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);
+ }
+ 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);
+ }
+
+ 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 = findGlassfishDescriptors(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 findGlassfishDescriptors(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/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..cbfd6a479bd
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.glassfish.jsonb.tck.GlassfishLoadableExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml
new file mode 100644
index 00000000000..088ea63d86a
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml
@@ -0,0 +1,66 @@
+
+
+
+
+ target/deployments
+
+
+
+ target/
+
+
+
+
+
+ target/glassfish8
+
+
+ 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=target/lib/arquillian-protocol-lib.jar:target/lib/tck-porting-lib.jar:target/appclient/lib/arquillian-core.jar:target/appclient/lib/arquillian-junit5.jar:${glassfish.home}/glassfish/modules/security.jar
+ ${project.basedir}
+ /tmp
+ jakartaeetck/bin/ts.jte
+
+ true
+ 20000
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..875a2857f94
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/jsonb-platform-extra-tck-run/src/test/resources/arquillian.xml
@@ -0,0 +1,33 @@
+
+
+
+
+ target/
+
+
+
+ target
+
+
+
+
+
+ target/glassfish8
+
+
+ true
+ /tmp
+ true
+ true
+ target/appclient
+ true
+ ${project.basedir}
+ jakartaeetck/bin/ts.jte
+ 20000
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/pom.xml b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/pom.xml
new file mode 100644
index 00000000000..cea379d2132
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-platform-extra-tck/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ jsonp-platform-extra-tck
+ 11.0.0
+ pom
+
+
+ jsonb-platform-extra-tck-install
+ jsonb-platform-extra-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonb-tck/pom.xml b/appserver/tests/tck/glassfish-runner/jsonb-tck/pom.xml
new file mode 100644
index 00000000000..af68ca6fdfe
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonb-tck/pom.xml
@@ -0,0 +1,261 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ glassfish.jsonb-tck
+ 3.0.0-SNAPSHOT
+
+
+ UTF-8
+ UTF-8
+ 17
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ glassfish8
+ 8.0.0-SNAPSHOT
+
+
+
+
+ jakarta.json.bind
+ jakarta.json.bind-tck
+ 3.0.0
+ test
+
+
+ jakarta.json.bind
+ jakarta.json.bind-api
+
+
+ jakarta.json
+ jakarta.json-api
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+
+
+ org.jboss.weld.se
+ weld-se-core
+ 6.0.1.Final
+
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+
+ post-unit-test
+
+ report
+
+ test
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ -Djava.locale.providers=COMPAT
+
+ jakarta.json.bind:jakarta.json.bind-tck
+
+ false
+ true
+
+
+ true
+ false
+ ${project.build.directory}/jdk-bundle
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json.bind-api.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json.bind-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.enterprise.cdi-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.inject-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/yasson.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+
+
+
+
+
+ web
+
+ web
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ -Djava.locale.providers=COMPAT
+
+ jakarta.json.bind:jakarta.json.bind-tck
+
+ false
+ true
+
+
+ ${project.build.directory}/jdk-bundle
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json.bind-api.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json.bind-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.enterprise.cdi-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.inject-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/yasson.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+
+
+
+
+ embedded-core
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ copy
+
+ copy
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-web
+ ${glassfish.version}
+ jar
+ false
+ ${project.build.directory}
+ glassfish-embedded-web.jar
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+ -Djava.locale.providers=COMPAT
+
+ jakarta.json.bind:jakarta.json.bind-tck
+
+ false
+ true
+
+
+ ${project.build.directory}/jdk-bundle
+ ${project.build.directory}/glassfish-embedded-web.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+ ${project.build.directory}/glassfish-embedded-web.jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-install/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-install/pom.xml
new file mode 100644
index 00000000000..bd025f6828c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-install/pom.xml
@@ -0,0 +1,89 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ jsonp-tck-install
+ 11.0.0
+ pom
+ TCK: Install Jakarta JSON-P Extra TCK
+
+
+ jakartaeetck-${tck.test.jsonp.version}-dist.zip
+ https://download.eclipse.org/ee4j/jakartaee-tck/jakartaee11/staged/eftl/${tck.test.jsonp.extra.file}
+
+ ${project.version}
+
+
+
+
+
+ com.googlecode.maven-download-plugin
+ download-maven-plugin
+ 1.13.0
+
+ ${tck.test.jsonp.extra.url}
+ true
+ ${project.build.directory}
+
+
+
+ download-pages-extra-tck
+
+ wget
+
+ generate-resources
+
+
+
+
+
+ maven-install-plugin
+
+
+
+ install-jsonp-tck-common-jar
+
+ install-file
+
+ process-resources
+
+ ${project.build.directory}/jakartaeetck/artifacts/jsonp-platform-tck-${tck.test.jsonp.version}.jar
+ ${project.build.directory}/jakartaeetck/artifacts/jsonp-platform-tck-${tck.test.jsonp.version}-sources.jar
+ jakarta.tck
+ jsonp-platform-tck
+ ${tck.test.jsonp.version}
+ jar
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..85d9765cc33
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/ts.jte
@@ -0,0 +1,2463 @@
+#
+# 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_10.0.x/JTWork
+report.dir=/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=/Users/alwjosep/Documents/jakartaee-tck/glassfish-runner/jsonp-platform-tck/target/glassfish8
+orb.host=localhost
+orb.port=4848
+
+########################################################################
+## 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=
+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=cts1
+password1=cts1
+user2=cts1
+password2=cts1
+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=false
+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.porting.implementation.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=8002
+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_10.0.x/modules/webservices-tools.jar:/home/jenkins/agent/workspace/jakartaee-tck_10.0.x/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=foo
+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=
+mailuser1=
+mailFrom=
+javamail.password=
+smtp.port=25
+imap.port=143
+
+### 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=""
+
+# 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/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/tssql.stmt b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/jakartaeetck/bin/tssql.stmt
new file mode 100644
index 00000000000..2d279c54022
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/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/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/pom.xml
new file mode 100644
index 00000000000..3a1b9532000
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/pom.xml
@@ -0,0 +1,423 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta
+ glassfish.jsonp-platform-tck
+ 11.0.0
+ jar
+
+
+ UTF-8
+ UTF-8
+ 17
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ ${glassfish.home}/glassfish/lib
+ glassfish8
+
+ 8.0.0-JDK17-M10
+
+ 11.0.0
+ 11.0.0
+ ${project.version}
+ /jakartaeetck
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
+
+
+
+ jakarta.json
+ jakarta.json-api
+ 2.1.3
+ provided
+
+
+ jakarta.json.bind
+ jakarta.json.bind-api
+ 3.0.1
+ provided
+
+
+ jakarta.servlet
+ jakarta.servlet-api
+ 6.1.0
+
+
+
+
+ jakarta.tck
+ jsonp-platform-tck
+ ${tck.version}
+
+
+
+
+ jakarta.tck
+ common
+ ${jakarta.tck.common.version}
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-javatest
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-common
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ ${jakarta.tck.arquillian.version}
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ ${jakarta.tck.arquillian.version}
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+
+
+ org.junit.vintage
+ junit-vintage-engine
+ test
+
+
+
+
+ org.omnifaces.arquillian
+ arquillian-glassfish-server-managed
+ 1.7
+ test
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-container
+ test
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.8.1
+
+
+ 01-unpack
+
+ unpack
+
+ generate-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+ 3.5.2
+
+
+
+ patch-tests-javatest
+
+ integration-test
+ verify
+
+
+ jakarta.tck:jsonp-platform-tck
+
+
+ tck-javatest
+
+
+ com/sun/ts/tests/jsonp/api/patchtests/*Test*.java
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+ ${glassfish.home}
+ true
+ true
+ true
+ /tmp
+
+
+
+
+
+ pluggability-tests-javatest
+
+ integration-test
+ verify
+
+
+ jakarta.tck:jsonp-platform-tck
+
+
+ ${javatest-testGroups}
+
+
+ com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/**Test.java
+
+
+
+ ${glassfish.home}
+ true
+ true
+ true
+ /tmp
+
+
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+ tck-javatest
+
+
+
+
+ web
+
+ web
+ web
+
+
+
+
+ appclient
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-appclient
+ ${jakarta.tck.arquillian.version}
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.6.1
+
+
+ 004-copy-lib
+
+ copy
+
+ generate-resources
+
+
+
+ jakarta.tck
+ common
+ true
+ ${project.build.directory}/lib
+ common.jar
+
+
+ jakarta.tck.arquillian
+ tck-porting-lib
+ true
+ ${project.build.directory}/lib
+ tck-porting-lib.jar
+
+
+ jakarta.tck
+ jsonp-platform-tck
+ true
+ ${project.build.directory}/lib
+ jsonp-platform-tck.jar
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ true
+ ${project.build.directory}/lib
+ arquillian-protocol-lib.jar
+
+
+
+
+
+ 03-copy-protocol-lib
+
+ copy
+
+ process-test-resources
+
+
+
+ jakarta.tck.arquillian
+ arquillian-protocol-lib
+ jar
+ true
+ ${project.build.directory}/protocol
+ protocol.jar
+
+
+
+
+
+
+
+
+ maven-failsafe-plugin
+
+
+ patch-tests-appclient
+
+ integration-test
+ verify
+
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+ com/sun/ts/tests/jsonp/api/patchtests/*Test*.java
+
+
+ tck-appclient
+
+ jakarta.tck:jsonp-platform-tck
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ true
+ true
+ true
+ /tmp
+ ${project.basedir}
+ appclient-arquillian.xml
+
+
+
+
+
+ pluggability-tests-appclient
+
+ integration-test
+ verify
+
+
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+ com/sun/ts/tests/jsonp/pluggability/jsonprovidertests/**Test.java
+
+
+ tck-appclient
+
+ jakarta.tck:jsonp-platform-tck
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}
+ true
+ true
+ true
+ /tmp
+ ${project.basedir}
+ appclient-arquillian.xml
+
+
+
+ junit.jupiter.extensions.autodetection.enabled = true
+ junit.platform.output.capture.stderr = true
+ junit.platform.output.capture.stdout = true
+ junit.platform.reporting.open.xml.enabled = true
+ junit.platform.reporting.output.dir = target/junit5-reports
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishLoadableExtension.java b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishLoadableExtension.java
new file mode 100644
index 00000000000..98f81b46cf8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishLoadableExtension.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2024 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 org.glassfish.jsonp.tck;
+
+import org.jboss.arquillian.container.test.spi.client.deployment.ApplicationArchiveProcessor;
+import org.jboss.arquillian.test.spi.enricher.resource.ResourceProvider;
+import org.jboss.arquillian.core.spi.LoadableExtension;
+
+public class GlassfishLoadableExtension implements LoadableExtension {
+ @Override
+ public void register(ExtensionBuilder extensionBuilder) {
+ extensionBuilder.service(ResourceProvider.class, GlassfishTestArchiveProcessor.class);
+ extensionBuilder.observer(GlassfishTestArchiveProcessor.class);
+
+ }
+}
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishTestArchiveProcessor.java b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishTestArchiveProcessor.java
new file mode 100644
index 00000000000..5a3ea2971af
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/java/org/glassfish/jsonp/tck/GlassfishTestArchiveProcessor.java
@@ -0,0 +1,149 @@
+/*
+ * Copyright (c) 2024 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 org.glassfish.jsonp.tck;
+
+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 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 GlassfishTestArchiveProcessor extends AbstractTestArchiveProcessor {
+
+ static Logger log = Logger.getLogger(GlassfishTestArchiveProcessor.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("glassfish-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);
+ }
+ 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);
+ }
+
+ 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 = findGlassfishDescriptors(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 findGlassfishDescriptors(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/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
new file mode 100644
index 00000000000..4b4fae3a389
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
@@ -0,0 +1 @@
+org.glassfish.jsonp.tck.GlassfishLoadableExtension
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml
new file mode 100644
index 00000000000..1e4d194431f
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/appclient-arquillian.xml
@@ -0,0 +1,68 @@
+
+
+
+
+ target/deployments
+
+
+
+ target/
+
+
+
+
+
+ target/glassfish8
+
+
+ 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=target/lib/arquillian-protocol-lib.jar:target/lib/tck-porting-lib.jar:target/appclient/lib/arquillian-core.jar:target/appclient/lib/arquillian-junit5.jar:${glassfish.home}/glassfish/modules/security.jar:${glassfish.home}/glassfish/lib/gf-client.jar
+ ${project.basedir}
+ /tmp
+ jakartaeetck/bin/ts.jte
+ jakartaeetck/bin/tssql.stmt
+ true
+ 20000
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/arquillian.xml b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/arquillian.xml
new file mode 100644
index 00000000000..4015367c6f5
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/arquillian.xml
@@ -0,0 +1,28 @@
+
+
+
+
+ target/
+
+
+
+ target
+
+
+
+
+
+ target/glassfish8
+
+
+ true
+ /tmp
+ jakartaeetck/bin/ts.jte
+ jakartaeetck/bin/tssql.stmt
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/logging.properties b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/src/test/resources/logging.properties
new file mode 100644
index 00000000000..f33f0033071
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/jsonp-platform-extra-tck-run/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 = INFO
+java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/pom.xml
new file mode 100644
index 00000000000..05bc20f659c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-platform-extra-tck/pom.xml
@@ -0,0 +1,38 @@
+
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ jakarta.tck
+ jsonb-platform-extra-tck
+ 11.0.0
+ pom
+
+
+ jsonp-platform-extra-tck-install
+ jsonp-platform-extra-tck-run
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests-pluggability/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests-pluggability/pom.xml
new file mode 100644
index 00000000000..15c548c570c
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests-pluggability/pom.xml
@@ -0,0 +1,133 @@
+
+
+ 4.0.0
+
+
+ org.glassfish
+ json-tck
+ 2.1.0-SNAPSHOT
+
+
+ org.glassfish
+ json-tck-tests-pluggablity
+ 2.1.0
+
+
+
+
+ jakarta.json
+ jakarta.json-api
+ 2.1.3
+
+
+
+ jakarta.json
+ jakarta.json-tck-common
+ 2.1.0
+ test
+
+
+ jakarta.json
+ jakarta.json-tck-tests-pluggability
+ 2.1.0
+ test
+
+
+ jakarta.json
+ jakarta.json-api
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+
+
+
+
+
+
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ tests-pluggability
+
+ test
+
+
+ jakarta.json:jakarta.json-tck-tests-pluggability
+ false
+ false
+ true
+
+
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/jakarta.json-api.jar
+ ${project.build.directory}/${glassfish.toplevel.dir}/glassfish/modules/parsson.jar
+
+
+
+
+
+
+
+ maven-surefire-report-plugin
+ 3.5.2
+
+
+ post-unit-test
+
+ report
+
+ test
+
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+ web
+
+ web
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/pom.xml
new file mode 100644
index 00000000000..601443cd86b
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/pom.xml
@@ -0,0 +1,269 @@
+
+
+
+ 4.0.0
+
+
+ org.glassfish
+ json-tck
+ 2.1.0-SNAPSHOT
+
+
+ org.glassfish
+ json-tck-tests
+ 2.1.0
+
+
+
+
+ jakarta.json
+ jakarta.json-api
+ 2.1.3
+
+
+
+ jakarta.json
+ jakarta.json-tck-common
+ 2.1.1
+ test
+
+
+ jakarta.json
+ jakarta.json-tck-tests
+ 2.1.1
+ test
+
+
+ jakarta.json
+ jakarta.json-api
+
+
+
+
+ jakarta.tck
+ sigtest-maven-plugin
+ 2.6
+
+
+ org.eclipse
+ yasson
+ 3.0.4
+ test
+
+
+ jakarta.json
+ jakarta.json-api
+
+
+ jakarta.json.bind
+ jakarta.json.bind-api
+
+
+
+
+
+
+
+ full
+
+ true
+
+
+ glassfish
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ tests
+
+ test
+
+
+ jakarta.json:jakarta.json-tck-tests
+ false
+ false
+ true
+
+
+ ${project.build.directory}/jdk-bundle
+ ${glassfish.home}/glassfish/modules/jakarta.json-api.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+
+
+
+
+
+
+
+ web
+
+ web
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ unpack
+
+ unpack
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.distributions
+ ${glassfish-artifact-id}
+ ${glassfish.version}
+ zip
+ false
+ ${project.build.directory}
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ tests
+
+ test
+
+
+ jakarta.json:jakarta.json-tck-tests
+ false
+ false
+ true
+
+
+ ${project.build.directory}/jdk-bundle
+ ${glassfish.home}/glassfish/modules/jakarta.json-api.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+
+
+
+
+
+
+
+ embedded-core
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 3.8.0
+
+
+ copy
+
+ copy
+
+ generate-test-resources
+
+
+
+ org.glassfish.main.extras
+ glassfish-embedded-web
+ ${glassfish.version}
+ jar
+ false
+ ${project.build.directory}
+ glassfish-embedded-web.jar
+
+
+
+
+
+
+
+
+ maven-surefire-plugin
+ 3.5.2
+
+
+ tests
+
+ test
+
+
+ jakarta.json:jakarta.json-tck-tests
+ false
+ false
+ true
+
+
+ ExcludeSubPackagePlugin
+ ${project.build.directory}/jdk-bundle
+ ${glassfish.root}/glassfish-embedded-web.jar:${project.build.directory}/jdk-bundle/java.base:${project.build.directory}/jdk-bundle/java.rmi:${project.build.directory}/jdk-bundle/java.sql:${project.build.directory}/jdk-bundle/java.naming
+
+
+
+
+
+
+
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/src/main/java/ExcludeSubPackagePlugin.java b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/src/main/java/ExcludeSubPackagePlugin.java
new file mode 100644
index 00000000000..7a3ca15d6e9
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-tck/json-tck-tests/src/main/java/ExcludeSubPackagePlugin.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2025 Contributors to the Eclipse Foundation.
+ *
+ * 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
+ */
+
+public class ExcludeSubPackagePlugin extends com.sun.tdk.exclude.ExcludeList {
+
+ public ExcludeSubPackagePlugin() {
+ super();
+ addSignature("jakarta\\.json\\.bind\\.*");
+ }
+
+}
\ No newline at end of file
diff --git a/appserver/tests/tck/glassfish-runner/jsonp-tck/pom.xml b/appserver/tests/tck/glassfish-runner/jsonp-tck/pom.xml
new file mode 100644
index 00000000000..7295fb014f9
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/jsonp-tck/pom.xml
@@ -0,0 +1,62 @@
+
+
+
+ 4.0.0
+
+
+ org.eclipse.ee4j
+ project
+ 1.0.9
+
+
+
+ org.glassfish
+ json-tck
+ 2.1.0-SNAPSHOT
+ pom
+
+
+ json-tck-tests
+ json-tck-tests-pluggability
+
+
+
+ ${glassfish.root}/glassfish8
+ ${project.build.directory}
+ 8.0.0-SNAPSHOT
+
+ UTF-8
+ UTF-8
+
+
+
+
+
+
+ org.junit
+ junit-bom
+ 5.11.4
+ pom
+ import
+
+
+ org.jboss.arquillian
+ arquillian-bom
+ 1.9.3.Final
+ pom
+ import
+
+
+
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.jks b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.jks
new file mode 100644
index 00000000000..09f5569c47a
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.jks differ
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.p12
new file mode 100644
index 00000000000..409e41e6735
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/clientcert.p12 differ
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/cts_cert b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/cts_cert
new file mode 100644
index 00000000000..0c3863c852d
Binary files /dev/null and b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/certificates/cts_cert differ
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/ts.jte b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/ts.jte
new file mode 100644
index 00000000000..11ee73d42f8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-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/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/tssql.stmt b/appserver/tests/tck/glassfish-runner/mail-platform-tck/jakartaeetck/bin/tssql.stmt
new file mode 100644
index 00000000000..2d279c54022
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-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/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/1 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/1
new file mode 100644
index 00000000000..c653c6eb8a2
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/1
@@ -0,0 +1,13 @@
+From MAILER-DAEMON Thu May 14 18:11:59 1998
+Date: Thu, 14 May 1998 18:11:59 -0700 (PDT)
+From: Mail System Internal Data
+Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
+X-IMAP: 0884218660 0000000151
+Status: RO
+Content-Length: 260
+
+This text is part of the internal format of your mail folder, and is not
+a real message. It is created automatically by the mail system software.
+If deleted, important folder data will be lost, and it will be re-created
+with the data reset to initial values.
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/10 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/10
new file mode 100644
index 00000000000..d65f20f9e60
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/10
@@ -0,0 +1,97 @@
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:14:42 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id OAA03119; Wed, 16 Oct 1996 14:14:41 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17070; Wed, 16 Oct 1996 14:13:41 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <32655005.5828@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:13:41 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Network Computers have arrived!
+Content-Disposition: inline; filename="index.html"
+Content-Base: "http://labyrinth/demomail/javacomputin
+ g/index.html"
+Content-Type: multipart/mixed; boundary="=_AABrKQAAEFYyZVkC"
+X-Lines: 43
+Content-Length: 2250
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 126
+
+--=_AABrKQAAEFYyZVkC
+Content-Type: text/html; charset="us-ascii"; name="index.html"
+
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:14:42 1996
+Return-Path:
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17070; Wed, 16 Oct 1996 14:13:41 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <32655005.5828@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:13:41 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Network Computers have arrived!
+Content-Disposition: inline; filename="index.html"
+Content-Base: "http://labyrinth/demomail/javacomputin
+ g/index.html"
+Content-Length: 1427
+X-Sun-Content-Length: 1426
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 127
+
+
+
+
+
+
+ XXXX Xxxxxxxxx
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Xxxxxxxxx xx xxxxxxxx xxxxxxxxx xxxx xxxxxxx?
+xxxxxxxxx@xxx.xxx
+
+Xxxxxxxxx 1996 Xxx Xxxxxxxxxxxx, Xxx., 2550 Xxxxxx Xxx., Xxx. Xxxx, Xx 94043-1100 XXX. Xxx Xxxxxx Xxxxxxxx
+
+
+
+
+--=_AABrKQAAEFYyZVkC--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/11 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/11
new file mode 100644
index 00000000000..b4ebd12c599
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/11
@@ -0,0 +1,155 @@
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:52:58 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id OAA03135; Wed, 16 Oct 1996 14:52:57 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17074; Wed, 16 Oct 1996 14:51:58 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <326558FE.36FB@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:51:58 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: NC whitepaper - Read this
+Content-Disposition: inline; filename="JavaPlatformIntro.html"
+Content-Base: "http://labyrinth/demomail/javacomputin
+ g/finance/JavaPlatformIntro.html"
+Content-Type: multipart/mixed; boundary="=_AAAr5wAASWUyZVpO"
+X-Lines: 101
+Content-Length: 6156
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 128
+
+--=_AAAr5wAASWUyZVpO
+Content-Type: text/html; charset="us-ascii"; name="JavaPlatformIntro.html"
+
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:52:58 1996
+Return-Path:
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17074; Wed, 16 Oct 1996 14:51:58 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <326558FE.36FB@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:51:58 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: NC whitepaper - Read this
+Content-Disposition: inline; filename="JavaPlatformIntro.html"
+Content-Base: "http://labyrinth/demomail/javacomputin
+ g/finance/JavaPlatformIntro.html"
+Content-Length: 5295
+X-Sun-Content-Length: 5294
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 129
+
+
+
+
+
+ Xxx XXXX Xxxxxxxx
+
+
+
+
+
+
+
+
+
+
+ Xxxxxxx 1:Xxxxxxxxxxxx
+ Xxxxxxx 2:Xxx Xxxxxxxxx xx Xxxxxxx Xxxx Xxxxxxxxxx
+ Xxxxxxx 3:Xxx Xxxxxx xx. Xxxxxxx Xxxxxxxx: X Xxxx-Xxxxxxx Xxxxxxxx
+ Xxxxxxx 4:Xxx Xxxx Xxxxxxxx xxx Xxxxxx Xxxxxxxxxx
+ Xxxxxxx 5:Xxxxxxxxx Xxxx xxx xxx Xxxx Xxxxxxx xx xxx Xxxxxxx Xxxxx
+ Xxxxxxx 6:Xxx Xxxxxxxxxx Xxxxxxxxxxxx xxx Xxxxxxxxx Xxxxxxxx
+ Xxxxxxxx 1
+ Xxxxxxxxxxxx
+
+
+
+
+
+Xxxxxxxxxxxx
+Xxxxxxx Xxxx Xxxxxxxxx: Xxxx xxx Xxxxxxx
+Xxxx xxx xxxx xxx xxxxxxx, xxxxxxxxx xx xxxxxxxxx xxxxxxxxxxxxx xxx xxxxxxx xxxxxxxxxxxxx, xxxx
+xxx xxxx xx xxxxxxxxxx xxxx xxxx xx xxxxxxxxxxx, xx xxx xxxxxx/xxxxxx 'xxxxxxx xx xxxxx xxxxxxx'
+xxxxxxxxxxx xx xxxxx. Xxxxx xxxxxxx xxxx xxxxxxxx xx xxx xxxxxx xx xxxx xxxxxxxxxx xxx
+xxxxxxxxxxxxx xxxxxxxxxxx. Xxx xxxxxxxxxx xxxxxxxxxxx xxxxxxx xxxx xxxxxxx xx xxxxxx xxxxx xx
+xxxx xxxx-xxxxxxxx xxxxxxxxxx. Xxxxxxxxxxxxx xxxxxxxxxxx, xxxxxxx, xxxxxxx xxxx xxxxxxxx xxxx:
+'xxxxxxxx xxxxx' -
+x xxxxxxxxxx xxx xxx xx xxxxx xxxxxxxxx. Xxxxxxx xxxxxx xxxx xxxxx xx xxx
+xxxxxxx xx xxxx xxxxxxxxx xx xxxxxxxxxxx xxxxxxxxx, xxx xxxxxxxxxxxxx xxxxxxxxxx xxxxx x xxx
+xxxx xx xxxxx xxxxxx, xxx xxxxxxxxxxxxx xxx xxx xxxxxxxxxx.
+Xxxxxxxxx, xx xxxxxxx xxxxxxxxx xxxxxx xxx xxxxx xxxxx: xxxx xxxx xxxx xxxx x xxxxx, xxxxxxxxx
+xx xxxxxxx xxx xxxxxxx xxxxxx xxxx xx x xxxx xxxx xxxxxxxx xxxxxxx xxxx. Xxxx, xxxxxxx xxxx x
+xxxxxxxxxxxxx xx xxx xxxxxxxxxx xx xxxxxxx xxx xxxxxxxxxxx xxxxx xxxxxxx xx xxxx, xxx xxxxxxx x
+xxxxxxxx xxxxxxxxx xxxxx xxx xxxxxxx xx xxxxxxx, xxxx-xxxxxxxxxxx xxxxxxx xxxx xxx xxxxxx xx
+xxxxxxxxx xxxxxx xx xxxxxxxxxxx xxxxxxxxx.
+Xxxxxxxxxxxx, xxxxx xxxxxxxxx xxxxxxxxxxxxx xxxxxxxxxxx xxxx xxx xxx xxxxx xxxxxxx xxxxxxxxx xx
+xxxxxxxxx xx x xxxxxxxx xxxxxxx, xx xxxxxxxxx xx xxx xxxxx xx xxxxx xx xxx xxxxxx xxxxxxx. Xxxxxx,
+xxxx xxxx xxxx xxxxxxxxx xxxx x xxxxxx xx xxxxxxxxxxxxx, xxxxxxxxxxx xxxxxxxxx. Xx xxxxxxxxx
+xxxxxxxx, xxxx xx xxxxx XX 'xxxxxxx' (x.x. xxxxxxxx xxxxxxx, xxxx xxxxxxxxxx xxx xxxx xxxxxx
+xxxxxxx), xxxxxxxx xxxxxxxxxxx xxxxx, xx xxxxxxxxxx, xxxxxxxxx xxx xxxxxxxxx xx xxx xxxxxxx xxxx
+xxxxxxx xx xxxxxxxxx, xxxx xx xxxxxxxxxx xxxx, xxx xxxxxx xxxx xxxxxxxxxxx xxxxxxxxx xx xx xxxxx
+xxxx xxxxxxxxx xxxx, xx:
+
+xxxxxxxxxxxx xxxxxx xxxxxxx xxxxxxxxxxx
+xxxxxxxx xxxx xxxxxxxxxx xxxxxxxx xxx xxxxxx xxxxxxxx
+xxxxxxxx xxxxxxxx xxxxxxxxx xx xxxxx xxxxxxxx xxxxxxxxxxxx (xxxxxxx xxxxxxxxxx xx xxxxxxxxxxxxxx xxxxx xxx xxx xxxxxx xxxxxxxxxxxx)
+xxxxxxxxxxxx xxxxxxxx xxxx xxxxxx xxxxxxxxxx xxx xxxx xxxxxxxxxx xxxx xxxxxxxxxx
+xxxxxxxxxx xxxxxx, xxxxx xxxx xxxxxxxx xxxxxxx xxxxxxx xxxxxxxx xxxxxxxxxxx xxxxxxxx
+
+
+
+Xxxxxxx Xxxx Xxxxxxxxx: Xxxxxxx Xxx Xxxxxxxxxx
+Xxxxxxxxx xxxxxx xxxxxxxxxxxxx xxx xxx xxxxx xxxx xxxxxxxx xxxx xxxx xx xxxxxxxx xxx xxxxxxx
+xxxxxxx xx xxxxxx xxxxx xx xxx xxxx xx xxxx xxxxxxxxx xx xxxxxxxx xxxxxxxxxxxxxxxxx (x/x/x xxxxx
+xx xxxxx xxxxxxx), xxxxxx (xxxxx xxxx xxx) xxxxxxxxxx, xxxxxxxxxx xxxxxxx, xxxxxxxxxxxxx xxx
+xxxxxxx xxxxxxxxxxxx. Xx xxxx xx xxxxx xxxxxx, xxxxxxxxxxx xxxxxxxxxx xxxx xx xxxxxxxxxxx
+xxxxxxxx xx xxxxx xx xxxx xxx xxxxxxxxxx xx xxxxxxxxx xxxxxxx xxxxxxxxxx xxx xxxxxxxxxx xx
+xxxxxxx xxxxxxx xxxxx xx xxx xxxxxxx xxxx.
+
+Xxxx xxxxx xx xxxxxxxx xx xxxxxxxxxxx x xxxxxxxxx xxxxxx xx xxx-xxxxx xxxxxxxxx xx x xxx xx
+xxxxxxx xxxxxxxxx xxxxxx xxxxxxxxxx xxx xxxxxxxxxxxxx xxxx XX xxxxxxxxxxx. Xx xxxxxxxxx xxxx
+xxxxxxxxx xxxxxxxx, xxxx xxx xxxxxxxxx xx xxx 'xxxx xxxxxx'/xxxxxx xxxxx, xx xxxxxxxxxxx xxx
+xxx-xxxxx xxxxxxxxx, xxxxxxx xx xxx Xxxx xxxxxxxx, xxxxxxxx xxx xxxx xx xxxx xxxxxxxxx
+xxxxxxxx. Xxxxxxxxxxx, xx xxxxxxxx xxx xxxxxxx xxxxxxx xxx xxxxxx xxxxxxxxxxxx xx Xxxx xxxx xxxxxx xxxxxxxxxxxx xx xxxx xxxxxxxxxxx xxxxxxx xx xxxxxxx xxx xxxxxx xxxxx xxxxxxxxx. Xxxxxxx, xx xxxxx x xxxxxxx xxx xxxxxxxxxxxxx xxxxxxxxx xxxx xxxxxxxxxx xx xxx xxxxxxx xxxxxxxxxxx xxx
+xxxxxxxx xx xxx xxx xxxxxxxxxx xxx xx xxxxxxx.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Xxxxxxxxx xx xxxxxxxx xxxxxxxxx xxxx xxxxxxx?
+xxxxxxxxx@xxx.xxx
+
+Xxxxxxxxx 1996 Xxx Xxxxxxxxxxxx, Xxx., 2550 Xxxxxx Xxx., Xxx. Xxxx, Xx 94043-1100 XXX. Xxx Xxxxxx Xxxxxxxx
+
+
+
+
+
+
+
+
+--=_AAAr5wAASWUyZVpO--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/12 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/12
new file mode 100644
index 00000000000..4a1ef6ef05e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/12
@@ -0,0 +1,230 @@
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:54:19 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id OAA03140; Wed, 16 Oct 1996 14:54:18 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17077; Wed, 16 Oct 1996 14:53:19 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <3265594F.782B@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:53:19 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Netra NFS server info
+Content-Base: "http://labyrinth/demomail/netra-nfs/"
+Content-Type: multipart/mixed; boundary="=_AAB6lgAASFsyZVpO"
+X-Lines: 180
+Content-Length: 8783
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 130
+
+--=_AAB6lgAASFsyZVpO
+Content-Type: text/html; charset="us-ascii"
+
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:54:19 1996
+Return-Path:
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17077; Wed, 16 Oct 1996 14:53:19 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <3265594F.782B@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:53:19 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Netra NFS server info
+Content-Base: "http://labyrinth/demomail/netra-nfs/"
+Content-Length: 8056
+X-Sun-Content-Length: 8055
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 131
+
+
+
+
+
+
+
+Xxxxx XXX Xxxxxx
+
+
+
+
+
+
+
+
+
+
+
+
+ Xxxxx XXX Xxxxxx
+
+ Xxxxx Xxxxxxx
+ Xxxxxxxx & Xxxxxxxx
+ Xxxxx
+ Xxxxxxxxxxxxxx
+ Xxxxxx Xxxxxxxxxx
+ Xxxxxxxxx & Xxxxxxx
+
+ Xxxxx Xxxxxx
+ Xxxxxx Xxxxxxxx
+
+
+
+
+
+
+
+XxxxxXX XXXXX Xxxxxx
+Xxx xxxxxxxx, xxxxxxxxxx, xxxxxxxx, xxxx xxxx xxxxxx xxxxxxxx xxx xxxxxxxxxx xxx xxxxxxxxxxx.
+Xxxxxxxx xx xx xxx xxxxx xxx xx xx xxxx.
+
+
+Xxxx xxx xxxxxxxx xxxxxxxx xx xxxxxxx xxxxxxxxxx xxx xxx xxxxx xxxxxx xx
+xxxxxxxxxxx xxxxxxxxx, xxxx xxxxxxxxx xxxxx xxx xxxxxxxxxxxxx xxxxx
+xxxxxxx-xxxxxxx xxxxxxx xx xxxxxxxxxxxx xxxxxx xxxx xxxxxxx xxxxx. Xxxxxx xxx
+xxxxxxx xx xxxxxxxx xxx xxx xxxxx xxxx, xxx xxxxxxxx xx xxxxxxx xx xxxxx xx
+xxxx xxxxxx, xxxx xxxxx xxxxxxxxxxxx xxxx xxxxxx, xxx xxxx xxxxx xxxxxx xxxx
+xxxxxxxxxx. Xxx, xxx xxxxxxx xx xxxx xxxxxxx xxxxxxxxx xxx xxxxxxxx xx xxx
+xxxxxxx xxxx xxxxxx (XXXXX) xxxxxxxx, xxx xxxx xxxx'xx xxxxxxx xxx: x
+xxxx-xxxxxxxxx, xxxx-xx-xxxxxxxxxx, xxxxxx xxxxxxxx, xxxx xxxxxxxxx XXX
+xxxxxx xxxxxxxx xxxx xx xxxxx xxx xxxxxxxxxx xxx xxxxxxxxxxx.
+
+Xxx Xxxxx XXXXX xxxxxx xx x xxxxxxxx xxxxxxxx/xxxxxxxx xxxxxx xxxxxxxx xxxx
+xxxxxx xxxxxxxx-xxxxxxx xxxxx/xxxxxxxxxxx xxxxx xxxxxx xx xx xxxxxxxxx
+xxxxxxxxxxxx xxxxx xxx XXX xxxxxxx. Xx xxxxxxxxxx xxxxxxxx xx XXX xxxxxxxxx,
+xxx xxxxxxx, xxxx-xxxxxxxxx Xxxxx XXX xx xxxxxx xx xxxxxxx xxx xxxxxxxx, xxx
+xxxxxxxx xxxxxxxx xxxxxxxxxxx xxx xxxxxxxxxxx.
+
+Xxxxx XXX xx xxxxxxxx xxx xxxx-xxx-xxxx xxxxxxxxxx -- xx'x xx xxx xxxxxxx xx
+xxxx xxxx 30 xxxxxxx, xxx xxx xx xxxxxx xxxxxxxxxxxx xxxx xxx XX, XXXX &xxx
+xxxxxxxxxxx, xx Xxxxxxxxx &xxx xx xxxx xxxxxxx, xxxxx x xxxxxxxx Xxx xxxxxxx.
+Xxxx xxxxxx xxxx xxxxxx xx xxxxxxx xxxxxxxx, xxx xxxxxxx xx xxxx xxxxxx,
+xxxxx xxx xxx xx xxx xxxxxxxxxxx xxxx xxxxxxxxx xxx xx xxxxxxxxxx xx xxxxx xx
+xx xxxxx xxx xxxxx. Xx xxxxxxxx xx xxx xxxxxx XXXX xxxxx, xxx xxx xxxxx xxx
+xxxxxx'x xxxxxx xx xxx XXX xxxxx xx xxxxx, xxxxx xxx xxxx xx xxxx xxx
+xxxxxxxxx XX xxxxxxx, xxx xxxx, xxx xxxxxxxxx xxxxxx.
+
+Xxx xxxx xxxxxxx xx xxxxxxxx xx xxxxxxxx xxxx xxxxx xxxxx xxxxxxxxxxxx. Xxx
+xx xxxxxxx xxxxxxxx xxxxxxxxxxxxxx, x xxxxxx xxxxxxxxxx xxxxx xxx xxxxx xxx
+xxxxxxxxxxxxx xxxxxxx xxxx xxx xxxxx.
+
+Xxxxx xxx xxxx xxxxxxxxxxx - xxxx xxx xxxxxx xx.
+X xxx-xxxx xxxxxxxx xxxx XxxXxxxxxx XX, XXXX5 xxxxxxxxxx, xxx xxx
+xxxxxxxxxxx, xxxxxxxxxxxx, xxx xxxxxxxxxxxxxx (XXX) xxxxxxxx xxxx xxxx xxxx
+Xxx xxxxxxx xxx xxxxxxxx xxxxxxx xxxxxx xxxx xxxx xx xxxxxxxxxx xxxx xxx
+xxxxx xxx xxxx xx. Xx xxxx, xxxx xxx xxxxx-xx XxxxxXxxxx xxxxxxxx, Xxxxx XXX
+xxxxxxxx xxxxxxxx xxxx xxxx xx xxxxxxx xxxx xxxx x xxxx xxxxx -- xxxxx xx
+xxxx xxxxxxxxxx xxxx xxx xxxxxxx xxxxxxxx xxxxxxxx xxxxx xxxxxxx xxxxx.
+XxxxxXxxxx xxxxxxxxxxxxxx xxx xxxxxxxxxx xxx xxxx xx x "xxxxx" XXXX
+xxxxxxxxxxxxx xxxx x xxxxxx xxxxxxxxxx, xxxxxxxxx xxxxxx xxxxxxxxxxx xxx
+xxxxxxxxxx xxxx xxxxxxxxxxxxxx.
+
+Xxxx'x xxxx, Xxxxx XXX xxxxxxxx xx xxxxxxxx XXX xxx xxxxxxxx xxxxxxxx xx xxx
+xxxxx xx x xxxxx xxxxxxx. Xxx xxx xxxxxx xxxxxxxxxxxxx xxxxx xx xxxx xxxxx xx
+xxxxxxxx. Xxx xxxx xxx xx x xxx xxxx-xxxxx xxx xxxxxxxxxx xxxxxx
+xxxxxxxxxxxxxx.
+
+Xxx xxx xxxxxxxxxxxxx xxx xxxx -- xxx xxxx xxx xxx'x.
+
+Xxxxx xx xxx xxxxxx, xxxxxxxx, xxxxxx XxxxxxxXX xxxxxxxxx xxxxxx xxxx
+xxxxxxxx xxx xxxxxxx xxxxxxxxxx xxxxxxxxxxx xx xxx xxxxxxxx, xxx XxxxxXxxxx
+xxxxxxxx xx Xxxxx XXX xxxxx xxxx xxxxxxxxxx xxx xxxxxxxxxxx xxxx xxx
+xxxxxxxxxxxxx xxxx xxxx. Xx xxx xxx xxxxxxxxxx xxxx XXXX xxxxxxxx, xxx xx
+xxxxxxxxxxx xx xxxx xxx xxxxxxxxxx xxxx XXX xxxxxxxxxxx.
+
+XXXX xxxxxxx xxxxx xxx xxx xxxxxxx Xxxxx XXX xxxx x xxxxxx xxxxxxxxxx-xxxx
+xxxxxx xxxxxxx, xxxxxxxxx XxxXxx XxxxxxxXX, XxxxXxxxXX, xxx xxxxxx.
+XX-XXX &xxx xxxxxx xxxxxxxx xxxxx xx xxxxx xx xx xx xxxx XX-XXX xxxxxxxxxxxx.
+Xxx xx xxxxxxxx xxxxxxxx xx xxxx xxxx-xx xxxxxx xxxx xxxx.
+
+Xxxxx xxxx Xxxxx XXX, Xxx xxx xxxxxxxxx xxxxx XXX xx xxx xxxx xxxx, xx
+xxxxx'x xxxx xxxxxx xxxxxx. Xxxxx XXX xxxxxxxx xxxx XXX X2 xxx X3 xxxxxxx, xx
+xxxx xxxxxxxxxx xx X2 xxxxxxx xx xxxxxxxxx xxxx xx xxx xxxxxxx xx X3
+xxxxxxxx.
+
+Xxxxxxxx xxxxxx xx xx xxx xxxxxxx xxx.
+
+Xxxx Xxxxx XXX, xxx'xx xxxxxxx xxx xxx xxxx xxx xxxxxxxxxxxxx xxx xxxx -- xxx
+xxx xx xxxxxx, xxxxx xx'x xxxxx xx xx xxxxx xxx xx xxx xxx -- xxxx 64XX
+xxxxxx, 8XX xxxxxxx, XXX, xxxxxx xxxxx, XX XXX, Xxxxx XXX XxxxxXxxxx
+xxxxxxxx, x 10Xxxx Xxxxxxxx xxx x 10/100Xxxx Xxxxxxxx xxxxxxx xxxxxxxxx. Xx'x xxxx xxxxxx
+xxxxxxxxxx, xxxx x xxxx-xx-x-xxxx xxxxxxxxx xxxxxxxxxxxxx xxxxxx. Xxx xx xxxx
+xxxx xxxxxxxxxx xx xxxxxx xxxxxxxxxx, xx xxx xxx xxxxxxx xxxxxxx xxxxx xxx
+xxxx-xxx-xxxx xxxxx. Xxxx xxxxx xxxx xxxxxxxxxx xx Xxxxx XXX xx xxxxxxxxx
+xxxx xxxx xxx xxxxxx.
+
+Xx xxxx xxxxx xxxxx xxxx XXX xxxxxxxxxx xxxxxx xx xxxxxxx xx x xxxxxx
+xxxxxxxx xxxxxxxx xxx xxxx xxxxxxx. Xx xxxx xxxxx xxxxx xxxx xx xxxxx xxxx
+xxx xxxxxxx xxxx xxxxxxx xxx XXX xx xxx xxxxx xxxxx. Xx xxx xxxx xxx xxx
+xxxxx xx Xxxxx XXX.
+
+Xxx Xxxxx XXX Xxxxxx xxxxxxxxxx xxxxxxxxxx xxxx XX xxx xxxxxxxxxx xxxxxxxxxx
+xxx xxxxxxxxxxx, xxxxxxxxx xxxxxxxxxxxx xxxxxxx xxxx xxxxxxx.
+
+
+
+
+
+
+
+
+
+Xxxxxx Xxxxxxxxxxxxxx
+
+
+
+Xxxxxx Xxxxxx Xxxxxxxxxxxxxx
+Xxxx xxx Xxx xxxxxxx xxxxxxxxx, xxx Xxxxx XXX xxxxxx xxxxxxxx xxxxxx xxxxxx
+xxxxxxxxxxxxxx -- xxxxxx xx xxx xxxxxxxx'x xxxx xxxxxx xxxxxxxxxx xxxx
+xxxxxx.
+
+
+
+
+
+
+
+Xxxx Xxxxxxxxxxxxxx
+
+
+
+Xxxx, Xxx-xxxxx Xxxxxxxxxxxxxx
+Xxxxx x xxxxxxxxx xx XXXX xxxxx xxxxx xxxx x xxxxxx xxxxxxxxxx, XXX
+xxxxxxxxxxxxxx xxx xxxx xxxxxxxxxxxx xxxxxxxxxx. Xxxxx'x xx xxxx xx xxxxxxxx
+xxxxxxx XXXX xxxxxxxx.
+
+
+
+
+
+
+
+
+
+
+
+
+Xxx xx xxxx
+
+ XXXX'X XXXXXXXXX | XXXXXXX
+
+ Xxxxxxxxx 1996 Xxxxxx xxx/xx xxx xxxxxxxxxx. Xxx xxxxxx xxxxxxxx.
+
+
+
+
+
+
+
+
+--=_AAB6lgAASFsyZVpO--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/13 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/13
new file mode 100644
index 00000000000..23f7952b549
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/13
@@ -0,0 +1,31 @@
+From demo@labyrinth.Eng.Sun.COM Wed Oct 16 14:55:55 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id OAA03144; Wed, 16 Oct 1996 14:55:54 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA17080; Wed, 16 Oct 1996 14:54:55 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <326559AF.5693@labyrinth.eng.sun.com>
+Date: Wed, 16 Oct 1996 14:54:55 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: press release
+Content-Transfer-Encoding: 7bit
+X-Lines: 6
+Content-Type: text/plain; charset="us-ascii"
+Content-Length: 234
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 132
+
+The press release on the Netra product is up on my
+local Web server. Look at
+http://labyrinth/demomail/netra-nfs/pr.netra-nfs.html
+
+Please read it and let me know what you think. Once I
+get your feedback we can push it externally.
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/14 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/14
new file mode 100644
index 00000000000..3d767acc065
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/14
@@ -0,0 +1,280 @@
+From demo@labyrinth.Eng.Sun.COM Mon Oct 14 12:24:03 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id MAA01982; Mon, 14 Oct 1996 12:24:02 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA06872; Mon, 14 Oct 1996 12:23:01 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <32629315.1B9C@labyrinth.eng.sun.com>
+Date: Mon, 14 Oct 1996 12:23:01 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Read this first
+Content-Type: multipart/mixed; boundary="------------265112906033"
+X-Lines: 259
+Content-Length: 8551
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 133
+
+--------------265112906033
+Content-Type: text/plain; charset="us-ascii"
+X-Sun-Content-Length: 53
+
+Be sure to read the attached file before proceeding.
+
+--------------265112906033
+Content-Type: text/plain; charset="us-ascii"; name="README"
+Content-Disposition: inline; filename="README"
+X-Sun-Content-Length: 8207
+
+ XXXXXX: Xxx Xxxx Xxxxxxxxxx Xxx
+
+
+Xxxx 1.0.2 xxxxxxx xx xxx Xxxx Xxxxxxxxxx Xxx (XXX) xxxx xxx
+xxxxx xxxxxxx xxxx xxxxxxx xx xxx 1.0 Xxxx xxxxxx XXX.
+
+
+Xxx XXX xxxxx xxx xx:
+---------------------
+ - Xxxxxxx xxxxxxx xxxx xxxxxxx xx xxx xxxxx xxxxxx XXX
+ - Xxxxxx xxxxxxx xxxx xxx xx xxx Xxxx-xxxxxxx xxxxxxxx
+ - Xxxxxxx Xxxx xxxxxxxxxxxx
+ - Xxxxxxxxxx xxxx xxx xxxxxxxx XXX (xxx x xxxxxxxxx
+ xxxxxxx-xxxx xxxxxxxx)
+
+
+Xxxxxxxxx xxxxxxxxx
+-------------------
+Xxx XXX xx xxxxxxxxx xxx XXXXX Xxxxxxx, x86 Xxxxxxx, Xxxxxxx XX,
+Xxxxxxx 95, xxx Xxx.
+
+
+Xxx XXX xxxxxxxx:
+-----------------
+ - xxxxxxx.xxx
+ XX XXX XXXXX XXXX XXXX! Xx xx xxxxxx xx xxx xxxxxxxx xxx
+ xxxxxxxxxxx.
+
+ - xxx.xxx
+ Xxxx xx x xxx xx xxxxxx xxxxx xxxx xxx xx xxxxxxxx xx
+ xxxxxxx. Xxx xxx xxx x xxxx xxxx xx xxx xxxxxxx xxxxxxx
+ xx xxxxx xxxx xxx://xxx.xx.xxx/xxx/xxxxxxxxx/xxx/XXX32 .
+
+ - Xxxx Xxxxxx Xxxxxx
+ xxx xxxxxxx xxx xxxxxxx xxxxxxx
+
+ - Xxxx Xxxxxxxx XXX xxx Xxxxxxxxx Xxxxxxxx,
+ xx XXX (xxxx.xxxxx.xxxxx) xxx xxxxxxxxx
+ xx x xxxxxxx-xxxx xxxxxxxx xxxx xxxx xxx XXX
+
+ - Xxxx Xxxxxxxx
+
+ - Xxxx Xxxxxxxxxxx
+
+XXXX: Xxxx xxxxxxx xxxx XXX xxxxxxx x Xxx xxxxxxx.
+
+
+Xxxx xx xxx xxxxx xxxxxx XXX?
+------------------------------
+Xxx xxxxx xxxxxx XXX xxxxxxxx xx xxx xxxxxxxxx xxxxxxxx: xxxx.xxxx,
+xxxx.xxxx, xxxx.xx, xxxx.xxx, xxxx.xxx, xxxx.xxx.xxxx, xxxx.xxx.xxxxx,
+xxx xxxx.xxxxxx. Xx xxx xxx xxxxxxxx xxx xxxxxxxxx xx xxxxxxxxxx
+xxxx XXX.
+
+
+----------------------------------------------------------------------
+XXXXXXXXX: Xxxxxx xxxx xxxx xxx xxxxxxxxxx xxx Xxxxxxxxx xxx Xxxxxxx
+xxxxxxxxxxx (xx xxx xxxx xxxxx XXXXXXXXX) xxxxxx xxxxx xxxx xxxxxxx.
+----------------------------------------------------------------------
+
+
+Xxx xxxx xx xxxx xxxxxxxx xxx xxx xxxxxxxxx xxxxxxxx:
+
+- Xxxxx xx xxxx xxxx xxxxxxxxxxx
+- Xxxxxxx xxxxxxx xxxx xxx Xxxxxx Xxxxxx
+- Xxx XXXXXX xxx
+- Xxxxxxxxx xxxxxxxx xxxx XXX
+
+
+Xxxxx xx xxxx xxxx xxxxxxxxxxx
+------------------------------
+Xxxx xxxx xx xxx xxxx xxxxxxxxxxxxx xxxxxxxx xx xxxx xxxxxxx. Xxx
+xxxx xx xxx xxxxxxxxxxx xxx xxxx xx xx xxx xxxxxxx:
+
+ xxxx://xxxx.xxx.xxx/xxxxxxxx/XXX/
+
+Xx xxxxxxxx xxx xxxxxxxxx:
+
+- Xxxxxxxxxx xxxxx xxxxxxxxx
+- Xxxxxx xxxxxxxx (xxxx xx xxxxx xxx xx xxxx xxxxxxx, xx xxxx)
+- XXX xxxxxxxxxxxxx
+- Xxxxxxxxxxxxx xxx xxx Xxxx xxxxxxxxxxx xxxxx (xxxxxxxxx xxxx,
+ xxxxx, xxx xxx)
+- Xxx xxxxxx Xxxx Xxxxxxxx Xxxxxxxxxxxxx
+- Xxxxxxx xxxxxxxx xxxxxxxxxxx
+
+Xx xxx xxxx xxxxxxxxx, xxxxxxxx, xx xxxxxxxx:
+
+1. Xxxxx xxx xxx XXX xx:
+
+ xxxx://xxxx.xxx.xxx/xxxxxxxx/XXX/xxx.xxxx
+
+2. Xxxxxx xxxxxx x xxx xxxxxx, xxxxxx xxxxx xxx xxxxx xxxx xx:
+
+ xxxx://xxxx.xxx.xxx/xxxxxxxx/XXX/1.0.2/XxxxxXxxx-XXX.xxxx
+
+ Xxxx xxx xxxxxxx xxxxxxxxx xxx xxxxxxxxxxxx xx:
+
+ xxxx://xxxx.xxx.xxx/XxxxxxxXxXxxxx/XxxXxxxxx.xxxx
+
+3. Xxx xxxxxxxxx xxxx.xxxx.xxxx xxx xxx Xxxx/XxxXxxx xxxxxxx xxxxx
+ xxx xxxxxx xxxxxx xxx xxxxxxx xxxxxxxxx xxx xxxxxxxxxx xxxxxxxxxxx
+ xxxx xxxxx Xxxx xxxxx. Xxx xxxx://xxxx.xxx.xxx/xxxx.xxxx xxx
+ xxxxxxxxxxx xx xxxxxxxxx xxx xxxxxxxxx xxx xxxxxxx xxxxx.
+
+4. Xxxxx xxxxxxxxx xxx xx xxxx xx xxxx@xxxx.xxx.xxx.
+
+
+Xxxxxxx xxxxxxx xxxx xxx Xxxxxx Xxxxxx
+--------------------------------------
+Xxxx xxx xxx xxxxxxxx xx xxxxx xxx Xxxxxx Xxxxxx:
+
+ xxx/xxxxxxxxxxxx xxxx/XxxxxXxxxxx/xxxxxxx1.xxxx
+ xxx/xxxxxxxxxxxx xxxx://xxxx.xxx.xxx/xxxxxxx/xxxxxxx/XxxxxxxXxxx/xxxxxxx1.xxxx
+ (Xx xxx XX, xxx "xxx\xxxxxxxxxxxx" xxxxxxx xx "xxx/xxxxxxxxxxxx".)
+
+Xxx xxxxxxxx xx x xxxxxxxx xx XXX xxxx xxxxxx xx xx XXXX xxxx xxxx
+xxxxxxxx xxx xx xxxx XXXXXX xxxx. Xxx Xxxxxx Xxxxxx xxxxx xxx XXXXXX
+xxxx xx xxx XXXX xxxx xxx xxxx xxx xxxxxxx xx xxxxxxxxx xx xxx xxxx
+(xx xxxxxxxx xxxxxxx).
+
+
+Xxx XXXXXX xxx
+--------------
+Xxx XXX xxx xx xxxxxxxx xxxxxxxx xx xxxx, xxxxxxxx xx xxx XXXXXX xxx.
+Xxxx xx xx xxxxxxx xx x xxxxxx XXXXXX xxx:
+
+
+
+Xxxx xxxxx xxx xxxxxx xx xxxxxxx xx xxxx xxx xxxxxx xxxxx xxxxxxxx
+xxxx xx xx XxXxxxxx.xxxxx (xx xxx xxxx xxxxxxxxx xx xxx xxxxxxx XXXX
+xxxxxxxx), xxx xx xxx xxx xxxxxxx xxxx xx xxx xxxxxx xx 100 xxxxxx
+xxxx xxx 140 xxxxxx xxxx.
+
+Xxxx'x x xxxx xxxxxxx xxxxxxx xx xx XXXXXX xxx:
+
+
+
+
+
+ Xx xxx xxxx xxxxx x Xxxx-xxxxxxx xxxxxxx,
+ xxx xxxxx xxx xxxxxxx xxxx xxxxxxx xx xxxx xxxxxxxxx.
+
+
+
+
+Xxxx xxxxx xxx xxxxxx xx xxxxxxx xx xxxx xxx xxxxxx xxxxx xxxxxxxx
+xxxx xx xx xxx XXX
+xxxx://xxxx.xxx.xxx/xxxxxxx/xxxxxxx/XxxxxxxXxxx/XxxxxxxXxxx.xxxxx,
+xx xxx xxx xxxxxxx xxxx xx xxx xxxxxx xx 400x75 xxxxxx, xxx xx xxxxx
+xxx xxxxxx xx xxx xxxxxx xx xxx xxxx. Xxx xxxxxx/xxxxxxx xxxx xxxx
+xxx xxx xxxxxx'x "xxxx" xxxxxxxxx (xxxxx xxxxxxxxxx xxx xxxx xxxx
+xxxxxx xxxxxxxx) xx xx "Xxxx xx xxx Xxxxxx Xxxxxx." Xx xxx xxxx xx
+xxxxxx xx x xxxxxxx xxxx xxx'x xxxxxxx Xxxx xxxxxxx, xxxx xxx xxxxxxx
+xxxx xxxxxx xxx XXXXXX xxx XXXXX xxxx, xxxxxxxxxx xxx XXXX xxxxxxx
+xxx xxx xxxx. Xxxx-xxxxxxx xxxxxxxx
+*xxxxxx* xxxx XXXX.
+
+Xxxx'x xxx xxxxxxxx xxxxxx xxx xxx XXXXXX xxx:
+
+ '<' 'XXXXXX'
+ ['XXXXXXXX' '=' xxxxxxxxXXX]
+ 'XXXX' '=' xxxxxxXxxx
+ ['XXX' '=' xxxxxxxxxXxxx]
+ ['XXXX' '=' xxxxxxXxxxxxxxXxxx]
+ 'XXXXX' '=' xxxxxx 'XXXXXX' '=' xxxxxx
+ ['XXXXX' '=' xxxxxxxxx]
+ ['XXXXXX' '=' xxxxxx] ['XXXXXX' '=' xxxxxx]
+ '>'
+ ['<' 'XXXXX' 'XXXX' '=' xxxxxxXxxxxxxxx1 'XXXXX' '=' xxxxx '>']
+ ['<' 'XXXXX' 'XXXX' '=' xxxxxxXxxxxxxxx2 'XXXXX' '=' xxxxx '>']
+ . . .
+ [xxxxxxxxxXXXX]
+ ''
+
+'XXXXXXXX' '=' xxxxxxxxXXX
+ Xxxx xxxxxxxx xxxxxxxxx xxxxxxxxx xxx xxxx XXX xx xxx xxxxxx --
+ xxx xxxxxxxxx xxxx xxxxxxxx xxx xxxxxx'x xxxx. Xx xxxx xxxxxxxxx
+ xx xxx xxxxxxxxx, xxxx xxx xxxxxxxx'x XXX xx xxxx.
+
+'XXXX' '=' xxxxxxXxxx
+ Xxxx xxxxxxxx xxxxxxxxx xxxxx xxx xxxx xx xxx xxxx xxxx xxxxxxxx
+ xxx xxxxxx'x xxxxxxxx Xxxxxx xxxxxxxx. Xxxx xxxx xx xxxxxxxx xx
+ xxx xxxx XXX xx xxx xxxxxx. Xx xxxxxx xx xxxxxxxx.
+
+'XXX' '=' xxxxxxxxxXxxx
+ Xxxx xxxxxxxx xxxxxxxxx xxxxxxxxx xxx xxxx xxxx xxxxxx xx
+ xxxxxxxxx xx xxx xxxxxxx xxxxxxxxxxx xxx XXXXXX xxx xxx xxx'x
+ xxx Xxxx xxxxxxx.
+
+'XXXX' '=' xxxxxxXxxxxxxxXxxx
+ Xxxx xxxxxxxx xxxxxxxxx xxxxxxxxx x xxxx xxx xxx xxxxxx xxxxxxxx,
+ xxxxx xxxxx xx xxxxxxxx xxx xxxxxxx xx xxx xxxx xxxx xx xxxx (xxx
+ xxxxxxxxxxx xxxx) xxxx xxxxx.
+
+'XXXXX' '=' xxxxxx 'XXXXXX' '=' xxxxxx
+ Xxxxx xxxxxxxx xxxxxxxxxx xxxx xxx xxxxxxx xxxxx xxx xxxxxx (xx
+ xxxxxx) xx xxx xxxxxx xxxxxxx xxxx, xxx xxxxxxxx xxx xxxxxxx xx
+ xxxxxxx xxxx xxx xxxxxx xxxxxx xx.
+
+'XXXXX' '=' xxxxxxxxx
+ Xxxx xxxxxxxx xxxxxxxxx xxxxxxxxx xxx xxxxxxxxx xx xxx xxxxxx.
+ Xxx xxxxxxxx xxxxxx xx xxxx xxxxxxxxx xxx xxx xxxx xx xxxxx xxx
+ xxx XXX xxx: xxxx, xxxxx, xxx, xxxxxxx, xxxxxx, xxxxxxxxx,
+ xxxxxxxx, xxxxxx, xxxxxxxxx.
+
+'XXXXXX' '=' xxxxxx 'XXXXXX' '=' xxxxxx
+ Xxxxx xxxxxx xxxxxxxxxx xxxxxxx xxx xxxxxx xx xxxxxx xxxxx xxx
+ xxxxx xxx xxxxxx (XXXXXX) xxx xx xxxx xxxx xx xxx xxxxxx (XXXXXX).
+ Xxxx'xx xxxxxxx xxx xxxx xxx xx xxx XXX xxx'x XXXXXX xxx XXXXXX
+ xxxxxxxxxx.
+
+'<' 'XXXXX' 'XXXX' '=' xxxxxxXxxxxxxxx1 'XXXXX' '=' xxxxx '>' . . .
+ Xxxx xxx xx xxx xxxx xxx xx xxxxxxx xx xxxxxx-xxxxxxxx xxxxxxxxx.
+ Xxxxxxx xxxxxx xxxxx xxxxxxxxxx xxxx xxx xxxXxxxxxxxx() xxxxxx.
+
+
+Xxxxxxxxx xxxxxxxx xxxx XXX
+---------------------------
+Xxxx xxxxxxx xxxxxxxx xxx Xxxx Xxxxxxxx (XXX), xx xxxxx-xxxxxxx
+xxxxxxxxx xx x xxxxxxx-xxxx xxxxxxxx xxx Xxxx xxxxxxx. Xx xx
+xxxxxxxx xx xxxx xxx Xxxx Xxxxxxxx XXX, xxxxx xx xx xxx xxxxxxx
+xxxx.xxxxx.xxxxx. Xx xxxx xxxxxxx xx xxxxxxx xxxx xxxxxxxx xx
+xxx xxxxxxxx XXX.
+
+Xxx xxx xxxxx xxxxxxx xxxxx xxx -xxxxx xxxxxx xx xxxxxxxxxxxx.
+Xxxx xxxxxxxxx xxxxxxx, xx'x xxxx xx xxxxxx xxxxxxxxxxxx xxxx
+xxx xxxxxxxxx xxxx xxxxxxxx xxx xxxxxx'x XXXX xxxx. Xxx xxxxxxx,
+xx Xxxxxxx:
+
+ xx xxxx/XxxXxxXxx
+ ../../xxx/xxxxxxxxxxxx -xxxxx xxxxxxx1.xxxx
+
+Xx xxx XX:
+
+ xx xxxx\XxxXxxXxx
+ ..\..\xxx\xxxxxxxxxxxx -xxxxx xxxxxxx1.xxxx
+
+Xxx xxx xxxx xxxxxxxxxxxxx xx xxx xxxxxxxx xxx xxx XXX xx:
+
+ xxxx://xxxx.xxx.xxx/xxxxxxxx/XXX/xxxxxxxxx/
+
+
+--------------265112906033--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/15 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/15
new file mode 100644
index 00000000000..fe5734ee3d8
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/15
@@ -0,0 +1,28 @@
+From demo@labyrinth.Eng.Sun.COM Sat Oct 12 10:36:59 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id KAA01685; Sat, 12 Oct 1996 10:36:58 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA04264; Sat, 12 Oct 1996 10:35:55 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <325FD6FB.59E0@labyrinth.eng.sun.com>
+Date: Sat, 12 Oct 1996 10:35:55 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: hardware
+Content-Transfer-Encoding: 7bit
+X-Lines: 3
+Content-Type: text/plain; charset="us-ascii"
+Content-Length: 104
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 134
+
+If your group is in need of more hardware browse
+over to www.sun.com/sparc/ and pick out what
+you want.
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/16 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/16
new file mode 100644
index 00000000000..16650bc374b
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/16
@@ -0,0 +1,164 @@
+From demo@labyrinth.Eng.Sun.COM Mon Oct 14 16:59:36 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id QAA02099; Mon, 14 Oct 1996 16:59:34 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA07482; Mon, 14 Oct 1996 16:58:34 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <3262D3AA.7CCD@labyrinth.eng.sun.com>
+Date: Mon, 14 Oct 1996 16:58:34 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: Integrating Native Methods into Java Programs
+Content-Type: multipart/mixed; boundary="------------689259C75BFE"
+X-Lines: 143
+Content-Length: 5269
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 135
+
+--------------689259C75BFE
+Content-Type: text/plain; charset="us-ascii"
+X-Sun-Content-Length: 317
+
+This is the information on native methods in Java I was telling
+you about. It is possible to do what you want, but I would
+strongly suggest you rethink your options. Your approach defeats
+the entire "Write once, run anywhere" philosophy behind Java.
+
+http://www.javasoft.com/books/Series/Tutorial/native/index.html
+
+--------------689259C75BFE
+Content-Type: text/html; charset="us-ascii"; name="index.html"
+Content-Disposition: inline; filename="index.html"
+Content-Base: "http://www.javasoft.com/books/Series/T
+ utorial/native/index.html"
+X-Sun-Content-Length: 4571
+
+
+
+
+
+
+Xxxxxxxxxxx Xxxxxx Xxxxxxx xxxx Xxxx Xxxxxxxx
+
+
+
+
+
+
+
+
+Xxxxx xx Xxxxxxxx
+
+
+
+
+
+
+
+Xxxxxxxxxxx Xxxxxx Xxxxxxx xxxx Xxxx Xxxxxxxx
+
+
+
+
+X xxxxxx xxxxxx xx x Xxxx xxxxxx (xxxxxx xx xxxxxxxx
+xxxxxx xx x xxxxx xxxxxx) xxxxx xxxxxxxxxxxxxx xx xxxxxxx xx
+xxxxxxx xxxxxxxxxxx xxxxxxxx xxxx xx X. Xxx xxxxxxx xx xxxx
+xxxxx xxxx xxx xxx xx xxxxxxxxx xxxxxx xxxxxxx xxxx xxxx Xxxx
+xxxx.
+
+Xxxx xxxxxxxxxxx xxxxxxxxxxx xxxxxx xxxxxxx xx xxx
+xxxxxx xxxxxxx!
+
+Xxxx xx X++ xxxxxxxxxxx: Xxxx xxxx xxxxxxxxx
+xxx Xxxx xxxxxxxxxxx xxxxxxxxx X xxxxxx xxx xxxxxx xxxxx, xxxxx
+xxxxxxx xxx xxxx xxx xxxxxxxxxxx X xxxx xxxx Xxxx xxxxxxxx.
+Xxx xxx xxxxxxxxx X++ xxxx xxxx xxxx Xxxx xxxxxxxx xxxxx xxxxx
+X xxxxxx xxx xxxxxx xxxxx. Xxx
+Xxxxx X++ xx Xxxxxx Xxxxxx Xxxxxxxxxxxxxxx
+xxx xxxxxxxxxxx (xxxx xxxx xxxx xxxx xxxxx xxxxx xxx'xx xxxx
+xxxx xxxxxxx xx xxxx xxxxx).
+
+
+
+XXXXXXX! Xxx xxxxxxxxxxx xxxxxxxxx xxx xxxxxxxxxxxx
+xxxxxx xxxxxxx xx Xxxx xx xxxxx xxxxxxxxxxxx. Xxx xxxxx xxxxxxxxxx
+xx xxxx xxx xxxx xxx xx xxxx xxxxxxxxx xxxx xxxx xxxx xxxxxx xx xxxxxx
+xxxxxxxx xx Xxxx. Xxx xxxxxxxx xxx xxxxxxxxxxx xxxxxxxxx xxxx xxxxxxx
+xxx XXX 1.0 xxxxxxx.
+
+
+
+
+
+
+
+Xxxx Xx Xxxx
+
+xxxxx xxx xxxx xx xxxx xxxxxxx x xxxxxx xxxxxxx (xxx "Xxxxx Xxxxx!" xx
+xxxxxx xxxxxxx) xx xxxxxxxxxx xxx xx xxxxx, xxxxxxx, xxx xxx x Xxxx xxxxxxx
+xxxx xxxxxx xxxxxxx.
+
+
+
+
+
+Xxxxxxxxxxxx Xxxxxx Xxxxxxx
+
+xxxxx xxx xxx xx xxxxxxxxx xxxx xxx Xxxx xxxx xxx xxx xxxxxx xxxxxxxx
+xxxx xx x xxxxxx xxxxxx. Xxxx xxxxxx xxxxxxxx xxxxxxxxxxx xxxxx xxxxxxx
+xxxxxxxxx xx xxxxxxx xxxx xxxxx xxxx x xxxxxx xxxxxx xxx xxxxxxxxx xxxxxx
+xx xxxxxxx xxxx xxxxx xxxx x xxxxxx xxxxxx. Xxxx xxxxxx xxxx xxxxxxxxx
+xxxx xxxxxx xxxxxxxxx xxxx xxxx xxxxxx xxxxxxxx xxxx xxx xxx xx xxxxxx
+Xxxx xxxxxxx xxx xxxxx xxxxxxx, xxxxxx Xxxx xxxxxxx, xxxxx xxxxxxxxxx,
+xxx xxxx.
+
+
+
+Xxxxxxxx xxxxxxxxxxxxx:
+Xxxx xxxx xxx xxxxxxx xx xxxx xxxxxxx xxxxxxxxx xx xxxxxxx xx
+xxxxxxxx xx xxx xxxxxxx xxxxxxxx xxxxxxx. Xxxx xxxxxxx xxxx xxxxxx
+xxxxxxx, xxx xxxx xxxx xxxxxxx xxxxxxxxx. Xx xxxxxxx xxx xxx xx
+xxxx xx xxx xxxxxx xxxxxxx xxxxxxxxx xx
+xxx xxxxxxx xx xxxxxx xxxx xxx xxxxxxx xx. Xxx
+Xxxxxxxxxxxxx Xxxxxx Xxxxxxxxxxxx xxx Xxxxxxxxxxxxxxx xxxxxxxxxxx xxxxx xxx xxxxxxxx xxxxxxxxxxxx xxxxxx xx xxxxxxx.
+
+
+
+
+Xxxx xx XxxXX xxxxxxxxxxx:
+Xxx xxx'x xxxxxx xxx Xxxx xxxxxxx xx x 68X Xxxxxxxxx.
+Xxxx xxx xxx'x xxxx xxxxxx xxxxxxxxx xxx xxx xxx'x xxx
+xxxxxx xxxxxxx.
+
+
+
+
+
+
+
+
+
+
+
+
+Xxxxx xx Xxxxxxxx
+
+
+
+
+
+
+--------------689259C75BFE--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/17 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/17
new file mode 100644
index 00000000000..fcc6f709f6e
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/17
@@ -0,0 +1,64 @@
+From demo@labyrinth.Eng.Sun.COM Mon Oct 14 18:04:49 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id SAA02171; Mon, 14 Oct 1996 18:04:48 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA07582; Mon, 14 Oct 1996 18:03:48 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <3262E2F4.2F64@labyrinth.eng.sun.com>
+Date: Mon, 14 Oct 1996 18:03:48 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: key settings
+Content-Type: multipart/mixed; boundary="------------71D3762944B1"
+X-Lines: 43
+Content-Length: 1012
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 136
+
+--------------71D3762944B1
+Content-Type: text/plain; charset="us-ascii"
+X-Sun-Content-Length: 43
+
+Here are the mappings for your keyboard...
+
+--------------71D3762944B1
+Content-Type: text/plain; charset="us-ascii"; name=".vts_motifbind"
+Content-Disposition: inline; filename=".vts_motifbind"
+X-Sun-Content-Length: 663
+
+! xxxxxxxxxx xxxxx xxx xxxxxxxx
+! @(#).xxxxxxxxx 1.7 Xxxx:12/20/91
+xxxXxxXxxx : X2
+xxxXxxxxXxxx : X5
+xxxXxxxxx : Xxxx X1
+xxxXxxx : Xxxx
+xxxXx : Xx
+xxxXxxxx : Xxxxx
+xxxXxxx : Xxxx
+xxxXxxxXx : Xxx1 x
+xxxXxxxXxxx : Xxx1 x
+xxxXxxxXxxxx : X1
+xxxXxxxxx : X8
+xxxXxxxxx : Xxx1 x
+xxxXxxXxxx : Xxxxx X8
+xxxXxxx : Xxxxx X9
+xxxXxxx : X9
+xxxXxxxXxx : Xxxxx X10
+xxxXxxxxx : X6
+xxxXxxxxxxx : X7
+xxxXxxxxxxXxxxx : X4
+xxxXxxxxXxxxx : Xxx1 x
+xxxXxxx : X3
+xxxXxx : Xxx1 x
+xxxXxxxx : X12
+xxxXxxxx : X10
+xxxXxxx : Xxx1 x
+
+--------------71D3762944B1--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/18 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/18
new file mode 100644
index 00000000000..aea06ea32e5
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/18
@@ -0,0 +1,208 @@
+From demo@labyrinth.Eng.Sun.COM Mon Oct 14 18:06:56 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id SAA02180; Mon, 14 Oct 1996 18:06:55 -0700
+Received: from makai (localhost) by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA07585; Mon, 14 Oct 1996 18:05:55 -0700
+Sender: tester@labyrinth.Eng.Sun.COM
+Message-Id: <3262E372.6E2B@labyrinth.eng.sun.com>
+Date: Mon, 14 Oct 1996 18:05:54 -0700
+From: Demo Account
+Organization: Sun Microsystems
+X-Mailer: Mozilla 3.0b6Gold (X11; I; SunOS 5.4 sun4m)
+Mime-Version: 1.0
+To: tester@homey
+Subject: include file
+Content-Type: multipart/mixed; boundary="------------77E8368B79BC"
+X-Lines: 187
+Content-Length: 3407
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 137
+
+--------------77E8368B79BC
+Content-Type: text/plain; charset="us-ascii"
+X-Sun-Content-Length: 123
+
+Check out this include file and modify it with your
+source changes.
+
+Be sure to check it back in before you leave tonight!
+
+--------------77E8368B79BC
+Content-Type: text/plain; charset="us-ascii"; name="generic.h"
+Content-Disposition: inline; filename="generic.h"
+X-Sun-Content-Length: 2986
+
+/*
+** @(#)xxxxxxx.x 1.1 91/02/25
+*/
+
+/*
+** Xxxxxxxxx (x) 1991 xx Xxx Xxxxxxxxxxxx, Xxx.
+*/
+
+/*
+** xxxxxxx.x:
+** Xxxx xxxx xxxxxxxx xxx #xxxxxxx xx xx xxxxx xxx xxxxxxxx xx x
+** xxxxx "xxxxx" xxxxxxxxxxxxx.
+**
+** Xxxx xxxx xxxxxx xx xxxxxxxx xx xxx xxx xx xxxxx xxxxxx xxxxx xxxx xxx'x
+** xxxxxx xx x xxxxxxxxxx xxxxx xx xxxx, x.x., xxxx xxx'x xxxxxx
+** xx xxx "xxxxxx" xxxxx xx xxxx. Xxxx xx xxx xxx xx xxxxx xxx xxxxxxxxxxxxx
+** xx xxxx "xxxxxxx" xxxxx xx xxxx xx xxxxxxxx.
+**
+**
+** Xxxxxxxxx xxxxxxxxxxxxxx
+** XXX4X
+** XXX4
+** XXX386x
+** XXX486x
+** XX386
+*/
+
+#xxxxxx _xxxxxxx_x_
+#xxxxxx _xxxxxxx_x_
+
+
+/*
+** Xxxxxxx xxxxx xxx Xxx
+*/
+
+#xxxxx XXX4X_XXXX
+# xxxxxx XXX4X
+# xxxxxx XXXX_XXXX
+#xxxxx
+
+#xxxxx XXX4_XXXX
+# xxxxxx XXX4
+# xxxxxx XXXX_XXXX
+#xxxxx
+
+#xxxxx XXX4X_XXX
+# xxxxxx XXX4X
+#xxxxx
+
+#xxxxx XXX4_XXX
+# xxxxxx XXX4
+#xxxxx
+
+#xxxxx XXX4X /* XX1 + xx6/xx2/xx3 */
+# xxxxxx XXX
+# xxxxxx XXXXXXXXX
+# xxxxx XXXXXXXXXXXX
+# xxxxxx XXXXXXXXXXXXX
+# xxxxxx XXXXXX
+#xxxxx /* XXX4X */
+
+#xxxxx XXX4 /* 4/110, 4/260, ... */
+# xxxxxx XXX
+# xxxxxx XXXXXXXXX
+# xxxxx XXXXXXXXXXXX
+# xxxxxx XXXXXXXXXXXXX
+# xxxxxx XXXXXX
+#xxxxx /* XXX4 */
+
+#xxxxx XXX4XXX4
+# xxxxxx XXXX
+# xxxxxx XXXX
+# xxxxx
+# xxxxxx XXX
+# xxxxxx XXXXXXXXX
+# xxxxx XXXXXXXXXXXX
+# xxxxxx XXXXXXXXXXXXX
+# xxxxx xxxxxx
+# xxxxxx XXXXXX
+# xxxxx
+#xxxxx /* XXX4 */
+
+#xx xxxxxxx(XXX386X) || xxxxxxx (XXX486X) /* Xxxxxxxxxx 386 xx 486 */
+# xxxxxx XXX
+# xxxxx XXXXXXXXX
+# xxxxxx XXXXXXXXXXXX
+#xxxxx
+
+#xxxxx XX386 /* XX&X Xxxxxx Xx4 & XXX/XXX */
+#xxxxx
+
+/*
+** Xxxxxx xxxxxxx
+**
+** XXXXX Xxxxxx xxxxxxx xx Xxx'x xxxxxx xxxxxx xxxxxx xxxx
+** XX_XXXXX Xxxxxx xxxxxxxx xxxx
+** XXXXXXXXXXX Xxxxxx xxxxxxx
+** XXXXXXXXXXXXX Xxx Xxxxxx Xxxxxxxxxxx xxxxxxxxx
+** XXXXXXXX_XX_XXXXXXXX
+** XXXXX
+** XXXXXXXXXX
+** XXXXXXXXXXXXX xx xxxx xxx Xxxx xxxxxx xxxxxxx
+** XXX_XXXXXX_XXX xx xxxx xx xxxxxx XXX xxxxx xxxxxxxxxxxxxx
+** XXXXX
+** X18XX3 Xxxxxx Xxxxxxxxxxxxxxxxxxxx xxxxx 3 xxxxxxxxx
+*/
+
+#xxxxxx XXXXX
+#xxxxxx XXXXX
+#xxxxx
+#xxxxxx XX_XXXXX
+#xxxxxx XX_XXXXX
+#xxxxx
+#xxxxxx XXXXX
+#xxxxxx XXXXX
+#xxxxx
+#xxxxxx XXXXX
+#xxxxxx XXXXX
+#xxxxx
+
+#xxxxx XXX
+#xxxxxx XXXXXXXXXXX
+# xxxxxx XXXXXXXXXXX
+#xxxxx
+#xxxxxx XXXX
+# xxxxxx XXXX
+#xxxxx
+#xxxxxx XXXX_XXXX_XXXXXX
+# xxxxxx XXXX_XXXX_XXXXXX
+#xxxxx
+#xxxxxx XXXXX
+# xxxxxx XXXXX
+#xxxxx
+# xxxxx XXXXXXXXXXXXX
+#xxxxxx XXXXXXXXXX
+# xxxxxx XXXXXXXXXX
+#xxxxx
+#xxxxxx XXXXXXX
+# xxxxxx XXXXXXX
+#xxxxx
+#xxxxxx XXXXXXXX
+# xxxxxx XXXXXXXX
+#xxxxx
+#xx !xxxxxxx(XXXX) && !xxxxxxx(XXXXXXXX)
+# xxxxxx XXXXXXXX
+#xxxxx
+#xxxxxx XXX_XXXXXX_XXX
+# xxxxxx XXX_XXXXXX_XXX
+#xxxxx
+#xxxxxx XXXXXXXX
+# xxxxxx XXXXXXXX /* X11X4 xxxxx xxxxxxxxx */
+#xxxxx
+#xxxxxx XXXXXXXX
+# xxxxxx XXXXXXXX /* X11X4 xxxxxxxxxxxxxx xxxxxxxxx */
+#xxxxx
+# xxxxx X18XX3 /* Xx xxxx xxxxxxxx() xxx xxxxxxx */
+
+
+/*
+ * Xxx xxxxxx xxxxxx xxxxxxxxxx xxx xxxxxx xxxxxxxxxxx xxx xxx
+ * xxxxxx xxxxxxxxxx.
+ */
+# xxxxxx XXXXXX_XXXXXX "X11/XxXX - Xxx Xxxxxxxxxxxx Xxx."
+
+#xxxxx /* XXX */
+
+#xxxxx /*_xxxxxxx_x_*/
+
+
+--------------77E8368B79BC--
+
diff --git a/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/19 b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/19
new file mode 100644
index 00000000000..13578b33464
--- /dev/null
+++ b/appserver/tests/tck/glassfish-runner/mail-platform-tck/mailboxes/test1/19
@@ -0,0 +1,2277 @@
+From tester@makai Mon Oct 14 18:15:25 1996
+Return-Path:
+Received: from makai.Eng.Sun.COM by homey.Eng.Sun.COM (SMI-8.6/SMI-SVR4)
+ id SAA02189; Mon, 14 Oct 1996 18:15:22 -0700
+Received: by makai.Eng.Sun.COM (5.x/SMI-SVR4)
+ id AA07597; Mon, 14 Oct 1996 18:14:22 -0700
+Date: Mon, 14 Oct 1996 18:14:22 -0700
+From: tester@makai (Tester Tester)
+Message-Id: <9610150114.AA07597@makai.Eng.Sun.COM>
+To: tester@homey
+Subject: read this before you start
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="3551_4569-6da5_7555-384e_60f4"
+X-Lines: 2258
+Content-Length: 92901
+Status: RO
+X-Status:
+X-Keywords:
+X-UID: 138
+
+--3551_4569-6da5_7555-384e_60f4
+Content-Type: text
+Content-MD5: 9WMwUDj8HB1x8H7xUM4cYQ==
+X-Sun-Content-Length: 125
+
+Be sure you go through the attached file before you start
+rewiring your machine. Especially the part about the power
+supply.
+--3551_4569-6da5_7555-384e_60f4
+Content-Type: application/octet-stream
+Content-Description: Hardware.info
+Content-MD5: Z6E7cRoaT5z2LPH9GbxQDA==
+X-Sun-Content-Length: 92451
+
+Xxxxxxx: xxxx.xxxxxxx.x.xxxxxxxxxx Xxxxxxxxxx Xxxxx Xxxxxxxxx (XXX)
+Xxxxxxxxxx: xxxx.xxxxxxx.x.xxxxxxxxxx,xxxx.xxxxxxx.x,xxxx.xxxxxxx,xxxx.xxxxxxx
+Xxxxxxxx-Xx: xxxx.xxxxxxx.x.xxxxxxxxxx
+Xxxxx-Xx: xxxx@xxx.xxxx-xxxxx.xxx
+Xxxxxxx: Xxxxxxx xxxxx xxx X11 Xxxxxx Xxxxxx xxxxxxx xxx Xx Xxxxxxxxxx xxxxxxx
+Xxxxxxxx: xxxx-xxxxxxx-xxxxxxx@XXX.Xxx
+
+Xxxxxxx-xxxx: Xx-XXX
+Xxxxxxx: $Xx: XXX-Xx,x 1.38 1994/04/08 17:01:28 xxxx Xxx $
+
+ Xxx X Xxxxxxx Xxxxxxxxxx X.X.X
+ X xxxxxxx xxxxxxx
+
+
+Xxxx xxxxxxx xxxxxxxx xxx xxxxxxx xx xxxx Xxxxxxxxxx Xxxxx Xxxxxxxxx
+(XXX) xxxx xxxx.xxxxxxx.x xxxxx xxx X Xxxxxxx Xxxxxxxxxx. Xx xxxxxx
+xxxxxxxxx (xxxxxxxxxx xxxx xx xxxxxx) xxxx xxxxx xx:
+ xxxx@xxx.xxxx-xxxxx.xxx
+
+Xxxx XXX xx xxxxxxxxx xx xxx xxxxxxx xxxx xxxx.xxx.xxx xx xxx xxxxxxxxx:
+
+ xxx/xxxxxx/xxxx.xxxxxxx
+
+Xxx xxxx xxxxx xxxxx x XXX xx xxxxxxxx xxxxxxx xx xxx Xxxxxxx-xxxx
+xxxx xx xxx xxx xx xxx xxxxxxx. Xxxx XXX xx xxxxxxxx xx Xx-XXX.
+
+Xxx xxxx xxxxxxxxx xxx xxxxxx xxxxxx.
+
+ Xxxxxxxx
+
+0. Xx Xxxxxxxx
+1. Xxxxxxxx Xxxxxxxx
+2. Xxxxxxx XXX'x
+3. Xxx xxxx xx xxx xxxx xxxx xxxx X xxx xxxxxxx/xxxxxx/xxxxxxxx?
+4. Xxx xx X xxx x xxxxxxxxx xxxxxx xxxx xxx xxxxxxx?
+5. Xxxxx xxxxxx xxxxxx xx xxxxxxxxxxx xxx?
+6. Xxx xx xxxx Xxxxx xxxxxxx xxxx x Xxxxxx?
+7. Xxxxx xxxxxx, xxxxx xxx xxxxxxxx xx Xxxxxx xxxxxxx?
+8. X'xx xxxx xxx xxx xxxxx xxx X xxxxx xxx x XxxXxxxx xxxxx. Xxx?
+9. Xxx xxxxx'x xx xxxxxx xxx xxxxxxxxx xxxx X xxxx XxXxxxxxxXxxxxx()?
+10. Xxx xx X xxxx xxx xxxxx xxxxxxx xxx XxxxxxxXxxxxxxxx?
+11. Xxx xx X xxxxxx x Xxxxx xxxxxx?
+12. Xxx xxx'x XxXxxXxxXxxxx() xxxxxx xxxxx?
+13. Xxxx xxxx xxxxx xxx xxxxxxxxx xxx xxxxx xx Xx?
+14. Xxxx Xxxxxxx xxx xxxxxxxxx?
+15. Xxxx xxxxxxxxxxxx xx xxx Xxxxxxxxxx xxx xxxxx?
+16. Xxx xx X xxxx x xxxxx xxxxx xx XxXxxXxxxxx?
+17. Xxx xx X xxxxx x xxxxxxxx xxxxxxxxx?
+18. Xxx xx X xxxx xxxxxxxx xxxxxxxx?
+19. Xxxx xxxxxxx xxxx X3 xx X4 xx X5?
+20. Xxxxx xxx xxx xxxxxxxxx xxxxxx xxxx?
+21. Xxxx xxxxx xxx xxxxxxxxx xxxxxxxx xx?
+22. Xxx xx X xxxx xx x xxxxxx xx xxxxxxx?
+23. Xxx xx X xxxxxxxx x xxxxxx xx Xx, x.x. XxXxxxxxxxXxxxxx()?
+24. Xxx xxx XxXxxxxx, XxXxxx, xxx?
+25. Xxx xx xxxxx xx Xx xxxxxxxxxxx?
+26. Xxx xxx'x XxXxxXxxxx(), XxXxxXxxxxxx() xxx XxXxxXxxxXxxx() xxxx?
+27. Xxxx xx xxx xxx xxx X xxxxxxxxx xxxx xxx xxxx?
+28. Xxx xxx X xxx x X++ xxxxxx xxxxxxxx xx x xxxxxx xxxxxxxx?
+29. Xxx xxx X xxxxxxxx xxx xxxxxxxx xx x xxxxxxx xxxxxx?
+30. Xxx X xxx XxXxxxXxxxxx(), ... xx xxxx xxxxxxx X xxxxxxx?
+31. Xxx xx XxXxxXxxxxx() xx XxXx, XxXx xx xx xxx xxxxx xxxxx xxxxx?
+32. Xxx xx xxxx xxxxxx xxx XxX xx xxxxxxxx xxxxx?
+33. Xxx xx X xxxx xx xxxx xxxxxx xxxx xxxxxxxxx xx xxxxxxxxxxx?
+34. Xxx xxx'x X xxxxxxxx xxxxxxxxxxxx? Xxxx xxx xxxxx xxxx xxxxx.
+35. Xxx xx X xxx "Xxxxxxx: Xxxxxx xxxxx xxxxxxx xxxxxxxx"?
+36. Xxxxx xxx X xxx x xxxx xxxx-xxxxxxxx xxxxxx?
+37. Xxxxx xxx X xxxx x xxxxxxxxx xxxxxx xx xxxxxx xxxx?
+38. Xxxx xxxxxx xx xxxxxxxxxxx xx xxx xx x xxxxxxx xxxxxx?
+39. Xxxx xx xxxx xxxx xxxxxxx xxxx _xxx_xxXxxxxXxxxxxXxxxx?
+40. Xxx xxxx XxXxxXxxxxx xxx xxxx xxx xx (xxx)?
+41. Xx xxxx x xxxxxx xxxx xx xxx X11X4 XxXxxxxxxXxxxxx()?!
+42. Xx xxxx x xxxxxx xxxx xx xxx X11X4 xxxxxxxx xx xxxx xxxxx?!
+43. Xxx xx X xxxxx xxx xxxx xxxxxxxxxxxxx xxxxx Xx?
+44. Xxx xx X xxxxxxxx x xxxxxx xxxxx/xxxxxxx xxxxx xxx x xxxxxx?
+45. Xxx xx xxx Xxxxxxxx xxxxxxxxx (xxx X xxxxxxx xxxxxx)?
+46. Xxxx xx xxx xxxxxxxxx xxx xx xxxxxxx xxx xxxxxxxxxxx xxxxxxxxx?
+
+----------------------------------------------------------------------
+Xxxxxxx: 0. Xx Xxxxxxxx
+----------------------------------------------------------------------
+
+x Xxx Xx Xxxxxxxxxx xxxxxxxxx xx xxxxxx xxxxxxxx xxxxxxxxx xx X xxxx
+ xx xxxxx xxxxxx xxxxxxxxx xxxxxxxxxx xx xx xxxxxxx. Xxxxxxxx xxxx
+ xxxx xxx xxxxxxx xxxx xxxxxxx xxx xxxx xxxxxxxxxxxxx: Xxxxxx,
+ XxxxXxx, Xxxx, Xxxxxxxxx, Xxxxxxxxxx, Xxxxx, XxxxxxxxXxxxx, XXXxxxx,
+ xxx. Xxx xxxxx "Xx" xxx "Xxxxxxxxxx" xxx xxxx xxxxxxxxxxxxxxx,
+ xxxxxxx, xxxx xxx xxxx xxxx xxxxxxxxx xx xxxx x xxxxxxxx xxxxxxx xx xxx X
+ xxxxxx xxxxxx. Xx xxxxxxxxxx, xx xxxx xxx xxxxxxx xxx Xxxxxx,
+ Xxxxx, XXXX xx xxx xxxxx xxxxxx xxx. Xxxxxxx xxxxxxx xxxxxxx xxx
+ Xxxxxxxxxx xxx xxx xxxxxxxxxx xxxxxx.
+
+x X xxxxxx xxxxxx xx x xxxx xxxxxxxxx xxxxxxxxxxx xxxxxxx xxx Xx. Xxx
+ xxxxxxx xxx, xx xxx xxxxxx xxxx xx x xxxxxxxx xx xxx Xxxx xxxxx. Xx
+ xx xxxx xxxxxxx xx xxxxx xx xxxxxxxx xxxx xx x xxxxxxxx xx xxx
+ Xxxxxx xxxxx xxxxxxxx xxxxx xxx xxxx xxxxxxxxxx xxxxxx xxxxxxxxxx
+ xxxxxxx xx xxxxxxx.
+
+x Xxxx xx xxx X xxxxxxxxx xx xxx X11 xxxxxxxx. Xx xx xxx xxxxx xxxxx
+ xxx Xx Xxxxxxxxxx. Xxxxxxxxx x xxxxxx xxxx xxxxxxxxxx xxx Xxxx
+ xxxxxxxxx xxxxxxx Xx xxxxxxxx xxxx xxxx xxxxxxxx xxxxxxxx xx
+ xxxxxxxxxxxxx xx Xxxx xxxxx xxxx xxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 1. Xxxxxxxx Xxxxxxxx
+----------------------------------------------------------------------
+
+Xxx xxxxxxxxx xxx xxx xxxxxx xxxxxxxx xx Xx xxxxx xxxxxxxx:
+ _____________________________________________________________
+ Xxxxxxxx Xxxxxxx Xxxxxxxx Xxxx Xxxxxxxx
+ _____________________________________________________________
+ X11X4 xxxxx 18 (xxxx)
+ X11X5 xxxxx 26 11/3/93 ??
+ Xxxxxx Xxxxxxx (xxx X11X5)
+ Xxxxx 1.2.3 9/16/93 ??
+ XXXX ?? ?? ??
+ Xxxx 2.5 6/15/92 ??
+ Xx X11X4 (xxxx)
+ Xxx X11X5 (xxxx)
+ xxx 3.4 1/11/92 4/93
+ _____________________________________________________________
+
+----------------------------------------------------------------------
+Xxxxxxx: 2. Xxxxxxx XXX'x
+----------------------------------------------------------------------
+Xxxxx X. Xxxxx (xxxxx!xxxxx!xxx) xxxxxxxxx xxx XXX xx X. Xx
+xx xxxxxx xxxxxxx xx xxxx.xxxxxxx.x xxx xxxxxxx xx xxx.x.xxx xx xxxxxxx/XXX.
+
+Xxxx X. X. Xxxx (xxx@xx.xx.xxx) xxxxx xx XXX xxxx xx Xxxx Xxxx xx
+xxxx.xxxxxxx.x.
+
+Xxxxx Xxxxx (xxxxx@xxxx.xxxx.xxxx.xxx) xxxxx xx XXX xxxx xx Xxxxx xx
+xxxx.xxxxxxx.x.xxxxx. xx xx xxxx xx xxx.x.xxx xxxxx xxxxxxx/Xxxxx-XXX
+
+Xxxxx Xxxx (xxxx@xxx.xxxx-xxxxx.xxx) xxxxx xx XXX xxxx xxx
+xxxx.xxxxxxx.x.xxxxxxxxxx; xx xx xx xxx.x.xxx xx xxxxxxx/XXX-Xx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 3. Xxx xxxx xx xxx xxxx xxxx xxxx X xxx xxxxxxx/xxxxxx/xxxxxxxx?
+----------------------------------------------------------------------
+
+Xx xxxxx, Xxxx, Xx xxx xxxx xxxxxx xxxx xxxx xx xxxxxx xxxxxxxxx xxx
+xxxxxxxx xxxxxxxx. Xxx xxxxxxxxx xxxxxxx xx xxxxxx xx xxxxx xxx xx
+xxx xxxxx xxxxxxxxx xx xx xxxxxxxxxxxx xxxxx -- xxxx xx xxx xxx
+xxxxxxxxxxx xxxxx xxx xxx xxx, xxxxxxxx xxxxxxxx, xx xxx xxxxxx xx x
+xxxx xxxxxxxxx, xxx. Xxxx xxxx xxx XXXX X xxxxxxxx xxxxxx xxx xxxx
+xxxxxxxx xx x xxxxxx xxxxxxx xx xxxxxxxxx xx xxx xxxxxx xxxxxxx xxxxx
+xxx xxxxxxxx xxxxx xxxx xxxxxx() xxxxxx, xx xxxx xx xxx x xxxxxxx
+xxxxxxxx xx Xxxx xxx Xx; xxx XXXXX xxxxxxxxxxxxx xxxxxxxx xxxxx
+xxxxxxxxx xxxxx xxx xx xxxxxx xxxxxx xxx xx xxx xxx xx xxxxxxx xxxx
+xxxxx xxxxxxxxx xxx xxxxxx xx Xxxx xx Xx xxxxxxxxx.
+
+Xxx xxxx xxxx xxx xx xxxx xxxx xxxxxxx xx xx xxx x xxxx xx xxx
+xxxxxxxxx xxxxxxx. Xxxx xxxx xxxxx xxxxx xx xx xxxxxxx xxxxxx xx x
+xxxx xxxxxxxxx xx x xxxxxxx xxxxxxxx. Xx xx xxxxxxxxx xx xxx xxxxxx
+xx xxxxx xx xxx xxxxxxxxx xxxxxxx. Xx xxxxxxx xxxx, xx xx xxxxxxxxx
+xx xxx x xxxx xxxxxxxxx xxxx xxxxx xxxxxxxx. Xxxx xxxxxxxxxxx
+xxxxxxxx xxx xxxx xxxxxxxxxx xxxxxxxxxx xxxxx xxx xx xxxx xxxx xxxxx
+xx xxxxxx. Xxxxxxx xxxxxx xx xx xxxx x xxxx, xxxx xxx xxxxx xxxx
+xxxxx xxx xxxx xxx xxxxx XxXxxXxxXxxxx() xxx xxxx xxx xxxxxx xxxxxxx
+xxx xxxxx x xxxx xx xxx xxxxx xxx xx xxx xxxx xxx xxxx xxxxxx.
+Xxxxxxx, xxxx xxxxx xxxxxxxx xxxx xxxxxxx xx xxx xxxx xxxxx xx.
+
+Xxx xxx'x xxx Xxxxxxxxxx xxxx xxxx xxxx xxxxxxx? Xxxxxxxxx xxxxxxx xx
+xx xxxxxxxx xx xx x xxxxxxxx xxxxx xx xxx xxxxxxxx xxx xxxxxxxxx
+xxxxxx. Xx xxxx x xxxx xxxxxx xxxxxx -- X xxx'x xxxxx xx.
+
+ Xxxx: xxx xxxxxxx xx Xxx X Xxxxxxx 1:4 xxx xxx xxxxxxx xx X'Xxxxxx
+Xxxxxx 6 xxx xx xxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 4. Xxx xx X xxx x xxxxxxxxx xxxxxx xxxx xxx xxxxxxx?
+----------------------------------------------------------------------
+
+Xxxx xxxxxxxx x xxxx xxxxxxxxxxx xxxxxx xxxx xx xxxxxx. X xxxxxx xxx
+xxxxx xxxxxx xxxx xxx xxxxxx xxxxxxxx -- xxx xxxxxx, xxxxxxxx xxx
+xxxxxx xxxxxx. Xxx xxxxxxx xxxx xxxxx xxx Xxxxxxxx xxx XxxxxxXxxxxx
+xxxxxxxx; xxxx xxxxx xxxxxxx xxxx Xxxxxx xxxxxxxxx (xxxxxxx xxxxxxxxx
+xxxxx xxxx xxx xxxxxx xxxx x Xxxxxx). Xxx xxxxxxx xxxxx xx xxxxx
+xxxxxxxxx xx XxxxXxxxXxxxxx xxxxx xxxx xxxxxxx xxxx xx xxxx. Xx xxx
+xxxxx xxxxxx XxxxXxxxXxxxxx xxxx xxxxxxxxxx xx XxxxxxxXxxxxxXxXxxxxx
+xxx XxxxxxxXxxxxxxxXxXxxxxx. Xxxx xxx xxx xx xxx xxxxx xxxxxxxxx xx
+xxx xxxxxxxx xxx, x XxxXxxxx xxxxx xxxxxx xxxx xxx xxxxxx xx
+xxxxxxx. Xxxx xxx xxx xxxxxxxx xxx xxxxxxx xxxx xx xxx xxxxxx xxxxxxx
+xx xxx xxxxxx xxxxx xxxx.
+
+Xxx xx xxx xxxx xx xxxx? Xxxxx xxx xxx xxxxx xx xxx xxxxxx. Xxx
+xxxxx xx xx xxx xxxx xx xxxxxxxxxxx xx xxxxx xxxx x xxxxxxxxxx xxxxxx
+xxx xxx xxxxxx xx xx xxx xxxx x xxxxxxxxxx xxxxx xxxxxx xx xxxxxxxxxxx
+xx xxxxx xxxx x xxxxxxxxx xxxxxx. Xxx xxxxxx xx xxxxxxxx xxxxxx
+xxxxxxx xxx xxxxx xxxxxxxxxxx xxx xxxx xx xxxxxxxxx. Xxx xxxxx xx x
+xxxxxx xxxxxx xxxxxxx xxx'xx xxxx xx xxxxxxxxxx xxxx xx xxx xxxxxxx
+xxxxxxxx xx xxxxx xx xxxxxxxxx xxx xxxxxx xxxxxxxxxxx.
+
+/*
+ * Xxxx xxxxxx xxxx xx xxxxx xx xx xxxxxxxxxxx xxxxx xxxxxxxxx xxxxx
+ * xxxx xxx xxxxxxx xxxxxx.
+ *
+ * Xx xxxxxxx:
+ * xx -x xxxxxx.x -x xxxxxx -xXxx -xXxx -xXx -xXxxx -xX11 -xx
+ *
+ * Xx xxx:
+ * ./xxxxxx -xxxxxxxx 300x300 -xxxxx 24 -xxxxxx XxxxxxXxxxx -xx xxxx -xx xxxxxx
+ *
+ * xxx xxxx xx xxxx xxx xxxxx xx xxx xxx xxxxxxxxxx xxxxxxx xxxxxxxx
+ * xx xxxxxxx.
+ */
+
+#xxxxxxx
+#xxxxxxx
+#xxxxxxx
+
+xxxxxxx xxxxxx
+{
+ Xxxxxx *xxxxxx;
+ xxx xxxxx;
+} XxxxxxxXxx;
+
+XxxxxxxXxx Xxxxxxx;
+
+XxXxxxxxxx xxxxxxxxx[] =
+{
+ {"xxxxxx", "Xxxxxx", XxXXxxxxx, xxxxxx (Xxxxxx *),
+ XxXxxxxxXx (XxxxxxxXxx, xxxxxx), XxXXxxxxxxxx, XXXX},
+ {"xxxxx", "Xxxxx", XxXXxx, xxxxxx (xxx),
+ XxXxxxxxXx (XxxxxxxXxx, xxxxx), XxXXxxxxxxxx, XXXX},
+};
+
+XxxXxxxxxXxxxXxx Xxxx[] =
+{
+ {"-xxxxxx", "*xxxxxx", XxxxxxxxxXxxXxx, XXXX},
+ {"-xxxxx", "*xxxxx", XxxxxxxxxXxxXxx, XXXX}
+};
+
+
+
+xxx
+xxxx (xxxx, xxxx)
+ xxx xxxx;
+ xxxx **xxxx;
+{
+ XxXxxXxxxxxx xxx; /* xxx xxxxxxxxxxx xxxxxxx */
+ Xxxxxx xxx; /* xxxxxxxx xxxxxx */
+ Xxxxxxx *xxx; /* xxxxxxx */
+ xxxx **xxxxx; /* xxxxx xxxxxxxx xxxxxx */
+ xxx xxxxx; /* xxxxx xxxxxxxx xxxxx */
+ Xxxxxxxx xxxxxxxx; /* xxxxxxx xxxxxxxx */
+ XXxxxxxXxxx xxxxx; /* xxxxxxxx xxx xxxx xxxxxx */
+ XXxxxxxXxxx *xxxxx_xxxx; /* xxxxxxxx xxxx xx xxxxxxx */
+ xxx xxxxx; /* xxxxxx xx xxxxxx (xxxx 1?) */
+ Xxx xxxx[10];
+ Xxxxxxxx xxx;
+ xxxx *xxxx = "xxxx";
+ xxxx *xxxxx = "Xxxx";
+
+ /*
+ * xxxx xxx xxxxxxx xxxx xxxxxxxxx
+ */
+
+ xxxxx = xxxx;
+ xxxxx = (xxxx **) XxXxxxxx (xxxx * xxxxxx (xxxx *));
+ xxxxx ((xxxx *) xxxx, (xxxx *) xxxxx, xxxx * xxxxxx (xxxx *));
+
+ /*
+ * Xxx xxxxxxxxx xxxxxxx x _xxxxx_ xxxxxxxx xxxxxx xx xx xxx
+ * xxxxxxxx xxx xxxxxxxxxxx xxxxxx xxxxxxxx.
+ */
+ xxx = 0;
+ xxx = XxXxxXxxxxxxxxx (&xxx, xxxxx, Xxxx, XxXxxxxx (Xxxx), &xxxx, xxxx,
+ (Xxxxxx *) XXXX, xxxx, xxx);
+ xxx = XxXxxxxxx (xxx);
+ xxx = 0;
+ XxXxxXxxxxxxxxxxXxxxxxxxx (xxx, &Xxxxxxx, xxxxxxxxx,
+ XxXxxxxx (xxxxxxxxx),
+ xxxx, xxx);
+ xxx = 0;
+ xx (Xxxxxxx.xxxxxx && Xxxxxxx.xxxxxx != XxxxxxxXxxxxxXxXxxxxx (XxXxxxxx (xxx)))
+ {
+ XxXxxXxx (xxxx[xxx], XxXxxxxxx, Xxxxxxx.xxxxxx); ++xxx;
+ /*
+ * Xxx xx xxxxxx xx xxxxxxxxxxx xxxxxxxx. Xx xxxxx
+ * xxx x xxxxxxx xxxxxxxx xxxxx xx xxx xxxxx xx xxx
+ * xxxxxx; xx xxxxx xxxxxxx xxxx xxxxxxxx xx xxx
+ * xxxxxxxxxx xx xxxx xxx xxxxx xxxxxxxx; xx xxxxx
+ * xx xxx xxxxx xx xxxxxx...
+ */
+ xxxxxxxx = XXxxxxxXxxxxxxx (xxx,
+ XxxxXxxxxxXxXxxxxx (XxXxxxxx (xxx)),
+ Xxxxxxx.xxxxxx,
+ XxxxxXxxx);
+ XxXxxXxx (xxxx[xxx], XxXxxxxxxxx, xxxxxxxx); ++xxx;
+
+ /*
+ * Xxx xxxx xxxx xxxxxxxxxxx xxxxx xxx xxxxxx.
+ */
+ xxxxx.xxxxxxxx = XXxxxxxXXXxxxXxxxxx (Xxxxxxx.xxxxxx);
+ xxxxx_xxxx = XXxxXxxxxxXxxx (xxx, XxxxxxXXXxxx, &xxxxx, &xxxxx);
+ xx (xxxxx_xxxx && xxxxx > 0)
+ {
+ XxXxxXxx (xxxx[xxx], XxXxxxxx, xxxxx_xxxx[0].xxxxx);
+ ++xxx;
+ XXxxx ((XXxxxxxx) xxxxx_xxxx);
+ }
+ }
+ XxXxxxxxxXxxxxx (xxx);
+
+
+ /*
+ * Xxx xxxxxx xxx xxxx xxxxxxxx xxxxxx.
+ */
+ XxXxxXxx (xxxx[xxx], XxXxxxx, xxxxx); ++xxx;
+ XxXxxXxx (xxxx[xxx], XxXxxxx, xxxxx); ++xxx;
+ xxx = XxXxxXxxxxxXxxxx ((xxxx *) XXXX, xxxxx,
+ xxxxxxxxxxxXxxxxXxxxxxXxxxx,
+ xxx, xxxx, xxx);
+
+ /*
+ * Xxxxxxx xxx xxxxxxxxxxx xxx xxxx xxxxxxxx xxx xxxxxx.
+ */
+ XxXxxxxxxXxxxxx (xxx);
+ XxXxxXxxxXxxx (xxx);
+ xxxxxx (0);
+}
+
+----------------------------------------------------------------------
+Xxxxxxx: 5. Xxxxx xxxxxx xxxxxx xx xxxxxxxxxxx xxx?
+----------------------------------------------------------------------
+
+Xxxx xx x xxxxx xxxx xxx xx xxxxxx xxxxx xxx xxx xxxxxxx xx xxxxx xx
+xx xxx xxx xx xxxxxxxxxxx xx xxxx xxx xxxxxxxxxxx xxxxxx -- xx xxx xx
+xx xxxxxxxxx xx xxx xxxx. Xx xxx xxxxxxxx xxxx xxxx xxxx xxxx
+xxxxxxxxxxx xxxxxxxx xxxxx xxxx xxx xxxxxxxx xx xxxxxx xxxxx xxx
+xxxxxxx xxxxxx xx xx xx xxxxxxxx xxxxxxxx xxx xxxxxxx xxxx xxxxxxxxxx
+xxxxxx xxxx xx 24xxx XxxxXxxxx xxxx xx XxxxxxxXxxxx xxxxxxxxx (xx xxxx
+xxxx).
+
+Xxx? Xx xxxxxxxxxxx xxxx xx xxxxxxxxx. Xxxxxxxxx xx xxx xxx x xxxxxx
+xxxxxxxxx xxxxxxxxx X xxx xxx xxxxxx xxxx xxxx xxxxxxxxxxx xx xxx xx
+XxxxXxxxx xxxx xx xx xx xxxxx xx xxxx xx xx xxxxx xxxxxxxxxxxx. X xxx
+xx xxxx xxxxx xx xx xxxxxxx xx xxx xx XxxxXxxxx xxxxxxx xx XxxxxxXxxxx
+xx xxxx xxxxxxxxxx.
+
+Xx xx xxxxxxx, xx x xxx xxx xxxxx Xxx xxxxxx xxxxx xxx xxxx xxxxxxxxx
+xxxxxxxx xxxxxxx: xxxxxxxxxx, 256 xxxxx xxxxxxxx, xxxxxx xxxx, xxxxxx
+xxxxx, xxx x 3/3/2 XxxxXxxxx. Xxx XXX Xxxx'x xxxxx xxx xxx xxxxx
+xxxx 12 xxx XxxxXxxxx, 24 xxx XxxxXxxxx, xx Xxxxxxx Xxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 6. Xxx xx xxxx Xxxxx xxxxxxx xxxx x Xxxxxx?
+----------------------------------------------------------------------
+
+Xxxx xx xxxxxxxx xx xxxxxxxxxx. Xx xxxxx xx xxxxxxxx xxx xx xxxxxxxxx
+xxxxxx xx xxxx xxxx xxx xxxxxx xx xxxx xxx xx xxxxx xx xxxxxxx xxx xxx
+xxxxx xxxxxx xxxx xx xxx xxxxxxxx xxx xxxxxxxxx xxx xxxxxx xx xxxx
+xxxxx.
+
+X xxxxxx xxx xxxx xxx xxx xxxxxx xxxxxxxx. Xx xx xxxx, xx xxxx xxxx
+xxx xxx xxxxxxx xxxxxx xx xxx xxx xxxxxx xxxx xx xxxxx
+XXxxxxxXxxxxx(). Xxx xxxxxx xxxx xxxx xxxx x xxxxxxxx xxxx xxx xx
+xxxxxxxx xxxx XxXxxXxxxxx() xx xxxxx xxxxxxx xxx xxxx xx. X
+xxxxxxxxxx xxxxx xx xxxxxxxx XxXxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 7. Xxxxx xxxxxx, xxxxx xxx xxxxxxxx xx Xxxxxx xxxxxxx?
+----------------------------------------------------------------------
+
+Xxx xxxxxxx xxxxx xxx xxxxx xxxxxxxxx xxx xxx xx XxxxXxxxXxxxxx. Xxxx
+xx xxxxxxxxxxx xx xxx XxxxxxxXxxxxxxxXxXxxxxx(), XxxxxxxXxxxxXxXxxxxx()
+xxx xxx xxxxxxx xxxxxx xx xxx xxxxxx xx xxx xxxxxx xxx xx xxxxxx -- x.x.
+xx xx xx xxxxxxxxxxxXxxxxXxxxxxXxxxx xxx xxx xxxx xx xxxx xxxxxx xxxx.
+
+Xx xxx xxxxxx xx xxx xxxxxx xx xxx xxxx, xxxx xxx xxxxx xxxxxx
+xxxxxxxx xxx xxxxx xxxx xxx xxxxxx xxx xxxx XxxxXxxxXxxxxx xx xxx
+xxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 8. X'xx xxxx xxx xxx xxxxx xxx X xxxxx xxx x XxxXxxxx xxxxx. Xxx?
+----------------------------------------------------------------------
+
+Xxxx xxxxxxxx xxxxxxxxxx xxxxxxxxxx xxxxx xxxxxxxxxx. Xxxx xxx
+xxxxxxxxxx xxxx xx X11X3 xxx xxxxxxx xxxxxxxx xx Xxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 9. Xxx xxxxx'x xx xxxxxx xxx xxxxxxxxx xxxx X xxxx XxXxxxxxxXxxxxx()?
+----------------------------------------------------------------------
+
+Xxx xxxxxxx 2.8 xx xxx Xx xxxxxxxxxxxxx.
+
+Xx xxxxxxxxxx xxxx xxx xxxxxxxxx, xxxx xxx xxxxxxxxxxx. Xxx
+Xxxxxxxxxx xxxxxxx x xxxxxx xx x xxx-xxxxx xxxxxxx. Xxxxx xx xxx xxx
+xx xxx xxxxxxxx xxxx x xxxx xxx xxxx xxxxxxxx xx xx xxxxx xxxxxxxxx.
+Xx xx xxxx xxx xx x xxxx xx xxxxxxx xx xx xxxxxxxxx. Xxxx xxx xxx
+xxxxxxx X xxxxxx xx xxxxxxx xxxxxxxxxx xx xxxx xxxxxx xxx xx xxxxxxx
+xx xxxxxx xxx xxxxxx xx xxxxxxxx xxxxx. Xxx xxxxxx xxxxx xx xxxx
+xxxxxxxxx xxxxx xxx xxxxxxxxx, xxxxx xxxxxxxx, xxx xxxxxxx xxxx
+xxxxxxxxx, xxxxxx xxxxxxxx xxx xxx xxxx X xxxxx. Xx xxxx xxxxx xxx
+xxxx xx xxxxxxxxx xxx xxxx xxxxxx'x xxxxxx xx xxxxxxxx xxxx()'x, xxxxx
+xxxxx xxxxxx.
+
+Xx xxxx xxxxxxx xxxxxxx/xxxxxx, xxx xxxxxxx xxx xx xxxxxxxxx xx xxx
+Xxxxxxxxxx xxxxxxxxx xxxx xxxx xxxx xx xxxxxxx xxxxxxxxxx xx xxx
+xxxxxxx xx xxx xxxx. Xx xx, xxxx xxx xxxxx 2 xxxxxxxxxxx xxxxxx
+xxxxxxxxxxx. Xxxx, xx xxxxxx xxxxx xxxxx xxx xxxx, xxxxxxx xxxxxx xx
+xxx xxxxxxx xxxx xxxxxx xxxxxxxx xxx xxxxx xxxxx xxxx xxx xxx
+xxxxxxxxx xxxxx xxxxxxxxx xx xxx xxxxx xxxxx xxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 10. Xxx xx X xxxx xxx xxxxx xxxxxxx xxx XxxxxxxXxxxxxxxx?
+----------------------------------------------------------------------
+
+Xxx xxxxxxx xx xx x xxxxxx xxx xxxxxxxx xxxxxxxxxx xxxxxxxx xx xxxxxxx
+xx xxxxxxxxxxx xx xxxx, xxxx xx xxxxxxx xxxx() xxxxxxxx, xxxx x xxxxxx
+xxx xxx xxxx x xxxxxx xx xxxxx xx xxx xxxxxxxx xxxxx -- xxxx xx xxxx
+xxxxxxx, xxxxxxxxx xxxxx, xxxxxxxxx X xxxxxxxxx, xxx. (xxxx xxxx xxx
+xxxxxxxxxx xxxxxxx xxxxxxx xxxx x xxxxxx xxxxxxxx xxxxxx):
+
+
+ Xxxxxx
+ XxxxxxxxXxx (xx)
+ Xxxxxx xx; /* xxxxxx xx xxxx xxxxxxxx */
+ {
+ Xxxxxx xxx;
+
+ xxx (xxx = xx; XxXxxxxx (xxx); xxx = XxXxxxxx (xxx))
+ /* xxxxx */;
+ xxxxxx (xxx);
+ }
+
+ xxxx
+ XxxxXxxxxxxx (xx, xxxxxxx, xxxx_xxxx)
+ Xxxxxx xx; /* xxxxxx */
+ XxXxxxxxx xxxxxxx; /* xxxx xxx xxx xxxxxxxxx */
+ XxXxxxxxx xxxx_xxxx; /* xxxxxx xxxxxxxx xxxx */
+ {
+ Xxxxxx xxxxxxxx;
+
+ xxxxxxxx = XxxxxxxxXxx (xx);
+ XxXxxxxXxxxxx (xxxxxxxx); /* xxxx xx xxxxxxxxx xxxxxxx */
+ XxXxxxxxxXxxxxx (xxxxxxxx);
+ xxxx (0);
+ }
+
+Xxx xxx xxx xxxx xxx xxxxx xxxx xxxx'x xxxxxxxxxxx xxxxx xxxxxxxxxx
+xxx xxxxxxxx xxxxxx. Xxx xxxxxxx xx xxx xxxxx 2 xxxxxxxxxxx xxx xxxxx
+xxxxx.
+
+Xxxx xxxxx xxx xxxx xxxxxxx xxx xxxx xxxxxxxxxxxx xxx xxxx xxx xxxx
+xxx xxxxx xxxxxxx xxxx xxxx xxx xxxxxxxx xxxxx. Xxx xxxxx xxxxx xxxx
+xxxxx xx xxxxx xxx xx xxxx xxxxxx xxxx xxx xxxxxxxx xxxx xxxx xx xxx
+xxxxxx xx xxxxxx xxxxxxxx xxxxxxxx xx xxxx xx xx xxx xxx xx xxxxxxxx
+xx xxx xxxxxxxxxxxxxx xxxxxxx xxx xxxx xxxxxx. Xxxxx xxxxx xxxx xxx
+xxxxxx xxx xxxxxx xxx xxxxxxx xxxxxxx xxxx xxxx xxxxxxxx xxxxx xx
+xxxxxxx xx xx xxx Xxxxxxx xxxxxxxxx.
+
+Xxx xxxxxxxxxxx xx xx xxxxxx XxxxXxxxxxxx() xx xxx x xxxxxx xxxx xxx
+xxxx xxxx xxx xxxx xxxx xx x xxxxxxx xxxxx xxxx.
+Xx xxx xxx xxxxxxxxx xxxx:
+
+ #xxxxxxx
+
+ xxxxxx Xxxxxx XxxxxxxxXxx (
+ #xx XxxxXxxxxxxxXxxxxxxxxx
+ Xxxxxx xx
+ #xxxxx
+ );
+
+ xxxxxx Xxxxxxx XxxxXxxxXxxx (
+ #xx XxxxXxxxxxxxXxxxxxxxxx
+ XxXxxxxxx xxxxxxx
+ #xxxxx
+ );
+
+ xxxxxx xxxx XxxxXxxxxxxx (
+ #xx XxxxXxxxxxxxXxxxxxxxxx
+ Xxxxxx xx,
+ XxXxxxxxx xxxxxxx,
+ XxXxxxxxx xxxx_xxxx
+ #xxxxx
+ );
+
+ Xxxxxx
+ XxxxxxxxXxx (xx)
+ Xxxxxx xx; /* xxxxxx xx xxxx xxxxxxxx */
+ {
+ Xxxxxx xxx;
+
+ xxx (xxx = xx; XxXxxxxx (xxx); xxx = XxXxxxxx (xxx))
+ /* xxxxx */;
+ xxxxxx (xxx);
+ }
+
+
+ xxxx
+ XxxxXxxxxxxx (xx, xxxxxxx, xxxx_xxxx)
+ Xxxxxx xx; /* xxxxxx */
+ XxXxxxxxx xxxxxxx; /* xxxx xxx xxx xxxxxxxxx */
+ XxXxxxxxx xxxx_xxxx; /* xxxxxx xxxxxxxx xxxx */
+ {
+ Xxxxxx xxxxxxxx;
+
+ xxxxxxxx = XxxxxxxxXxx (xx);
+ XxXxxxxXxxxxx (xxxxxxxx); /* xxxx xx xxxxxxxxx xxxxxxx */
+ XxXxxxxxxXxxxxx (xxxxxxxx);
+ XxXxxXxxXxxxXxxx (XxXxxxxxXxXxxxxxxxxxxXxxxxxx (xx),
+ XxxxXxxxXxxx, (XxXxxxxxx) XXXX);
+ }
+
+ Xxxxxxx
+ XxxxXxxxXxxx (xxxxxxx)
+ XxXxxxxxx xxxxxxx;
+ {
+ xxxx (0);
+ /*XXXXXXXXXX*/
+ }
+
+
+XxxxXxxxxxxx() xxxx x xxxx xxxxxxxxx xxxx xxxx xxx xxxxxx xxxx xxx
+xxxxxxxxxxx xx xxxx xxxx -- xxxxx xxxxxxx xxxxx xxx xxx xxxxxx xxx
+xxxxxxxxx xxx xxx xxxxxxx xxxxxxxxx xxx xxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 11. Xxx xx X xxxxxx x Xxxxx xxxxxx?
+----------------------------------------------------------------------
+
+Xxxxx xx xx xxxxxxxx, xxx xxxxx'x xxxxxx x Xxxxx xxxxxx. Xxx xxxxxx
+xxxxx xx xx xxxxxx xxx xxxxxxxxx xxxxxxx xxxxx xx xxx Xxxxx xxxxxx
+xxxxx XxXxxXxxxxx(). Xxx xxxxxxxx xxxxxx xx xxxx xxxxxxxxxx xx xxx
+Xxxxx xxxxx xxxx xxx xxxxxx xxxxxxx xxxxx xxx xx xxx xxx xxxxx xxx
+xxxxxxx. Xxxxxxx, xxx Xxxxx xxxx xxxx xxx xxxxxxxx
+XxXxxxxxXxxxxXxxxxx xxx xx Xxxx xxxxxxxxx xx xxxx xxx xxxx xxx xxx
+xxxxxx xxxxxxx xx xxxxx xxx xxxxxxx xxx xxx Xxxxx xxxx xxx xxxxxx.
+
+Xx xxxxxx xxx xxxxxxxx xx x Xxxxx, xxx XxXxxXxxxxx() xx xxx Xxxxx, xxx
+xxx xxxxx, xxx xxxxxx xxx xxxxxx xx xxx xxxxxx xxxxxxx xx xxxxxx xx xxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 12. Xxx xxx'x XxXxxXxxXxxxx() xxxxxx xxxxx?
+----------------------------------------------------------------------
+
+Xx xxxx, xxxxxxx Xxxx xxxxxxxxx xxx xxxx X/X xx xxxxx xxx x xxxx xxxx
+xxx xxx xxxx xxxxxxx' xxxxxxxxx xxxxx. Xx Xxxx xxxxx x xxxx
+xxxxxxxxxx xx xxxxx xxx xxxxxxx xxxxxxxx xxx xxxx() xxxx xxxxx xxx
+xxxxx, xxxxxxxx xxx xxxxxxx xx xxxxxxxx xxxxx xxxx xxxxxxxx xxx xx
+xxxxx. Xxxx xxxxx xx xxxxxxxx xxx xxxxxxxxx, xxxxxxx xxx xxxxx. Xxx
+x xxxx xxx xxxx() xxxx xxxxxx xxxxxx xxx xxx xxxxxx xxxxxxxxx xx XXX
+-- x.x. xx xxxx xxxx. Xxx xxxxxx xx xxx xxxx xx xxx Xxxxxxxxxx xxxxxx
+xxxxx xxx xxxxx xxxxxxx xxxxxxx xx xxxxxx xxxxxx xxxxxxxxx xx xxxxx xx
+xx xxxx. Xxx xxxxxxx xx xxx xxxxxx() xxxxxx xxxx xx xx XXXX xxxxx
+XX'x xx xx xxx xxxx() xxxxxx xxxx.
+
+Xxx xx xxx xxxxxx xxxx xx x Xxxx xxxxxx? Xxx xxxx xxxxxxxx xx xx xxx
+xxxxxxx xxxxxxx xx xxxxx xxx xxxxxxxxx xxxxx xx xxx xxxx. Xxx x xxxx
+xx xxxxxxx xxx xxxxxxxxxxx xxxx xxxx xxxxx xxxxxxx xxx xxxx xxx xxxx
+xxxxxxxxxx xxxx xxx xxxx xx XxXxxXxxXxxxx(). X xxxxxxxx xxxxxxx xx
+XXX xxxxxxx xx "xxxx -x xxxxxxxx".
+
+Xx'x xxxxxxx xxxx xxxxxx() xx xxxx xxxxxxx xx xxx _xxxxxxxxxx_
+xxxxxxxx. Xx xxxxxxxxxx:
+
+ - XXX XXX 3.1: xxxx xx xxx xxxxx xx xxxxx xxxx xxx x xxxxx
+ (xxxxxxx xxxxxxxx xxxxx) xxx xxxx xxxx xxxxx xxxx xxxxx
+ xxxxx xxxx xx xx. Xxxx xxxxxx xx xx xxx xxxxxx xx x xxxx
+ xxxxxxxxx xx xxx Xxxxxx. XXX xxxxxx xx xxxx x xxx xxx xxxx.
+
+ - Xxxxxxx, xxxxx'x xxxx xx xxx.
+
+ - Xxxxxx (xxx xxxxxxxx xxxxxx xxxxx xxxxx xxx xxxxxxxxxxx xx
+ xxxxxxx), xxxx'x xxxxxxxxxx xxxxxx, xxx xxxxxxxx xxx xxxxxxx
+ xxxx xxxxx xx 512 xxxx xxxxxx xxx xxxxxxx xxxx xxxxxxxx xx
+ xxx xxxxxx xx xx xx xx xxx xxxxx xxx xxxx xxx xxxx x xxxx xx
+ x xxxx. Xxx xxx xxxxx x xxx xx xxxx xx xxxxxxx xxxxx xxxxxx
+ (xxx xxxxxx xx xx xxxxxxxxx xxx xxxxxxxxx xxx xxxxxx
+ xxxxxx() xxxxxx xxx xxxx xxx 10 xxxxxxxx - xx xxxx xx xxx
+ xxxx xxxxx xxx xxxxx xxxxx).
+
+
+Xxxx xxxx xxx xxx xxxxx xxxxxxxxxxxx xxxx Xxxx xxxxxxxxxxx xxxx xx
+xxxx(), xxxx xxxxxxxxxx, xxxxx, xxx. Xxxx xx xx XX xxxxxxxxx xxxx xxx
+xxx xxx xx xxxxxxxxx xx xxx xxxxxxx. Xxxxxxx xxx Xxxxxxxxx xxxxxxxxx
+xxxx xx xxx x xxxxxx xxxxxx xxxxxxxxx xxxx xx xxxxxx xx xxxxxxxx xxxx
+xxxx xx xxx xxxxxxx. Xxx xxxx xxxx'x xxxx xxxx xxxx xxxxxxx xx xxxx
+xxxxx X xxx'x xxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 13. Xxxx xxxx xxxxx xxx xxxxxxxxx xxx xxxxx xx Xx?
+----------------------------------------------------------------------
+
+X xxxx x xxxxxxxx xxxx xx xxx xxxxxxxxxx xxxxxxxxx. Xx xx xxxxxxxxxxx
+xx xxxxxx x xxxxxxxxxx xxxxxxxxxxxx xxx xxxx xxxx xxxx xxx xxxx
+xxxxxxx xx xxx Xxxxxxxxxx. Xxxx X xxxxxxx xxxxx xx X xxx xxxxxxx
+xxxxxxxx xxxx Xx xxx xxx xxxxxxxx xxxxxx xx, xx xxxxxxxxx xxx xx xxx
+xxx xxxx xx xxxxxx. X'xx xxxxxx xxxxx xx xxxxxxxx xxx xxxxxxxx, xxxxx
+xxxxx xxx x 1000 xxxxx.
+
+Xxxxxx, Xxxx X., xxx Xxxxx, Xxxxx X., "X Xxxxxx Xxxxxx Xxxxxxx, Xxx
+ Xxxxxxxx Xxxxxxxxxx'x Xxxxx xxx Xxxxxxxxxxxxx", Xxxxxxx Xxxxx,
+ 1990, XXXX 1-55558-051-3, xxxxx xxxxxx XX-X757X-XX; xxx xx
+ Xxxxxxxx-Xxxx, XXXX 0-13-972191-6. Xxxx xxxxxxxxx xxxxxxx XXX
+ Xxxxxx xx 1-800-XXXXXXX.
+
+Xxx xxxxx xxxx X xxxxxxxx xxxxxxxx xx xxxxxxx xx:
+
+Xxxxx, Xxxx. "Xxx X Xxxxxx Xxxxxx: Xxxxxxxxxxxx xxx Xxxxxxxxxxx xxxx
+ Xx (Xxxxx Xxxxxxx)," Xxxxxxxx Xxxx, 1989 (XXXX 0-13-497074-8).
+ (XXXX 0-13-972167-3)
+
+Xxx xx xxxxxx X'Xxxxxx xxx xx xxxxxx xxxxxx xx xxxxxxx xx X xxx Xx.
+X'Xxxxxx xxxxxxxx xx 800-998-9938. Xx xxxxxxxxxx, Xxxxxx 5 xx xx Xx
+xxxxxxxxx xxxx xx xxxxxx xxxx xxxxx. Xxx 3xx xxxxxxx xx xxxxxxxxxxx
+xxxxxxxxxx xxx xxxx xxx xxxxxx xxx XXX xxxxxx xxxxx. X'x xxxxxxx xx
+xxxx xxxxxx. Xx xxxxxxxxxx, xxx xxxxxxxxx xxxxx xxx xxxxxxxxxx xx
+xxxxx xxxxxx xxxxx xxxx x xxxxx xxxx xx xxxxxxx xxxx xxxxxxx
+xxxxxxxxxxx.
+
+X xxxx xxx xxxxxxxxxxx, "Xxx X Xxxxxxxx" xxx xxx "Xxx X Xxxxxxx".
+Xxxxx xxx xxx xxxx xxx xxxxxxx xxxxxxxxxxxx xxxx X. "Xxx X Xxxxxxxx"
+xx xxxxxxxxx xxxxxxxxx, xx X'Xxxxxx, xxxx xxx xx xxx xxxxxx xxxxx xxx
+XXX X Xxxxxxxxxx Xxxxxxxxx Xxxxxxxxxx Xxxxxxxxxxx. Xxxxx xx xx
+xxxxxxxxxxx. X'xx xxxxx xx xxxxxxxxxxx xxxx xxxxxx xxxx xxxxx. Xxx
+xxxxxx, xxxx 1-800-998-9938, xx xxxxx xxxxxx@xxx.xxx. Xxx xxxxxxxxx
+xxxxxxx, xxxxx xxxxxx@xxx.xxx. Xxxxx xx xxxxxxxx xxx xxxxxx xx
+xxxx.xxxx.xxx xx ~xxx/xxx/xxx/xxx xx XxX xxxx xxx xx xxx.xx.xxx xx
+~xxx/xxxxxxxxx/xxxxxxx/xxxxxxxxx xx XXXXX xxxx.
+
+
+"Xxx X Xxxxxxx" xx x xxxxxxxxx xxxxx xxx xxxx xxxx xx xxxxxxxxxxx.
+Xxx xxxxxxxx xxx xxxxxxxxxxx xxx xxxxxxxx xxxxxx x xxxx xxxxxxxxx
+xxxxxxxx. X xxxx xx xxxx xx xxx xxxx'x xxxxx xx xxxx xxxx xx
+xxxxxxxxxxx xx xxxxxxxx x xxxxx xxxx (xxx xxxxxxxx, X xxxxxxxxx x
+xxxxxx xxxxx xxxxxxxxxx xx xxxxxx). Xxxx, xxxx xxxx x xxxxxx xxxx
+xxxxxxxxxx xx xxxxxx xx xxx xxxxxxxx xxxxx xxx xx xxxxxxxxxx. Xxxx
+(908) 563-9033.
+
+----------------------------------------------------------------------
+Xxxxxxx: 14. Xxxx Xxxxxxx xxx xxxxxxxxx?
+----------------------------------------------------------------------
+
+Xxxxx xxx xxxxx xxxxxxx xxxxxx xxxx:
+
+Xxxxxx - Xxx xxx xxxxxxxx xxxx X11. Xxxx xx xxxxxxxxxx xxx xxxx
+ xxxxxxxx xxx xx xx xxx xxxx xxxx. Xxxxxxxx, x 3x xxxx xx
+ xxxxxxxxx xxx xxx xx xxx.x.xxx:/xxxxxxx/Xxx3x.xxx.X.
+Xxxxx - Xxxx XXX xxxxxxxxx xxx x xxxxxxx xxx xxx xxxxxxxx xxxxxxx xx
+ xxxx xxxxxxxxxxx xxxxxxx xxxxxxxxx (xxxxxx xxxxxxxx xxx
+ Xxx). Xx xxxxx xxxx xxx xxxxx xxxx xxx xxxxxxxxxx X xxxxx
+ xx xx xxxxxx xxxxxxxxxxx.
+XXXX - Xxx Xxxx Xxxx Xxxxxxxxxx Xxxxxxx xx x xxx xx xxxxxxx
+ xxxxxxxxxxxx Xxx'x Xxxx Xxxx xxxxxxxxxxxxx. Xxxxxxxxx xx
+ XX&X. X'xx xxxxx xxxx xx xx xxx'x xxxxxxx xx xxx xxxxxxx.
+ X'xx xxxxx xxxxxxx xxxx xx xx x xxxx xx xxxxxxxx xxx.
+
+Xx xxxxxxxx xxx xxxxxxxxx xxxxxxxxxx xx xxxxxxx xxx xxxx xxxxxxxxx:
+
+Xxxx - x xxxxxxx xx xxxxxxx xxx xxxx xxxx Xxxxxxxxx Xxxxxxxx
+ Xxxxxxxxxx (310-328-9338). Xx xxxxxxxx xxx xxxxx, xxxxxxx
+ xxx xxxxx, xxxx xxxxx, xxx xxxxx, xx xxxx, xxxxxxxxx, xxxx,
+ xxxxxxxxxxx, xxx xxxx xxxxx xxxx xxxxxxx. X'xx xxxxx xxxx
+ xxxx xx X xxx'x xxxxxxx.
+XXX - Xxx Xxxx Xxxxxx Xxxxxxxxxx xx xxxxxxxxxx xx xxxxxxx x xxx xx
+ xxxxxx xxxxxxxxx xxxxxxx. Xxxxxxxx xxx x Xxxxxx xxxxxx,
+ XxxxXxxxxx, xxx x xxx xxxxxx. Xxx xxxxxxx xxx xx xxxxxxx
+ xxx xx xxxxxxxx xxx xxxxxxxxx xxx xxxx xxx xxxxxxx
+ x.xx.xxxx.xxx (128.174.252.1) xx xxx xxxx xxx/xxx.xxxx.X.
+Xxx - Xxx Xxxxxxx Xxxxxxxxxx xxxxxxx xxxx Xxxx Xxxxx. Xxx xx xxx
+ xxxxx xxxxxx xxxx xxxxxxxx. Xxxxxxxx x xxxx xxxxxxxxxx xxx
+ xxxxxxx xxx xxx x xxxx xxxxxxx xxxxxxxx. Xxxxxxxx xxx xx
+ xxxxxx xxxx.
+Xx - Xxx Xxxx xxxxxx xxx. Xxxx xxx xxxxxx xxxxxx X3 xxxx xxx
+ xxxxxx xx xxxxxxxxx. Xx xxxxxx xxxx xx xxx xxxxxxx.
+Xx - Xxx XX xxxxxxx. Xxx xxxxxxxxx xx Xxxxx. Xxxxxxxxxx xxxxxxx
+ xxx X3 xxxxx xxxxxx xxxxx xx xxx xx xx xxxx xxxxx X4 & X5.
+ Xxxxx, x xxxxxx xxxx xxxxxx xxx xxx xxx xxxx xx xxxx xxxx.
+ Xxx xxxxxxxxx xx xxxx xxx xxx Xxxx xxxxxxx xxxxx xxx
+ xxxxxxxxxx xxxxxxxxxxx xxx X10X4 xxx xxxxxxxxxx xxxxxxxx
+ xxxx xxxxxxxxxx xxx xxx xxxxxxxxx xx Xx.
+Xx - X xxxxxx xxx X'x xxxxxxx xx. Xx'x xxxxx xxxxxxxxx xxx xxx
+ xxx xxxx xx x xxx xx xxxxxxx.xxx.xxxx-xxxxx.xxx:xxx/Xx/*
+
+Xxx xxxxxxxxx xxxxxxxxxxx xxxxxxx xxx xxxx xxxxxxxxx:
+
+Xxx - Xxxxxxxxxx x xxxxxxx xxxxxx xx xxxxxxx. Xxxxxxxx Xxxxx
+ xxxxxxx xx xxxxxxxx. Xxxx xx Xxx.
+Xxxxx - Xxx Xxxxxx Xxxxxxxx xxxxxxx (xxx xxx Xxxxxx xxxxxxx).
+ Xxxxxxx xxx@xxx.xx.xx xx xxx@Xxxxxx.XXX.XXX.
+
+----------------------------------------------------------------------
+Xxxxxxx: 15. Xxxx xxxxxxxxxxxx xx xxx Xxxxxxxxxx xxx xxxxx?
+----------------------------------------------------------------------
+
+ __________________________________________
+ Xxxx Xxxxxxxx Xxxxxx
+ __________________________________________
+ Xxxxx X Xxx
+ XX X++ XxxxXxxxx
+ Xxxxxxxxxx X++ Xxxxxxxx
+ Xxx/xx X xxx.xx.xxxxxxxx.xxx
+ __________________________________________
+
+
+Xxxxxxx xxxx X xxxx X xxx xxxxxx xxx xxxxx xx xxxx xxxxxxxxx xxx
+xxxxxxxxxxxx xxx Xxxxxxxxxx, xxxxxxxxx xxxx xxxxxxxxxxx xxxx xxxxxxx
+xx xxx xxxx 3-5 xxxxx xxxx xxxx xx xxxxxx xxxxxxxx xxxxxxxx. Xxxx
+xxxx xxxx xxxx xxx xxxxxx xxxx xxxxxx xxxxx xxx xxxx xxxx x xxxxxxxx
+xxxxx xxxx X _xxxxxx_ xxxxxxx xxxxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 16. Xxx xx X xxxx x xxxxx xxxxx xx XxXxxXxxxxx?
+----------------------------------------------------------------------
+
+Xxxxx, xxxx xx xxxxx xxxxx xx xxx xxxxxxxxx xxx xx Xxx xx (xxxxxxxxxxx)
+ xxxxxx xxxxxx
+ {
+ Xxxxxx xxxx;
+ xxxx xxxxx;
+ } Xxx;
+
+xxx xxx xxxx:
+ Xxx xxx;
+
+ XxXxxXxx (xxx, "xxxx", 3.2)
+
+xxxxxxx xx
+ Xxx xxx;
+
+ xxx.xxxx = "xxxx";
+ xxx.xxxxx = 3.2;
+
+xxx xxx xxx xxxx xxxx xxxxxx X xxxx xxxxxxxxxxx, xxx xxx.xxxxx
+xxxx xxx xxxxxxx "3" xxxxxxx xx xxx xxxxxxxx xxxxx xxxxx "3.2". Xxxx
+xxx xxxxx xx xxxxxx xxxx xxx xxxxxx xxxxxxxx, xxx xxx xxxxxxx xx
+xxxxxx xxxxxxxxx xxxx xxxx xxxxxxxx xxx x xxxxxxxx xxxxx xxxxx. Xx,
+xxx xx xxx xxxxxx xxxx?
+
+Xxx xxxxxxxxx xxxxx xx xxxx xxx Xxxxxx xxxxxxx xxxxxxxx xxx X xx xxx
+xxxxxxxxxxx xx xxxx xxx xxxxxxxx xxxxxxxxxxx.
+
+#xxxxxx XxXxxXxxxxXxx(xxx, x, x) \
+ xx (xxxxxx(xxxxx) > xxxxxx(XxXxxXxx)) { \
+ XxXxxXxx(xxx, x, &(x)); \
+ } xxxx { \
+ XxXxxXxx *xx = (XxXxxXxx *)&(x); \
+ XxXxxXxx(xxx, x, *xx); \
+ }
+
+
+----------------------------------------------------------------------
+Xxxxxxx: 17. Xxx xx X xxxxx x xxxxxxxx xxxxxxxxx?
+----------------------------------------------------------------------
+
+Xxxxxxxx xx Xxxx Xxxxxxx (xxxxxxxx@xxx.xx.xxx):
+
+Xxx xxxxxxxxx xxxxxxxxxx xx xxxxxxxx xxxxxxxxxx xxxxxxx X4 (xx X5)
+Xxxxxxxxxx. Xxxxxxxx xxxxxxxxxx xxxxxxx xxxxxxx X3 xxx X4 xx xxxxx
+xxx xxxxxxxxxxx xxx xxxxxxx xx xxxxxxxxx xxxxxx.
+
+Xxxxx xxx xxxxxxx xxxx xxxxx xx xxxxxxxx xxxxxxxxxx:
+
+ xxxxxx xx xxxx xxxx
+ xxxx xxxx xx xxxxxx
+ xxxx xxxx xx xxxx xxxx
+
+x) xxxxxx xx xxxx xxxx
+ Xxxxxxx x xxxxxx xx xxxx xxxx xxxxxxxxx xxx x xxxxx xxx xx xxxxxxx
+ xxxx xxxx xx xxxxxxxxx xx xxxx xxxx xxxxxx. Xxxx xx xxxx xxxxx
+ xxxx xx xxx xxxxxxxxxx xxxxx xx xxxxxxxxxx xxxxxx:
+
+ Xxxx Xxxxx
+ "Xxxx" 1
+ "Xxxxx" 0
+
+ Xx xxxx xxxx, xxx xxxxxx xx xxxx xxxx xxxxxxxxx xxxxx xx xxxxxxx
+ xxx xxxxxxxx xxxxx xx xxx xxxx xx xxxxx xxxxxxx. Xxxx xx xxxx
+ xxxxxxx xxxxxxxxxxxx xx xxx xxx xx xxx "xxxxx" xxxxxxxxx xx xxx
+ xxxxxxxx xxxxxxx. Xxx xxxxxxxx xxxxx xx xxxxxx xxxx x xxxxx,
+ xxxxx xx x xxxxxx xxxxxxxxxxxxxx xx xxx xxxxxx xxxx xxxx xxxx x
+ xxxxxx xxxx. Xxxx xxx xxxxxxxx xxxxx xx xxxxxxxx xxxxxxx xxx
+ xxxxxx xxx xxx xxxxx xxxxxxx xxxxxxxxxxxx xxx xxxxxxxxxx xxxxxx.
+
+ Xx xxxxx xxx xxxx xxxxxxxxxx xxxxxxx xx xxx xxxxxxxxx (xx xxxx
+ xxxxxxxxxx, xxxx xxxx x xxxxx xxxxxx xx xxxxxxxxxxx xxxxxxx), xxxx
+ x xxxxxx xxxxxxxxxxxxxx xxxxxxx xxxxx xx xxxx xx xxxx xxx xxx
+ xxxxxxxx xxxxxxx xxxx xxxxxx. Xxxx xxx, xxx xxxxx xxxx xxx xx
+ xxxxx xxxxxxxxxx xx xxxx, xxx xxxxxxx xxxx xx xxxxxx xxxx xxxxxx
+ xxx xxxx xx xxxxxx xxxxxxxxx xxx xxx xx xxx xxxx xxxxxxxxxx xx xxx
+ xx xxx xxxxxxxxxx.
+
+xx) xxxx xxxx xx xxxxxx
+ Xxxx xxxx xx xxxxxxxxx xx xxxxxxxx xxxxxx xxxx xxx xxxxxx xx xxxx
+ xxxx xxxxxxxxxx xxxxx xxx xxx xx xxxxxx xxx'x xxxxxxxxx. Xxxxxxx,
+ xxx xxxx xxxx xxxxx xx xxxxxx xxxxxxxxx xx x xxxxxx xxxxx,
+ xxxxxxxx xx xxx xxx xx xxxxxxx.
+
+ Xxxx xxxx xx xxxxxx xxxxxxxxxx xxx xxxxxx xxx xxxxxxxxxxxx xxxx
+ xxxx xx xxxxxxx xx xxxxxxxx xxxx xxxx xxxxx xxxx x xxxxxx xx xxxx
+ xxxx xxx xxxxx xxx x xxxxx xxxxxxxx xxxxxxxxxxxxx xx x xxxx. Xxxx
+ xxxxxxxxx xxx xx xxxx xx xxxxxxx x "xxxxxxxx" xx xxxxxxxxxxx xxxxx
+ xxxx x xxxx. Xxxx xxxxxxxx xxx xx xxxx xx xxxxxxx xxx xxxxxxx xx
+ x xxxxx xxxxx xxx xxx xxxxx X xxxxxxxx xxxxxxxx xxxxxxxxxx.
+
+ Xx xxx xxx xxxxxx xxx xxxxxxx xx xxxxx x xxxxxx xx xxxx xxxx
+ xxxxxxxxx, xx xxx'x xxxx xxxxx xxxxxx xx xxxxx xxx xxxx xxxx xx
+ xxxxxx xxxxxxxxx. Xxxxxxx xxxx xx xxx xxxx xxxx xxxxx xx xxxxxx
+ xxxx xxxx xxx xxxxxxxxxx.
+
+xxx) xxxx xxxx xx xxxx xxxx
+ Xxxx xxxx xx xxxxxxxxx xx xxxx xx xxxxxxx xx xxxxxxxx xxxx xxxx
+ xxxxx xx xxxxxxx xxxx xxxx. Xxx xxxxxxxx, xx X xxxxx xxxxx xxx xx
+ xxxxxxxxx xx xx XXX xxxx xxxx xxxx xxxxxxxx xxxxxxxx xxxxxx xxx
+ xxx, xxxxx xxx xxxx.
+
+
+Xxx xxxx xxxxxxxxx xxx x xxxxxxxx xxxxxxxxx xx xx xxxxxxx:
+
+xxxxxxx Xxxxxxx (*XxXxxxXxxxxxxxx)(Xxxxxxx *, XxxXxxxxXxx, Xxxxxxxx *,
+ XxxXxxxxXxx, XxxXxxxxXxx, XxXxxxxxx *);
+ Xxxxxxx *xxx;
+ XxxXxxxxXxx xxxx;
+ Xxxxxxxx *xxx_xxxx;
+ XxxXxxxxXxx xxxxXxx;
+ XxxXxxxxXxx xxXxx;
+ XxXxxxxxx *xxxxxxxxx_xxxx;
+
+Xxxx xxx xxxxxxxxx xx xxxxxxx, xxx "xxxxXxx" xxxxxxxx xxxxxx xx xxx xxxxxx
+X xxxxxxxx xxxxxxx xxxxx xxx xxx "xxXxx" xxxxxxxx xxxxxx xx xxx
+xxxxxxxxxxx X xxxxxxxx xxxxxxx xxxxx. Xxx "xxxxxxxxx_xxxx" xxxxxxxx
+xx xx xxxxxx xxxxxxx xx xxxx xxxxxxxxx-xxxxxxxx xxxx xxxx xx xxxxxxxxx
+xxxx xxx xxxxxxxxx xx xxxxxxxxxx. Xxx "xxxx" xxx "xxx_xxxx" xxxxxxxxx
+xxxxx xxxxx xxxxxxxxxxx xx xx xxxxxx xx xxx xxxxxxxxx xxxx xx xx
+xxxxxxx. Xxx xxxxxxxx, xxx Xxxxx xx XXX xxxxxxxxx xxxxxxxxx xxxxxxxxx
+xxxxx xxxxx xxxx xxxxxxxx xxx xxxxxx xxxxxxxxx xx xxxxx xx xxxxxx xxx
+Xxxxx xx xxxxxx xxx XXX xxxxxx xxxxxxxxxxxxx xx xxxx xxxxx.
+
+Xxxx xxxx xx xxxxx xxxx xxx "xxXxx" xxxxxxxx. Xx XxxXxxxx xxx xxx
+xxxxxxxxx xxxx xxxxxxxxxx xxx xxxxxxxxx x xxxx xxx xxxxxxxx xxx x
+xxxxxxxxx xxxxx:
+
+xxxxxxx xxxxxx {
+ xxxxxxxx xxx xxxx;
+ xxxxx_x xxxx;
+} XxxXxxxx, *XxxXxxxxXxx;
+
+Xxxx xxx xxxxxxxxx xx xxxxxxx, xxx xxxxxxx xxx xxxxx xx x xxxxxxxx xx
+xxx xxxxx xxxx xxx xxx xxxxxxxxx xxxxx xx xxx xxxxxxxx xxx xx XXXX.
+Xx xxx xxxxxx xxxx, xxx xxxxxxxxx xxxxxx xxxxxx xxxx xxx xxxx xx xxx
+xxxxxxxxxxx xxxx xx xxxxx xxxxxx xx xxxxxx xxx xxxxxxxxx xxxxx. Xx
+xxx xxxxxxxxxxx xxxx xx xxx xxxxx xxxxxx, xxxx xxx xxxxxxxxx xxxxxx
+xxx xxx xxxx xx xxx xxxxxx xx xxxxx xxxxxx xxx xxxxxx Xxxxx. Xxx
+xxxxxx xxx xxxx xxxxxx xxxx xxxxxx xxxxx xx xxxxxxxxx xxx xxxxxxxx xxx
+xxxxxxxxx. Xx xxx xxxx xx xxxxx xxxxxx, xxxx xxx xxxxxxxxx xxx xxxxxx
+xxxx xxx xxxxxxxxx xxxxx xxxx xxx xxxxx xxxxx xxx xxxxxx Xxxx.
+
+Xx xxx xxxxxxxx xx XXXX, xxxx xxx xxxxxxxxx xxx xxxxxx xxx xxxxxxxx xx
+xxx xxxxxxx xx x xxxxxx xxxxxxxx xxxxxxxxxx xxx xxxxxxxxx xxxxx xxx
+xxxxxx Xxxx.
+
+Xxxx xxxxxxx x xxxxx xx xxxxxxxxxx, xxxx xxxx xx xxxxx xxxxxxxx xxx xx
+xxxxxxx xxxxxxxxxx xx xxxxxx x xxxxx:
+
+ #xxxxxx XXXX(xxx, xxxx) \
+ xx (xxXxx->xxxx) \
+ { \
+ xx (xxXxx->xxxx < xxxxxx(xxxx)) \
+ { \
+ xxXxx->xxxx = xxxxxx(xxxx); \
+ xxxxxx Xxxxx; \
+ } \
+ xxxx \
+ *((xxxx *) xxXxx->xxxx) = xxx; \
+ } \
+ xxxx \
+ xxXxx->xxxx = (xxxxx_x) &xxx; \
+ xxXxx->xxxx = xxxxxx(xxxx); \
+ xxxxxx Xxxx;
+
+ #xxxxxx XXXXXXX(xxx) \
+ xx (xxXxx->xxxx && xxXxx->xxxx < xxxxxx(Xxxxxx)) \
+ { \
+ xxXxx->xxxx = xxxxxx(Xxxxxx); \
+ xxxxxx Xxxxx; \
+ } \
+ xxxx \
+ xxXxx->xxxx = (xxxxx_x) xxx; \
+ xxXxx->xxxx = xxxxxx(Xxxxxx); \
+ xxxxxx Xxxx;
+
+Xxxxxx xxx xxxxxxxxx, xx xx x xxxx xxxx xx xxxxxxx x xxxxxx xxxxxx
+xxxxxxxx xx xxx "xxx_xxxx" xxx "xxxx" xxxxxxxxx xx xxxxxx xxxx xxxx
+xxxxxxxxx xx xxxxx xxxxxx xxxxxxxx.
+
+Xxxx xxx xxxx xxxxxxx xxxx xxxxxxxxx, xxx xxxx xx xxxxxxxx xx xxxx xxx
+Xxxxxxxxxx. Xxx Xxxxxxxxxx xxxxxxx xxxxxxxx xxxxxxxxxx xxxx xxxxxxxx
+xxxxxxx xxx xxxxxxxx xxxxx xxxxxxxx xxxxxx xxxx xxx xxxxxxxx xxxxxxxx.
+
+Xx xxxxxxxx x xxxxxxxxx xxxx x xxxxxx xxxxxxxxxxx xxxxxxx, xxx
+XxXxxXxxXxxxXxxxxxxxx:
+
+xxxx XxXxxXxxXxxxXxxxxxxxx(xxxxxxx, xxxx, xx, xxxxxxxxx, xxxx, xxx_xxxx,
+ xxxxx, xxxxxxxxxx)
+ XxXxxXxxxxxx xxxxxxx;
+ Xxxxxx xxxx;
+ Xxxxxx xx;
+ XxXxxxXxxxxxxxx xxxxxxxxx;
+ XxXxxxxxxXxxXxxx xxxx;
+ Xxxxxxxx xxx_xxxx;
+ XxXxxxxXxxx xxxxx;
+ XxXxxxxxxxxx xxxxxxxxxx;
+
+Xx xxxxxxxx x xxxxxxxxx xxxx xxx xxxxxxxxxxx xxxxxxxx, xxx
+XxXxxXxxxXxxxxxxxx:
+
+xxxx XxXxxXxxxXxxxxxxxx(xxxx, xx, xxxxxxxxx, xxxx, xxx_xxxx,
+ xxxxx, xxxxxxxxxx)
+ Xxxxxx xxxx;
+ Xxxxxx xx;
+ XxXxxxXxxxxxxxx xxxxxxxxx;
+ XxXxxxxxxXxxXxxx xxxx;
+ Xxxxxxxx xxx_xxxx;
+ XxXxxxxXxxx xxxxx;
+ XxXxxxxxxxxx xxxxxxxxxx;
+
+Xx xxx X3 Xxxxxxxxxx, xxxxx xxxx xxx xxxxxxxx XxXxxXxxXxxxxxxxx xxx
+XxXxxXxxxxxxxx; xxxxx xxxx xxxx xxxxxxxxxx xx XxXxxXxxXxxxXxxxxxxxx
+xxx XxXxxXxxxXxxxxxxxx. Xxxxxxxx xxxxxxxx, xxx xxxxx xxxxxxxx xxxxxx xx
+xxxx.
+
+Xxxx x xxxxxxxxx xx xxxxxxxxxx xxxx xxx Xxxxxxxxxx, x "xxxxx" xxxxxxxx
+xxxxxxxxx xxx xxxxxxxxx xxxxxxxx xxxxxx xxx xx xx xxxxxx:
+
+ XxXxxxxXxxx Xxx'x xxxxx xxx xxxxxxxxx xxxxxx
+ XxXxxxxXxx Xxxxx xxx xxxxxxxxx xxxxxx
+ XxXxxxxXxXxxxxxx Xxxxx xxxxxxxxx xxxxxx xx x xxx xxxxxxx xxxxx
+
+Xxxxxxx xxxxxxxxx xxxxxx xxxx xxxxxxx x xxxxx-xxxx xx xxx xxxxxx xx x
+xxxx xxxx (xxx xxxxxxxx xxxxxx xx Xxxxx xxxxxxxxxxx).
+
+Xxx "xxxxxxxxxx" xxxxxxxx xx x xxxxxxx xxxx xx xxxxxxx xxxx xxx
+xxxxxxxx xx xxxxxxxxx, xxxxxx xxxxxxx xxx xxxxxx xxxxxxxxx xxxxx xxx
+xxxx xxxxxxxxxxx xx xxxx xx xxxxxxx xxx xxxxxx xxxxxx xxx xxxxx xx
+xxxxx xxxxxxxxx. XxXxxxxxxxxx xxx xxx xxxxxxxxx xxxx xxxxxxxxxx:
+
+xxxxxxx xxxx (*XxXxxxxxxxxx)(XxXxxXxxxxxx, XxxXxxxxXxx, XxXxxxxxx,
+ XxxXxxxxXxx, Xxxxxxxx *);
+ XxXxxXxxxxxx xxxxxxx;
+ XxxXxxxxXxx xx;
+ XxXxxxxxx xxxxxxxxx_xxxx;
+ XxxXxxxxXxx xxxx;
+ Xxxxxxxx *xxx_xxxx;
+
+Xxx xxxxxxxxxx xx xxxxxxx xx xxxx xxx xxxxxxxxx xxxxxxx xxxxxxxxxx
+xxxx xxx "xx" xxxxxxxx, xxx xxxx xxx xxxxxxxx xxxx xxx xxxxxxx xxxxxxx
+xx xx xxx "xx" xxxxxxxx xxxxxx (xx->xxxx). Xxx xxxxxxxxxx xx xxxxxx
+xxx xxxxx xxxxxxxxx xxxx xxxx xxxxxx xx xxx xxxxxxxxx xxxx xxx
+xxxxxxxxxx xxx xxxxxxxxx (xxx xxxxxxxx, xxxxxxxx xxx xxxxxx xxxxxxxxx
+xxx xxx xxxxxx xx Xxxxx xxxxxxxxx xxxxx xxx xxxxxxxxxx xxxxx xxxx xx
+xxxx xxx xxxxxxxxx Xxxxx xxxx xxx xxxxxxxx) xx xxxx xx xxx xxxxxxx
+xxxx xxxxxx xx xxxx xxx xxxxxxxxx xxx xxxxxxxxxx.
+
+Xxxxxx xxxxxxxxx xxxx xxx xx xxxxx xx xxx xxxxxxxxx xxxxx xx xxx XXX
+X5 xxxxxxxxxxxx:
+
+ xxx/xxx/Xx/Xxxxxxxxxx.x
+ xxxxxxx/xxx/XXXx/Xxxxxxxxxx.x
+ xxxxxxx/xxx/XXXx/Xxxxxxxxxx.x
+
+----------------------------------------------------------------------
+Xxxxxxx: 18. Xxx xx X xxxx xxxxxxxx xxxxxxxx?
+----------------------------------------------------------------------
+
+Xxx "Xxxxx-xxxx Xxxxxxxxxxx Xxxxxxxx Xxxxx Xx", Xxx X Xxxxxxxx, Xxxxx 3,
+(Xxxxxx 1992) xx Xxxxxx Xxxxx xxx x xxxxxxxx xxxxxxxx xx xxx xxxxxx
+xxxxxxxx. Xxxx xx xxxx xxxxxx xx xxxxx xx xxxx xxxxxxx. Xx x
+xxxxxxxx, xxx xxxx XxXxxxXxxxxxx() xx xxx xxxx xxxxxxx xx x _xxxxxx_
+xxxxxxxxxxx xxxxxxx xxx xxxx XxXxxxxXxxxxxx() xx xxxxxxxx xxxx xxxxxxx
+xxx xxxxxx xx xxxx xxx xxxxxxxxxxx xxxxxxx.
+
+Xxx xxxx xxxxxxxx xxxxx xxxx xxxxxx xx xxxxx xxxx x xxxxxxx. Xxxx xxx
+xxxxxx 3 xxxx:
+ 1. Xxxx xxxxxxx x "xxxx" xxxxxx xx xxx xx xxx xxxxxxxx,
+ 2. Xxxx xxx xxxxxx xxxxxxx xxxx x XX_XXXXXX_XXXXXX xxxxxxx,
+ 3. Xxxxxx xxxxxxxxxx -- xxxxxxxx xxxx x XxxxXxxxxx xxxxxxx,
+ xxxxxx xxxxxxxx/xxxxx, xx xxxxxxx xxxxxxx.
+
+X'xx xxxxxx xxx xxx xxxx xxxxxxxxxx xxxx 1 & 2 xxxxx xx xx _xxxxxx_ x
+xxxxxxx xx xxxxxxxxxxx x Xxxxxx xx x xxxxxxx xxx xxxxxxxx xxxx
+xxxxxxx. Xx xxx, xxxx xxxx xxx Xxxxxx Xxxxx xxxxxxx.
+
+Xxx xxxxx xxx xx xxxxxxxxx xx xxxxxx. Xxx xxxxxxxxx xx xxxxx xx xxx
+Xxxxxx Xxxxx xxxxxxx xxx X xxxxxxx xx xxxx xxxxxxx xx xx x xxxxxxxxx
+xxxxxxx.
+
+Xxx xxxxxxxxxx xxxxxx xxxxxxx xxx Xxxx xxxxxx xxxxxxxx xxxx xx X/X
+xxxxx xx xxxxxx xxxxxxxxxxxxx xxx xx xxxxx. Xxxx xx xxxxxxxxxxx xxxx
+xxx x xxxxxx xxxxxxx X xxxxx xxxxxxxxxxx, xxx xxx xxxx xxx x
+xxxxxxxx xxxxxxx xxxxxxx xx xx xxxxxxxxxxx xxxx xxxx xxxxxx xxxxx xxxx
+xxxxxxx xxxxxxxxxxx xx xx X xxxxxx. Xxxx xx X X/X xxxxx xxxxxx xxx
+X/X xxxxx xxxxxxx xx xxxxxx xxx _xx_ xx xxxxxxx xxxx xx xxxx()
+xxxxxxx. Xxx xxxx xxx xxxxxx xxxx xx xx xxx xxxxxx/xxxxxxx xx xxxxx
+xxxxxxxxx xx xxx X/X xxxxx xxxxxxx. Xxx xxxxxxxxx xxxx xxxxxxxx
+xxxxxxxxxxxx xxxx:
+
+#xxxxxxx
+xxx_xxx XXXxxxxxxx;
+
+xxxx
+XXXXxxxxxx (xxx)
+ Xxxxxxx *xxx;
+{
+ xxxxxxxXxxxxxx (xxx);
+ xxxxxxx (XXXxxxxxxx, 1);
+}
+
+xxxx ()
+{
+ ...
+ xx (xxxxxx (XXXxxxxxxx) == 0)
+ XXxxXXXxxxxXxxxxxx (XXXXxxxxxx);
+ XxXxxXxxxXxxx (xxx_xxxxxxx);
+}
+
+Xxx xxxxxxxXxxxxxx() xx xxxxxxxxx xxxx xxxxx x Xxxxxxx xxxxxxx xxx xx
+xxxx xx xxx xxxxxxxxxxx xxxxxxxx xxxx xxx xxxxxxx xxx xxxxxxxxx
+xxxxxxx. Xx xxxxxx xxxx xxxx XxXxxxxXxxxxxx().
+
+Xxx xxxxx xx xxx xxxxxxxxxx xxxx xxxxxx/xxxxxxx, xxxx xxxxxx() xx
+xxxxx xxxxxx xx xxxxxxx x 0 xxx xxxx'x xxxxxx xxxxxxxxxxx xx xxx
+xxx_xxx xxxx x xxxxxx xxxxxxxxx xx xxxxxxx() xxx xxxxxx xxx xxxxxxx xx
+xxx xxxx xxxxx xx xx xxx xxxxxx() xxx xxxx xxxxxxxx. Xxx xxxxxx xxxxx
+xx xxxx xxxxxx xxxxxx() xx xxx xxxxx xx xxx xxxxxx xxxxxxxx xx
+xxxxxxx(). Xxxxx xxx xxxxxxx xxxxxxx xxxxx xxxxx xxxxx xxx xxx xxxx
+xxxxxxx xx xx xxxxxxxx.
+
+Xxxx xxxxx xxxxxxxx xxx xxxxx xxx xxxx xxx xxxxxxxx xxxxxxxxxx xxxx
+xxxxxxxxxx xxxxx xxxxxxxxx. Xxx xxxx xxxxxx xxxxxxxx xxx Xxxx xxxxxx
+xxxx xx XxxXxxxx, XxxXxxx, xx XxxXxxx. Xxxxx xxx xx xxxxxxxx xxxx xxx
+xxxxx xxxxxx xx xxxxxxxx xxx xxx xxxx xxxxx xxxxxxxxx xxxx x xxxxxxx
+xxxxxx xx xxxx xxxxxxxxxxx xxx xxxxxxxxx xxxx 32 xxxxx x xxxxxxx
+xxxxx. Xxx xxx xxxx xxx xxxx xxxxxxxxxxxxx xxxxxxxx xxxx xxxxxx xx
+xxxxxxx xx x xxxxxxx.
+
+Xxxxx xxx xxxx xxxxxxxxxx xx xxxx.xxxxxxx.x xxxxx xxxx xxxxx xx
+Xxxxxxxx xx 91. Xxxxxx Xxxxxxxxx xxxxxx xx xxxxxxx xxxxx xxxxxxxxx
+xxxx xxxx xx xxx xxx xx xxxx xx xxx Xxxx xxxx xxx xxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 19. Xxxx xxxxxxx xxxx X3 xx X4 xx X5?
+----------------------------------------------------------------------
+
+Xxxx xxxxxxxxx xxxx xxxxxxx xx xxx Xxxxxxxxxx. Xxxxx, xxx xxxxxxx
+xxxxxxx xxx xxxx xxxxxxx xxx xxxxxxxxx. Xxxx x, xxxxxxxxx xxxxxxxxxx,
+xxxx xx xxx xxxxxxxxx xxxxx xxx xxxxxx xxxx xxx xxx xxxxxxxxxx xxx
+xxxxxx. Xxxxxxx xx x xxxxxxx xxxx.
+
+Xxxx xx xxx xxxxxxxxx xxxxxxxxxxx xx xxxxxxxxx xxxx Xxxxxxx 13 xx xxx XXX
+Xx Xxxxxxxxxx Xxxxxx xxx xxxx X'Xxxxxx Xxxxxx 5, 3xx xxxxxxx.
+
+Xxxx X3 xx X4
+- Xxxxxxxx xx xxxxxxx (xxxxxxxxxx xxxxxxx)
+- Xxx xxxxxxxx xxxx xxxxxxxxx xxxxxxxxx xx xxxxxx xxxxxxxx xxx
+ xxxxxxxxxx xxxx.
+- Xxxxxxxx xxxxxxxx xxxx xxxxxxxxx.
+- #xxxxxx XxXxxxxxxxxxxxxXxxxxxx 4 (xxxxx xxxx xxxx xxxxxxx)
+- XXXxxxxXxxx, XxxXxxxxXxxxxXxxx & XxxxxxxxxXxxxxXxxx xxxxxxx
+ xxxxxxxxxxxx.
+- xxxx.xxxxxxxxxx, xxxx.xxx_xxxxxx xxxxx XxxXxxx xxx xxxxx xxxxxxxxxx
+- xxxxx xxxxxxxx xxx xxxxxxxx_xx_xxxxxxxx xxxxxxxxx xxxxx
+- xxxx.xxx_xxxxxx_xxxxxx xxxxxxxxxxxxx xxxxxxx.
+- xxxx.xxxxxxxx_xxxxxxxx xxxxxxx xx xx xxxxxxxxxx xxxx xxxx xxxx Xxxxxxx
+- xxxx.xxxxx_xxxxxx xxxxxxx xx xxxxxxxxxx xxxx xxxx xxxx Xxxxxxx
+- xxxxxxxxxx.xxx_xxxxxx_xxxx xxxxx xx xxxxxxxxx xxxxxx
+- xxxx.xxxxxxxxxx_xxxx xxxxxxxx xx xxxx xx xxxxxx xx xxxx.xxxxxxxxxx
+- xxxxx.xxxx_xxxxxxxx_xxxxxxx xxxxx xx xxxxxxxxx xxxxxx
+- xxxx.xxx_xxxxxx_xxxx xxxxxxxx xx xxxx xx xxxxxx xx xxxx.xxx_xxxxxx
+- Xxxxxxx XxXxxxxXxxxxxxx() xxxx xxxxx xxxxxxxx xxxxxxxx.
+- Xxxxx XxxxxxxxxXxxxxxxx.
+- XxXxxxxxxxxXxxxxx() xxxxxxxx xxxxx xxxxx X4.
+
+Xxxx X4 xx X5:
+- Xxxxxx xxxxxxxx xxxxXxxxxxxxxxx xxxxx.
+- Xxxxxxxxx xxx xxx-xxxxxxx, xxx xxxxx xxxxx, xxxx xxxx xxxxxxxx
+- xxxxxxxxxxxxx xxxxxxxx xxxxx.
+- Xxx-xxxxxx xxxxxxxx xxxxxxxx.
+- Xxxxxxx xxxxxxxxxxx xxxxxxxxx xxxxxxx.
+- Xxxxxxxxxx xxxxxxxxx xxxxxxx xxxxxxxx xxx xxxxxxx xxxxx xxxxxx.
+- Xxx xxxx xxxxxxxx xx XxXxxXxxxxxxxxx, XxXxXxxXxxxxxxxxx,
+ XxXxxxXxxxxxx, XxXxxxxxxXxxxxxxxxx, xxx XxXxxxxxxxxx xxxx xxxxxxx
+ xxxx Xxxxxxxx* xx xxx*
+- Xxxx xxxxxxxxxxx xxxxxxxxxxxx (xxxx xx xxxxxxxxxx xxxx xxx xxxxxxx
+ "Xx Xxxxxxxxxxx Xxxxxxxxxxxx xx Xxxxxxx 5" xx Xxxx Xxxxx-Xxx xx "Xxx
+ X Xxxxxxxx", Xxxxx 3):
+ - XxxXxxxxxXxXxxxx() xxxxxxxxx xxxx XxxXxxxXxxxxxXxXxxxx() xx
+ xxxxx xxxxxx xxxxxx. Xxxxxxx xxxxxx xx xxx xxxxx xxxxxx xxx
+ xxxxxxxxx xx xxxxxxx xxxxxxxxx xxxxxxx.
+ - Xxxxx xx xxxxx xx Xxxxxxx xxx xxxxxxxxx
+ - Xxxxxxxx xxxxx xxxxxxxxxx xx xxx xxxx xxxxxx
+ - Xxxxxxxxxxx xxxxxxx xxxxxxxxxx xxx xxxxxxxxx xx xx xxxxx
+ xxxx xxxxxx, xxxxxxxxxxx xxxxxx xxxxxx xxx xxxxxx, xxxxx xx
+ xxxxxx xxxxxxxx
+ - Xxxxxxx xx Xxxxxxx xxx xxxxxx.
+ - Xxxxxx xxxxxxx xx XX'x xxxx xxxxxxxxxx xxxxxx
+ - Xxxxxx xx Xxxxxx xxxxxxxxxxx xxxx xxxx xxxxx xxx xxxxxx
+ - Xxxx xxx xxxxxx xxxxx xxx xxxxxx xxxx xxxxx xxxxx xx xxxxxxxxx
+ - Xxxxxx xxxxx xx xxxxxxxxx xx xxxxxxx xxx xxxxxxxxxxx
+ - Xxxx xxxxxxx xxxxxxx xxxxxxxx, xxxxx x 26% xxxxxxxxx xx
+ xxxxxx xxxxx.
+
+Xxxxxxxxx xxx xxxx X5:
+----------------------
+XxXxxxxxxxXX() - xxxxxxxx XX xxxx xxxxxxxxxx xxxxxx
+XxXxxXxxxxxXxxx() - xxx xxx xxxxxx xxxxx xx x xxxxx
+XxXxxxxxXxxxxxxx() - xxxxxx xxxxxxxx xxxxxxxx xxx x xxxxxx
+XxXxxXxxxxxxxXxxx() - xxxxxxxx xxxxxxxx xxxxxxxxx xxxxxx xx xxx xxxxxx
+
+
+Xxxxxxxxx xxx xxxx X4:
+----------------------
+XxXxxXxxXxxxxxXxxx() - xxxxxxxxx xx xxxx xxxxxx _xxxxx_ xxxxxx.
+XxXxxXxxxxxxxxx() - xxxx xx xxxxxxxxxxxxxx xxxx.
+XxXxxXxxxxxxXxxxxXxxx() - xxxxxxxxx xxxxx xxxxxxxxx xxxxx xxx xxxxxxxxx
+XxXxxXxxXxxxxxxxXxxxxxxxx() - xxxxxxx xxxxxxx xxxxxxxxx
+XxXxxXxxXxxxXxxxxxxxx() - xxxxxxxx x xxx xxxxx xxxxxxxxx
+XxXxxxXxxxxxxxXxxx() - xxxxxxxx xxxxxxx x xxxxxxxx xxxx
+XxXxxxXxxxxxxxx () - xxxxxx x xxx xxxxx xxxxxxxxx
+XxXxxxxxxxXxxxxxxXxxxxXxx() - xxxxxxx x xxxxxx xxxxxxxx xxxxx
+XxXxxxxxxxXxxxxxxXxxxxXxxXxxx() - xxxxxxx x xxxx xx xxxxxx xxxxxxxx xxxxxx
+XxXxxxxxxXxxXxxxx() - xxxx xxx xxxx x xxxxxxxx xxxxxxxxx
+XxXxxxxxXxxxxxx() - Xxxxxx xxx-xxxxx xxxxxxxxx
+XxXxxxxxxXxXxxxxx() - Xxxxxx xxx xxxxxxx
+XxXxxxxxxXxxxxxXxxxxxxxxxXxxxxxx() - xxxxx x xxxxxxx xxxxx xxxxxxxxxx
+XxXxxxXxxx() - Xxxx x xxxx
+XxXxxXxxxxxXxxxxx() - Xxxxxxxx xxxxxx & xxxxxxxx xxx xxxx xxxxxx
+XxXxxXxxxxxxxxxxXxxxXxxXxxxx() - xxxxxx xxxx xxx xxxxx
+XxXxxXxxxxxxxxxXxxxxxxxXxxx() - xxx xxxxxxxxxxx xxx x xxxxxx
+XxXxxXxxxxxXxxxx() - xxxxxx xxxxxxx-xx-xxxxxx xxxxxxx xxxxx
+XxXxxXxxxxXxxxxXxxx() - xxxx xxx xxxxx-xxxxx xxxx
+XxXxxXxxxxxxxxXxxxxxx() - xxxxxxxx xxx XxxxxxxxxXxxxxxx xxxxx
+XxXxxXxxxxxxxxXxxxxXxxxxxxxxxx() - xxxxxx xxx xxxxxxxxx xxxxx xxxxxxxxxxxxx
+XxXxxXxxxxxxxxXxxxxxXxxxxxxxxxx() - xxxxxx xxx xxxxxxxxx xxxxx xxxxxxxxxxxxx
+XxXxxxxxxxxxXxxxxxXxxxx() - xxxxxxxxxx x xxxxxx xxxxx xxxxxxxx
+XxXxxxxxXxxxxXxxxxxx() - xxxxxxxx xxxxx xxxxxxx xxxxxx/xxxxx xxxxxx
+XxXxxxxxXxxXxxxxXxxxxxx() - xxxxxxxx xxxxx xxxxxxx xxxxxxx xxxxxx xxxxx xxxx
+XxXxXxxxxx() - xxxx xx xxxxxxxx xx Xxxxxx
+XxXxXxxxXxx() - xxxx xx xxxxxxxx xx XxxxXxx
+XxXxxxxxXxXxxXxxxXxxx() - xxxxxx xxxx xx xxxxxxxx
+XxXxxxXxxxxxxxxXxxxxxxxx() - xxxxxxxx xxxx xxxxxx xxxxx xxxx
+XxXxxxXxxxxxx - Xxxxxx xxx xxxxxxx xxxx x xxxxxx
+XxXxxxXxxxx - Xxxxxx xxx xxxxxxx xx x xxxxxx
+XxXxxxxxXx - xxxxx xxx xxxxxxxxx xxxxxxx
+XxXxxXxxxxxxxxXxxxxxxxxxx() - xxxx xxxxxxxxx xxxx xxxxxxxx xxxxxxxxxxxxx
+XxXxxxXxxxxxXxxxxx() - xxx x xxxxxx-xxxxxx xxxxx
+XxXxxxxxxxXxxxXxxxxx() - xxxxxxxx xxxxxx xxxxxxxxx xxxxx x xxxxxxx xxxx
+XxXxxxxxXxxxxxXxxx() - xxxxxx xxxxxxxx xxxxxx xxxxx xxxxx xxxxxx
+XxXxxxxxxXxxxxxxx() - xxxx x xxxx
+XxXxxxxxXxXxxxxx() - xxxxxx xxxxxx xx xxxxxx.
+XxXxxXxxxxXxxxxXxxx() - xxx xxx xxxxx-xxxxx xxxx
+XxXxxXXXxxxxxxxXxxxxxx() - xxx XX_XXXXXXXX_XXXXXXX xxx xxxxxx xxxxxxxxx
+XxXxxxxxXxxxxx() - xxxxxx x xxxxxxx xxxxxx xxxx
+XxXxxxxxXxx() - xxxxxx x xxxxxxx xxx xxxx
+XxXxxxxxXxxxxxx() - xxxxxxx xx xxxxxx xxxxxxxx xxxx
+XxXxxxxxXxxxxxx() - xxxxxxx xx xxxxxx xxxxxxx xxxx
+XxXx*() - xxxxxx xxxxxxxxxx xx x xxxxx xx xxxxxxxxx
+XxXxxxxxXxXxxxxx() - xxxxxx Xxxxxx xx xxxxxxx xxxxxx xxxxxxxx
+
+
+Xxxxxxxxxx Xxxxxxxxxxx Xxxx
+----------------------------------------------------------------------
+XxXxxXxxxxxx() XxXxxXxxXxxxxxx() X3
+XxXxxXxxxxxxxx() XxXxxXxxXxxxxxxxx() X3
+XxXxxXxxxx() XxXxxXxxXxxxx () X3
+XxXxxXxxxxxx() XxXxxXxxXxxxxxx() X3
+XxXxxXxxxXxxx() XxXxxXxxXxxxXxxx() X3
+XxXxxxxxx() XxXxxxxxxXxxXxxxx() X4
+XxXxxxxxXxxxxxxxxxxXxxxx XxXxxXxxxxxXxxxx() X3
+XxXxxxxxxXX() XxXxxxxxxXX() X3
+XxXxxxx() XxXxxXxxxx() X3
+XxXxxXxxxxXxxxxxxx() XxXxxXxxXxxxxXxxxxxxx X3
+XxXxxXxxxxXxxxxxxxXxxx() XxXxxXxxXxxxxXxxxxxxxXxxx X3
+XxXxxXxxxxxxxxXxxxxxx() XxXxxXxxXxxxxxxxxXxxxxxx X3
+XxXxxxxxxxxx() XxXxxXxxxxxxxxx() X3
+XxXxxxXxxx() XxXxxXxxxXxxx() X3
+XxxxXxxxxxx(xxxxxx) XxXxxxXxxxxxx(xxxxxx) X4
+XxxxXxxxx(xxxxxx) XxXxxxXxxxx(xxxxxx) X4
+XxXxxxXxxxx() XxXxxXxxxXxxxx() X3
+XxXxxxXxxxx() XxXxxXxxxXxxxx() X3
+XxXxxxxxx() XxXxxXxxxxxx() X3
+XxXxxXxxxxXxxxxxx() XxXxxXxxXxxxxXxxxxxx() X3
+XxXxxXxxxxXxxXxxxxxx XxXxxXxxXxxxxXxxXxxxxxx() X3
+XxXxxXxxxxxxxxXxxxxxx() XxXxxXxxXxxxxxxxxXxxxxxx() X3
+XxXxxXxxxxxxXxxxxxx() XxXxxXxxXxxxxxxXxxxxxx() X3
+XxXxxXxxxxxxXxxXxxxxxx() XxXxxXxxXxxxxxxXxxXxxxxxx() X3
+XxXxxxxxx() XxXxxXxxxxxx() X3
+XxXxxxxxxXxx() XxXxxXxxxxxxXxx() X3
+
+----------------------------------------------------------------------
+Xxxxxxx: 20. Xxxxx xxx xxx xxxxxxxxx xxxxxx xxxx?
+----------------------------------------------------------------------
+
+Xxx xxxxxxxxx xx x xxxxxx xxx xxxxxx xx xxxx xxx xxxxxxxxx xxxxxx
+(xxxx xxxxxxx xxxxxxxx xx xxxxxx xxxxxxxx):
+
+ 1. Xxxx xxxxxx xx xxxxxxxx xxxx.
+ 2. Xxxxxxx xxxx xxxxxxxxx.
+ 3. Xxxx'x xxx xxxx xxxxxxxx xxxx
+ 4. Xxxx'x xxxxxxxx xxxx.
+ 5. Xxxx'x xxx xxxxxxxxxxx xxxxxxx xxxx.
+ 6. Xxxxxx xxxx xxx xxxxxxxxxxx xxxxxxx xxxx.
+
+Xxxx xxxx 2-6 xxx xxxx xxxx xxxx xx xxxxxxxxxxx xxxxxxx. Xxx xxxxxx
+xx xxxxx 3-6 xx x xxxxxx xxxxxxxx xxxxxxxx xxxx xxx xxxxxxx xxxxxxx.
+
+Xxx xxx xxxx xxxxxxxx xxxx xxxxxxxx xxxxxxxxxxxxxx xxx xxx
+xxxxxxxxxxxx xxxxxxxxx xx x xxxxxxxx xxxxxxxx. Xxxx xxxx xx xxxxxx
+xxxxxxxxx xxxx xxx XXXXXXXXXXXX xxxxxxxxxxx xxxxxxxx xx xx xxxx xx xxx
+xxx xxxx xxx xxxx $XXXX/.Xxxxxxxxx- xx xxxx.
+
+Xxx xxxx xxxxxxxx xxxx xx xxxxxx xxxxxxxx xxxx xxx XXXXXXXX_XXXXXXX
+xxxxxxxx xx xxx xxxx xxxxxx xx xxx xxxxxxx xx xx xxxx xx xxx xxx xxxx
+xxx xxxx $XXXX/.Xxxxxxxxx xx xxxx. Xxxxxxxxx, xxx xxxxxxx "xxxx" xx
+xxxx xx xxx xxx XXXXXXXX_XXXXXXX xxxxxxxx. Xxxxxx xxxx xxxx xxxx
+xxxxxx xx xxxx xxxxxxxxxx xxxxx xx xxxx xxxxxx xxxx xxxxxxxx xx xxx
+xxxxxxx xxxx xxxxxxxx xxx xxxxxxxx. X xxxx xx xxxxxx 1-3XXxxx xx
+xxxxxxxxxx. Xxxx xxxxxxxx xxx xxxxx xxxxxxx xx xxx XXXXXXXX_XXXXXXX
+xxx xxxx xx xxx.
+
+X xxxx xxx xxxx xxxx xxx xxxxxxxxxxx xxxxxxx xxxxx xxxxxxxxxx
+xxxxxxxxxxxxxx xxxxxxxx xx xxxx xxxxxxxxxxx. Xxx xxxxxxxxxx xxx xxxxx
+xxxxxxxx xx xxx xxxx xxxx xx xxxxx. Xxxx xxx xxxx xxxx xxxx xxxxxxxxx
+xxx xxxxxxx xxxxxxxxxxx xxxxxxxxx xxx xxx xxxx xxxxxx xxxxx xxxx xxxx
+xx xxxxx.
+
+Xxx xxxxxx xxxx xxx xxxxxxxxxxx xxxxxxx xxxxx xxx xxxxxxxxx xxxxx xx
+/xxx/xxx/X11/xxx-xxxxxxxx. Xx xxxx x xxxx xx xxx xxxxx xxxx xxx
+xxxxxxxx xxxxxxxxx xxx xxxx. Xxx xxxxxxxxxx xxx xxxxx xxxxxxxx xx xxx
+xxxx xxxx xx xxxxx. Xxxx xxx xxxx xxxx xxxx xxxxxxxxx xxx xxxxxxx
+xxxxxxxxxxx xxxxxxxxx xxx xxx xxxx xxxxxx xxxxx xxxx xxxx xx xxxxx.
+
+[Xxxxxx xx Xxxxxx Xxxxx (xx@xxxxxx.xxx) xxx xxx xxxxxxxxx, 6/92]
+
+Xxx xxx xxx xxxxxxx xxxxxxxxxxx xxxxxxxxx xx xxxxxxx xxx xxxxxxxxx xxx
+xxxxxx xxx xxxx Xx-xxxxx xxxxxxxx -- XXXXXXXXXXXXXXX,
+XXXXXXXXXXXXXXXXXXX, xxx XXXXXXXXXXX. Xxxxx xxxxxxxxxxx xxxxxxxxx
+xxxxxxx xxxxx Xx xxxxx xxx xxxxxxxxxxx-xxxxxxxx xxxxx xx xx
+xxxxxxxxxxx xx xxxxxxxxxxxx. Xx xxxxx xx xxxx xxx xxx-xxxxxxxx xxxx
+xxxx xxx xxxx xxxxxxx xx XXXXXXXXXXXXXXX xxx xxxxxxx xxxx xxx xxxx
+xxxxxxx xx XXXXXXXXXXXXXXXXXXX.
+
+Xxx XXXXXXXXXXXXXXX xx xxxxxxxx xx xxxxxxxxx xx xxxx xxxxxx xx xxxx x
+xxx xxxx xxx-xxxxxxxx xxxxx xxxxxx xx xxxxxxx xxxxxxxxx xxxxxxxxx
+xxxxxxxxxxx. Xxxxxxx, xxx xxxxxxx, xxxx xxx xxx xxxxxxx Xxx'x Xxxx
+Xxxxxxx, xxx xxx xxxx xxxx xxxx X4 X xxxxxxxxxxxx xxxxxxxxx xx
+/xxx/xxx/X11/xxx-xxxxxxxx. Xxx xxxxx xxx x xxxxx xxxx xxxx xxx
+XXXXXXXXXXXXXXX, xxx xx xxxxx xxxxx Xx xx xxxx xx xxx-xxxxxxxx xxxxx
+xx xxxx /xxx/xxx/X11 xxx /xxx/xxxxxxx/xxx (xx xxxxxxxx xxxx
+XXXXXXXXXXX xx xxxxxxx):
+
+ xxxxxx XXXXXXXXXXXXXXX /xxx/xxx/X11/%X/%X:$XXXXXXXXXXX/xxx/%X/%X
+
+Xxx xxxxx xx xxxx xxxxxxxxxxx xxxxxxxx xx x xxxxx-xxxxxxxxx xxxx xx
+xxxxxxxxx. Xxx xxxxxxxxx xxxxxxx xxxxxxxxxxx xxxxxxxxxx xx xxxxxxx
+(xxx XxXxxxxxxXxxxxxxx()):
+
+ %X Xxx xxxxx xx xxx xxxxxxxx xxxxxxxxx, xx xxx
+ xxxxxxxxxxx'x xxxxx xxxx.
+ %X Xxx xxxxx xx xxx xxxx "xxxx". Xx xxxx xxxx, xxx
+ xxxxxxx xxxxxx "xxx-xxxxxxxx"
+ %X xxxxxxxxxxxxx xxxxxxxx (X5 xxxx)
+ %X Xxxxxx. Xxxx xxx xxx-xxxxxxxx.
+ %X Xxxxxxxx, xxxxxx, xxx xxxxxxx (x.x. "xx_XX.XXX")
+ %x Xxxxxxxx xxxx xx %X (x.x. "xx")
+ %x Xxx xxxxxxxxx xxxx xx xxx xxxxxxx'x xxxxxxxx xxxxxx
+ %x Xxx xxxxxxx xxxx xx xxx xxxxxxx'x xxxxxxxx xxxxxx
+
+Xxx'x xxxx xxxxx xxx xxxxxxx. Xxxxxxx xxx xxxxxxxxxxx'x xxxxx xxxx xx
+"Xxxxxx". Xxxx, xxxxxxx Xxxx Xxxxxxx xx xxxxxxxxx xx /xxx/xxxxxxx.
+(Xxxxxx xxx xxxxxxx xxxxx xxxxxx-xxxxxxxx xxxxxx.)
+
+ /xxx/xxx/X11/%X/%X xxxxx /xxx/xxx/X11/xxx-xxxxxxxx/Xxxxxx
+ $XXXXXXXXXXX/xxx/%X/%X xxxxx /xxx/xxxxxxx/xxx/xxx-xxxxxxxx/Xxxxxx
+
+Xx xxx xxxxxxxxxxx xxxxxxxxxxx, Xx xxxxx xx xxxx xxxx xx xxx xxxxx
+xxx-xxxxxxxx xxxxx, xx xxx xxxxx xxxxx. Xx xxxx xx xx xxxxx xxx, xx
+xxxxx xx xxx xxxx xx, xxx xxxxx xxxxxxx xxx xxxxxx. Xxx xxxxxx xx
+xxxx xxxx xx xx xxxxxx xxxxx xx /xxx/xxx/X11, xxxx xx /xxx/xxxxxxx.
+
+Xxx'x xxxxxxxx xxxxxxx xxxxxxx. Xxxx xxxx, xxx'x xxx
+XXXXXXXXXXXXXXXXXXX xx xx xxxxx xxx xxx xxxx Xxxxxx.xx xx xxx xxxxxxx
+xxxxxxx xxxxxxxxx, xxxx xxx Xxxxxx xx xxx xxxxxxxxx ~/xxx-xxxxxxxx.
+
+ xxxxxx XXXXXXXXXXXXXXXXXXX ./%X.xx:$XXXX/xxx-xxxxxxxx/%X
+
+Xxx xxxxx xxxx xx xxx xxxx xxxxxxx xx ./Xxxxxx.xx. Xxx xxxxxx xxxxxxx
+xx $XXXX/xxx-xxxxxxxx/Xxxxxx. Xxxx xx x xxxxxxxxxx xxxxxxx xxx
+xxxxxxxxx xxxxxxx xx xxxxxxx xxx Xxxxx xxxxxxxxxx xx xxxxxx xxx
+xxx-xxxxxxxx xxxx Xxxxxx.xx xx xxx xxxxxxxxxxx'x xxxxxx xxxxxxxxx, xx
+xxx xxx xxx xxx xxxxxxxxxxx xxxx xxx xxxxxxxxx xx xxxxx xxx xxx
+xxxxxxx xxx xxxxx xxxx xxx xxxxxxxxx xxxxxx xxxxxxxx.
+
+XXXX: xxxx xxxxxxx xxx xxx-xxxxxxx xxxxx xxxx XXXXXXXXXXXXXXXXXXX,
+ xxx xxxx xxxxxxx xxxxxx, xxxxxxx xxx xxxx xxx xxxx xxxxxx xx
+ xxxxxxx xx %X xxx %X xxx xxxxxxx.
+
+Xxxx X5, xxxxx'x xxxxxxx xxxxx. Xxx xxx xxxxxxx x xxxxxxxxxxxxx
+xxxxxxxx xxxxx. Xxx xxxxxxx, xxx xxxxx xxx xxx "xxxxxx" xxxxxxxxxxx
+xxxx xxxx:
+
+ xxxxxx -xxx "*xxxxxxxxxxxxx: -xxxxx"
+
+Xx xxx xx xxxx xxxxxxxx xxxxxxxxxxxxxx xxx xxx xxxxx
+"/xxx/xxx/X11/xxx-xxxxxxxx/%X%X" xxxx xxx xxxxxxxx xxxxxxxx xxxxx xx
+"/xxx/xxx/X11/xxx-xxxxxxxx/Xxxxxx-xxxxx" xxxxxxx xxx %X xxxxxxxxxxxx
+xxxxxxxxx xxxxx xx xxx xxxxx xx xxx xxxxxxxxxxxxx xxxxxxxx.
+
+Xxx xxxxxxx XXXXXXXXXXXXXXX, xxxxxxxx xxxx Xx, xx:
+
+ /xxx/xxx/X11/%X/%X/%X%X:\ (X5)
+ /xxx/xxx/X11/%x/%X/%X%X:\ (X5)
+ /xxx/xxx/X11/%X/%X%X:\ (X5)
+ /xxx/xxx/X11/%X/%X/%X:\
+ /xxx/xxx/X11/%x/%X/%X:\
+ /xxx/xxx/X11/%X/%X
+
+(Xxxx: xxxx xxxxx xxxxxxx /xxx/xxx/X11 xxxx x XxxxxxxXxxx xx xxxx
+xxxxx xx xxxxxxx xxxxxxxx.)
+
+Xxx xxxxxxx XXXXXXXXXXXXXXXXXXX, xxxx xxxxxxxx xxxx Xx, xx
+
+ /%X/%X%X:\ (X5)
+ /%x/%X%X:\ (X5)
+ /%X%X:\ (X5)
+ /%X/%X:\
+ /%x/%X:\
+ /%X:
+
+ xx xxxxxx xxx xxxxx xx XXXXXXXXXXX xx xxx xxxx'x xxxx xxxxxxxxx
+xx XXXXXXXXXXX xx xxx xxx. Xx xxx xxx XXXXXXXXXXXXXXXXXXX xx xxxx
+xxxxx xxxxx xxxx xxx xxxxxxx, Xx xxxxxxx XXXXXXXXXXX xxxxxxxxxx.
+
+Xxxxxx xxxx xxx xxxxx xxx xxxxx xxx xx xxxxxx xxxx xxxxxxxxxxx xxxx
+xxxx xxx-xxxxxxxx xxxx xx xxxx xxxxxxx xxxxxxx xxxxxxxxx xx xx xxx
+XXXXXXXXXXX xx ".", x xxxxxx xxx. Xx X3, xxx xxxx xxxxxxxxx xxxxxx
+xxxxxxxxxxx; xxx X3 xxxxxxxxxxxx, xxxx xxxxxx xxx xxxxx XXXXXXXXXXX
+xxxxx xx "./", x xxx xxxxxxxx xx x xxxxx.
+
+
+----------------------------------------------------------------------
+Xxxxxxx: 21. Xxxx xxxxx xxx xxxxxxxxx xxxxxxxx xx?
+----------------------------------------------------------------------
+(Xxxxxxxx xx Xxxxx Xxxxxxxx, xxxxxxxx@x.xxx; 5/10/92)
+
+Xxx Xxxxxxxxxx xxxxxxx xx xxx xxxxxxxxx xx xxxxx. Xxxx xx xxxxxxx
+xxxx xxx xxxxxx xxxxxx xxx xxx xxxxxxxxxxx xxxxxx xxxx xxx xxxxxxx xx
+xxxxxx xxx xxxxxx xxxxxxxx xx xxx xxxxxxxx xxxx. Xxxxxxx xxx
+xxxxxxxxx xxxxx xxxx xxx xxxxx xx xxxxx xxx xx xxx Xxxxxxxxxx xxxxxx
+xxxxxxxxx xxx xxxxx xx xxxxxxxxx.
+
+Xxx xxxxxxxxxxx xxxxxxxxxx xxxxxx xxxx xx xxx xxxxxx xxxxxx; xxx
+xxxxxx xxxxxx xx xxx xxxxxxxx xx xxxxxxxx xxxx xxx xxxxxx xxxx xxx xxx
+xxxxxx xxxxxxxxx xxxx xxx xxxx xx xxxx xxxxxx xxxx xxxx xxxx;
+xxxxxxxxx xxx xxxxxxxxxxxxx xxxxxxxxx xx x xxxxxxxx xxxxxx xx
+xxxxxxxxxxx xx xxx xxxxxxxxxxxxx xxxxxxxxx xx xxxxx xxxxxxxxx xx xxx
+xxxx.
+
+Xxxx xxxxxx xxx Xx xxxxxxxx xx xxx xxxxxxxxxx xx XxXxxXxxxxxxx
+xxxx:
+
+ "xxxxxxxx_xxxx: Xxxxxxxxx xxx xxxxxxxx xxxx xx xxxxx xxx
+ xxxxxxxxx xx xx xx xxxxxxxx."
+
+xxx xxx xxx xxxxx xxxx xxx xxxx "xxxxxxxx" xxxx xxx xxxxxxxx xxxxxxxx
+xxx xxxxxx xx xxx xxxx xxxxx xx xxxx xxxx xxxx xxxxx xx xxx xxxxxxxx
+xxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 22. Xxx xx X xxxx xx x xxxxxx xx xxxxxxx?
+----------------------------------------------------------------------
+(Xxxxxxxx xx Xxxxx Xxxxxxxx, xxxxxxxx@x.xxx; 5/14/92)
+
+> X xx xxxxxxxx x xxxxxx xxxxx xx xxxx xx xx xx xxxxxxx. X xxx xxx xxxxxxx
+> xxxxxxxx xxxxx xx Xxxx xxx xx xx xxxxxx xx xxxxxxxxxx xxxxxxxx, xxx Xxxx
+> xxxxxxx xxxx xxxx XXXXX. Xxxxxxx, xx xx xxxxxx xx xxxxxxxxx, xxx xxxx
+> xxxxx xxx xx XXXX.
+
+Xxxxx, xxxxxxxxxx xx xxxxxxxxxxx xxxxxxxxx. Xxxx xxxxxxxxxxxx x "xxxxxxxxxx"
+xx xxx X xxxxxxxx, xxx xxx Xxxx xxxxxx xx xxxxxxxxxx xxx xxxxxxxxxxxx xx xxx
+xxxxxxxx. (Xxx "xxxxxxxxxx" xx xxxx xxx xxxxxxxxxxx xx xxxxxxxxx xx xxx xxx,
+xx xxxx xxxx xx xxxxxxxxxxxx xxx.) Xxx Xx xxxxxxxxxxxxx xx xxxxxxxx, xx
+xxx xxxxxx xxx xxxxx xxxxxxxxxx xx xxxxxxx 7.10.2, xx xxxx xxxx xxxxxxx
+xxxxxxxxx. Xxx xxxxxxx xxxxx xxxx xxx xxxxxx xx xxxxxxxx xx xxxxxxxxxxxxx.
+
+X XxxxxxxxxxXxxxxx xxxxx xxxx xxx xx xxxxxxxx xxxx xxx xxxxxx xxxx xxxx
+xxxxxxxx xx xxxxxxxxxx, xxxx xx, xxxx xxx xxxxxx xx xx xxxxxxxx xx xxxxxxxx;
+xxxx xx, xxxx xxxxxxxxxxxxx xxxxxx. Xxxx xx xxx xxxxxxxx xxxxxxxxxx.
+Xxxxxxxxxx xxxxx xxx xxxxxxxx xxxxx xxxx xxxxxxxx xxxxxxxx xx xxx X xxxxxxxx;
+xxx xxx xxxxxxxx xx xxxx Xxxx xxx X xxxxxxxx xxxxxxxxx xxxxxx.
+
+> Xx xxxx x xxxxxxx xxxx "xxx" xx xx xxxxx xxxxxxxxx
+> xxxx xxxxx xxxxx xx xx xxxx?
+
+Xxx'xx xxx xxxx xxxx xxx xxxxxx xxxxxxx, xxxx xx xxxxxx xxxxxxx.
+
+> Xx xxx xxxxxxx xx "xxx", xxxx xx xxx xxxxxxx
+> xxx xx xxxxxxxxx xx x xxxxxx xx xxxxxxxxx?
+
+Xx xx xxxxxxxxxxx xxxxxx, xxxx xxxxx xxxx x xxxxxx Xxxxxxx xx xx xxxxxx
+xxxxxxx xxxx xxxxxxxxxxxx xxx XxxXxxxxx xxx XxxxxXxxxxx xx xxx Xxxxx xxxxxx
+xxxxx xxxxxxxx xxxx xxxxxx xxxxxx. Xx xxx xxxxxx xxxxxx xxxxxx, xxx xxx
+xxx_xxxxx xxxxx xxxxxxxx xx x xxxx xx XXxxXxxxxxXxxxxxxxxx. Xxxxx xxx
+xxxxxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 23. Xxx xx X xxxxxxxx x xxxxxx xx Xx, x.x. XxXxxxxxxxXxxxxx()?
+----------------------------------------------------------------------
+
+Xxx xxx'x.
+
+----------------------------------------------------------------------
+Xxxxxxx: 24. Xxx xxx XxXxxxxx, XxXxxx, xxx?
+----------------------------------------------------------------------
+
+Xxxxxxxxxxxxx, xxxx xxxx xxxx xxxxx xxxxxx(), xxxxxxx() xx xxxxxx()
+xxxxx xx xxxxxx xxx xxxxxxxxxxx xx xxxxxxxxx XXXX. Xx xxxx xx xx
+xxxxxxx xxxxxxxxx xxxx:
+
+ xxx = (xxxx *) xxxxxx (xxxxxx (xxxx))
+ xx (!xxx)
+ {
+ xxxxxx ("xxxxxx xx xxxxx()");
+ xxxx (1)
+ }
+Xx xxxxxx xxxx xxxxxx xxxx xxx Xxxxxxxxxx xxxxxx xxx xxxxxxxxx
+XxXxxxxx(), XxXxxxxx(), XxXxx(), XxXxxXxxxxx() xxx XxXxxxxxx() xxxxx
+xxx xxx xxx xxxxxxxx X xxxxxxxx xxxxxxxxx xxxxxx(), xxxxxx() xxx
+xxxxxxx() xxx xxxxxxx XxXxxxxXxx() xx x XXXX xxxxx xx xxxxxxxx. Xx
+xxxxx xxxxxxxx xxx xxx xxxxxxxx xx xxxxxx xx xxxx xxxxxxxxxxx xxxxx.
+
+Xx xxxxxxxx, xx XxXxxxxxx() xx xxxxxx xxxx x XXXX xxxxxxx, xx xxxx
+XxXxxxxx() xx xxx xxx xxxxxxx xxxxx. Xxxx xxxxxx xxxx xxxx:
+
+ xx (!xxx)
+ xxx = (xxxx *) xxxxxx (xxxxxx (xxxx));
+ xxxx
+ xxx = (xxxx *) xxxxxxx (xxx, xxxxxx (xxxx) * (xxxxx + 1));
+ ++xxxxx;
+
+xx xx xxxxxxx xx:
+
+ xxx = XxXxxxxxx (xxx, xxxxxx (xxx) * ++xxxxx);
+
+Xxxx, XxXxxx() xxxxxxx x XXXX xxxxxxx xx xx xxxxxxxx. Xxxxxxxxx, X'xx
+xxxxx xxx Xx xxxxxxxxx xxxxxxxxxx xx xxx. Xxxxxxx, xxxxxxx X'x
+xxxxxxxxxx xxxxxxxx xxxxxxxxxxx xxxxx X xxx xxx xxxxxxxx xxxxxxxxx xx
+X xxx xxxxx xxxxxxx xxxx xxx xxxxxx xxxxxx xxxxxx.
+
+XxXxx() xxx XxXxxXxxxxx() xxx xxxxxxxxxx xxxxxx xxx xxxxxxxxxx x
+xxxxxxxxx xx xxxxxxx x xxxxxx:
+
+ xxxxxx xxx *xxxxx;
+ xxxx *xxx;
+ xxxx *xxx = "xxxxxx";
+
+ xxxxx = XxXxx (xxxxxx xxx); /* xxxxx xxxx xx xxxx xxxxxxx */
+ xxx = XxXxxXxxxxx (xxx);
+
+X xxxxxx xxxxxxxxxxxxxx xx xxx Xxxxxxxxxx xxxxxxxxx xxxxxx xxxxx xx
+xxxxxxxxxxxxxx xx xxxxxxx xxxxxxxxx xxxx xxx xxx xxxxxxxxxxx xxxx
+xxxxxx() xxx xxxx(). X.x. xxxx xxxx xx:
+
+ xxxx *xxx;
+
+ xxx = XxXxxxxx (100);
+ /* ... */
+ xxxx (xxx);
+
+xxx xxx xxxx. Xxxxxxxxxx, X'x xxxx xxx xxxxxxxxxxxxxx xxxx xxx xxxx
+xxxxxx xxx xxxxxxxx xx xxx xxxxxx.
+
+X xxxxxx xxxxx xxx Xxxxx xxxxxxxxxxx xx xx xxx XxXxxx() xx x xxxxxx
+xxxx xxxx xxxxxx xxxxxx xx xxxxx XxXxxxxxXxxx().
+
+----------------------------------------------------------------------
+Xxxxxxx: 25. Xxx xx xxxxx xx Xx xxxxxxxxxxx?
+----------------------------------------------------------------------
+Xxxxx, X'x xxxxxxxx xxxxxxx "xxxxxx" xxxx Xxxx Xxxxxxxx. Xxxx xx x
+xxxxx xxxxxxx xxx xxxxxxx xxxxxx xxxxxxxx xx Xxx'x. Xx'x x xxx xxxxxx
+xx $2750 xxx X'x xxxxx xxxxxxxx xx. Xxxxxx xxx xxxxxxxxx xxxxx
+(xxxxxxx xxxxxxx@xxxx.xxx xxx xxxx xxxx).
+
+ Xxxxxx xxxxxxx xxxxxxxxxx xxxxxxxx xxxxxxxxxxxx xxxxxxxx xxxx
+ xxx xxxxxx xxxx xxxxxxxx xx xxxxxxxx xxxxxxxxx. Xxxxx
+ xxxxxxxxxxxx xxxxx xxxxx xxxxxx xxxx xxx xxxxx xxxxxxxxx xx
+ xxx xxxxxxx xxxxx xxxx xxx xxxxxx xxxxxxx xxxxx xx xxxxxx
+ xxxxxx, xxxx xx xxxxxxx xxxxxxxxxxx xxxxxx, xxxxxxx xxxx
+ xxxxxx'x xxxxxx, xx xxxxxxx xx xxxxx xxxxxx. Xxxxxx xxxxxxx
+ xxxxxxxx xxxxx xxxx xxx xx xxx xxxx xx x xxxxxxx, xxxxxxxxx
+ xxxxx xxxxx xxx xxxxxx xxxxxx-xxxx xxxxxxxxx, xxx xxxxxxxx
+ xxxxxx xxxx xxxxxxxxxx. Xx xxxxxxxx, Xxxxxx xxxxxx xxxxxx
+ xxxxx xxx xxxxxxxxxx xxxxxxxxxx xxxxxx xxxxx xxxxx x xxxxx
+ xxxxxxxx xx xxxxxxx xxxxxxxxxx xxxxxxxxxx. Xxxxxx'x xxxxxx
+ xxxxxxxxxxxxx xxxxxx xxxxxx xxxxxxxx xxxxx xxx xxxxxx xxxxxxx
+ xxxx xxxxxxxxx xx x xxxxxx xx xxx xx xxxx.
+
+Xx xxxxxxxxxxx xxxxxxx xxxx xxx'x xx xxxxxx ($395 xxx x Xxx), xxxx xx
+xxxx Xxxx'x xxx xxx xxxxxx xxxxxxx xxxxxxxx xx "Xxx XXXXXXXX Xxxxxxxxx
+Xxxxxxxxxxx". Xxxx xxxxxxxx xxxxxx() xxx xxxxxxx xxxxx X xxxxxxx
+xxxxxxxxx xx xxx xxxxxxxxxx xxxxxx. (xxxxxxx xxxxxxx@xxxxxxx.xxx.xxx
+xxx xxxx xxxx)
+
+Xxxx, xx xxx xxx xxxxxxx xxx xxxx xx Xxxx xxxxx, xxx'xx xxxx xx xxx xx
+xxxxxxxxxxx xxxx, xxxxxx xxxxxxxxxxxx xxxx xxx "-xxxx" xxxxxxx xxxx
+xxxxxxxx xx xx xxxxxxx xxx xxxxxxxx Xxxxxx xx 1 xxxx xxxx xxxxxxxx. Xxxx
+xxx x xxxxx xxxxx xx xxxx(). Xxxx xxxx xxx xxx xxxxx xxxx xx xxx
+xxxxxxxx Xxxx xxxxxxxx xxxxx xxxxxx. Xx xxx xxx'x xxx xx xxxxxxxxxxx
+xxxx, xxxx xxx xxxxxx xxxxx xxx xxxx xxxxxxx xxx xxxxxx xx xxxxx xx
+Xxxx xxxxxxxxxx xxxxx xxx Xxxx xxxxx xxx xxxxxxxx xxx xxxxxxx xxxx xxx
+xxxxxx xxx xxxxxxxxxxxx.
+
+Xxxx, xx xxx xxx xxxxxx xxxxxxx xxxx xxxxxx xxxxxx, xxx xxx xxx xxx
+xxxxxxxxxxxx xxxxxxxx "xxXxxxxxxxXxxxxxx" xx xxx xxxxx xxxxxxxx
+"XxXxxxx" xx xxxxx xxx xxxxxx xxxx xx xx xxxxxxxxxx xxxx xxxx xxxxxx.
+Xxx xxxxxxx:
+
+ xxxxxxx% xxxxx -xxx '*XxXxxxx:xxxx' &
+ xxxxxxx% xxxxxxxx -xxxx
+
+
+xxxx xxxx xxx xxxxxx xxxxxxxxxxx xxx xxx xxxxxx xxxx xxx xxxxx xx xxxx
+xxxxxx xx xxxxxxxx. Xxxx xxx xxxx xxx xxxxxxxx xxx xxxxxxxx xxx xxxx
+xx xxxxxx xxxxxxx.
+
+Xxxx, xx xxx xxx xxxxxx xxxxxxx xxxx xxxxxxxx xxxxxxxx xx xxx xxxx xx
+xxxx xxx xxx x xxxxxx xxxxxxx xx'x xxxxxxxx, xxx xxx xxx
+xxx.x.xxx:xxxxxxx/xxxXxXxx.xxx.X. Xxxx xxxx xx x xxxxxx
+xxxxxxx xxx xxxxxxxx xxx x xxxxxxxx xxxxxxx xxx xxxxxx xxx xxxxxxxxx
+xx xxxx. Xx'x x xxxx xxxxxx xxxx.
+
+Xxx xxxx xxxxxxxxxxx xxxxxxx xx xxxxxxxxx x xxxxxxxx xxxxx xxx
+xxxxxxxxxxx xx xxxxxxxxx x xxxx xx xxx xxxxxxxx xx xxxxx (xxxx xx xxxx
+x xxxxxxxx xxxx). Xxx xxxxxx xxxxxxxxxxx xxxxx xx xxx xxx'xx xxxx xx
+xx xx xxxxxxx xxxxxxx xxx xxxx xxx xxxxxxxx xxxxxxxx. Xxx xxxxxx
+xxxxx xx xxxxxxx xxx xxxxxxxxxxx xxxxx xxxxxxxx xxx xxxx xx xxx xxxx
+xxx xxxx xxxxxx xx xxx xxxxxxxx xxx xxx xxxxxxxxxxx xx xxx xxxxxxx
+xxxxxxx xxxxxxx xxx xxxxxxxx xx xxxxxxx xxx xxxx xxxxxxxx.
+Xxxxxxxxxxxxx xxx xxx'x xxxx xxxx xxxxxxx xxx xxx xxxxx xx xxxxx xx
+xxxx xxxxxxxxxxx xxxxx xx xxxxxxx.
+
+Xxx xxxx xxx xx xxxxx xxxx xxxx xx xxxxxxx xx xxxx xxx xxxxxxxx xx
+xxxx xxxx, xxxxxxx xxx xxxxxxx xxxxx x xxxxxxxx (xx xxxxx xxxxxxxxxxx)
+xx xxx xxxxxxx, xxx xxxxxxx xxx xxxxxxxxxxx xx xxx xxxxx, xxxxxxxx
+xxxxx x xxxxxxx xxxxxxxx xxxx xxxx:
+
+ xxxxxxxxxxxx% xxxxx +xxxxxxxxxxx
+ xxxxxxxxxxx% xxxxxx XXXXXXX xxxxxxxxxxxx:0;
+ xxxxxxxxxxx% xxx xxxxxxxxxxx # Xxxx xxxxxxxx xxxxxxxx.
+ xx xxxx:
+ xxxxxxxxxxxx% xxxxx +xxxxxxxxxxx
+ xxxxxxxxxxx% xxx xxxxxxxxxxx
+ (xxx) xxx xxxxxxxxxxx XXXXXXX xxxxxxxxxxxx:0
+ (xxx) xxx ...
+
+X xxxxxxx XxxxXxxxxx, x X xxxxxxxxxxx/xxxxxxxxx xxxxxxxx xxx x xxxxxx
+xx xxxxxxx xxxx xxxx xx xxxxxxxxxxx xxxxxxx xxx Xxxx xxxxxxxxx xx
+xxxxxxx xxx xxxxx xxxxxx xxxxxxxxxxx.
+
+Xxxxxxxxx xxxxxx xxxxxxxx xxxxxxxx xxxxxx xxxx xxxxxxxxx xxxxxx xxx
+xxxxxxxxx xx xxx xxxxxxx xxxx. Xxx xxx xx x xxxx xxx xxxxxxx xxxxxxx
+xxx xxxxxxxxx xx x xxxxxxxxxx xxxxxx xxx xxx xxxx xxx xxxxxxx
+xxxxxxxxxxxxx xxx x xxxxxx xxxxx. Xxxxxxxxx xxx xx xxxxxxxxxxx
+xxxxxxxxxxx xxx xxxxxx xxxxx xxxxxxxxxx xxxx xxx xxxxxxxx xxxx x xxxxx
+xxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 26. Xxx xxx'x XxXxxXxxxx(), XxXxxXxxxxxx() xxx XxXxxXxxxXxxx() xxxx?
+----------------------------------------------------------------------
+ X xxxx xxx x xxxxxxxx xxxxxxx xxxx xxx xxxxx xxxxxxxx XxXxxXxxxx,
+ XxXxxXxxxXxx xxx XxXxxXxxxXxxx. Xxx xxxxxxx X xxxx xx xxxx xxxx
+ X xxx xxxx xx xx xxxxxxxxxxx xxxx xxxx xxx xx xx xxxxxxxxx xxxxxxxx.
+ X xxxx xxxx x xxxxx xxxxxx xxxxxxxxxxx xxxxx xxxxxxxxxx xxxxx
+ xxxxxxx, xxx xx xx "xxxx" xxxxxxxxxxx xxxxxxx xxxxxxx.
+
+Xxx xxxxxxxxxxxx xx X3 xx xxx XxXxx*() xxxxxxxxx xxxxxxxxx xxxxx
+xxxxxxxx (xxx X19 xxx xxxxx xxxxxxx xx X3, X4, xxx X5). Xxxx xxxxxxx xx
+xxxx xxx x xxxxxxx xxxxxxxxxxx xxxxxxx xxxxxxxxx xxxx xxx xxx xxx xxx
+xxxx xxxxxxx. Xxxxx xxxxxx xxx xxxxxxxx xxx xxxxxxxxxxx xx x xxx
+xxxxxxxxxxx xxxxxxx xxxxx xxx xxx xxx xxxxx xxx xxxxxxxxxxx xxxxxxxx,
+xxx xxx'x xxx xxxxx xxxxxx.
+
+Xxx xxxxxxx:
+
+ ...
+ xxx = 0;
+ xxxxxxxx = XxXxxXxxxxxxxxx(&xxx, xxxxx,
+ Xxxx, XxXxxxxx (Xxxx),
+ &xxxx, xxxx,
+ Xxxxxxxx, xxxx, xxx);
+
+ XxXxxXxxxXxx (...)
+ XxXxxXxxxXxxx (...)
+
+ XxXxxXxxxXxxx (xxx)
+
+xxxxx xxxxx xxxxxx xxx xxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 27. Xxxx xx xxx xxx xxx X xxxxxxxxx xxxx xxx xxxx?
+----------------------------------------------------------------------
+(Xxxxxxxx xx Xxxxx Xxxxxxxx, xxxxxx@xxxxxx.xxx; 19 Xxx 93)
+
+Xxxx-x-xxxx xx x xxxxxxxx xxx xxxxxx xxxx xxxxxxx xxxxxxx, xx xx
+``xxxxxxxxx'' xxxxxxx.
+
+Xxxxx Xxxxxxx 1.2 xxxxxxxx xxxx-x-xxxx xxxxxxxxxxxx, XxxxXxxx xxx
+xxxxxxxxx x-x-x xxx xxxxx. Xxx xxx xxxxxxxxx xxx xxx xxxxxxxxxx xxxx
+xxxx xxxxx, xxx xx xxx xx X xxxx, xxxx xxx xxx xxxxxxxxx.
+
+X xxxxx x xxxxxxx xxxxxx XXX xxxxx xx xxxxxxxx xx xx x xxxxxxxx xxxxxx
+xxxxxxxx xxx xxxxx xxxx 'x xxxx xxxxxxxxxx xxxxxxx xxxxxxx. Xx
+xxxxxxxxx xxx xx xxxxxxx x xxxx xxxxx xxxxx xxxx xx xxxx xxx xxxxxx xx
+xxxxxxx x "xxxxxxxx" xxxx-x-xxxx xxxxxxxx xx xxx xxxxxxxx xxxx xxxxxxx
+xxx xxxxxxxxxx xx xxxx, xxxxxxxxxx xx xxxx xxxxxx xxx xx xxxx (xx xxxx
+xx xx xx xxxxx xx Xx).
+
+Xxx xxxxxxxxxxxxxx xx xxxxx xxxx xx xxxxxxxxxxxxx xx xxx XXXXX
+xxxxxxxxxxx, xxx xxxx xxxxxxx xxxx xxx xxxx.
+
+X xxxx xxxxx xxxx xxxxxx xx xxxxxx xxxxx XXX xxx xxxx xx xxx xxxx xxxx
+xx xxxxx x xxxxx xxx xxxxxx xxxx Xxxxx 1.2 xxxxx. Xxxx, xxxxx xxxx xx
+xx xxxx xxx xxxxx xxxx xx xx xxxx xxx xxx xxxxxxxxxxx xx xxx Xxxxx
+xxxxxx.
+
+Xxx xxxxxx XXX (xxx xxxx xxxxx xxxxx) xx xxxxxxxxx xxx xxx xxxx
+xxxxxx.xxx, xx /xxx/xxxxxx. X (xxxxxxxx xxxxx) xxxxxxx xx xxxx
+xxxxxxxxx xx xxx.x.xxx xx /xxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 28. Xxx xxx X xxx x X++ xxxxxx xxxxxxxx xx x xxxxxx xxxxxxxx?
+----------------------------------------------------------------------
+(Xxxxxxxx xx xxxxx@xxxxxxx.xxx (Xxxx Xxxxx), 7 Xxx 1993)
+
+Xxx xxx xxx xxx x xxxxxxx X++ xxxxxx xxxxxxxx xx x xxxxxxxx xx x
+xxxxxx, xxxxxxx xxx xxxxxxxx xxxxxxxx xxx'x xx xxxxxxx xxxx xxx
+xxxxxx xxxxxx xxxxxxx "xxxx" xxxxx xxx xxxxxxx X++ xxxxxx xxxxxxxxx
+xxxxxxx. Xxxxxxx, xxxxx xx x xxx xx xxx xxxxxx xxxx xxxxxxxxxx:
+"xxxxxx" xxxxxx xxxxxxxxx.
+
+X xxxxxx xxxxxx xxxxxxxx xx x xxxxxxxx xx xxxxx xxx xxxxx xxxxxxx
+xxx xxxxxx xxxxx xxxxx, xxx xxxxx xx xxx xx xxxx xxxxxxxx xxxxxxxxxx
+xxxx x xxxxxxxx xxxxxxxx xx xx xxxxxx, xxx xx xx XXX xxxxxx xxxxx xxx
+xxxxxxx xxxxxx xxxxxxxx xxxxxxx xxxxxx. Xx xxxxxxxxxx, xxxxx xx xx
+"xxxx" xxxxxxx xxxxxxxx xx xxx xxxxxxxx. Xxxx xxxxx xxxx x "xxxxxx"
+xxxxxx xxxxxxxx xx xxxxxx x xxx xxxx x "xxxxxx" xxxxxxxx xxxxxx xxxx
+xxx xxxx xx xxxxxx xxx xxxxx xx xxx xxxxx (xx xxxxx xxxxx, xxx xxxx
+xx xxxxxxxx xxxx xxx xxxxx xxxx).
+
+Xx xxxxxxxxxxx xxxx, xxx'x xxxxxx x xxxxxxx xxxxx "Xxxx" xxxxx xxxxxxxx
+x "xxxxxx" xxxxxx, xxx x xxxxxx xxxxxxxx "xxxxxx_XX" xxxxx xx
+xxxxxxxxx xx xxx "XxXxxxxxxXxxxxxxx" xx xxx xxxxxx. Xxx xxxxx
+xxxxxxxxxxx xxxxx xxxx xxxx xxxxxxxxx xxxx xxxx:
+
+ xxxxx Xxxx
+ {
+ xxxxxxx:
+ Xxxxxx xxxxxx;
+ xxxxxx xxxx xxxxxx_XX(Xxxxxx, XxXxxxxxx, XxXxxxxxx);
+
+ xxxxxx:
+ Xxxx(Xxxxxx xxxxxx); // Xxxxxxxxxxx
+ };
+
+Xxx xxx xxxxxxx xxxxx, X xxx xxxxxxx xxx xxxxxxxxxxx xxx xxxxxxxx
+xxxxxxxxx xxxx xxxx:
+
+ Xxxx::Xxxx (Xxxxxx xxxxxx)
+ {
+ xxxxxx = XxXxXxxxxxXxxxxx ("xxxx_xxxxxx", xxXxxxXxxxxxXxxxxxXxxxx,
+ xxxxxx, XXXX);
+
+ // Xxxxxxxxx xx xxxx xxxxxxxx, xxx xxx xx xxxx xx xxxxxxx
+ // "&Xxxx::xxxxxx_XX" xxxxxx xx "xxxxxx_XX" xx xxx
+ // xxxxxxxxx xxxxxxxxx:
+ XxXxxXxxxxxxx (xxxxxx, XxXxxxxxxXxxxxxxx, &Xxxx::xxxxxx_XX,
+ (XxXxxxxxx) xxxx);
+ }
+
+ xxxx Xxxx::xxxxxx_XX (Xxxxxx x, XxXxxxxxx xxxxXxxx, XxXxxxxxx xxxxXxxx)
+ {
+ Xxxx * xxxx = (Xxxx *) xxxxXxxx; // Xxxxxxx xx "xxxx"
+
+ // xx xxxxxxxx xxx xxxx xx xx xxxx xxx xxxx xx xxxxxxxx ...
+ }
+
+Xxxxx xxx xxx xxxxxx xx xxxx xxxx:
+
+ *) Xx xxx xxxx xxx xxxxxx xxxxxx xxxxxxxx xx xxxx xx x xxxxxxxx
+ xxxxxx, xxx xxxx xxxxxx xxx xxxxxx xxxxxxx (xxxx xx xx "xxxxXxxx"
+ xx xxx xxxxxxx). Xxxx xxxx x xxx-xxxxxx xxxxxxxx.
+
+ *) Xxxxxxxx xxx xxxxxxxx xx xxxxxxxx xx "xxxxxx" xxxxxx xxx xxxxx
+ xxxxxxxxxx, xxx xx XXX xxxxxxx xxx "xxxxxx" xxxxxxx xxxx xxx
+ xxxxxxxx xxxxxx xxx xxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 29. Xxx xxx X xxxxxxxx xxx xxxxxxxx xx x xxxxxxx xxxxxx?
+----------------------------------------------------------------------
+
+Xxx XxXxxXxxxxx() xx XxXxxxxxxxx (xxxxx xx xxxxxx XXx) xxx
+XxXxxxXxxxxxxx (xxxxxx xx xxxxxxx xx xxxxx).
+
+ Xxxxxx *xxxxxxxx = XXXX;
+ Xxxxxxxx xxxxx = 0;
+ Xxx xxxx[10];
+ Xxxxxxxx xxx;
+
+ xxx = 0;
+ XxXxxXxx (xxxx[xxx], XxXxxxxxxxx, &xxxxxxxx); ++xxx;
+ XxXxxXxx (xxxx[xxx], XxXxxxXxxxxxxx, &xxxxx); ++xxx;
+ XxXxxXxxxxx (xxxxxx, xxxx, xxx);
+
+XXXX: Xxxx xxxx xxx xxx xxx xxxx xx xxxxx xxxxxxxx. Xxx xxxx xxxxxx
+xxx xxxxxxx xxxxxxx xx Xxxx xx xx xx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 30. Xxx X xxx XxXxxxXxxxxx(), ... xx xxxx xxxxxxx X xxxxxxx?
+----------------------------------------------------------------------
+
+Xx. Xx xxxxxxx, XxXxxxXxxxxx(), XxXxxxxxXxxxxx(),
+XxXxxxXxxxxxxxXxxxxxx(), xxx XxXxxxxxxxxXxxxxx() xxx xxx xxxxxx
+xxxxxxxxx xxxx. Xxx xxxx xxx xxx xxxxxxxxxxxx xx xxxxxx xxxxxx
+xxxxxxxx xx xxxxxxxxxxxxx xx xxxxxxx xxx XxXxxXxxxxx() xxxxxxxxx xxx
+xxxxxxx xxx XxXx, XxXx, XxXxxxxx xxx XxXxxxxxx xxxxxxxxx. Xx xxxx
+xxxxxxxxx xxxx xxx xxxx xxx xxxx xxx xxxx, xxx xxxxxx xxxxxxxx xxx
+xxxxxx xx xxxxxx xxx xxxxxxxx xxxxxxxx.
+
+----------------------------------------------------------------------
+Xxxxxxx: 31. Xxx xx XxXxxXxxxxx() xx XxXx, XxXx xx xx xxx xxxxx xxxxx xxxxx?
+----------------------------------------------------------------------
+
+XxXx xxx XxXx xxx xxx xxxxxxxxxxx xxxxxxxx xx xxxx xxxxx'x xxxxxx
+xxxxxx, xxxxx xx xxxxxxx x xxxxxx xxxxxxx'x xxxxx xxxxxx. Xx
+xxxxxxxxx xx xxx xxxx xxxxxxxxxx xxxxx, xxx XxXxxxxxxxxXxxxxx() xx
+XXxxxxxxxxXxxxxxxxxxx().
+
+XXXX: XxXxxxxxxxxXxxxxx() xxx xxxxxx xx xxxxxxxx xxxxx xx X4.
+
+----------------------------------------------------------------------
+Xxxxxxx: 32. Xxx xx xxxx xxxxxx xxx XxX xx xxxxxxxx xxxxx?
+----------------------------------------------------------------------
+
+Xxxxx xxxxxxx xxx xxxxxxxxxx xx xxxxxxxxx xxx xxxxx xxxxxxxxx xxxx
+XxX xxxxxxx xx XxX. Xxx? Xx xxxxx xxxx xxxxx xxxxxx xx xxxxx xx xxx
+xxxxxxx xxx Xx xxxx xxxxx. Xxxxxxxxxxxxx xx xx xxx xxxxxx xxxxxxxxx
+xxxxxxx xx xxxxx xxxxx xxxxxx xxx xxxxx xxxx xx xxxxxx xxx xxx
+xxxxxxxxx, xxxxxxxxx xxxx xxxxxxx xx xxx Xxxxxxxxxx. Xxxx xxxxx. Xxx
+xxx, XXX xx xx'x xxx xxxxx, xxxxx?
+
+----------------------------------------------------------------------
+Xxxxxxx: 33. Xxx xx X xxxx xx xxxx xxxxxx xxxx xxxxxxxxx xx xxxxxxxxxxx?
+----------------------------------------------------------------------
+
+Xxxx xxx xxxxx XXX. Xxx xxxxx xxxxxxxxxxx, xxxxxx?
+
+----------------------------------------------------------------------
+Xxxxxxx: 34. Xxx xxx'x X xxxxxxxx xxxxxxxxxxxx? Xxxx xxx xxxxx xxxx xxxxx.
+----------------------------------------------------------------------
+(Xxxxxx xx Xxxxxxx X. Xxxxxx, 5/91)
+
+Xxx xxxxxxxx xxxx xx xxxxx xxxxx xxxxx xxx xxxxxxxxxxxxx xx xxx xxxxx
+xxxx, xxxx xxxx:
+ xxxxx*xxxx.xxxxxxxxxxxx: #xxxxxxxx \
+ Xxxx