<target name="collectMetrics">

		<!-- init -->
		<antcall target="clean-all" />
		<property name="releaseDir" value="release" />
		<mkdir dir="${releaseDir}/${testReportsDir}" />
		<mkdir dir="${binDir}" />
		
		<!-- compile -->
		<antcall target="compileDebug" />

		<!-- FindBugs -->
		<findbugs home="${findBugsHome}" output="html" outputFile="${releaseDir}/${testReportsDir}/findbugs_report.html">
			<sourcePath path="${srcDir}" />
			<class location="${binDir}" />
		</findbugs>

		<!-- Checkstyle -->
		<checkstyle config="lib/checkstyle_config.xml" failureProperty="checkstyle.failure" failOnViolation="false">
			<formatter type="xml" tofile="${releaseDir}/${testReportsDir}/checkstyle_report.xml" />
			<fileset dir="${srcDir}" includes="**/*.java" />
		</checkstyle>
		<xslt in="${releaseDir}/testReports/checkstyle_report.xml" out="${releaseDir}/testReports/checkstyle_report.html" style="lib/checkstyle-simple.xsl" />

		<!-- PMD -->
		<pmd rulesetfiles="lib/pmd_rules.xml" minimumpriority="4" shortFilenames="true">
			<formatter type="html" toFile="${releaseDir}/${testReportsDir}/pmd_report.html" linePrefix=".line" />
			<fileset dir="${srcDir}" includes="**/*.java" />
		</pmd>

		<!-- CPD -->
		<cpd minimumTokenCount="100" encoding="UTF-8" format="xml" outputFile="${releaseDir}/${testReportsDir}/cpd_report.xml">
			<fileset dir="${srcDir}" includes="**/*.java" />
		</cpd>
		<xslt in="${releaseDir}/${testReportsDir}/cpd_report.xml" style="${pmdHome}/etc/xslt/cpdhtml.xslt" out="${releaseDir}/${testReportsDir}/cpd_report.html" />

		<!-- Tests -->
		<antcall target="compileTests" />
		<antcall target="runTests" />

		<!-- done -->
		<antcall target="clean" />
	</target>