<!--

    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

-->

<!--
    This is the top level persistence build file that should be
    imported into all the leaf level persistence build files
-->

<!--
   -Ddatabase.properties option can be passed to the ant target to run the persistence
   tests with various databases. Test loads derby.properties as default if no database
   is specified.
-->
<property name="database.properties" value="${env.APS_HOME}/devtests/persistence/config/derby.properties" />
<property file="${database.properties}" />

<!--
   -Dpersistence.provider option can be passed to the ant target to run the persistence
   tests with various providers. Test loads eclipselink  as default if no provider
   is specified.
-->
<property name="persistence.provider" value="org.eclipse.persistence.jpa.PersistenceProvider" />

<!--
  oracle-setup target is defined for copying the oracle drivers to the appserver lib
  dir.
-->
<target name="database-setup" depends="init-common">
  <echo message="So you are using oracle..!"/>
  <antcall target="copyDrivers">
    <param name="db.driver.dir" value="${db.driver.dir}"/>
    <param name="db.driver" value="${db.driver}"/>
  </antcall>
</target>


<target name="copyDrivers" depends="init-common">
  <echo message="db.driver.dir=${db.driver.dir}"/>
  <echo message="db.driver=${db.driver}"/>
  <copy todir="${admin.domain.dir}/${admin.domain}/lib/ext"
    overwrite="true" failonerror="false">
    <fileset dir="${db.driver.dir}" includes="**/*.jar"/>
  </copy>
  <antcall target="restart-server-instance-common"/>
</target>

<!-- ================================================================ -->
<!-- Target to create JDBC connection pool  -->
<!-- ================================================================ -->
<target name="create-jdbc-persistence-connpool-common" depends="init-common">
<echo message="created jdbc connection pool ${jdbc.conpool.name}"
    level="verbose"/>
    <property name="extra-params" value=""/>
    <exec executable="${ASADMIN}" failonerror="false">
        <arg line="create-jdbc-connection-pool"/>
        <arg line="--datasourceclassname ${db.class}"/>
        <arg line="--restype ${jdbc.resource.type}"/>
        <arg line="${extra-params}"/>
        <arg line="--target ${appserver.instance.name}"/>
        <arg line="${as.props}"/>
        <arg line="--property ${db.driver.props}"/>
        <arg line="${jdbc.conpool.name}"/>
    </exec>
</target>

<!-- ===== package PU ===== -->
<target name="package-pu-common" depends="init-common">
    <echo message="${build.classes.dir}, ${assemble.dir}, ${persistence.xml}"/>
    <mkdir dir="${assemble.dir}"/>
    <delete file="${entity.jar}" failonerror="false"/>
    <mkdir dir="${build.classes.dir}/META-INF"/>
    <copy file="${persistence.xml}" tofile="${build.classes.dir}/META-INF/persistence.xml" failonerror="false"/>
    <jar jarfile="${assemble.dir}/${entity.jar}" basedir="${build.classes.dir}" update="true" includes = "${entityjar.classes}">
       <metainf dir="${build.classes.dir}/META-INF">
           <include name="**/*.xml"/>
       </metainf>
    </jar>
    <delete dir="${build.classes.dir}/META-INF" failonerror="false"/>
</target>

<!-- ===== package entity classes without PU ===== -->
<target name="package-entity-common" depends="init-common">
    <echo message="${build.classes.dir}, ${assemble.dir}, ${persistence.xml}"/>
    <mkdir dir="${assemble.dir}"/>
    <delete file="${entity.jar}" failonerror="false"/>
    <mkdir dir="${build.classes.dir}/META-INF"/>
    <jar jarfile="${assemble.dir}/${entity.jar}" basedir="${build.classes.dir}" update="true" includes = "${entity.class}">
       <metainf dir="${build.classes.dir}/META-INF">
           <include name="**/*.xml"/>
       </metainf>
    </jar>
    <echo message="----GENERATED----${build.classes.dir}/${entity.jar}" />
    <delete dir="${build.classes.dir}/META-INF" failonerror="false"/>
</target>

<!-- ===== package PU under ear/lib===== -->
<target name="build-entity-earlib" depends="fixFiles,ejb-jar-common,appclient-jar-common,webclient-war-common">
  <delete file="${assemble.dir}/${appname}.ear"/>
  <mkdir dir="${build.classes.dir}/META-INF"/>
  <mkdir dir="${assemble.dir}/lib"/>
  <move file="${assemble.dir}/entity.jar" todir="${assemble.dir}/lib"/>
  <copy file="${application.xml}"
        tofile="${build.classes.dir}/META-INF/application.xml"
        failonerror="false"/>
  <copy file="${glassfish-resources.xml}"
        tofile="${build.classes.dir}/META-INF/glassfish-resources.xml"
        failonerror="false"/>
  <jar jarfile="${assemble.dir}/${appname}App.ear">
    <fileset dir="${assemble.dir}">
      <include name="**/*.jar"/>
      <include name="*.war"/>
    </fileset>
    <fileset dir="${build.classes.dir}">
        <include name="META-INF/application.xml"/>
        <include name="META-INF/glassfish-resources.xml"/>
    </fileset>
    <fileset dir="${env.APS_HOME}" includes="lib/reporter.jar"/>
  </jar>
