<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
 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.    
-->

<!--
  This file contains all the jar download targets to build Velocity.
  Its tasks are referenced from the build.xml file and should not be
  called directly.

  This is here so that the main build file is not cluttered any further.
-->

<project name="VelocityTools" basedir=".">

  <!-- Download Control Tasks -->

  <target name="full-download"
          depends="base-download,compile-download,docs-download,examples-download,whitebox-test-download,blackbox-test-download"
          description="Download all dependencies needed for a full VelocityTools build from the central repository"/>

  <target name="base-download"
          description="Download dependencies needed to do anything with VelocityTools from the central repository">
    <antcall target="commons-collections-download" />
    <antcall target="velocity-download" />
  </target>

  <target name="compile-download"
          depends="base-download"
          description="Download dependencies needed to compile VelocityTools from the central repository">
    <antcall target="commons-beanutils-download" />
    <antcall target="commons-digester-download" />
    <antcall target="commons-lang-download" />
    <antcall target="commons-logging-download" />
    <antcall target="commons-validator-download" />
    <antcall target="oro-download" />
    <antcall target="servletapi-download" />
    <antcall target="sslext-download" />
    <antcall target="struts-core-download" />
    <antcall target="struts-tiles-download" />
    <antcall target="struts-taglib-download" />
  </target>

  <target name="docs-download"
          depends="base-download"
          description="Download dependencies needed to render VelocityTools documentation from the central repository">
    <antcall target="dom4j-download" />
    <antcall target="velocity-dvsl-download" />
  </target>

  <target name="examples-download"
          description="Download dependencies needed to use the VelocityTools example applications from the central repository">
    <antcall target="commons-chain-download" />
  </target>

  <!-- whitebox tests downloads -->
  <target name="whitebox-test-download" depends="base-download">
    <antcall target="junit-download"/>
  </target>

  <!-- blackbox tests downloads -->
  <target name="blackbox-test-download" depends="whitebox-test-download">
    <antcall target="httpunit-download"/>
    <antcall target="jetty-download"/>
    <antcall target="jetty-start-download"/>
    <antcall target="jetty-util-download"/>
    <antcall target="js-download"/>
    <antcall target="nekohtml-download"/>
    <antcall target="servlet-api-download"/>
    <antcall target="xerces-download"/>
    <antcall target="xmlparserapis-download"/>
  </target>

  <!--  Basic Download Tasks -->

  <target name="http-download">
    <condition property="skip-download">
      <or>
        <istrue value="${skip.jar.loading}"/>
        <and>
          <isfalse value="${force.jar.loading}"/>
          <available file="${lib.dir}/${download.name}-${download.version}.jar"/>
        </and>
      </or>
    </condition>
    <antcall target="do-http-download"/>
  </target>

  <target name="do-http-download" unless="skip-download">
    <!-- set download.path if not set previously -->
    <property name="download.path" value="${download.name}/${download.name}/${download.version}" />
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
    <get src="${repo.url}/${download.path}/${download.name}-${download.version}.jar"
         dest="${lib.dir}/${download.name}-${download.version}.jar"
         usetimestamp="false"
         verbose="false"
         ignoreerrors="false" />
  </target>

  <target name="http-test-download">
    <condition property="skip-download">
      <or>
        <istrue value="${skip.jar.loading}"/>
        <and>
          <isfalse value="${force.jar.loading}"/>
          <available file="${test.lib.dir}/${download.name}-${download.version}.jar"/>
        </and>
      </or>
    </condition>
    <antcall target="do-http-test-download"/>
  </target>

  <target name="do-http-test-download" unless="skip-download">
    <!-- set download.path if not set previously -->
    <property name="download.path" value="${download.name}/${download.name}/${download.version}" />
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
    <get src="${repo.url}/${download.path}/${download.name}-${download.version}.jar"
         dest="${test.lib.dir}/${download.name}-${download.version}.jar"
         usetimestamp="false"
         verbose="false"
         ignoreerrors="false" />
  </target>


  <!--  Dependency Download Tasks -->

  <target name="antlr-download">
    <property name="download.name" value="antlr" />
    <property name="download.version" value="${jar.antlr.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-beanutils-download">
    <property name="download.name" value="commons-beanutils" />
    <property name="download.version" value="${jar.commons-beanutils.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-chain-download">
    <property name="download.name" value="commons-chain" />
    <property name="download.version" value="${jar.commons-chain.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-collections-download">
    <property name="download.name" value="commons-collections" />
    <property name="download.version" value="${jar.commons-collections.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-digester-download">
    <property name="download.name" value="commons-digester" />
    <property name="download.version" value="${jar.commons-digester.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-lang-download">
    <property name="download.name" value="commons-lang" />
    <property name="download.version" value="${jar.commons-lang.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-logging-download">
    <property name="download.name" value="commons-logging" />
    <property name="download.version" value="${jar.commons-logging.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="commons-validator-download">
    <property name="download.name" value="commons-validator" />
    <property name="download.version" value="${jar.commons-validator.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="dom4j-download">
    <property name="download.name" value="dom4j" />
    <property name="download.version" value="${jar.dom4j.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="oro-download">
    <property name="download.name" value="oro" />
    <property name="download.version" value="${jar.oro.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="servletapi-download">
    <property name="download.name" value="servletapi" />
    <property name="download.version" value="${jar.servletapi.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="sslext-download">
    <property name="download.name" value="sslext" />
    <property name="download.version" value="${jar.sslext.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="struts-download">
    <property name="download.name" value="struts" />
    <property name="download.version" value="${jar.struts.version}" />
    <property name="download.path" value="org/apache/struts/struts-parent/${download.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="struts-core-download">
    <property name="download.name" value="struts-core" />
    <property name="download.version" value="${jar.struts-core.version}" />
    <property name="download.path" value="org/apache/struts/${download.name}/${download.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="struts-taglib-download">
    <property name="download.name" value="struts-taglib" />
    <property name="download.version" value="${jar.struts-taglib.version}" />
    <property name="download.path" value="org/apache/struts/${download.name}/${download.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="struts-tiles-download">
    <property name="download.name" value="struts-tiles" />
    <property name="download.version" value="${jar.struts-tiles.version}" />
    <property name="download.path" value="org/apache/struts/${download.name}/${download.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="velocity-download">
    <property name="download.name" value="velocity" />
    <property name="download.version" value="${jar.velocity.version}" />
    <antcall target="http-download"/>
  </target>

  <target name="velocity-dvsl-download">
    <property name="download.name" value="dvsl" />
    <property name="download.version" value="${jar.velocity-dvsl.version}" />
    <property name="download.path" value="org/apache/dvsl/${download.name}/${download.version}" />
    <antcall target="http-download"/>
  </target>

  <!-- Test Dependency Download Tasks -->

  <target name="httpunit-download">
    <property name="download.name" value="httpunit" />
    <property name="download.version" value="${jar.httpunit.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="jetty-download">
    <property name="download.name" value="jetty" />
    <property name="download.version" value="${jar.jetty.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="jetty-start-download">
    <property name="download.name" value="start" />
    <property name="download.version" value="${jar.jetty.version}" />
    <property name="download.path" value="jetty/${download.name}/${download.version}"/>
    <antcall target="http-test-download"/>
  </target>

  <target name="jetty-util-download">
    <property name="download.name" value="jetty-util" />
    <property name="download.version" value="${jar.jetty.version}" />
    <property name="download.path" value="jetty/${download.name}/${download.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="js-download">
    <property name="download.name" value="js" />
    <property name="download.version" value="${jar.js.version}" />
    <property name="download.path" value="rhino/${download.name}/${download.version}" />
    <antcall target="http-test-download"/>
    <!-- httpunit wants a file named 'js.jar' -->
    <copy file="${test.lib.dir}/${download.name}-${download.version}.jar" tofile="${test.lib.dir}/js.jar"/>
  </target>

  <target name="junit-download">
    <property name="download.name" value="junit" />
    <property name="download.version" value="${jar.junit.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="nekohtml-download">
    <property name="download.name" value="nekohtml" />
    <property name="download.version" value="${jar.nekohtml.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="servlet-api-download">
    <property name="download.name" value="servlet-api" />
    <property name="download.version" value="2.5-${jar.jetty.version}" />
    <property name="download.path" value="jetty/${download.name}/${download.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="xerces-download">
    <property name="download.name" value="xercesImpl" />
    <property name="download.version" value="${jar.xercesimpl.version}" />
    <property name="download.path" value="xerces/${download.name}/${download.version}" />
    <antcall target="http-test-download"/>
  </target>

  <target name="xmlparserapis-download">
    <property name="download.name" value="xmlParserAPIs" />
    <property name="download.version" value="${jar.xmlparserapis.version}" />
    <property name="download.path" value="xerces/${download.name}/${download.version}" />
    <antcall target="http-test-download"/>
  </target>

</project>

