<!--

    Copyright (c) 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

-->
 

<property name="module" value="transaction"/>
<property name="application.xml" value="descriptor/application.xml"/>
<property name="ejb-jar.xml" value="descriptor/ejb-jar.xml"/>
<property name="sun-ejb-jar.xml" value="descriptor/sun-ejb-jar.xml"/>
<property name="application-client.xml" value="descriptor/application-client.xml"/>
<property name="sun-application-client.xml" value="descriptor/sun-application-client.xml"/>
<property name="appname" value="txstressreadonly"/>
<property name="appclientjar.files" value="${build.classes.dir}"/>
<property name="appclient.jar" value="${assemble.dir}/txstressreadonly-client.jar"/>
<property name="jdbc.resource.type" value="javax.sql.XADataSource"/>
<property name="web.xml" value="descriptor/web.xml"/>
<property name="sun-web.xml" value="descriptor/sun-web.xml"/>
<property name="contextroot" value="justservlet"/>
<property name="app.type" value="application"/>
<property name="db.url1" value="jdbc:oracle:thin:@mig:1521:mig"/>
<property name="db.url2" value="jdbc:oracle:thin:@129.158.229.89:1521:orcl9"/>
<property name="db.class1" value="oracle.jdbc.xa.client.OracleXADataSource"/>
<property name="db.class2" value="oracle.jdbc.pool.OracleDataSource"/>
<property name="db.user1" value="jtstest"/>
<property name="db.pwd1" value="jtstest"/>
<property name="db.user2" value="scott"/>
<property name="db.pwd2" value="tiger"/>
<property name="jdbc.resource.type1" value="javax.sql.XADataSource"/>
<property name="jdbc.resource.type2" value="javax.sql.DataSource"/>

