<?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 "../../../../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "../../../../../config/common.xml">
<!ENTITY testproperties SYSTEM "build.properties">
]>

<project name="ejb-ejb30-persistence-eemsfsbpassivation-App" default="usage" basedir=".">

    &commonSetup;
    &commonBuild;
    &testproperties;

    <target name="all" depends="build,setup,deploy,run,undeploy,unsetup"/>

    <target name="clean" depends="init-common">
      <antcall  target="clean-common"/>
    </target>

    <target name="compile" depends="clean">
        <antcall target="compile-common">
            <param name="src" value="ejb"/>
        </antcall>
        <antcall target="compile-common">
            <param name="src" value="client"/>
        </antcall>
    </target>

    <target name="setup" depends="init-common">
      <antcall target="execute-ejb-sql-common">
        <param name="sql.file" value="sql/create.sql"/>
      </antcall>
    </target>

    <target name="unsetup" depends="init-common">
      <antcall target="execute-ejb-sql-common">
        <param name="sql.file" value="sql/drop.sql"/>
      </antcall>
    </target>

    <target name="build" depends="compile">
        <mkdir dir="${assemble.dir}/lib"/>
        <jar destfile="${assemble.dir}/lib/${appname}-lib.jar"
             basedir="${build.classes.dir}"
             includes="**/Person.class">
        </jar>
        <jar destfile="${assemble.dir}/lib/${appname}-par1.jar">
             <metainf file="descriptor/persistence.xml"/>
        </jar>
        <antcall target="build-ear-common">
            <param name="ejbjar.classes"
              value="**/Sful*.class"/>
            <param name="appclientjar.classes"
              value="**/Client.class,**/Sful.class"/>
        </antcall>
        <jar destfile="${assemble.dir}/${appname}App.ear" update="yes"
             basedir="${assemble.dir}"
             includes="lib/${appname}-lib.jar, lib/${appname}-par1.jar">
        </jar>

    </target>

    <target name="deploy"
            depends="init-common">
        <antcall target="deploy-common"/>
    </target>

    <target name="run" depends="init-common">
        <antcall target="runclient-common"/>
    </target>

    <target name="undeploy" depends="init-common">
        <antcall target="undeploy-common"/>
    </target>

    <target name="usage">
        <antcall target="usage-common"/>
    </target>
</project>
