<!--
   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.
-->
<project name="ivy" default="test-report" xmlns:ivy="antlib:org.apache.ivy.ant">

    <property environment="env"/>
    <property file="version.properties"/>
    <property file="build.properties"/>

    <property name="final.name" value="ivy.jar"/>
    <!-- Java 7 runs into TLS protocol issues when dealing with repositories
    that no longer support older protocols -->
    <condition property="java.sysprop.https.protocols" value="" else="TLSv1.2">
        <javaversion atleast="1.8"/>
    </condition>


    <target name="init-ivy-user-home" unless="ivy.use.local.home">
        <condition property="ivy.home" value="${env.IVY_HOME}">
            <isset property="env.IVY_HOME"/>
        </condition>
        <property name="ivy.home" value="${user.home}/.ivy2"/>
    </target>

    <target name="init-ivy-local-home" if="ivy.use.local.home">
        <property name="ivy.home" value="${basedir}/.ivy2"/>
    </target>

    <target name="init-ivy-home" depends="init-ivy-user-home,init-ivy-local-home"/>

    <target name="init-ivy" depends="compile-bootstrap,init-ivy-home">
        <taskdef resource="org/apache/ivy/ant/antlib.xml"
                 uri="antlib:org.apache.ivy.ant">
            <classpath>
                <pathelement location="${core.classes.build.dir}"/>
                <pathelement location="${bootstrap.classes.build.dir}"/>
            </classpath>
        </taskdef>

        <ivy:configure override="true"/>
    </target>

    <target name="install" depends="jar"
            description="build Ivy and install it in Ivy user home for builds using Ivy user home to load Ivy jar">
        <property name="ivy.jar.file" value="${ivy.home}/jars/ivy.jar"/>
        <copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${ivy.jar.file}"/>
    </target>

    <target name="install-ant" depends="jar"
        description="build Ivy and install it in Ant home lib">
        <condition property="ant.home" value="${env.ANT_HOME}">
            <isset property="env.ANT_HOME"/>
        </condition>
        <fail unless="ant.home" message="ANT_HOME environment variable or ant.home property required"/>
        <copy file="${artifacts.build.dir}/jars/${final.name}" tofile="${ant.home}/lib/ivy.jar"/>
    </target>

    <!-- =================================================================
         PREPARATION, CLEANING AND FLAGS TASKS
         ================================================================= -->
    <target name="init">
        <path id="lib.classpath">
            <fileset dir="${lib.dir}">
                <include name="*.jar"/>
            </fileset>
        </path>
        <path id="build.bootstrap.classpath">
            <pathelement location="${core.classes.build.dir}"/>
        </path>
        <path id="build.ant.classpath">
            <pathelement location="${core.classes.build.dir}"/>
            <path refid="lib.classpath"/>
        </path>
        <path id="build.optional.classpath">
            <path refid="build.ant.classpath"/>
        </path>
        <path id="run.classpath">
            <pathelement location="${core.classes.build.dir}"/>
            <pathelement location="${ant.classes.build.dir}"/>
            <pathelement location="${optional.classes.build.dir}"/>
            <path refid="lib.classpath"/>
        </path>
        <path id="test.classpath">
            <fileset dir="${lib.dir}" />
            <pathelement location="${core.classes.build.dir}"/>
            <pathelement location="${ant.classes.build.dir}"/>
            <pathelement location="${optional.classes.build.dir}"/>
            <pathelement path="${test.build.dir}"/>
        </path>
        <path id="javadoc.test.classpath">
            <path refid="run.classpath"/>
            <pathelement path="${test.build.dir}"/>
        </path>
    </target>

    <target name="prepare" depends="init">
        <mkdir dir="${classes.build.dir}"/>
        <mkdir dir="${core.classes.build.dir}"/>
        <mkdir dir="${bootstrap.classes.build.dir}"/>
        <mkdir dir="${ant.classes.build.dir}"/>
        <mkdir dir="${optional.classes.build.dir}"/>
        <mkdir dir="${all.classes.build.dir}"/>
        <mkdir dir="${test.build.dir}"/>
        <mkdir dir="${artifacts.build.dir}"/>
        <mkdir dir="${test.report.dir}"/>
    </target>

    <target name="clean" description="delete all generated files keeping sources only">
        <delete dir="${classes.build.dir}"/>
        <delete dir="${test.build.dir}"/>
        <delete dir="${artifacts.build.dir}"/>
        <delete dir="${ivy.report.dir}"/>
        <delete dir="${test.report.dir}"/>
        <delete dir="${javadoc.build.dir}"/>
        <delete dir="${doc.build.dir}"/>
        <delete dir="${build.dir}"/>
    </target>

    <target name="clean-lib">
        <delete dir="${lib.dir}"/>
    </target>

    <target name="clean-ivy-cache" depends="init-ivy-home">
        <delete dir="${ivy.home}/cache"/>
    </target>

    <target name="clean-ivy-home" depends="init-ivy-home">
        <delete dir="${ivy.home}"/>
    </target>

    <target name="clean-examples" description="clean all examples">
        <subant target="clean" failonerror="false">
            <fileset dir="${example.dir}" includes="**/build.xml"/>
        </subant>
    </target>

    <target name="clean-all" depends="clean-examples,clean,clean-lib"/>

    <target name="/noresolve" description="use to skip dependency resolution">
        <property name="no.resolve" value="true"/>
    </target>

    <target name="/notest" description="use to skip tests">
        <property name="skip.test" value="true"/>
    </target>

    <target name="/nojavadoc" description="use to skip javadoc">
        <property name="skip.javadoc" value="true"/>
    </target>

    <target name="/localivy" description="use a local ivy home">
        <property name="ivy.use.local.home" value="true"/>
    </target>

    <target name="/offline" depends="/noresolve" description="use to indicate no internet connection is available">
        <property name="offline" value="true"/>
    </target>

    <target name="default-version">
        <tstamp>
            <format property="pubdate" pattern="yyyyMMddHHmmss"/>
        </tstamp>
        <property name="version.prefix" value="${target.ivy.version}-local-"/>
        <property name="build.version" value="${version.prefix}${pubdate}"/>
        <property name="bundle.version" value="${target.ivy.bundle.version}.${target.ivy.bundle.version.qualifier}${pubdate}"/>
    </target>

    <!-- =================================================================
         DEPENDENCY MNGT, COMPILATION AND JAR
         ================================================================= -->
    <target name="resolve" depends="init-ivy" unless="no.resolve">
        <ivy:retrieve conf="default,test" pattern="${lib.dir}/[artifact].[ext]" sync="yes"/>
    </target>

    <target name="compile-core" depends="prepare">
        <javac srcdir="${src.dir}"
               destdir="${core.classes.build.dir}"
               sourcepath=""
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               includeantruntime="no">
            <excludesfile name="ant.patterns"/>
            <excludesfile name="optional.patterns"/>
        </javac>
        <copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <exclude name="**/*.java"/>
                <excludesfile name="ant.patterns"/>
                <excludesfile name="optional.patterns"/>
            </fileset>
        </copy>

        <!-- copy settings files for backward compatibility with ivyconf naming -->
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-local.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-local.xml"/>
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-default-chain.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-default-chain.xml"/>
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-main-chain.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-main-chain.xml"/>
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-public.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-public.xml"/>
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings-shared.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf-shared.xml"/>
        <copy file="${core.classes.build.dir}/org/apache/ivy/core/settings/ivysettings.xml"
            tofile="${core.classes.build.dir}/org/apache/ivy/core/settings/ivyconf.xml"/>
    </target>

    <!-- Build the Ant tasks with the current Ant runtime -->
    <target name="compile-bootstrap" depends="compile-core">
        <javac srcdir="${src.dir}"
               destdir="${bootstrap.classes.build.dir}"
               sourcepath=""
               classpathref="build.bootstrap.classpath"
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               includeantruntime="yes">
            <includesfile name="ant.patterns"/>
        </javac>
        <copy todir="${bootstrap.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="ant.patterns"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <!-- Build the Ant tasks with the minimal Ant runtime -->
    <target name="compile-ant" depends="compile-core,resolve">
        <javac srcdir="${src.dir}"
               destdir="${ant.classes.build.dir}"
               sourcepath=""
               classpathref="build.ant.classpath"
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               includeantruntime="no">
            <includesfile name="ant.patterns"/>
        </javac>
        <copy todir="${ant.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="ant.patterns"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target name="compile-optional" depends="compile-ant">
        <javac srcdir="${src.dir}"
               destdir="${optional.classes.build.dir}"
               sourcepath=""
               classpathref="build.optional.classpath"
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               includeantruntime="no">
            <includesfile name="optional.patterns"/>
            <includesfile name="ant.patterns"/>
        </javac>
        <copy todir="${core.classes.build.dir}" includeEmptyDirs="false">
            <fileset dir="${src.dir}">
                <includesfile name="optional.patterns"/>
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <!-- =================================================================
         Create the two jar files (Ivy core and Ivy core + Ant tasks)
         ================================================================= -->
    <target name="jar" depends="compile-optional,default-version" description="Create Jar files">
        <!-- identify compiled ivy version -->
        <echo message="version=${build.version}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true"/>
        <echo message="date=${pubdate}${line.separator}" file="${core.classes.build.dir}/module.properties" append="true"/>

        <mkdir dir="${artifacts.build.dir}/jars/"/>

        <!--
            there is a default Bundle-Version attribute in the source MANIFEST, used to ease
            development in eclipse.
            We remove this line to make sure we get the Bundle-Version as set in the jar task
        -->
        <copy file="${basedir}/META-INF/MANIFEST.MF" tofile="${artifacts.build.dir}/MANIFEST.MF">
            <filterchain>
                <replaceregex pattern="Bundle-Version:.*" replace="Bundle-Version: ${bundle.version}" byline="true"/>
            </filterchain>
        </copy>

        <copy todir="${all.classes.build.dir}">
            <fileset dir="${core.classes.build.dir}"/>
            <fileset dir="${ant.classes.build.dir}"/>
            <fileset dir="${optional.classes.build.dir}"/>
        </copy>

        <jar destfile="${artifacts.build.dir}/jars/${final.name}"
             manifest="${artifacts.build.dir}/MANIFEST.MF">
            <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
            <manifest>
                <attribute name="Specification-Title" value="Apache Ivy with Ant tasks"/>
                <attribute name="Specification-Version" value="${build.version}"/>
                <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
                <attribute name="Implementation-Title" value="org.apache.ivy"/>
                <attribute name="Implementation-Version" value="${build.version}"/>
                <attribute name="Implementation-Vendor" value="Apache Software Foundation"/>
                <attribute name="Implementation-Vendor-Id" value="org.apache"/>
                <attribute name="Extension-name" value="org.apache.ivy"/>
                <attribute name="Build-Version" value="${build.version}"/>
            </manifest>
            <fileset dir="${all.classes.build.dir}"/>
        </jar>
        <!-- copy main jar to ease its use as an OSGi bundle -->
        <copy file="${artifacts.build.dir}/jars/${final.name}"
              tofile="${artifacts.build.dir}/org.apache.ivy_${bundle.version}.jar"/>

        <!-- clean generated module properties file -->
        <delete file="${core.classes.build.dir}/module.properties"/>
    </target>

    <!-- =================================================================
         PUBLISH LOCAL
         ================================================================= -->
    <target name="fixcrlf">
        <property name="eol.native.includes"
                  value="**/*.html,**/*.json,**/*.java,**/*.xml,**/*.txt,**/*.MF,**/*.properties,**/*.patterns,**/*.pom,**/*.xsl,**/*.css"/>
        <property name="eol.native.excludes"
                  value="build/**,bin/**,lib/**"/>

        <fileset id="eol.native.fileset"
                 dir="${basedir}"
                 includes="${eol.native.includes}"
                 excludes="${eol.native.excludes}"/>

        <fixcrlf srcdir="${basedir}"
                 includes="${eol.native.includes}"
                 excludes="${eol.native.excludes}"/>
    </target>

    <target name="sources" depends="default-version" description="Create source archive files">
        <mkdir dir="${artifacts.build.dir}/sources/"/>
        <jar destfile="${artifacts.build.dir}/sources/${final.name}">
            <metainf dir="${basedir}" includes="LICENSE,NOTICE"/>
            <manifest>
                <attribute name="Specification-Title" value="Apache Ivy Sources"/>
                <attribute name="Specification-Version" value="${build.version}"/>
                <attribute name="Specification-Vendor" value="Apache Software Foundation"/>
            </manifest>
            <fileset dir="${src.dir}"/>
        </jar>
    </target>

    <target name="publish-local" depends="jar,sources" description="publishes Ivy to Ivy local repository">
        <ivy:publish resolver="local" pubrevision="${build.version}"
            artifactsPattern="${artifacts.build.dir}/[type]s/[artifact].[ext]"
            forcedeliver="true"/>
    </target>

    <!-- =================================================================
         TESTS
         ================================================================= -->
    <target name="build-test" depends="jar">
        <javac srcdir="${test.dir}"
               destdir="${test.build.dir}"
               classpathref="run.classpath"
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               encoding="UTF-8"
               includeantruntime="no"/>
        <copy todir="${test.build.dir}">
            <fileset dir="${test.dir}">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>

    <target name="build-custom-resolver-jar" depends="jar">
        <mkdir dir="${build.dir}/custom-classpath"/>
        <javac srcdir="${basedir}/test/custom-classpath"
               destdir="${build.dir}/custom-classpath"
               classpathref="run.classpath"
               source="${ivy.minimum.javaversion}"
               target="${ivy.minimum.javaversion}"
               debug="${debug.mode}"
               includeantruntime="no"/>
        <jar destfile="${test.dir}/org/apache/ivy/core/settings/custom-resolver.jar"
             basedir="${build.dir}/custom-classpath"/>
    </target>

    <target name="init-tests-offline" if="offline">
            <fileset id="test.fileset" dir="${test.dir}">
                <include name="**/${test.class.pattern}.java"/>
                <exclude name="**/Abstract*Test.java"/>
                <not><contains text="remote.test"/></not>
            </fileset>
    </target>

    <target name="init-tests-online" unless="offline">
            <fileset id="test.fileset" dir="${test.dir}">
                <include name="**/${test.class.pattern}.java"/>
                <exclude name="**/Abstract*Test.java"/>
            </fileset>
    </target>

    <target name="init-tests" depends="init-tests-offline,init-tests-online"/>

    <target name="prepare-osgi-tests" depends="resolve" unless="skip.test">
        <ant dir="${basedir}/test/test-repo" target="generate-bundles"/>
    </target>

    <target name="prepare-test-jar-repositories" unless="skip.test">
        <mkdir dir="${basedir}/test/jar-repos"/>
        <jar destfile="${basedir}/test/jar-repos/jarrepo1.jar" >
            <fileset dir="${basedir}/test/repositories/1"/>
        </jar>
        <jar destfile="${basedir}/test/jar-repos/jarrepo1_subdir.jar">
            <fileset dir="${basedir}/test/repositories" includes="1/**/*"/>
        </jar>
    </target>

    <target name="init-jacoco" depends="jar" unless="skip.test">
        <ivy:cachepath organisation="org.jacoco" module="org.jacoco.ant" revision="0.8.3"
                       inline="true" conf="default" pathid="jacoco.classpath" log="download-only"/>
        <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"
                 classpathref="jacoco.classpath"/>
    </target>

    <target name="test-internal" depends="build-test,init-tests,prepare-osgi-tests,prepare-test-jar-repositories,init-jacoco" unless="skip.test">
        <mkdir dir="${test.xml.dir}"/>

        <!-- multiple runs into the same logfile let the later report generation fail -->
        <delete file="${jacoco.log}"/>
        <jacoco:coverage xmlns:jacoco="antlib:org.jacoco.ant" destfile="${jacoco.log}"
                         exclclassloader="sun.reflect.DelegatingClassLoader:javassist.Loader">
            <junit
                haltonfailure="off"
                haltonerror="off"
                errorproperty="test.failed"
                failureproperty="test.failed"
                showoutput="no"
                printsummary="yes"
                includeantruntime="no"
                dir="${basedir}"
                tempdir="${build.dir}"
                fork="true">
                <classpath>
                    <path refid="test.classpath"/>
                </classpath>

                <!-- pass the proxy properties to the forked junit process to use correct proxy -->
                <syspropertyset>
                    <propertyref prefix="http"/>
                </syspropertyset>
                <!-- We select specific HTTPS protocols, based on the Java version we are running
                    on -->
                <sysproperty key="https.protocols" value="${java.sysprop.https.protocols}"/>

                <!-- Added this to test IVY-65 -->
                <jvmarg value="-Duser.region=TR"/>
                <jvmarg value="-Duser.language=tr"/>

                <formatter type="xml"/>
                <batchtest todir="${test.xml.dir}">
                    <fileset refid="test.fileset"/>
                </batchtest>
            </junit>
        </jacoco:coverage>
    </target>

    <target name="test" depends="test-internal" description="Run the test">
        <fail if="test.failed"
              message="At least one test has failed. See logs (in ${test.xml.dir}) for details (use the target test-report to run the test with a report)"/>
    </target>

    <!-- =================================================================
         REPORTS AND DOCUMENTATION
         ================================================================= -->
    <target name="test-report" depends="test-internal" unless="skip.test"
            description="run tests with instrumentation and generate coverage report">
        <junitreport todir="${test.xml.dir}">
            <fileset dir="${test.xml.dir}">
                <include name="TEST-*.xml"/>
            </fileset>
            <report format="frames" todir="${test.report.dir}"/>
        </junitreport>

        <mkdir dir="${coverage.report.dir}"/>
        <jacoco:report xmlns:jacoco="antlib:org.jacoco.ant">
            <executiondata>
                <file file="${jacoco.log}"/>
            </executiondata>

            <structure name="Ivy">
                <classfiles>
                    <fileset dir="${classes.build.dir}"/>
                </classfiles>
                <sourcefiles encoding="UTF-8">
                    <fileset dir="${src.dir}"/>
                </sourcefiles>
            </structure>

            <html destdir="${coverage.report.dir}"/>
        </jacoco:report>

        <fail if="test.failed"
              message="At least one test has failed. See logs (in ${test.xml.dir}) or report (in ${test.report.dir})"/>
    </target>

    <target name="coverage-report" depends="test-report"/>

    <target name="ivy-report" depends="resolve">
        <mkdir dir="${ivy.report.dir}"/>
        <ivy:report todir="${ivy.report.dir}"/>
    </target>

    <target name="init-japicmp" depends="jar" unless="skip.test">
        <ivy:cachepath organisation="com.github.siom79.japicmp" module="japicmp-ant-task" revision="0.13.0"
                       inline="true" conf="default" pathid="japicmp.classpath" log="download-only"/>
        <taskdef uri="antlib:japicmp.ant" resource="japicmp/ant/antlib.xml"
                 classpathref="japicmp.classpath"/>
        <ivy:cachepath organisation="org.apache.ivy" module="ivy" revision="${ivy.api.reference}"
                       inline="true" conf="optional" pathid="ivyrefdeps.classpath" log="download-only"/>
        <ivy:cachefileset organisation="org.apache.ivy" module="ivy" revision="${ivy.api.reference}"
                          inline="true" conf="master" setid="ivyref.fileset" log="download-only"/>
        <pathconvert property="ivyref.name" refid="ivyref.fileset"/>
    </target>

    <target name="/japicmp-all" description="report status of all public APIs">
        <property name="japicmp.all" value="true"/>
    </target>

    <target name="/japicmp-changed" description="report all changed public APIs">
        <property name="japicmp.changed" value="true"/>
    </target>

    <target name="japicmp" depends="init-japicmp" unless="skip.test">
        <property name="japicmp.all" value="false"/>
        <property name="japicmp.changed" value="false"/>
        <condition property="japicmp.binary" value="true" else="false">
            <not>
                <or>
                    <istrue value="${japicmp.all}"/>
                    <istrue value="${japicmp.changed}"/>
                </or>
            </not>
        </condition>
        <japicmp:japicmp xmlns:japicmp="antlib:japicmp.ant"
                         oldjar="${ivyref.name}"
                         newjar="${artifacts.build.dir}/jars/${final.name}"
                         oldclasspathref="ivyrefdeps.classpath"
                         newclasspathref="lib.classpath"
                         onlybinaryincompatible="${japicmp.binary}"
                         onlymodified="${japicmp.changed}"
                         htmloutputfile="${reports.dir}/japicmp.html"/>
    </target>

    <target name="javadoc" depends="init" unless="skip.javadoc">
        <tstamp>
            <format pattern="2007-yyyy" property="years"/>
        </tstamp>
        <property name="copyright" value="Copyright &amp;copy;${years} The Apache Software Foundation, Licensed under &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0.txt&quot;&gt;Apache License, Version 2.0&lt;/a&gt;."/>
        <property name="title" value="Apache Ivy&amp;trade; dependency manager ${target.ivy.version} API"/>
        <javadoc destdir="${javadoc.build.dir}"
                 useexternalfile="true"
                 windowtitle="Apache Ivy&amp;trade;"
                 doctitle="${title}"
                 bottom="${copyright}"
                 classpathref="lib.classpath">
            <fileset dir="${src.dir}" includes="**/*.java"/>
            <arg value="-tag"/>
            <arg value="pre:a:Precondition:"/>
        </javadoc>
    </target>

    <target name="javadoc-test" depends="init" unless="skip.javadoc">
        <tstamp>
            <format pattern="2007-yyyy" property="years"/>
        </tstamp>
        <property name="copyright" value="Copyright &amp;copy;${years} The Apache Software Foundation, Licensed under &lt;a href=&quot;https://www.apache.org/licenses/LICENSE-2.0.txt&quot;&gt;Apache License, Version 2.0&lt;/a&gt;."/>
        <property name="title" value="Apache Ivy&amp;trade; dependency manager ${target.ivy.version} API"/>
        <javadoc destdir="${test.javadoc.build.dir}"
                 useexternalfile="true"
                 windowtitle="Apache Ivy&amp;trade;"
                 doctitle="${title}"
                 bottom="${copyright}"
                 classpathref="javadoc.test.classpath">
            <fileset dir="${test.dir}" includes="**/*.java"/>
        </javadoc>
    </target>

    <target name="init-checkstyle" depends="jar">
        <ivy:cachepath organisation="com.puppycrawl.tools" module="checkstyle" revision="6.19"
                       inline="true" conf="default" pathid="checkstyle.classpath" log="download-only"/>
        <taskdef uri="antlib:com.puppycrawl.tools.checkstyle.ant"
                 resource="com/puppycrawl/tools/checkstyle/ant/antlib.xml" classpathref="checkstyle.classpath"/>
    </target>

    <!-- Checks Ivy codebase according to ${checkstyle.src.dir}/checkstyle-config  -->
    <target name="checkstyle-internal" depends="init-checkstyle">
        <mkdir dir="${checkstyle.report.dir}"/>
        <cs:checkstyle xmlns:cs="antlib:com.puppycrawl.tools.checkstyle.ant"
                       config="${checkstyle.src.dir}/checkstyle-config"
                       failOnViolation="false" failureProperty="checkstyle.failed">
            <classpath>
                <path refid="run.classpath"/>
            </classpath>
            <formatter type="xml" toFile="${checkstyle.report.dir}/checkstyle.xml"/>
            <fileset dir="${src.dir}">
                <include name="**/*.java"/>
            </fileset>
            <fileset dir="${example.dir}">
                <include name="**/*.java"/>
            </fileset>
        </cs:checkstyle>
    </target>

    <target name="checkstyle" depends="checkstyle-internal"
            description="checks Ivy codebase according to ${checkstyle.src.dir}/checkstyle-config">
        <fail if="checkstyle.failed" unless="ignore.checkstyle"
              message="Checkstyle has errors. See report in ${checkstyle.report.dir}"/>
    </target>

    <target name="checkstyle-report" depends="checkstyle-internal">
        <property name="checkstyle.basedir" location="${src.dir}"/>
        <xslt in="${checkstyle.report.dir}/checkstyle.xml"
              style="${checkstyle.src.dir}/checkstyle-frames.xsl"
              out="${checkstyle.report.dir}/output.txt">
            <param name="basedir" expression="${checkstyle.basedir}"/>
            <param name="output.dir" expression="${checkstyle.report.dir}"/>
        </xslt>
    </target>

    <target name="init-findbugs" unless="findbugs.home">
        <!-- Findbugs: Getting Findbugs requires unlimited strength crypto policy -->
        <property name="findbugs.version"
                  value="3.0.1"
                  description="Version of Findbugs to use"/>
        <property name="findbugs.download.name"
                  value="findbugs-${findbugs.version}"
                  description="Name of the download file without suffix. Also the internal root directory of the ZIP."/>
        <property name="findbugs.download.file"
                  value="${findbugs.download.name}.zip"
                  description="The filename of the ZIP."/>
        <property name="findbugs.download.url"
                  value="https://downloads.sourceforge.net/project/findbugs/findbugs/${findbugs.version}/findbugs-${findbugs.version}.zip"
                  description="The download adress at a mirror of Sourceforge."/>
        <property name="findbugs.download.to"
                  value="${build.dir}/.downloads"
                  description="Where to store the download and 'install' Findbugs."/>
        <available property="findbugs.home"
                   value="${findbugs.download.to}/${findbugs.download.name}"
                   file="${findbugs.download.to}/${findbugs.download.name}/lib/findbugs.jar"
                   description="Check if Findbugs is already installed."/>

        <!-- Findbugs: Running Findbugs -->
        <property name="findbugs.reportdir"
                  location="${reports.dir}/findbugs"
                  description="Where to store Findbugs results"/>
        <property name="findbugs.raw"
                  value="raw.xml"
                  description="Findbugs output xml file"/>
        <property name="findbugs.xsl"
                  value="fancy.xsl"
                  description="Which XSL to use for generating output: default, fancy, plain, summary"/>
        <property name="findbugs.jvmargs"
                  value="-Xms128m -Xmx512m"
                  description="JVMArgs for invoking Findbugs"/>

        <mkdir dir="${findbugs.download.to}"/>
        <get src="${findbugs.download.url}" dest="${findbugs.download.to}/${findbugs.download.file}"
             usetimestamp="true" skipexisting="true"/>
        <unzip src="${findbugs.download.to}/${findbugs.download.file}" dest="${findbugs.download.to}"/>
        <property name="findbugs.home" location="${findbugs.download.to}/${findbugs.download.name}"/>
    </target>

    <target name="findbugs" description="checks Ivy codebase with Findbugs" depends="init-findbugs,compile-core" xmlns:fb="http://findbugs.sourceforge.net/">
        <!-- Load the Findbugs AntTasks -->
        <path id="findbugs.real.classpath">
            <fileset dir="${findbugs.home}/lib" includes="*.jar"/>
        </path>
        <taskdef uri="http://findbugs.sourceforge.net/" resource="edu/umd/cs/findbugs/anttask/tasks.properties" classpathref="findbugs.real.classpath"/>

        <!-- Start Findbugs -->
        <mkdir dir="${findbugs.reportdir}"/>
        <fb:findbugs home="${findbugs.home}"
                     classpathref="findbugs.real.classpath"
                     output="xml:withMessages"
                     outputFile="${findbugs.reportdir}/${findbugs.raw}"
                     jvmargs="${findbugs.jvmargs}"
                     projectName="${ant.project.name} ${target.ivy.version}">
            <class location="${core.classes.build.dir}"/>
            <sourcePath path="${src.dir}"/>
        </fb:findbugs>

        <!-- Generate (human) readable output -->
        <xslt basedir="${findbugs.reportdir}" includes="${findbugs.raw}" destdir="${findbugs.reportdir}">
            <style>
                <javaresource name="${findbugs.xsl}" classpathref="findbugs.real.classpath"/>
            </style>
        </xslt>
    </target>

    <target name="docs" depends="test-report,checkstyle-report,findbugs,japicmp,ivy-report,javadoc"/>

    <!-- =================================================================
         IDE SPECIFIC
         ================================================================= -->
    <available file="${basedir}/.classpath" property="eclipse.classpath.exists"/>
    <target name="check-eclipse-classpath-overwrite" if="eclipse.classpath.exists">
        <input message=".classpath file already exists.${line.separator}Are you sure you want to overwrite it and loose your original file?"
               validargs="Y,N,y,n" addproperty="eclipse.classpath.confirm"/>
        <condition property="eclipse.classpath.abort">
            <equals arg1="${eclipse.classpath.confirm}" arg2="N" casesensitive="false"/>
        </condition>
    </target>

    <target name="eclipse-default" depends="resolve,check-eclipse-classpath-overwrite"
            unless="eclipse.classpath.abort"
            description="creates a default .classpath for Eclipse using jars resolved by this Ant build">
        <copy file="${basedir}/.classpath.default" tofile="${basedir}/.classpath" overwrite="true"/>
    </target>

    <target name="eclipse-ivyde" depends="check-eclipse-classpath-overwrite"
            unless="eclipse.classpath.abort"
            description="creates a .classpath for Eclipse using Apache IvyDE plugin">
        <copy file="${basedir}/.classpath.ivyde" tofile="${basedir}/.classpath" overwrite="true"/>
    </target>
</project>
