<!--

    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="ws"/>
<property name="appname" value="${module}-taxcal"/>
<property name="assemble" value="${build.classes.dir}/archive"/>
<property name="test.client" value="com.sun.s1peqe.webservices.servlet.taxcal.client.TaxCalClient"/>
<property name="application.xml" value="descriptor/application.xml"/>
<!--property name="sun-application.xml" value="descriptor/sun-application.xml"/-->
<property name="application-client.xml" value="descriptor/client/application-client.xml"/>
<property name="sun-application-client.xml" value="descriptor/client/sun-application-client.xml"/>
<property name="appclientjar.files" value="${build.classes.dir}"/>
<property name="appclient.jar" value="${assemble.dir}/${appname}-client.jar"/>
<property name="app.type" value="application"/>
<property name="wsdl-file" value="wsdl/TaxCalServletService.wsdl"/>
<property name="client-mapping.xml" value="TaxCalClientMapping.xml"/>
<property name="wsdlfile.location" value="wsdl"/>

<!--- servlet based endpoint params -->
<!--property name="mappingfile.location" value=""/-->
<property name="web-mapping.xml" value="TaxCalServletMapping.xml"/>
<property name="sun-web.xml" value="descriptor/web/sun-web.xml"/>
<property name="web.xml" value="descriptor/web/web.xml"/>
<property name="web-webservices.xml" value="descriptor/web/webservices.xml"/>
<property name="wsdlfile.name" value="TaxCalServletService.wsdl"/>
<property name="wsdlfile.location" value="wsdl"/>

