| <?xml version="1.0" encoding="ISO-8859-1"?> |
| <!-- |
| |
| Copyright (c) 1997, 2022 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 |
| |
| --> |
| |
| <!DOCTYPE project [ |
| <!ENTITY commonSetup SYSTEM "./../../../../config/properties.xml"> |
| <!ENTITY commonBuild SYSTEM "./../../../../config/common.xml"> |
| <!ENTITY commonRun SYSTEM "./../../../../config/run.xml"> |
| <!ENTITY reporting SYSTEM "./../../../../config/report.xml"> |
| <!ENTITY eeCommon SYSTEM "file:./../ee.xml"> |
| <!ENTITY testproperties SYSTEM "file:./build.properties"> |
| ]> |
| |
| <project name="tx-ee-cli" default="usage" basedir="."> |
| |
| |
| &commonSetup; |
| &commonBuild; |
| &commonRun; |
| &eeCommon; |
| &testproperties; |
| &reporting; |
| |
| <property name="db1.name" value="db1"/> |
| <property name="db.root" value="${env.S1AS_HOME}/../javadb"/> |
| <property name="db.classpath" value="${db.root}/lib/derby.jar:${db.root}/lib/derbyclient.jar:${db.root}/lib/derbynet.jar"/> |
| <property name="db.host" value="localhost"/> |
| |
| <property name="derby-type" value="default"/> |
| |
| <condition property="derby.class" value="DerbyControl" else="NetworkServerControl"> |
| <equals arg1="${derby-type}" arg2="default"/> |
| </condition> |
| |
| <condition property="ntwk.derby"> |
| <not> |
| <equals arg1="${derby-type}" arg2="default"/> |
| </not> |
| </condition> |
| |
| <target name="all" depends="build,setup,run,unsetup,dev-report"/> |
| <target name="test" depends="build,setup-test,run,unsetup-test"/> |
| |
| <target name="setup" depends="init-common"> |
| <antcall target="clean-results"/> |
| <antcall target="start-database"/> |
| <echo message="Running with ${derby.class} Derby ntwk.derby is set to .${ntwk.derby}"/> |
| <ant target="start-domain"/> |
| <ant target="setup-test"/> |
| </target> |
| |
| <target name="setup-test" depends="init-common"> |
| <antcall target="setup-database"/> |
| <antcall target="setup-cluster"/> |
| </target> |
| |
| <target name="setup-database" depends="init-common"> |
| <antcall target="setup-database-common"> |
| <param name="pool.name" value="jdbc-xa-pool"/> |
| <param name="resource.name" value="jdbc/xa"/> |
| <param name="db_name" value="${db.name}"/> |
| </antcall> |
| <antcall target="setup-database-common"> |
| <param name="pool.name" value="jdbc-xa2-pool"/> |
| <param name="resource.name" value="jdbc/xa2"/> |
| <param name="db_name" value="${db1.name}"/> |
| </antcall> |
| </target> |
| |
| <target name="setup-database-common" depends="init-common"> |
| <antcall target="deploy-jdbc-common"> |
| <param name="jdbc.conpool.name" value="${pool.name}"/> |
| <param name="db.class" value="org.apache.derby.jdbc.ClientXADataSource"/> |
| <param name="jdbc.resource.type" value="javax.sql.XADataSource"/> |
| <param name="jdbc.resource.name" value="${resource.name}"/> |
| </antcall> |
| <antcall target="asadmin-common"> |
| <param name="admin.command" value="set"/> |
| <param name="operand.props" |
| value="${resources.dottedname.prefix}.jdbc-connection-pool.${pool.name}.property.connectionAttributes=;create=true"/> |
| </antcall> |
| <antcall target="asadmin-common"> |
| <param name="admin.command" value="set"/> |
| <param name="operand.props" |
| value="${resources.dottedname.prefix}.jdbc-connection-pool.${pool.name}.property.dataBaseName=${db_name}"/> |
| </antcall> |
| <antcall target="setup-pool-common"> |
| <param name="pool.name" value="${pool.name}"/> |
| <param name="resource.name" value="${resource.name}"/> |
| </antcall> |
| <antcall target="execute-sql-common"> |
| <param name="sql.file" value="sql/create.sql"/> |
| <param name="db.url" value="jdbc:derby://localhost:${db.port}/${db_name};create=true;"/> |
| </antcall> |
| </target> |
| |
| <target name="setup-cluster" depends="init-common"> |
| <echo message="Starting cluster"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}:${env.APS_HOME}/lib/reporter.jar" |
| classname="${se.client}"> |
| <sysproperty key="enableShoalLogger" value="${enableShoalLogger}"/> |
| <arg line="prepare"/> |
| <arg line="${assemble.dir}/${appname}-web.war"/> |
| </java> |
| </target> |
| |
| <target name="unsetup-test" depends="init-common"> |
| <antcall target="save-logs"/> |
| <antcall target="unsetup-cluster"/> |
| <antcall target="unsetup-database"/> |
| </target> |
| |
| <target name="unsetup" depends="init-common"> |
| <antcall target="unsetup-test"/> |
| <antcall target="stop-database"/> |
| <ant target="stop-domain"/> |
| </target> |
| |
| <target name="unsetup-database" depends="init-common"> |
| <antcall target="execute-ejb-sql-common"> |
| <param name="sql.file" value="sql/drop.sql"/> |
| </antcall> |
| |
| <antcall target="execute-sql-common"> |
| <param name="sql.file" value="sql/drop.sql"/> |
| <param name="db.url" value="jdbc:derby://localhost:${db.port}/${db.name};create=true;"/> |
| </antcall> |
| |
| <antcall target="execute-sql-common"> |
| <param name="sql.file" value="sql/drop.sql"/> |
| <param name="db.url" value="jdbc:derby://localhost:${db.port}/${db1.name};create=true;"/> |
| </antcall> |
| |
| <antcall target="delete-jdbc-resource-common"> |
| <param name="jdbc.resource.name" value="jdbc/xa"/> |
| </antcall> |
| |
| <antcall target="delete-jdbc-resource-common"> |
| <param name="jdbc.resource.name" value="jdbc/xa2"/> |
| </antcall> |
| |
| <antcall target="delete-jdbc-connpool-common"> |
| <param name="jdbc.conpool.name" value="jdbc-xa-pool"/> |
| </antcall> |
| |
| <antcall target="delete-jdbc-connpool-common"> |
| <param name="jdbc.conpool.name" value="jdbc-xa2-pool"/> |
| </antcall> |
| </target> |
| |
| <target name="start-database" depends="init-common"> |
| <antcall target="startNtwDerby"/> |
| <antcall target="start-derby"/> |
| </target> |
| |
| <target name="stop-database" depends="init-common"> |
| <antcall target="stopNtwDerby"/> |
| <antcall target="stop-derby"/> |
| </target> |
| |
| <target name="run" depends="init-common"> |
| <antcall target="run-rollback"/> |
| <antcall target="reset-all-tables"/> |
| <antcall target="run-recover"/> |
| <antcall target="reset-all-tables"/> |
| <antcall target="run-db-restart"/> |
| <antcall target="reset-all-tables"/> |
| <antcall target="run-db-recover"/> |
| </target> |
| |
| <target name="run-rollback" depends="init-common"> |
| <parallel> |
| <antcall target="insert-data"> |
| <param name="instance" value="in1"/> |
| <param name="operation" value="insert_in_one_resource"/> |
| </antcall> |
| |
| <antcall target="insert-data"> |
| <param name="instance" value="in2"/> |
| <param name="operation" value="insert_in_one_resource"/> |
| </antcall> |
| |
| <antcall target="rollback"/> |
| |
| </parallel> |
| |
| <sleep seconds="15"/> |
| <echo message="Verifying results"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="verify_default"/> |
| <arg line="${appname}-web"/> |
| <arg line="in1"/> |
| <arg line="rollback"/> |
| </java> |
| </target> |
| |
| <target name="run-db-restart" depends="init-common"> |
| <antcall target="insert-data"> |
| <param name="instance" value="in2"/> |
| <param name="operation" value="insert_in_one_resource"/> |
| </antcall> |
| |
| <echo message="Restarting db"/> |
| <antcall target="stop-database"/> |
| <antcall target="start-database"/> |
| <sleep seconds="35"/> |
| |
| <echo message="Verifying results"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/modules/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="verify_default"/> |
| <arg line="${appname}-web"/> |
| <arg line="in1"/> |
| <arg line="db-restart"/> |
| </java> |
| </target> |
| |
| <target name="run-recover" depends="init-common"> |
| <parallel> |
| <antcall target="insert-data"> |
| <param name="instance" value="in1"/> |
| <param name="operation" value="insert_xa_data"/> |
| </antcall> |
| |
| <antcall target="kill-instance"/> |
| </parallel> |
| |
| <antcall target="recover-transactions"> |
| <param name="log-dir" value="${env.S1AS_HOME}"/> |
| </antcall> |
| |
| <echo message="Verifying results"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="verify_xa"/> |
| <arg line="${appname}-web"/> |
| <arg line="in2"/> |
| <arg line="recover"/> |
| </java> |
| |
| <sleep seconds="15"/> |
| <exec executable="${ASADMIN}" failonerror="false"> |
| <arg line="start-local-instance"/> |
| <arg line="in1"/> |
| </exec> |
| </target> |
| |
| <target name="run-db-recover" depends="init-common"> |
| <parallel> |
| <antcall target="insert-data"> |
| <param name="instance" value="in1"/> |
| <param name="operation" value="insert_xa_data"/> |
| </antcall> |
| |
| <antcall target="kill-database"/> |
| </parallel> |
| |
| <sleep seconds="15"/> |
| <antcall target="start-database"/> |
| |
| <sleep seconds="35"/> |
| <antcall target="recover-transactions"> |
| <param name="log-dir" value=""/> |
| </antcall> |
| |
| <echo message="Verifying xa results"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/modules/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="verify_xa"/> |
| <arg line="${appname}-web"/> |
| <arg line="in1"/> |
| <arg line="db-recover"/> |
| </java> |
| </target> |
| |
| <target name="kill-database"> |
| <echo message="Killing database using ${derby.class}"/> |
| <sleep seconds="20"/> |
| <exec executable="./kill_database.sh" failonerror="true"> |
| <arg line="${derby.class}"/> |
| </exec> |
| </target> |
| |
| <target name="kill-instance"> |
| <echo message="Killing in1"/> |
| <sleep seconds="20"/> |
| <exec executable="./kill_instance.sh" failonerror="true"> |
| <arg line="in1"/> |
| </exec> |
| </target> |
| |
| <target name="insert-data"> |
| <echo message="Executing test on instance ${instance}"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="${operation}"/> |
| <arg line="${appname}-web"/> |
| <arg line="${instance}"/> |
| </java> |
| </target> |
| |
| <target name="rollback"> |
| <sleep seconds="15"/> |
| <echo message="Rolling back one transaction"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="rollback"/> |
| </java> |
| </target> |
| |
| <target name="recover-transactions"> |
| <sleep seconds="15"/> |
| <echo message="Recover XA transaction"/> |
| <java fork="on" |
| failonerror="true" |
| classpath="${env.S1AS_HOME}/lib/jakartaee.jar:${env.S1AS_HOME}/lib/gf-client.jar:${env.APS_HOME}/lib/reportbuilder.jar:${build.classes.dir}" |
| classname="${se.client}"> |
| <arg line="recover"/> |
| <arg line="${log-dir}"/> |
| </java> |
| </target> |
| |
| <target name="reset-all-tables" depends="init-common"> |
| <antcall target="reset-tables"/> |
| <antcall target="execute-sql-common"> |
| <param name="sql.file" value="sql/delete.sql"/> |
| <param name="db.url" value="jdbc:derby://localhost:${db.port}/${db1.name};create=true;"/> |
| </antcall> |
| </target> |
| |
| <target name="startNtwDerby" depends="init-common" if="ntwk.derby"> |
| <echo message="Starting Derby in the Network Mode on port ${db.port}"/> |
| <java classname="org.apache.derby.drda.NetworkServerControl" |
| classpath="${db.classpath}" fork="true" spawn="true"> |
| <arg line="-h ${db.host} -p ${db.port} start"/> |
| </java> |
| </target> |
| |
| <target name="stopNtwDerby" depends="init-common" if="ntwk.derby"> |
| <echo message="Stopping Network Derby DB servers on port ${db.port}"/> |
| <java classname="org.apache.derby.drda.NetworkServerControl" |
| classpath="${db.classpath}" failonerror="false" fork="true"> |
| <arg line="-h ${db.host} -p ${db.port} shutdown"/> |
| </java> |
| </target> |
| |
| </project> |