<?xml version="1.0"?>

<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!--
  =======================================================================
    Build file to fetch optional libraries for Apache Ant
  =======================================================================
-->
<project name="fetch" default="all" basedir=".">

  <description>
This build file downloads JAR files that optional Ant tasks use,
and installs them in a location that is accessible the next time Ant runs.

You can choose three locations, by going -Ddest=LOCATION on the command line
-Ddest=user     user lib dir  ${user.home}/.ant/lib
-Ddest=system   ant lib dir   ${ant.home}/lib
-Ddest=optional optional dir  $${basedir}/lib/optional  (for Ant developers)

You may also need to set proxy settings. On Java 1.5, Ant tries to get
this from the OS, unless you use the -noproxy option.

Proxies can be configured manually setting the JVM proxy values in the
ANT_OPTS environment variable.

For example, to set the proxy up in the tcsh shell, the command would
be something like:

For csh/tcsh:
 setenv ANT_OPTS "-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For bash:
 export ANT_OPTS="-Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080"
For Windows, set the environment variable in the appropriate dialog box
and open a new console. or, by hand
 set ANT_OPTS = -Dhttp.proxyHost=proxy -Dhttp.proxyPort=8080
  </description>

  <!-- Give user a chance to override without editing this file
       (and without typing -D each time it compiles it) -->
  <property file="${user.home}/.ant/ant.properties"/>
  <property name="lib.dir" location="lib"/>
  <property name="optional.dir" location="${lib.dir}/optional"/>
  <property name="userlib.dir" location="${user.home}/.ant/lib"/>

  <!-- Load in our properties table -->
  <property file="${lib.dir}/libraries.properties"/>

  <!-- Temporary cache for working files -->
  <property name="temp.dir" location="${user.home}/.ant/tempcache"/>
  <property name="keep.temp.dir" value="true"/>

  <import file="get-m2.xml"/>

  <target name="pick-dest">
    <fail>
      <condition>
        <not>
          <isset property="dest"/>
        </not>
      </condition>ERROR
