<?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 commonBuild SYSTEM "./../../config/common.xml">
]>

<project name="nojarexpansion" default="usage" basedir=".">

    &commonBuild;

    <property name="contextRoot" value="war"/>
    <property name="testName" value="nojarexpansion"/>
    <property name="file.to.check" value="${inst}/domains/domain1/applications/j2ee-modules/${testName}/dummypkg"/>
    <property name="file.to.check.jsr88" value="${inst}/domains/domain1/applications/j2ee-modules/${testName}-portable/dummypkg"/>

    <target name="prepare" depends="init">
        <property name="portable.war" value="${build}/${testName}-portable.war"/>
        <property name="all.war" value="${build}/${testName}.war"/>
        <property name="deployplan.jar" value="${build}/${testName}-deployplan.jar"/>
        <mkdir dir="${build}"/>
    </target>

    <target name="compile" depends="prepare">
        <javac srcdir="dummylib"
               destdir="${build}"
               debug="on"
               failonerror="true">
        </javac>
        <jar jarfile="${build}/dummy.jar" basedir="${build}"/>
        <javac srcdir="."
               destdir="${build}"
               debug="on"
               failonerror="true">
            <classpath>
                <path refid="gfv3.classpath"/>
                <path location="${inst}/jdk/lib/tools.jar"/>
                <path location="${dummy.jar}"/>
            </classpath >
        </javac>
    </target>

    <target name="assemble" depends="compile">
        <war destfile="${portable.war}" webxml="web.xml">
            <lib dir="${build}">
                <include name="dummy.jar" />
            </lib>
            <classes dir="${build}">
                <exclude name="dummy.jar" />
                <exclude name="**/dummypkg/*" />
                <exclude name="**/client/*" />
            </classes>
        </war>
        <jar destfile="${deployplan.jar}">
            <fileset dir="${basedir}" includes="sun-web.xml"/>
        </jar>
        <war destfile="${all.war}" webxml="web.xml">
            <webinf dir="." includes="sun-web.xml"/>
            <lib dir="${build}">
                <include name="dummy.jar" />
            </lib>
            <classes dir="${build}">
                <exclude name="dummy.jar" />
                <exclude name="**/dummypkg/*" />
                <exclude name="**/client/*" />
            </classes>
        </war>
    </target>

    <target name="deploy.asadmin" depends="prepare">
        <antcall target="common.deploy.asadmin">
            <param name="arg.list" value="${all.war}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="redeploy.asadmin" depends="prepare">
        <antcall target="common.redeploy.asadmin">
            <param name="arg.list" value="${all.war}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="undeploy.asadmin">
        <antcall target="common.undeploy.asadmin">
            <param name="arg.list" value="${testName}"/>
            <param name="testName" value="${testName}"/>
        </antcall>
    </target>

    <target name="deploy.jsr88" depends="prepare">
        <antcall target="common.deploy.jsr88">
            <param name="arg.list" value="${portable.war} ${deployplan.jar}"/>
        </antcall>
    </target>

    <target name="redeploy.jsr88" depends="prepare">
        <antcall target="common.run.jsr88">
            <param name="command" value="redeploy"/>
            <param name="arg.list" value="${testName}-portable ${portable.war} ${deployplan.jar}"/>
        </antcall>
    </target>

    <target name="undeploy.jsr88">
        <antcall target="common.undeploy.jsr88">
            <param name="arg.list" value="${testName}-portable"/>
        </antcall>
    </target>

    <target name="start.jsr88">
        <antcall target="common.run.jsr88">
            <param name="command" value="start"/>
            <param name="arg.list" value="${testName}-portable"/>
        </antcall>
    </target>

    <target name="stop.jsr88">
        <antcall target="common.run.jsr88">
            <param name="command" value="stop"/>
            <param name="arg.list" value="${testName}-portable"/>
        </antcall>
    </target>

    <target name="deploy.autodeploy">
    </target>

    <target name="run" depends="run.positive"/>

    <target name="run.positive" depends="setHttpPort">
        <antcall target="common.run.positive">
            <param name="link" value="${contextRoot}/${testName}"/>
            <param name="log.id" value="${log.id}"/>
        </antcall>
    </target>

    <target name="run.negative" depends="setHttpPort">
        <antcall target="common.run.negative">
            <param name="link" value="${contextRoot}/${testName}"/>
            <param name="log.id" value="${log.id}"/>
        </antcall>
    </target>

    <target name="runclient" depends="init">
        <echo message="TestClient ${arg.list}"/>
        <javaWithResult
            fork="true"
            failonerror="false"
            jvm="${JAVA}"
            classname="webinflib.client.TestClient"
            output="${build}/${log.id}.output.log"
            resultproperty="result">
            <jvmarg value="-Dorg.omg.CORBA.ORBInitialHost=${http.host}"/>
            <jvmarg value="-Dorg.omg.CORBA.ORBInitialPort=${orb.port}"/>

            <classpath>
                <path refid="gfv3.classpath"/>
                <path location="${build}"/>
            </classpath>

            <arg line="${arg.list}"/>
        </javaWithResult>

        <antcall target="processResult">
            <param name="result" value="${result}"/>
            <param name="log" value="${build}/${log.id}.output.log"/>
        </antcall>
    </target>

    <target name="ensure.no.file" depends="init">
        <antcall target="declare-test">
            <param name="description" value="${desc}"/>
        </antcall>
        <echo>In ensure.no.file
