<!--

    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="roster2Teams"/>
<property name="appname" value="${module}"/>         

<property name="test.client" 
	value="RosterClient"/>

<property name="application.xml" value="descriptor/application.xml"/>
<property name="sun-application.xml" value="descriptor/sun-application.xml"/>

<property name="ejb-jar-team.xml" value="descriptor/ejb-jar-team.xml"/>
<property name="sun-ejb-jar-team.xml" value="descriptor/sun-ejb-jar-team.xml"/>

<property name="ejb-jar-team2.xml" value="descriptor/ejb-jar-team2.xml"/>
<property name="sun-ejb-jar-team2.xml" value="descriptor/sun-ejb-jar-team2.xml"/>

<property name="ejb-jar-roster.xml" value="descriptor/ejb-jar-roster.xml"/>
<property name="sun-ejb-jar-roster.xml" value="descriptor/sun-ejb-jar-roster.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="appclientjar.files" value="${build.classes.dir}"/>

<property name="appclient.jar" value="${assemble.dir}/rosterextAppClient.jar"/>
<property name="war.file" value="${assemble.dir}/rosterext-web.war"/>
<property name="app.type" value="application"/>
<property name="hasWebclient" value="true"/>

<property name="web.xml"
	value="descriptor/web.xml"/>
<property name="sun-web.xml"
	value="descriptor/sun-web.xml"/>

