<?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">
<!ENTITY commonVersioning SYSTEM "../versioning-common.xml">
<!ENTITY basicScenarios SYSTEM "../basic-scenarios.xml">
]>

<project name="simple-versioned-ejb" default="usage" basedir=".">

    &commonBuild;
    &commonVersioning;
    &basicScenarios;

    <loadproperties srcFile="../build.properties"/>
    <!--
        versionInfos: the property file included in the jar archives, this
        file contains a version identifier as a property and is used by the
        ejb to return the version informations.
    -->
    <property name="versionInfos" value="version-infos.properties"/>
    <property name="testPackage" value="versionedejb"/>

    <property name="gfDDFile" value="glassfish-ejb-jar.xml"/>
    <property name="gfDDDir" value="META-INF"/>

    <loadproperties srcFile="../build.properties"/>

    <property name="untaggedName" value="simple-versioned-ejb"/>
    <property name="packaging" value="jar"/>

    <target name="prepare" depends="init">
        <mkdir dir="${build}"/>
    </target>

    <!--
        compile: compiles the 2 classes (servlet+client)
    -->
    <target name="compile" depends="prepare">
        <javac srcdir="./src/"
               destdir="${build}"
               debug="on"
               failonerror="true">
            <classpath refid="gfv3.classpath" />
        </javac>
        <!--
            generation of the property from witch the EJB read the
            version information.
        -->
        <propertyfile file="${build}/${testPackage}/${versionInfos}">
          <entry  key="version.identifier" value="${versionExpression}"/>
        </propertyfile>
        <property name="xmlFile" value="${gfDDDir}/${gfDDFile}"/>
            <antcall target="generate.xml.identifier"/>
    </target>

    <!-- assemble: package the ejb -->
    <target name="assemble" depends="compile">
        <jar destfile="${archiveFile}" manifest="META-INF/MANIFEST.MF">
            <fileset dir="${classPath}" includes="**/*.class, **/*.properties"/>
            <fileset dir="." includes="META-INF/*.xml"/>
        </jar>
    </target>

<!--
  Currently, only the scenarios processing test.registred and test.notregistred
  are supported.
-->
    <target name="main-all">
        <antcall target="xml.version.information"/>
        <antcall target="clean.scenario"/>
    </target>
</project>
