<!--

    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.s1asdev.security.wss.defprovider.servlet.taxcal.client.TaxCalClient"/>
<property name="application.xml" value="descriptor/application.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}/${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/sun-web.xml"/>
<property name="web.xml" value="descriptor/web.xml"/>
<property name="web-webservices.xml" value="descriptor/webservices.xml"/>
<property name="wsdlfile.name" value="TaxCalServletService.wsdl"/>
<property name="wsdlfile.location" value="wsdl"/>

