<?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-ear" default="usage" basedir=".">

    &commonBuild;
    &commonVersioning;
    &basicScenarios;

    <!--
        versionInfos: the property file included in the war archives, this
        file contains a version identifier as a property and is used by the
        servlet to display the version informations.
    -->
    <property name="testPackage" value="versionedAppClient"/>
    <property name="gfDDFile" value="glassfish-application.xml"/>
    <property name="gfDDDir" value="META-INF"/>

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

    <!-- link: the context root of the servlet -->
    <property name="link" value="/${untaggedName}"/>
    <!-- untaggedName: the name of the application, its the version's prefix -->
    <property name="untaggedName" value="simple-versioned-ear"/>
    <!-- packaging: the file archive's extention -->
    <property name="packaging" value="ear"/>

    <!-- the module embedded in the EAR archive -->
    <property name="moduleUntaggedName" value="simple-versioned-servlet"/>
    <property name="modulePackaging" value="war"/>
    <property name="moduleBuildDir" value="../${moduleUntaggedName}"/>

    <target name="process.servletName" depends="process.versionExpression">
      <condition property="servletAppName" value="${moduleUntaggedName}:${versionExpression}" else="${moduleUntaggedName}">
        <not><equals arg1="${versionExpression}" arg2=""/></not>
      </condition>
    </target>

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

    <!-- assemble: package the ear archive -->
    <target name="assemble" depends="prepare,process.servletName">
        <property name="moduleUntaggedArchive" value="${build}/${moduleUntaggedName}.${modulePackaging}"/>
        <delete file="${moduleUntaggedArchive}" failonerror="false"/>
	<ant dir="${moduleBuildDir}" target="create.version" inheritAll="false">
          <property name="versionExpression" value="${versionExpression}"/>
          <property name="xmlVersionIdentifier" value=""/>
        </ant>
        <move file="${build}/${servletAppName}.${modulePackaging}" tofile="${moduleUntaggedArchive}" failonerror="false"/>
        <property name="xmlFile" value="${gfDDDir}/${gfDDFile}"/>
    	<antcall target="generate.xml.identifier"/>
        <jar destfile="${archiveFile}">
          <fileset dir="." includes="META-INF/*.xml"/>
          <fileset dir="${build}" includes="${moduleUntaggedName}.${modulePackaging}"/>
        </jar>
        <delete file="${moduleUntaggedArchive}" failonerror="false"/>
     </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>