Set -Ddest=LOCATION on the command line
  -Ddest=user     user lib dir  ${user.home}/.ant/lib
  -Ddest=system   ant lib dir   ${ant.home}/lib
  -Ddest=optional optional dir  $${basedir}/lib/optional  (for Ant developers)
    </fail>

    <condition property="dest.dir"
               value="${lib.dir}">
      <equals arg1="${dest}" arg2="system"/>
    </condition>
    <condition property="dest.dir"
               value="${optional.dir}">
      <equals arg1="${dest}" arg2="optional"/>
    </condition>
    <condition property="dest.dir"
               value="${userlib.dir}">
      <equals arg1="${dest}" arg2="user"/>
    </condition>
    <fail unless="dest.dir">Unknown destination : ${dest}</fail>
    <echo>Downloading to ${dest.dir}</echo>
    <property name="m2.dest.dir" value="${dest.dir}"/>
  </target>


  <target name="macros" depends="pick-dest,get-m2"
          xmlns:artifact="antlib:org.apache.maven.artifact.ant">
    <fail>
      Cannot execute multiple targets due to the bug in Maven Ant tasks
      <condition>
        <contains string="${ant.project.invoked-targets}" substring=","/>
      </condition>
    </fail>
    <macrodef name="f2">
      <attribute name="project"/>
      <attribute name="archive" default="@{project}"/>
      <attribute name="repository" default="${m2.repo}"/>
      <attribute name="id" default="central"/>
      <sequential>
        <fail>
          Unknown archive @{archive} -no property @{archive}.version defined in ${lib.dir}/libraries.properties.
          <condition>
            <not>
              <isset property="@{archive}.version"/>
            </not>
          </condition>
        </fail>
        <artifact:dependencies pathID="@{archive}.path" useScope="runtime">
          <dependency groupId="@{project}"
                      artifactId="@{archive}"
                      version="${@{archive}.version}">
            <!-- exclude dependencies of ant-antunit (they should be in optional scope) -->
            <exclusion groupId="org.apache.ant" artifactId="ant"/>
            <exclusion groupId="org.apache.ant" artifactId="ant-launcher"/>
          </dependency>
          <artifact:remoteRepository url="@{repository}" id="@{id}"/>
        </artifact:dependencies>
        <!-- now we are left with the problem of getting the files into our directory -->
        <copy todir="${dest.dir}">
          <path refid="@{archive}.path"/>
          <flattenmapper/>
        </copy>
      </sequential>
    </macrodef>
  </target>

  <target name="nonm2-macros" depends="pick-dest">
    <macrodef name="get-ftp-file">
      <attribute name="host"/>
      <attribute name="port" default="21"/>
      <attribute name="remotedir"/>
      <attribute name="filename"/>
      <attribute name="localdir" default="${dest.dir}"/>
      <attribute name="user" default="anonymous"/>
      <attribute name="pw" default="anonymous"/>
      <sequential>
        <ftp server="@{host}" port="@{port}" userid="@{user}" password="@{pw}" passive="true"
             remotedir="@{remotedir}" action="get" depends="true" preserveLastModified="true"
             skipFailedTransfers="true">
          <fileset dir="@{localdir}">
            <include name="@{filename}"/>
          </fileset>
        </ftp>
      </sequential>
    </macrodef>
  </target>


  <!-- any init stuff -->
  <target name="init" depends="macros"/>

  <target name="init-no-m2" depends="nonm2-macros"/>

  <target name="init-cache">
    <available property="temp.cache.already.exists" file="${temp.dir}" type="dir"/>
    <condition property="user.wants.temp.cache">
      <and>
        <isset property="keep.temp.dir"/>
        <not>
          <or>
            <equals arg1="${keep.temp.dir}" arg2="false" casesensitive="false"/>
            <equals arg1="${keep.temp.dir}" arg2="no" casesensitive="false"/>
            <equals arg1="${keep.temp.dir}" arg2="off" casesensitive="false"/>
          </or>
        </not>
      </and>
    </condition>
    <condition property="delete.temp.cache">
      <and>
        <not>
          <isset property="temp.cache.already.exists"/>
        </not>
        <not>
          <isset property="user.wants.temp.cache"/>
        </not>
      </and>
    </condition>
  </target>

  <target name="-setup-temp-cache" depends="init-cache" unless="temp.cache.already.exists"
          description="Set up temporary cache for downloaded files">
    <mkdir dir="${temp.dir}"/>
  </target>

  <target name="-cleanup-temp-cache" depends="init-cache" if="delete.temp.cache"
          description="Get rid of the temporary cache directory">
    <delete dir="${temp.dir}"/>
  </target>


  <target name="diag" depends="init">
    <echoproperties/>
  </target>

  <target name="antunit"
          description="load AntUnit library"
          depends="init">
    <f2 project="org.apache.ant" archive="ant-antunit"/>
  </target>

  <target name="ivy"
          description="load Ivy dependency manager"
          depends="init">
    <f2 project="org.apache.ivy" archive="ivy"/>
  </target>

  <target name="logging"
          description="load logging libraries (Commons and Log4j)"
          depends="init">
    <f2 project="log4j"/>
    <f2 project="commons-logging" archive="commons-logging-api"/>
  </target>

  <target name="junit"
          description="load JUnit libraries"
          depends="init">
    <f2 project="junit"/>
    <f2 project="org.hamcrest" archive="hamcrest-library"/>
  </target>

  <target name="junitlauncher"
    description="load junitlauncher libraries"
    depends="init">
    <f2 project="org.junit.platform" archive="junit-platform-launcher" />
  </target>

  <target name="junit-engine-jupiter"
          description="load junit jupiter engine libraries (necessary only for internal Ant project tests)"
          depends="init">
    <f2 project="org.junit.jupiter" archive="junit-jupiter-engine" />
  </target>

  <target name="junit-engine-vintage"
          description="load junit vintage engine libraries (necessary only for internal Ant project tests)"
          depends="init">
    <f2 project="org.junit.vintage" archive="junit-vintage-engine" />
  </target>

  <target name="xml"
          description="load full XML libraries (Xalan and xml-resolver)"
          depends="init">
    <f2 project="xalan"/>
    <f2 project="xml-resolver"/>
  </target>

  <target name="networking"
          description="load networking libraries (commons-net and JSch)"
          depends="init">
    <f2 project="commons-net"/>
    <f2 project="com.jcraft" archive="jsch"/>
  </target>

  <target name="regexp"
          description="load regexp libraries"
          depends="init">
    <f2 project="jakarta-regexp"/>
    <f2 project="oro"/>
  </target>

  <target name="antlr"
          description="load ANother Tool for Language Recognition (ANTLR)"
          depends="init">
    <f2 project="antlr"/>
  </target>

  <target name="bcel"
          description="load Byte Code Engineering Library (BCEL)"
          depends="init">
    <f2 project="org.apache.bcel" archive="bcel"/>
  </target>

  <target name="jdepend"
          description="load JDepend libraries"
          depends="init">
    <f2 project="jdepend"/>
  </target>

  <target name="bsf"
          description="load Bean Scripting Framework"
          depends="init">
    <f2 project="bsf"/>
  </target>

  <target name="jruby"
          description="load JRuby"
          depends="bsf">
    <f2 project="org.jruby" archive="jruby"/>
  </target>

  <target name="beanshell"
          description="load BeanShell support"
          depends="bsf">
    <f2 project="org.beanshell" archive="bsh"/>
  </target>

  <target name="jython"
          description="load Jython"
          depends="bsf">
    <f2 project="org.python" archive="jython"/>
  </target>

  <target name="rhino"
          description="load Rhino"
          depends="bsf">
    <f2 project="org.mozilla" archive="rhino"/>
  </target>

  <target name="graal.js"
          description="load Graal.js">
    <f2 project="org.graalvm.js" archive="js"/>
    <f2 project="org.graalvm.js" archive="js-scriptengine"/>
  </target>

  <target name="script"
          description="load script languages (except Jython)"
          depends="bsf,jruby,beanshell,rhino,graal.js"/>

  <target name="debugging"
    description="internal Ant debugging"
    depends="init">
    <f2 project="which"/>
  </target>

  <target name="jakartamail"
          description="load Jakarta Mail"
          depends="init">
    <!-- We only need this one dependency as per
      the project doc https://eclipse-ee4j.github.io/mail/
      This alone should bring in all necessary dependencies (including the API
       jars and the activation jars -->
    <f2 project="com.sun.mail" archive="jakarta.mail"/>
  </target>

  <target name="jspc"
          description="load Jasper"
          depends="init">
    <f2 project="tomcat" archive="jasper-compiler"/>
    <f2 project="tomcat" archive="jasper-runtime"/>
    <f2 project="javax.servlet" archive="servlet-api"/>
  </target>

  <target name="jai"
          description="load Java Advanced Imaging"
          depends="init">
    <f2 project="javax.media" archive="jai-core" id="jboss"
        repository="https://repository.jboss.org/nexus/content/groups/public/"/>
    <f2 project="com.sun.media" archive="jai-codec" id="jboss"
        repository="https://repository.jboss.org/nexus/content/groups/public/"/>
  </target>

  <target name="netrexx"
          description="load NetRexx compiler"
          depends="init-no-m2,-setup-temp-cache,-fetch-netrexx,-fetch-netrexx-no-commons-net">
    <checksum file="${temp.dir}/NetRexx.zip" algorithm="SHA-256" property="${netrexx.sha256}" verifyProperty="netrexx.hash.matches"/>
    <fail message="NetRexx.zip fetched via ftp has an unexpected SHA-256 checksum, the file may have been tampered with">
       <condition>
         <not>
           <istrue value="${netrexx.hash.matches}"/>
         </not>
      </condition>
    </fail>
    <copy todir="${dest.dir}" flatten="true">
      <zipfileset src="${temp.dir}/NetRexx.zip">
        <include name="NetRexx\lib\NetRexxC.jar"/>
        <include name="NetRexx\browse\license.txt"/>
      </zipfileset>
    </copy>
    <antcall target="-cleanup-temp-cache"/>
  </target>

  <available property="have.commons.net" classname="org.apache.commons.net.ftp.FTPClientConfig"/>

  <target name="-fetch-netrexx" if="have.commons.net">
    <get-ftp-file host="ftp.software.ibm.com" remotedir="/software/awdtools/netrexx"
            filename="NetRexx.zip" localdir="${temp.dir}"/>
  </target>

  <target name="-fetch-netrexx-no-commons-net" unless="have.commons.net">
    <get src="ftp://ftp.software.ibm.com/software/awdtools/netrexx/NetRexx.zip"
         dest="${temp.dir}/NetRexx.zip" skipexisting="true"/>
  </target>

  <target name="xz"
          description="load XZ for Java"
          depends="init">
    <f2 project="org.tukaani" archive="xz"/>
  </target>

  <target name="all"
    description="load all the libraries (except jython)"
    depends="antunit,ivy,logging,junit,junitlauncher,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,
      jakartamail,jspc,jai,xz,netrexx,junit-engine-vintage,junit-engine-jupiter"/>
</project>
