<?xml version="1.0" encoding="UTF-8"?>
<!--
   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.
-->
<project name="click-cayenne" default="help" basedir=".">

   <!-- Project Properties -->
   <property file="build.properties"/>
   <property name="name" value="click-cayenne"/>
   <property name="jar.ashwood" value="ashwood-${ashwood.version}.jar"/>
   <property name="jar.cayenne" value="cayenne-nodeps-${cayenne.version}.jar"/>
   <property name="jar.click" value="click-${click.version}-incubating.jar"/>
   <property name="jar.click-extras" value="click-extras-${click.version}-incubating.jar"/>
   <property name="jar.hsqldb" value="hsqldb-${hsqldb.version}.jar"/>
   <property name="jar.log4j" value="log4j-${log4j.version}.jar"/>
   <property name="jar.oro" value="oro-${oro.version}.jar"/>
   <property name="jar.servlet" value="servlet-api-${servlet.api.version}.jar"/>
   <property name="repository" value="http://repo1.maven.org"/>

   <property name="dir.webapp" value="webapp"/>
   <property name="dir.weblib" value="${dir.webapp}/WEB-INF/lib"/>

   <path id="classpath">
      <pathelement location="lib/${jar.servlet}"/>
      <pathelement location="${dir.weblib}/${jar.cayenne}"/>
      <pathelement location="${dir.weblib}/${jar.click}"/>
      <pathelement location="${dir.weblib}/${jar.click-extras}"/>
      <pathelement location="${dir.weblib}/${jar.log4j}"/>
   </path>

   <!-- Macro Definitions -->
   <macrodef name="downloadMacro">
      <attribute name="name"/>
      <attribute name="path"/>
      <sequential>
         <get src="${repository}/maven2/@{path}/@{name}"
            dest="${dir.weblib}/@{name}"
            verbose="true"
            usetimestamp="true"/>
      </sequential>
   </macrodef>

   <!-- Tasks -->

   <target name="build" description="build web application WAR file" depends="compile">
      <delete quiet="true" failonerror="false">
         <fileset dir="${dir.webapp}/javadoc" includes="**/*"/>
      </delete>
      <javadoc sourcepath="webapp/WEF-INF/src"
               destdir="${dir.webapp}/javadoc"
               author="true"
               version="true"
               verbose="false"
               windowtitle="Click Examples"
               doctitle="Click Cayenne Example API">
         <classpath refid="classpath"/>
         <packageset dir="${dir.webapp}/WEB-INF/src"/>
         <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/>
         <link href="http://click.sourceforge.net/docs/click-api/"/>
         <link href="http://click.sourceforge.net/docs/extras-api/"/>
         <link href="http://www.objectstyle.org/cayenne/api/cayenne/"/>
      </javadoc>
      <delete dir="deploy" quiet="false"/>
      <mkdir dir="deploy"/>
      <war destfile="deploy/${name}.war"
           webxml="${dir.webapp}/WEB-INF/web.xml">
         <manifest>
           <attribute name="Built-By" value="${user.name}"/>
         </manifest>
         <lib file="${jar.ashwood}"/>
         <lib file="${jar.cayenne}"/>
         <lib file="${jar.click}"/>
         <lib file="${jar.click-extras}"/>
         <lib file="${jar.log4j}"/>
         <lib file="${jar.oro}"/>
         <fileset dir="${dir.webapp}">
            <exclude name="**/web.xml"/>
         </fileset>
      </war>
   </target>

   <target name="compile" description="compile Java source">
      <delete dir="${dir.webapp}/WEB-INF/classes" quiet="false"/>
      <mkdir dir="${dir.webapp}/WEB-INF/classes"/>
      <javac srcdir="${dir.webapp}/WEB-INF/src"
             destdir="${dir.webapp}/WEB-INF/classes"
             debug="true">
         <classpath refid="classpath"/>
      </javac>
   </target>

   <target name="deploy" description="copy WAR files to application server">
      <copy file="deploy/click-cayenne.war" todir="${dir.appserver}" overwrite="true"/>
   </target>

   <target name="get-deps" description="download JAR dependencies">
      <mkdir dir="${dir.weblib}"/>
      <downloadMacro name="${jar.ashwood}" path="org/objectstyle/ashwood/ashwood/${ashwood.version}"/>
      <downloadMacro name="${jar.cayenne}" path="org/apache/cayenne/cayenne-nodeps/${cayenne.version}"/>
      <downloadMacro name="${jar.log4j}" path="log4j/log4j/${log4j.version}"/>
      <downloadMacro name="${jar.hsqldb}" path="hsqldb/hsqldb/${hsqldb.version}"/>
      <downloadMacro name="${jar.oro}" path="oro/oro/${oro.version}"/>
      <get src="${repository}/maven2/javax/servlet/servlet-api/${servlet.api.version}/${jar.servlet}" verbose="true"
           dest="lib/${jar.servlet}"
           usetimestamp="true"/>

   </target>

   <target name="get-deps-proxy" description="download JAR dependencies via proxy">
      <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}"/>
      <antcall target="get-deps"/>
   </target>

   <target name="help" description="display the Help message">
      <echo message="Click Cayenne demo web application"/>
      <echo message="=================================="/>
      <echo/>
      <echo message="Main targets:"/>
      <echo/>
      <echo message="build                 build web application WAR file"/>
      <echo message="compile               compile Java code"/>
      <echo message="deploy                copy WAR file to application server"/>
      <echo message="get-deps              download JAR dependencies"/>
      <echo message="get-deps-proxy        download JAR dependencies via proxy"/>
      <echo message="help                  display the Help message"/>
      <echo/>
      <echo/>
      <echo message="Please ensure you have configured build.properties"/>
      <echo/>
   </target>
</project>