Current setting of result is ${result}.
File to check is ${file.to.check}</echo>
        <available file="${file.to.check}" property="result" value="1"/>
        <echo>After available check, result is now ${result}</echo>
          <condition property="result" value="0">
                <not>
                        <isset property="result"/>
                </not>
          </condition>
        <echo>After final check of results, value is now ${result}</echo>
        <antcall target="processResult">
        </antcall>
    </target>


    <target name="private-all">
        <antcall target="assemble"/>
        <antcall target="deploy.asadmin"/>

        <antcall target="run.positive">
            <param name="log.id" value="1"/>
            <param name="desc" value="war/nojarexpansion Test asadmin deploy"/>
        </antcall>
        <antcall target="ensure.no.file">
            <param name="log.id" value="2"/>
            <param name="desc" value="war/nojarexpansion Test verify jar was not expanded after deploy"/>
        </antcall>

        <antcall target="redeploy.asadmin"/>
        <antcall target="run.positive">
            <param name="log.id" value="2"/>
            <param name="desc" value="war/nojarexpansion Test asadmin redeploy"/>
        </antcall>
        <antcall target="ensure.no.file">
            <param name="log.id" value="2"/>
            <param name="desc" value="war/nojarexpansion Test verify jar was not expanded after redeploy"/>
        </antcall>

        <antcall target="undeploy.asadmin"/>

        <antcall target="deploy.jsr88"/>
        <antcall target="run.positive">
            <param name="log.id" value="3"/>
            <param name="desc" value="war/nojarexpansionTest jsr88 deploy"/>
        </antcall>
        <antcall target="ensure.no.file">
            <param name="file.to.check" value="${file.to.check.jsr88}"/>
            <param name="log.id" value="2"/>
            <param name="desc" value="war/nojarexpansion Test verify jar was not expanded after jsr88 deploy"/>
        </antcall>

        <antcall target="redeploy.jsr88"/>
        <antcall target="run.positive">
            <param name="log.id" value="6"/>
            <param name="desc" value="war/nojarexpansion Test jsr88 redeploy"/>
        </antcall>
        <antcall target="ensure.no.file">
            <param name="file.to.check" value="${file.to.check.jsr88}"/>
            <param name="log.id" value="2"/>
            <param name="desc" value="war/nojarexpansion Test verify jar was not expanded after jsr88 redeploy"/>
        </antcall>

        <antcall target="undeploy.jsr88"/>
    </target>

    <target name="clobber" depends="clean">
        <delete file="${portable.war}"/>
        <delete file="${all.war}"/>
        <delete file="${deployplan.war}"/>
        <delete dir="${build}"/>
    </target>

    <target name="usage">
        <antcall target="all"/>
    </target>

    <target name="xx" depends="init">
      <antcall target="ensure.no.file">
                <param name="file" value="${file.to.check}"/>
      </antcall>
    </target>
</project>