</target>

<!-- ===== build ear file  ===== -->
<target name="build-ear-persistence" depends="fixFiles,webclient-war-common">
  <delete file="${assemble.dir}/${appname}.ear"/>
  <mkdir dir="${assemble.dir}"/>
  <mkdir dir="${build.classes.dir}/META-INF"/>
  <copy file="${application.xml}" tofile="${build.classes.dir}/META-INF/application.xml" failonerror="false"/>
  <jar jarfile="${assemble.dir}/${appname}App.ear">
    <fileset dir="${assemble.dir}">
      <include name="*.jar"/>
      <include name="*.war"/>
    </fileset>
    <fileset dir="${build.classes.dir}">
        <include name="META-INF/sun-application.xml"/>
        <include name="META-INF/application.xml"/>
    </fileset>
    <fileset dir="${env.APS_HOME}" includes="lib/reporter.jar"/>
  </jar>
</target>


<!-- ear file with webclient, and without appclient  -->
<target name="build-pkg-ear"
  depends="fixFiles,ejb-jar-common,webclient-war-local">
  <delete file="${assemble.dir}/${appname}.ear"/>
  <mkdir dir="${assemble.dir}/lib"/>
  <move file="${assemble.dir}/entity.jar" todir="${assemble.dir}/lib"/>
  <mkdir dir="${build.classes.dir}/META-INF"/>
  <copy file="${sun-application.xml}"
         tofile="${build.classes.dir}/META-INF/sun-application.xml"
        failonerror="false"/>
  <copy file="${application.xml}"
         tofile="${build.classes.dir}/META-INF/application.xml"
        failonerror="false"/>
  <jar jarfile="${assemble.dir}/${appname}App.ear">
    <fileset dir="${assemble.dir}">
      <include name="*.jar"/>
      <include name="*.war"/>
      <include name="lib/*.jar"/>
    </fileset>
    <fileset dir="${build.classes.dir}">
        <include name="META-INF/sun-application.xml"/>
         <include name="META-INF/application.xml"/>
    </fileset>
  </jar>
</target>


<!-- ear file with webclient, and without ejb/appclient  -->
<target name="build-pu-ear"
  depends="fixFiles,webclient-pu-war">
  <delete file="${assemble.dir}/${appname}.ear"/>
  <mkdir dir="${assemble.dir}"/>
  <mkdir dir="${assemble.dir}/lib"/>
  <mkdir dir="${build.classes.dir}/META-INF"/>
  <copy file="${sun-application.xml}"
         tofile="${build.classes.dir}/META-INF/sun-application.xml"
        failonerror="false"/>
  <copy file="${application.xml}"
         tofile="${build.classes.dir}/META-INF/application.xml"
        failonerror="false"/>
  <jar jarfile="${assemble.dir}/${appname}App.ear">
    <fileset dir="${assemble.dir}">
      <include name="*.jar"/>
      <include name="*.war"/>
    </fileset>
    <fileset dir="${build.classes.dir}">
        <include name="META-INF/sun-application.xml"/>
         <include name="META-INF/application.xml"/>
    </fileset>
  </jar>
</target>

<!-- make a war file with pu as WEB-INF/classes  -->

<target name="webclient-pu-war"
        if="hasWebclient" depends="init-common">
        <mkdir dir="${assemble.dir}"/>
        <antcall target="package-pu-war">
            <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
        </antcall>
</target>

<!-- make a war file with pu as WEB-INF/lib  -->
<target name="webclient-pu-warlib"
        if="hasWebclient" depends="init-common">
        <mkdir dir="${assemble.dir}"/>
        <antcall target="package-pu-warlib">
            <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
        </antcall>
</target>

<!-- Build war file  -->
<target name="webclient-war-local"
        if="hasWebclient" depends="init-common">
        <mkdir dir="${assemble.dir}"/>
        <antcall target="package-war-local">
            <param name="war.file" value="${assemble.dir}/${appname}-web.war"/>
        </antcall>
</target>

