<?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>
