<?xml version="1.0" encoding="UTF-8"?>
<!--

    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

-->

<project default="-deploy-ant" basedir=".">
    <target name="-init-cl-deployment-env" if="deploy.ant.enabled">
        <property file="${deploy.ant.properties.file}" />
        <available file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" property="sun.web.present"/>
        <available file="${deploy.ant.resource.dir}" property="has.setup"/>
        <tempfile prefix="sjsas" property="sjsas.password.file" destdir="${java.io.tmpdir}"/>  <!-- do not forget to delete this! -->
        <echo message="AS_ADMIN_PASSWORD=${sjsas.password}" file="${sjsas.password.file}"/>
    </target>

    <target name="-parse-sun-web" depends="-init-cl-deployment-env" if="sun.web.present">
        <tempfile prefix="sjsas" property="temp.sun.web" destdir="${java.io.tmpdir}"/>
        <copy file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" tofile="${temp.sun.web}"/>
        <!-- The doctype triggers resolution which can fail -->
        <replace file="${temp.sun.web}">
            <replacetoken><![CDATA[<!DOCTYPE]]></replacetoken>
            <replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue>
        </replace>
        <replace file="${temp.sun.web}">
            <replacetoken><![CDATA[<sun-web-app]]></replacetoken>
            <replacevalue><![CDATA[--> <sun-web-app]]></replacevalue>
        </replace>
        <xmlproperty file="${temp.sun.web}" validate="false">
        </xmlproperty>
        <delete file="${temp.sun.web}"/>
        <property name="deploy.ant.client.url" value="${sjsas.url}${sun-web-app.context-root}"/>
    </target>
    <target name="-add-resources" depends="-init-cl-deployment-env" if="has.setup">
        <tempfile prefix="sjsas" property="sjsas.resources.dir" destdir="${java.io.tmpdir}"/>
        <mkdir dir="${sjsas.resources.dir}"/>
        <mkdir dir="${sjsas.resources.dir}/META-INF"/>
        <property name="sjsas.resources.file" value="${sjsas.resources.dir}/META-INF/sun-resources.xml"/>
        <property name="lefty" value="&lt;"/>

        <property name="righty" value="&gt;"/>
        <concat destfile="${sjsas.resources.file}">${lefty}?xml version="1.0" encoding="UTF-8"?${righty}
${lefty}!DOCTYPE resources PUBLIC
   "-//Sun Microsystems Inc.//DTD Application Server 9.0 Resource Definitions //EN"
   "${sjsas.root}/lib/dtds/sun-resources_1_2.dtd"${righty}
${lefty}resources${righty}
${lefty}/resources${righty}
        </concat>
        <concat append="true" destfile="${sjsas.resources.file}">
            <fileset dir="${deploy.ant.resource.dir}"/>
        </concat>
        <replace file="${sjsas.resources.file}" value="">
            <replacetoken><![CDATA[</resources>
<?xml version="1.0" encoding="UTF-8"?>
<resources>]]></replacetoken>
        </replace>
        <replace file="${sjsas.resources.file}" value="">
            <replacetoken><![CDATA[</resources>
        <?xml version="1.0" encoding="UTF-8"?>
<resources>]]></replacetoken>
        </replace>
        <replace file="${sjsas.resources.file}" value="">
            <replacetoken><![CDATA[transaction-isolation-level="JDBC Driver Default"]]></replacetoken>
        </replace>
        <!-- work-around 434 and its variants -->
        <replace file="${sjsas.resources.file}" value="">
            <replacetoken><![CDATA[<description/>]]></replacetoken>
        </replace>
        <!-- do the right thing for Topics and Queues.
            Need fix for TopicConnectionFactory and QueueConnectionfactory -->
        <replace file="${sjsas.resources.file}">
            <replacetoken><![CDATA[<jms-resource ]]></replacetoken>
            <replacevalue><![CDATA[<admin-object-resource res-adapter="jmsra" ]]></replacevalue>
        </replace>
        <replace file="${sjsas.resources.file}">
            <replacetoken><![CDATA[</jms-resource>]]></replacetoken>
            <replacevalue><![CDATA[</admin-object-resource>]]></replacevalue>
        </replace>
        <jar destfile="${deploy.ant.archive}" update="true">
            <fileset dir="${sjsas.resources.dir}"/>
        </jar>
        <delete dir="${sjsas.resources.dir}"/>
    </target>
    <target name="-deploy-ant" depends="-parse-sun-web,-add-resources" if="deploy.ant.enabled">
        <echo message="Deploying ${deploy.ant.archive}"/>
        <taskdef name="sun-appserv-deploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.DeployTask"
                 classpath="${sjsas.root}/lib/sun-appserv-ant.jar" />
        <sun-appserv-deploy user="${sjsas.username}"
                passwordfile="${sjsas.password.file}"
                host="${sjsas.host}" port="${sjsas.port}"
                file="${deploy.ant.archive}" asinstalldir="${sjsas.root}"/>
        <delete file="${sjsas.password.file}"/>
    </target>
    <target name="-undeploy-ant" depends="-init-cl-deployment-env" if="deploy.ant.enabled">
        <taskdef name="sun-appserv-undeploy" classname="org.apache.tools.ant.taskdefs.optional.sun.appserv.UndeployTask"
                 classpath="${sjsas.root}/lib/sun-appserv-ant.jar" />
        <sun-appserv-undeploy user="${sjsas.username}"
                passwordfile="${sjsas.password.file}"
                host="${sjsas.host}" port="${sjsas.port}"
                file="${deploy.ant.archive}" asinstalldir="${sjsas.root}"/>
        <delete file="${sjsas.password.file}"/>
    </target>
</project>
