<?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.
-->
<project default="checkstyle" name="CheckAnt" xmlns:ivy="antlib:org.apache.ivy.ant">

  <description>
    Check Ants codebase against certain code styleguide rules using
    checkstyle and simian.

    Checkstyle uses an abstract syntax tree (AST) for doing checks
    against java sources. It is available at http://checkstyle.sourceforge.net/
    under GPL 2.1 license.

    "Simian (Similarity Analyser) identifies duplication in Java, C#, C,
    CPP, COBOL, JSP, HTML source code and even plain text files."
    It is available at http://www.redhillconsulting.com.au/products/simian/
    and is for free use in open source projects.

    See external task page and homepages for more information.
  </description>

  <import file="build.xml"/>
  <property name="config.dir" location="${etc.dir}/checkstyle"/>

  <property name="checkstyle.reportdir" location="${build.dir}/reports/checkstyle"/>
  <property name="checkstyle.raw" location="${checkstyle.reportdir}/raw.xml"/>
  <property name="stylesheet.html" location="${config.dir}/checkstyle-frames.xsl"/>
  <property name="stylesheet.text" location="${config.dir}/checkstyle-text.xsl"/>
  <property name="stylesheet.xdoc" location="${config.dir}/checkstyle-xdoc.xsl"/>

  <property name="checkstyle.basedir" location="${java.dir}"/>

  <!-- Ant Checkstyle report -->
  <property name="tocheck" value="**/*.java"/>
  <property name="javadoc.scope" value="public"/>

  <taskdef resource="simiantask.properties"/>
  
  <!-- Findbugs: Running Findbugs -->
  <property name="findbugs.reportdir" 
            location="${build.dir}/reports/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"/>

  <!-- RAT Release Auditing Tool -->
  <property name="rat.report.dir"
            value="${build.dir}/reports/rat"
            description="Where to store the RAT reports"/>
  <property name="rat.report.file"
            value="${rat.report.dir}/report.html"
            description="RAT-Report file"/>
  <property name="rat.version"
            value="0.7"
            description="Which Version of RAT to use"/>



  <target name="init-ivy">
    <property name="ivy.version"  value="2.2.0"/>
    <property name="ivy.jar.url"  value="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
    <property name="ivy.jar.dir"  value="${build.dir}/ivy"/>
    <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar"/>
    <mkdir dir="${ivy.jar.dir}"/>
    <get src="${ivy.jar.url}" dest="${ivy.jar.file}" usetimestamp="true"/>
    <path id="ivy.lib.path">
      <fileset dir="${ivy.jar.dir}" includes="*.jar"/>
    </path>
    <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/>
  </target>

  <target name="checkstyle" description="--> checks Ant codebase according to ${config.dir}/checkstyle-config" depends="init-ivy">
    <ivy:cachepath organisation="checkstyle" module="checkstyle" revision="4.4"
                   inline="true" conf="default" pathid="checkstyle.classpath" transitive="true"/>
    <taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath" />
    <mkdir dir="${checkstyle.reportdir}"/>
    <checkstyle config="${config.dir}/checkstyle-config" failOnViolation="false">
      <formatter type="xml" toFile="${checkstyle.raw}"/>
      <fileset dir="${java.dir}">
        <include name="${tocheck}"/>
        <exclude name="**/bzip2/*.java"/>
        <exclude name="**/CVSPass.java"/>
      </fileset>
    </checkstyle>
  </target>

  <target name="htmlreport" description="--> generates a html checkstyle report" depends="init-ivy">
    <mkdir dir="${checkstyle.reportdir}"/>
    <xslt in="${checkstyle.raw}" style="${stylesheet.html}"
          out="${checkstyle.reportdir}/html/output.txt">
      <param name="basedir" expression="${checkstyle.basedir}"/>
      <param name="output.dir" expression="${checkstyle.reportdir}"/>
    </xslt>
  </target>

  <target name="textreport" description="--> generates a text checkstyle report">
    <xslt in="${checkstyle.raw}" style="${stylesheet.text}"
           out="${checkstyle.reportdir}/report.txt">
    </xslt>
  </target>

  <target name="textreport-display" depends="textreport" description="--> generates a text checkstyle report and displays it immediately">
      <loadfile property="report" srcfile="${checkstyle.reportdir}/report.txt"/>
      <echo>${report}</echo>
  </target>

  <target name="xdocreport" description="--> generates a xdoc checkstyle report">
    <xslt in="${checkstyle.raw}" style="${stylesheet.xdoc}"
           out="${checkstyle.reportdir}/xdocs/index.xml">
      <param name="basedir" expression="${checkstyle.basedir}"/>
    </xslt>
  </target>

  <target name="dumphtml" depends="checkstyle, htmlreport" description="--> runs the checkstyle and generates a html report"/>
  <target name="dumptext" depends="checkstyle, textreport" description="--> runs the checkstyle and displays result as text">
    <concat>
      <filelist dir="${checkstyle.reportdir}" files="report.txt"/>
    </concat>
  </target>

  <target name="simiancheck" description="--> runs the check for duplicates">
    <simian>
        <fileset dir="${java.dir}" />
    </simian>
  </target>
	
  <target name="fixTS" description="--> fix checkstyle errors 'Line has trailing spaces'">
    <fail message="Define path to java file 'path'">
      <condition><not><isset property="path"/></not></condition>
    </fail>
    <replaceregexp match="\s+$" replace="" flags="g" byline="true">
      <fileset dir="src/main" includes="${path}"/>
    </replaceregexp>
  </target>

  <target name="fixTab" description="--> fix checkstyle errors 'Line contains TAB sign'">
    <fail message="Define path to java file 'path'">
      <condition><not><isset property="path"/></not></condition>
    </fail>
  	<fixcrlf srcdir="src/main" includes="${path}" javafiles="yes" tab="remove" tablength="4"/>
  </target>

  <target name="findbugs" description="--> checks Ant codebase with Findbugs" depends="init-ivy" xmlns:fb="http://findbugs.sourceforge.net/">
    <ivy:cachepath organisation="com.google.code.findbugs" module="findbugs-ant" revision="1.3.9"
                   inline="true" conf="default" pathid="findbugs.real.classpath" transitive="true"/>
    <!-- Load the Findbugs AntTasks -->               
    <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 pluginlistref="findbugs.real.classpath"
                 classpathref="findbugs.real.classpath"
                 output="xml:withMessages"
                 outputFile="${findbugs.reportdir}/${findbugs.raw}"
                 jvmargs="${findbugs.jvmargs}"
                 projectName="${Name} ${project.version}">
      <class location="${build.classes}" />
      <sourcePath path="${java.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="rat" description="--> Runs the ReleaseAuditingTool"  depends="init-ivy">
    <ivy:cachepath organisation="org.apache.rat" module="apache-rat-tasks" revision="${rat.version}"
                   inline="true" conf="default" pathid="rat.classpath" transitive="true"/>
    <typedef resource="org/apache/rat/anttasks/antlib.xml"
             uri="antlib:org.apache.rat.anttasks"
             classpathref="rat.classpath"/>
    <mkdir dir="${rat.report.dir}"/>
    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportfile="${build.dir}/reports/rat/report.txt">
      <fileset dir="${java.dir}">
        <exclude name="org/apache/tools/ant/defaultManifest.mf"/>
        <exclude name="org/apache/tools/ant/version.txt"/>
      </fileset>
    </rat:report>
  </target>

</project>
