<?xml version="1.0" encoding="UTF-8"?>
<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>
