<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE project [
<!--

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

-->

<!ENTITY commonSetup SYSTEM "file:../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:../../../../config/common.xml">
<!ENTITY commonRun SYSTEM "file:../../../../config/run.xml">
<!ENTITY commonSecurity SYSTEM "file:../../common.xml">
]>


<project name="wss-permethod" default="usage" basedir=".">
    &commonSetup;
    &commonBuild;
    &commonSecurity;
    &commonRun;

    <property name="ws-target" value="all"/>

<!-- ======== Targets by execution granularity ========== -->
    <target name="all">
	<antcall target="setup"/>
        <antcall target="runwstargets">
            <param name="ws-target" value="all"/>
        </antcall>
	<antcall target="unsetup"/>
    </target>
            
    <target name="run-test">
        <antcall target="runwstargets">
            <param name="ws-target" value="run-test"/>
        </antcall>
    </target>
            
    <target name="clean">
        <antcall target="runwstargets">
            <param name="ws-target" value="clean"/>
        </antcall>
    </target>
            
    <target name="build">
        <antcall target="runwstargets">
            <param name="ws-target" value="build"/>
        </antcall>
    </target>
            
    <target name="deploy">
        <antcall target="runwstargets">
            <param name="ws-target" value="deploy"/>
        </antcall>
    </target>
            
    <target name="undeploy">
        <antcall target="runwstargets">
            <param name="ws-target" value="undeploy"/>
        </antcall>
    </target>
            
    <target name="run">
        <antcall target="runwstargets">
            <param name="ws-target" value="run"/>
        </antcall>
    </target>
            
    <target name="setup" depends="init-common">
	<!-- exports certdb stuff and imports into keystore -->
	<antcall target="prepare-store-nickname-common">
            <param name="cert.nickname" value="s1as"/>
        </antcall>
    </target>
            
    <target name="unsetup" depends="init-common" >
    </target>


    <target name="runwstargets">
        <antcall target="servletws"/>
    </target>

<!-- ======== Targets by technology ========== -->

    <target name="servletws">
        <record name="security-wss.output" action="start" />
            <ant dir="servletws" target="${ws-target}"/>
        <record name="security-wss.output" action="stop" />
    </target>
    <target name="usage">
	<echo> Usage:
    ======== Targets by execution granularity =========

    ant clean (Cleans all ws tests)
    ant build (builds all ws tests)
    ant setup (setup all required resources)
    ant deploy (deploy all test apps)
    ant run (Executes all tests)
    ant undeploy (undeploy all test apps)
    ant unsetup (remove all set resources)

    ======== Targets by technology =========

    ant servletws (Executes the servletws tests)
    ant all (Executes all the ws tests)

    ===== Targets by technoloy and execution granularity ======
    Note: Run the command of the following type: 

            % ant servletws -Dws-target=clean

    to run the 'clean' target for 'servletws' tests
	</echo>
    </target>
</project>
