<?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-encryptThenSign-default" 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>
        <antcall target="enable-wss-message-security-provider">
            <param name="wss.server.provider.name" value="ServerProvider"/>
            <param name="wss.client.provider.name" value="ClientProvider"/>
        </antcall>

        <antcall target="set-wss-provider-request-auth-recipient">
            <param name="wss.provider.name" value="ServerProvider"/>
            <param name="request.auth.recipient" value="before-content"/>
        </antcall>
        <antcall target="set-wss-provider-response-auth-recipient">
            <param name="wss.provider.name" value="ServerProvider"/>
            <param name="response.auth.recipient" value="after-content"/>
        </antcall>
        <antcall target="set-wss-provider-request-auth-recipient">
            <param name="wss.provider.name" value="ClientProvider"/>
            <param name="request.auth.recipient" value="before-content"/>
        </antcall>
        <antcall target="set-wss-provider-response-auth-recipient">
            <param name="wss.provider.name" value="ClientProvider"/>
            <param name="response.auth.recipient" value="after-content"/>
        </antcall>

        <antcall target="backup-glassfish-acc.xml"/>
        <antcall target="enable-wss-appclient-message-security-provider">
            <param name="wss.client.provider.name" value="ClientProvider"/>
        </antcall>
        <antcall target="set-wss-appclient-request-recipient">
            <param name="request.auth.recipient" value="before-content"/>
        </antcall>
        <antcall target="set-wss-appclient-response-recipient">
            <param name="response.auth.recipient" value="after-content"/>
        </antcall>
        <antcall target="restart-server-instance-common" />
    </target>

    <target name="unsetup" depends="init-common" >
        <antcall target="set-wss-provider-request-auth-recipient">
            <param name="wss.provider.name" value="ServerProvider"/>
            <param name="request.auth.recipient" value=""/>
        </antcall>
        <antcall target="set-wss-provider-response-auth-recipient">
            <param name="wss.provider.name" value="ServerProvider"/>
            <param name="response.auth.recipient" value=""/>
        </antcall>
        <antcall target="set-wss-provider-request-auth-recipient">
            <param name="wss.provider.name" value="ClientProvider"/>
            <param name="request.auth.recipient" value=""/>
        </antcall>
        <antcall target="set-wss-provider-response-auth-recipient">
            <param name="wss.provider.name" value="ClientProvider"/>
            <param name="response.auth.recipient" value=""/>
        </antcall>
        <antcall target="disable-wss-message-security-provider"/>
        <antcall target="disable-wss-appclient-message-security-provider">
            <param name="wss.client.provider.name" value="ClientProvider"/>
        </antcall>
        <antcall target="unset-wss-appclient-request-recipient">
            <param name="request.auth.recipient" value="before-content"/>
        </antcall>
        <antcall target="unset-wss-appclient-response-recipient">
            <param name="response.auth.recipient" value="after-content"/>
        </antcall>
        <antcall target="restart-server-instance-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>
