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

       http://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}"/>
      <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:remoteRepository url="@{repository}" id="central"/>
        <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: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="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"/>
    <f2 project="org.beanshell" archive="bsh-core"/>
  </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="script"
          description="load script languages (except Jython)"
          depends="bsf,jruby,beanshell,rhino"/>

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

  <target name="javamail"
          description="load Java Mail"
          depends="init">
    <f2 project="javax.mail" archive="javax.mail-api"/>
  </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"
        repository="https://repository.jboss.org/nexus/content/groups/public/"/>
    <f2 project="com.sun.media" archive="jai-codec"
        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">
    <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,xml,networking,regexp,antlr,bcel,jdepend,bsf,debugging,script,javamail,jspc,jai,xz,netrexx"/>
</project>