<!-- Build war file  -->
<target name="package-war-local">
        <echo message="my build classes dir is:${build.classes.dir}"/>
        <delete file="${war.file}"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/classes"/>
        <echo message="webclient.war.classes=${webclient.war.classes}"/>
        <copy file="${web.xml}"
                tofile="${build.classes.dir}/WEB-INF/web.xml"/>
        <copy todir="${build.classes.dir}/WEB-INF/classes">
                <fileset dir="${build.classes.dir}">
                   <include name="${webclient.war.classes}"/>
                </fileset>
        </copy>

        <jar jarfile="${war.file}" basedir="${build.classes.dir}"
                update="true" includes ="WEB-INF/classes/**">
                <fileset dir="${basedir}/docroot" casesensitive="yes">
                        <include name="*.html"/>
                        <include name="*.jsp"/>
                        <include name="*.gif"/>
                        <include name="*.do"/>
                </fileset>
                <fileset dir="${build.classes.dir}" casesensitive="true">
                         <include name="WEB-INF/web.xml"/>
                </fileset>
        </jar>
        <echo message="created war file ${war.file}"/>
        <delete dir="${build.classes.dir}/WEB-INF" failonerror="false"/>
        <echo message="my webclient war classes are:${webclient.war.classes}"/>
</target>


<!-- package pu under WEB-INF/classes  -->

<target name="package-pu-war" depends="init-common">
        <echo message="my build classes dir is:${build.classes.dir}"/>
        <delete file="${war.file}"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/classes"/>
        <echo message="webclient.war.classes=${webclient.war.classes}"/>
        <copy file="${web.xml}"
                tofile="${build.classes.dir}/WEB-INF/web.xml"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/classes/META-INF"/>
        <copy file="${persistence.xml}"
                tofile="${build.classes.dir}/WEB-INF/classes/META-INF/persistence.xml"/>
        <copy todir="${build.classes.dir}/WEB-INF/classes">
                <fileset dir="${build.classes.dir}">
                   <include name="**/*.class"/>
                </fileset>
        </copy>

        <jar jarfile="${war.file}" basedir="${build.classes.dir}"
                update="true" includes ="WEB-INF/classes/**">
                <fileset dir="${basedir}/docroot" casesensitive="yes">
                        <include name="*.html"/>
                        <include name="*.jsp"/>
                        <include name="*.gif"/>
                        <include name="*.do"/>
                </fileset>
                <fileset dir="${build.classes.dir}" casesensitive="true">
                         <include name="WEB-INF/web.xml"/>
                </fileset>
                 <fileset dir="${build.classes.dir}" casesensitive="true">
                         <include name="WEB-INF/classes/META-INF/persistence.xml"/>
                </fileset>

        </jar>
        <echo message="created war file ${war.file}"/>
        <delete dir="${build.classes.dir}/WEB-INF" failonerror="false"/>
        <echo message="my webclient war classes are:${webclient.war.classes}"/>
</target>

<!-- package pu under WEB-INF/lib  -->
<target name="package-pu-warlib" depends="init-common">
        <echo message="my build classes dir is:${build.classes.dir}"/>
        <delete file="${war.file}"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/classes"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/lib"/>
        <echo message="webclient.war.classes=${webclient.war.classes}"/>
        <copy file="${web.xml}"
                tofile="${build.classes.dir}/WEB-INF/web.xml"/>
        <mkdir dir="${build.classes.dir}/WEB-INF/classes/META-INF"/>
        <move file="${assemble.dir}/entity.jar" todir="${build.classes.dir}/WEB-INF/lib"/>

        <copy todir="${build.classes.dir}/WEB-INF/classes">
                <fileset dir="${build.classes.dir}">
                   <include name="**/*.class"/>
                </fileset>
        </copy>

        <jar jarfile="${war.file}" basedir="${build.classes.dir}"
                update="true" includes ="WEB-INF/classes/**">
                <fileset dir="${basedir}/docroot" casesensitive="yes">
                        <include name="*.html"/>
                        <include name="*.jsp"/>
                        <include name="*.gif"/>
                        <include name="*.do"/>
                </fileset>
                <fileset dir="${build.classes.dir}" casesensitive="true">
                         <include name="WEB-INF/web.xml"/>
                </fileset>
                 <fileset dir="${build.classes.dir}" casesensitive="true">
                         <include name="WEB-INF/lib/entity.jar"/>
                </fileset>

        </jar>
        <echo message="created war file ${war.file}"/>
        <delete dir="${build.classes.dir}/WEB-INF" failonerror="false"/>
        <echo message="my webclient war classes are:${webclient.war.classes}"/>
</target>


<!-- package entity classes and persistence.xml in ejb jar file  -->
<target name="package-entity-ejb" depends="init-common">
    <mkdir dir="${assemble.dir}"/>
    <mkdir dir="${build.classes.dir}/META-INF"/>
    <copy file="${persistence.xml}" tofile="${build.classes.dir}/META-INF/persistence.xml" failonerror="false"/>
    <jar jarfile="${assemble.dir}/${appname}-ejb.jar" basedir="${build.classes.dir}"
        update="true" includes ="${ejbjar.classes}">
            <metainf dir="${build.classes.dir}/META-INF">
                <include name="**/*persistence.xml"/>
            </metainf>
        </jar>
        <delete dir="${build.classes.dir}/META-INF" failonerror="false"/>
</target>

