<?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 default="dist"
	     name="DdlUtils"
	     basedir=".">
  <!-- Allow values set at the commandline or in the environment to override the defaults -->
  <property environment="env"/>
  <!-- Load the build properties -->
  <property file="build.properties"/>

  <!-- The classpath used for compiling and generating the documentation -->
  <path id="compilation-classpath">
    <fileset dir="${lib.dir}">
        <include name="**/*.jar"/>
        <include name="**/*.zip"/>
    </fileset>
    <pathelement path="${build.java.dir}"/>
    <pathelement path="${build.test.dir}"/>
  </path>

  <target name="init"
          description="Initializes the build process">
      <tstamp/>
      <mkdir dir="${build.dir}"/>
      <mkdir dir="${build.java.dir}"/>
      <mkdir dir="${dist.dir}"/>
  </target>

  <target name="compile"
          description="Compiles the code"
          depends="init">
    <javac srcdir="${src.java.dir}"
           destdir="${build.java.dir}"
           deprecation="true"
           debug="true"
           source="1.2"
           target="1.2"
           optimize="false">
      <classpath refid="compilation-classpath"/>
    </javac>
    <copy todir="${build.java.dir}">
      <fileset dir="${src.java.dir}"
               excludes="**/*.java,**/*.html"/>
    </copy>
  </target>

  <target name="jar"
          description="Creates the jar"
          depends="compile">
    <copy todir="${build.java.dir}">
      <fileset dir="${src.java.dir}"
               excludes="**/*.java"/>
    </copy>
  	<mkdir dir="${build.java.dir}/META-INF"/>
    <copy todir="${build.java.dir}/META-INF"
  	      file="${basedir}/LICENSE.txt"/>
    <jar jarfile="${dist.dir}/${dist.filename.prefix}.jar"
         basedir="${build.java.dir}"
         excludes="**/package.html">
      <manifest>
        <attribute name="Built-By" value="${java.version} (${java.vendor})"/>
        <attribute name="Package" value="org.apache.ddlutils"/>
        <attribute name="Extension-Name" value="ddlutils"/>
        <attribute name="Specification-Version" value="${dist.version}"/>
        <attribute name="Specification-Vendor" value="${dist.vendor}"/>
        <attribute name="Specification-Title" value="${dist.name}"/>
        <attribute name="Implementation-Version" value="${dist.version}"/>
        <attribute name="Implementation-Vendor" value="${dist.vendor}"/>
      </manifest>
    </jar>
  </target>

  <target name="clean"
          description="Cleans up the generated directories">
    <delete failonerror="false"
            dir="${build.dir}"/>
    <delete failonerror="false"
            dir="${dist.dir}"/>
  </target>

  <!-- ================================================================== -->
  <!-- Build the documentation                                            -->
  <!-- ================================================================== -->
  <target name="doc"
          description="Builds the complete documentation">
    <fail message="Please set the FORREST_HOME environment variable to the 'src/core' subdirectory of your Forrest installation. If you don't have yet installed Forrest, you can get it from http://forrest.apache.org.">
      <condition>
        <not>
          <isset property="env.FORREST_HOME"/>
        </not>
      </condition>
    </fail>
    <available classname="org.apache.xml.resolver.Resolver" property="commons.resolver.available"/>
    <fail unless="commons.resolver.available" message="Please make the Apache XML Commons Resolver library available in the classpath, e.g. by copying the xml-commons-resolver jar file from the 'tools/ant/lib' subdirectory of your Forrest installation (${env.FORREST_HOME}/tools/ant/lib) into the lib subdirectory of your Ant installation (${env.ANT_HOME}/lib)."/>

    <delete dir="${build.doc.dir}"
    	    failonerror="false"/>
    <mkdir dir="${build.doc.dir}"/>

    <!-- Copy all forrest src stuff to a temporary directoy -->
    <copy todir="${build.doc.dir}">
      <fileset dir="${src.doc.dir}"/>
    </copy>

    <!-- Copy generated javadoc into the forrest structure in the temporary directory -->
    <antcall target="javadoc"/>
    <copy todir="${forrest.javadoc.destdir}">
      <fileset dir="${build.javadoc.dir}"/>
    </copy>
    <!-- Copy generated schema doc into the forrest structure in the temporary directory -->
    <antcall target="schemadoc"/>
    <copy todir="${forrest.schemadoc.destdir}">
      <fileset dir="${build.schemadoc.dir}"/>
    </copy>
    <!-- Copy generated ant doc into the forrest structure in the temporary directory -->
    <antcall target="antdoc"/>
    <copy todir="${forrest.antdoc.destdir}">
      <fileset dir="${build.antdoc.dir}"/>
    </copy>

    <ant antfile="${env.FORREST_HOME}/main/forrest.build.xml"
         dir="${build.doc.dir}"
         inheritall="false"
         target="site">
      <property name="forrest.home" value="${env.FORREST_HOME}"/>
    </ant>
    <!-- Finally we can copy the generated documentation to its designated place -->
    <mkdir dir="${doc.dir}"/>
    <copy todir="${doc.dir}">
      <fileset dir="${forrest.output.dir}"/>
    </copy>
  </target>

  <target name="-docbook">
    <mkdir dir="${build.doc.dir}"/>
    <copy todir="${build.doc.dir}">
      <fileset dir="../velocity-docbook/"/>
    </copy>
    <mkdir dir="${build.doc.dir}/src/docbook/ddlutils"/>
    <copy file="${src.doc.dir}/manual.xml" todir="${build.doc.dir}/src/docbook/ddlutils"/>
    <ant antfile="build-docbook.xml" target="all" inheritall="false" dir="${build.doc.dir}">
      <property name="docbook.dir" value="ddlutils"/>
      <property name="docbook.file" value="manual"/>
    </ant>
  </target>

  <!-- ================================================================== -->
  <!-- Build the API JavaDocs                                             -->
  <!-- ================================================================== -->
  <target name="javadoc"
          depends="init"
          description="Builds the API javadocs.">
    <mkdir dir="${build.javadoc.dir}"/>
    <javadoc sourcepath="${src.java.dir}"
             classpathref="compilation-classpath"
             destdir="${build.javadoc.dir}"
             doctitle="${javadoc.title}"
             windowtitle="${javadoc.title}"
             bottom="${javadoc.footer}"
             protected="true"
             author="false"
             version="true"
             packagenames="org.*">
      <tag name="ant.type" scope="types" description="Marks an ant type"/>
      <tag name="ant.task" scope="types" description="Marks an ant task"/>
      <tag name="ant.required" scope="methods" description="Marks a required task property"/>
      <tag name="ant.not-required" scope="methods" description="Marks an optional task property"/>
      <link href="http://java.sun.com/j2se/1.4.2/docs/api/"/> 
      <link href="http://jakarta.apache.org/commons/lang/apidocs/"/>
      <link href="http://jakarta.apache.org/commons/beanutils/apidocs/"/>
      <link href="http://jakarta.apache.org/commons/digester/apidocs/"/>
      <link href="http://jakarta.apache.org/commons/betwixt/apidocs/"/>
    </javadoc> 
  </target>

  <!-- ================================================================== -->
  <!-- Builds the documentation for the database XML schema format        -->
  <!-- ================================================================== -->
  <target name="schemadoc"
          description="Builds the documentation for the database XML schema format">
    <available classname="DTDDoc.DTDDocTask"
               classpathref="compilation-classpath"
               property="dtddoc.available"/>
    <fail unless="dtddoc.available" message="For building the XML Schema documentaion, you'll need DTDDoc which can be downloaded from http://sourceforge.net/projects/dtddoc. Please make the DTDDoc and dtdparser jars available in the classpath."/>
    <taskdef name="dtddoc"
             classname="DTDDoc.DTDDocTask"
             classpathref="compilation-classpath"/>

    <mkdir dir="${build.schemadoc.dir}"/>
    <dtddoc destdir="${build.schemadoc.dir}" sourcedir="${src.java.dir}" includes="*.dtd"/>
  </target>

  <!-- ================================================================== -->
  <!-- Builds the documentation for the Ant tasks                         -->
  <!-- ================================================================== -->
  <target name="antdoc"
          description="Builds the documentation for the Ant tasks">
    <available classname="com.neuroning.antdoclet.AntDoclet"
               classpathref="compilation-classpath"
               property="antdoc.available"/>
    <fail unless="antdoc.available" message="For building the Ant task documentaion, you'll need AntDoc which can be downloaded from http://antdoclet.neuroning.com/. Please make the AntDoc libraries available in the classpath."/>
    <mkdir dir="${build.antdoc.dir}"/>
    <javadoc sourcepath="${src.java.dir}"
             classpathref="compilation-classpath"
             destdir="${build.antdoc.dir}"
             doctitle="${antdoc.title}"
             protected="true"
             author="false"
             version="true"
             packagenames="org.apache.ddlutils.task">
      <doclet name="com.neuroning.antdoclet.AntDoclet"
              pathref="compilation-classpath">
        <param name="-templatesdir" value="${antdoc.templates.dir}"/>
        <param name="-templates" value="html/main.vm" />
      </doclet>
    </javadoc>
    <copy todir="${build.antdoc.dir}">
      <fileset dir="${src.antdoc.dir}" includes="*.css,*.js"/>
      <fileset dir="${antdoc.templates.dir}/html" includes="*.htm*"/>
    </copy>
  </target>

  <!-- ================================================================== -->
  <!-- Checks the docs for broken links                                   -->
  <!-- ================================================================== -->
  <target name="check-doc"
          description="Checks the doc for broken links using linklint">
    <echo>Running linklint on ${build.doc.dir}. The output can be found in linklint.log.</echo>
    <exec executable="linklint">
      <arg line="-quiet"/>
      <arg line="-net"/>
      <arg line="-error"/>
      <arg line="-warn"/>
      <arg line="-out"/>
      <arg line="linklint.log"/>
      <arg line="-root"/>
      <arg line="${forrest.output.dir}"/>
      <arg line="/@"/>
    </exec>
  </target>

  <!-- ================================================================== -->
  <!-- Build the doc archive                                              -->
  <!-- ================================================================== -->
  <target name="doc-archive" depends="doc"
          description="Builds the complete documentation archive.">
    <zip zipfile="${dist.dir}/${dist.doc.filename.prefix}.zip"
         basedir="."
         includes="${dist.doc.includes}"/>
  </target>

  <!-- ================================================================== -->
  <!-- Build the src archive                                              -->
  <!-- ================================================================== -->
  <target name="src-archive" depends="doc"
          description="Builds the source distribution archive.">
    <zip zipfile="${dist.dir}/${dist.src.filename.prefix}.zip"
         basedir="."
         includes="${dist.src.includes}"
  	     excludes="${dist.src.excludes}"/>
  </target>


  <!-- ================================================================== -->
  <!-- Build the bin archive                                              -->
  <!-- ================================================================== -->
  <target name="bin-archive" depends="jar,doc"
          description="Builds the binary distribution archive.">
    <zip zipfile="${dist.dir}/${dist.bin.filename.prefix}.zip"
         basedir="."
         includes="${dist.bin.includes}"
         excludes="${dist.bin.excludes}"/>
  </target>

  <!-- ================================================================== -->
  <!-- Creates the DdlUtils distribution                                  -->
  <!-- ================================================================== -->
  <target name="dist"
          description="Creates the distribution"
          depends="jar, doc-archive, src-archive, bin-archive"/>

  <target name="compile-tests"
          description="Compiles the unit tests"
          depends="compile">
    <mkdir dir="${build.test.dir}"/>
    <javac srcdir="${src.test.dir}"
           destdir="${build.test.dir}"
           deprecation="true"
    	   debug="true"
    	   source="1.2"
    	   target="1.2"
    	   optimize="false">
      <classpath refid="compilation-classpath"/>
    </javac>
  </target>

  <!-- ================================================================== -->
  <!-- Can be used to create the testdatabase if the platform supports it -->
  <!-- ================================================================== -->
  <target name="create-test-database"
          description="Can be used to create the testdatabase if the platform supports it">
    <property file="${jdbc.properties.file}"/> 

    <taskdef name="ddl2Database"
             classname="org.apache.ddlutils.task.DdlToDatabaseTask"
             classpathref="compilation-classpath"/>
    <ddl2Database>
      <database driverclassname="${datasource.driverClassName}"
                url="${datasource.url}"
                username="${datasource.username}"
                password="${datasource.password}"/> 
      <createdatabase failonerror="true"/>
    </ddl2Database>
  </target> 

  <!-- ================================================================== -->
  <!-- Runs the test cases                                                -->
  <!-- ================================================================== -->
  <target name="junit"
          description="Runs the test cases against no database or the one specified via -Djdbc.properties.file">
    <antcall target="-junit-internal"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs the test cases against AxionDB                                -->
  <!-- ================================================================== -->
  <target name="junit-axion"
          description="Runs the test cases against Axion">
    <property name="jdbc.properties.file" value="/jdbc.properties.axion"/>
    <antcall target="-junit-internal"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs the test cases against Derby                                  -->
  <!-- ================================================================== -->
  <target name="junit-derby"
          description="Runs the test cases against Derby">
    <property name="jdbc.properties.file" value="/jdbc.properties.derby"/>
    <antcall target="-junit-internal"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs the test cases against HsqlDb                                 -->
  <!-- ================================================================== -->
  <target name="junit-hsqldb"
          description="Runs the test cases against Hsqldb">
    <property name="jdbc.properties.file" value="/jdbc.properties.hsqldb"/>
    <antcall target="-junit-internal"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs the test cases against MySQL                                -->
  <!-- ================================================================== -->
  <target name="junit-mysql"
          description="Runs the test cases against MySql">
  	<property name="jdbc.properties.file" value="/jdbc.properties.mysql"/>
    <antcall target="-junit-internal"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs the test cases against PostgreSQL                             -->
  <!-- ================================================================== -->
  <target name="junit-postgresql"
          description="Runs the test cases against PostgreSQL">
    <property name="jdbc.properties.file" value="/jdbc.properties.postgresql"/>
    <antcall target="-junit-internal"/>
  </target>

  <target name="-junit-internal"
          depends="compile-tests">
    <junit dir="."
           printSummary="yes"
           fork="true"
           haltonerror="false">
      <sysproperty key="jdbc.properties.file" value="${jdbc.properties.file}"/> 
      <formatter type="xml"/>
      <formatter type="plain"/>
      <classpath refid="compilation-classpath"/>
      <batchtest todir="${build.test.dir}">
          <fileset dir="${src.test.dir}" includes="**/Test*.java">
    	    <exclude name="**/Test*Base.java"/>
  	        <exclude name="**/TestPlatform.java"/>
  	        <exclude name="**/TestSummaryCreatorTask.java"/>
          </fileset>
      </batchtest>
    </junit>
  </target>

  <!-- ================================================================== -->
  <!-- Creates the test report                                            -->
  <!-- ================================================================== -->
  <target name="junit-report"
          description="Creates a test report in html form">
    <junitreport todir="${build.test.dir}">
      <fileset dir="${build.test.dir}" casesensitive="false">
          <include name="test*.xml"/>
      </fileset>
      <report format="frames"
              todir="${build.test.dir}"/>
    </junitreport>
  </target>

  <!-- ================================================================== -->
  <!-- Creates the test summary                                           -->
  <!-- ================================================================== -->
  <target name="junit-summary"
  	      depends="compile-tests"
          description="Creates a test summary">
    <taskdef name="testSummary"
             classname="org.apache.ddlutils.TestSummaryCreatorTask"
             classpathref="compilation-classpath"/>
    <testSummary version="${dist.version}"
                 outputfile="${build.test.dir}/summary.xml">
      <fileset dir="${build.test.dir}"
      	       casesensitive="false">
          <include name="test*.xml"/>
      </fileset>
    </testSummary>
    <property name="test.summary.stylesheet" value="${test.summary.dir}/moinmoin.xsl"/>
    <style in="${build.test.dir}/summary.xml"
           style="${test.summary.stylesheet}"
           out="${build.test.dir}/summary.txt"/>
  </target>

  <!-- ================================================================== -->
  <!-- Runs Checkstyle over DdlUtils                                      -->
  <!-- ================================================================== -->
  <target name="checkstyle"
          description="Checks the sourcecode via Checkstyle">
    <fail message="Due to licensing issues, DdlUtils is not distributed with Checkstyle. If you want to use this task, then please put the checkstyle jar into the lib subdirectory.">
      <condition>
        <not>
          <available classpathref="compilation-classpath"
                     resource="checkstyletask.properties"/>
        </not>
      </condition>
    </fail>

    <taskdef resource="checkstyletask.properties"
             classpathref="compilation-classpath"/>

    <checkstyle config="${src.check.dir}/ddlutils-checks.xml"
                failOnViolation="false">
      <fileset dir="${src.java.dir}"
               includes="**/*.java"/>
      <fileset dir="${src.test.dir}"
               includes="**/*.java"/>

      <formatter type="plain" usefile="false"/>
      <!-- Location of cache-file (project specific) -->
      <property key="checkstyle.cache.file" file="${build.check.dir}/checkstyle/cachefile"/>
    </checkstyle>
  </target>
</project>
