<?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 name="ApproveApacheRoyaleBuildTools" default="main" basedir=".">


    <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
    <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
    <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
    <condition property="local.d32" value="-d32">
        <and>
            <os family="windows"/>
            <equals arg1="${sun.arch.data.model}" arg2="64"/>
            <equals arg1="${os.arch}" arg2="x86_64"/>
            <equals arg1="${ant.java.version}" arg2="1.6"/>
        </and>
    </condition>

    <condition property="isMac" value="mac">
        <os family="mac" />
    </condition>
    <condition property="isWindows" value="windows">
        <os family="windows" />
    </condition>
    <condition property="isLinux" value="linux">
		<and>
			<os family="unix" />
			<not>
				<isset property="isMac" />
			</not>
		</and>
    </condition>
    <!--
    <condition property="package.suffix" value="zip">
        <os family="windows" />
    </condition>-->
	<property name="package.suffix" value="zip" />
    
    <condition property="mvn" value="mvn.cmd">
        <isset property="isWindows" />
    </condition>
    <property name="mvn" value="mvn" />
    

	<property name="src.rat.report" value="${basedir}/rat-report-src.txt"/>
    <property name="bin.rat.report" value="${basedir}/rat-report-bin.txt"/>
    <property name="apache.rat.jar" value="apache-rat-0.11.jar" />
    <property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.11.jar" />
    <property name="apache.rat.url" value="https://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat/0.11" />
    <property name="apache.rat.tasks.url" value="https://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat-tasks/0.11" />
	   
    <property file="${basedir}/approveroyale.properties"/>
    
	<property name="mac.text.display" value="cat" />
	<property name="win.text.display" value="type" />
	<property name="linux.text.display" value="cat" />
    <property environment="env"/>

    <property name="build.target" value="main" />
    
	<condition property="do.copy.downloads" >
		<isset property="download.cache.dir" /> 
	</condition>
	        
    <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
        type="file"
        property="apache.rat.found"/>
    <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
        type="file"
        property="apache.rat.tasks.found"/>
		
    <fail message="The release version is not set.  Specify -Drelease.version=&lt;release version (e.g. 3.1, 3.2, etc)&gt;"
    unless="release.version"/>

	<property name="package.url.path" value="https://dist.apache.org/repos/dist/dev/royale/compiler-build-tools/${release.version}/rc${rc}" />
	<property name="src.package.url.path" value="${package.url.path}" />
    <property name="bin.package.url.path" value="${package.url.path}/binaries" />
    <property name="src.package.url.name" value="apache-royale-compiler-build-tools-${release.version}-source-release" />
    <property name="bin.package.url.name" value="compiler-build-tools-${release.version}" />
	
    <condition property="zip.package">
        <equals arg1="zip" arg2="${package.suffix}" />
    </condition>
    
	<target name="display-text-mac" if="isMac">
		<echo>========================= Begin ${file} ==============================</echo>
		<exec executable="${mac.text.display}" >
			<arg value="${file}" /> 
		</exec>
		<echo>========================= End ${file} ==============================</echo>
	</target>
	<target name="display-text-win" if="isWindows">
		<pathconvert targetos="windows" property="winfile">
			<path path="${file}" />
		</pathconvert>
		<echo>========================= Begin ${winfile} ==============================</echo>
		<exec executable="cmd.exe" >
			<arg value="/c" />
			<arg value="${win.text.display}" />
			<arg value="${winfile}" /> 
		</exec>		
		<echo>========================= End ${winfile} ==============================</echo>
	</target>
	<target name="display-text-linux" if="isLinux">
		<echo>========================= Begin ${file} ==============================</echo>
		<exec executable="${linux.text.display}" >
			<arg value="${file}" /> 
		</exec>
		<echo>========================= End ${file} ==============================</echo>
	</target>
	
	<target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
	<target name="install-rat.jar" unless="apache.rat.found">
		<get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
	</target>
	<target name="install-rat.tasks.jar" unless="apache.rat.tasks.found">
		<get src="${apache.rat.tasks.url}/${apache.rat.tasks.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}" />
	</target>
	
    <target name="rat-taskdef" description="Rat taskdef">
        <typedef resource="org/apache/rat/anttasks/antlib.xml"
        uri="antlib:org.apache.rat.anttasks"
        classpathref="anttask.classpath"/>
    </target>

    <target name="main" depends="write-out-jars-list,install-rat,download,check-sigs,uncompress,rat-check,examine-jars,check-notices,build,approve" description="Perform required release approval steps">
    </target>
    
    <target name="main-no-download" depends="write-out-jars-list,install-rat,check-sigs,uncompress,rat-check,examine-jars,check-notices,build,approve" description="Perform required release approval steps">
    </target>
	
    <target name="test" >
		<echo>${rat.report}.bin.txt</echo>
		<replaceregexp file="${rat.report}.bin.txt" match="..AL.*" replace="" byline="true"/>
    </target>
    
    <target name="write-out-jars-list" >
        <delete file="jars.txt" />
        <!-- this is a comma-delimited, no spaces, no-line-breaks list used to decide which jars
         to skip in the rat-check of the binaries and which jars to examine before approval -->
        <property name="jars-list" value="compiler-build-tools-${release.version}.jar"/>
        <echo file="${basedir}/jars.txt" message="${jars-list}"/>
        <echo file="${basedir}/jarexcludes.txt" message="${jars-list}"/>
        <replaceregexp file="${basedir}/jarexcludes.txt" match="," flags="g" replace="${line.separator}" />
    </target>

	<target name="display-text" >
		<antcall target="display-text-mac" />
		<antcall target="display-text-win" />
		<antcall target="display-text-linux" />
	</target>

	<target name="display-text-test" >
		<antcall target="display-text" >
			<param name="file" value="${basedir}/rat-report.txt" />
		</antcall>
	</target>
	
    <target name="download" description="download the release package">
        <get src="${src.package.url.path}/${src.package.url.name}.${package.suffix}"
            dest="${basedir}/${src.package.url.name}.${package.suffix}" />
        <get src="${src.package.url.path}/${src.package.url.name}.${package.suffix}.sha512"
            dest="${basedir}/${src.package.url.name}.${package.suffix}.sha512" />
        <get src="${bin.package.url.path}/${bin.package.url.name}.jar"
            dest="${basedir}/${bin.package.url.name}.jar" />
        <get src="${bin.package.url.path}/${bin.package.url.name}.jar.sha512"
            dest="${basedir}/${bin.package.url.name}.jar.sha512" />
        <antcall target="asc_get" />
    </target>
    
    <target name="asc_get" if="rc" >
        <get src="${src.package.url.path}/${src.package.url.name}.${package.suffix}.asc"
            dest="${basedir}/${src.package.url.name}.${package.suffix}.asc" />
        <get src="${bin.package.url.path}/${bin.package.url.name}.jar.asc"
            dest="${basedir}/${bin.package.url.name}.jar.asc" />
    </target>
    
    <target name="check-sigs" description="check md5 and gpg sigs">
		<replace file="${basedir}/${src.package.url.name}.${package.suffix}.sha512"
			token=" " />
		<checksum file="${basedir}/${src.package.url.name}.${package.suffix}" algorithm="SHA-512" verifyproperty="src.md5.ok" fileext=".sha512"/>
        <condition property="SourceMD5Invalid">
			<not>
				<equals arg1="${src.md5.ok}" arg2="true" />
			</not>
        </condition>
        <fail message="Source Package SHA-512 checksum did not match" if="SourceMD5Invalid" />
        <replace file="${basedir}/${bin.package.url.name}.jar.sha512"
            token=" " />
        <checksum file="${basedir}/${bin.package.url.name}.jar" algorithm="SHA-512" verifyproperty="bin.md5.ok" fileext=".sha512" />
        <condition property="BinaryMD5Invalid">
            <not>
                <equals arg1="${bin.md5.ok}" arg2="true" />
            </not>
        </condition>
        <fail message="Binary Package SHA-512 checksum did not match" if="BinaryMD5Invalid" />
        <echo>rc is ${rc}</echo>
        <antcall target="gpg_check" />
    </target>

    <target name="gpg_check" if="rc">
        <exec executable="gpg" failonerror="true">
            <arg value="--verify" />
            <arg value="${basedir}/${src.package.url.name}.${package.suffix}.asc" />
            <arg value="${basedir}/${src.package.url.name}.${package.suffix}" />
        </exec>
        <exec executable="gpg" failonerror="true">
            <arg value="--verify" />
            <arg value="${basedir}/${bin.package.url.name}.jar.asc" />
            <arg value="${basedir}/${bin.package.url.name}.jar" />
        </exec>
    </target>
    
    <target name="uncompress" depends="pre-clean, untar-file, unzip-file" />

    <target name="pre-clean" description="remove old uncompressed package" >
		<delete dir="${basedir}/${src.package.url.name}" failonerror="false" />
        <delete dir="${basedir}/${bin.package.url.name}" failonerror="false" />
	</target>
	
    <target name="untar-file" unless="zip.package" description="Untars zipFile">
        <untar src="${basedir}/${src.package.url.name}.${package.suffix}"
                dest="${basedir}" compression="gzip"/>
        <untar src="${basedir}/${bin.package.url.name}.${package.suffix}"
                dest="${basedir}" compression="gzip"/>
    </target>

    <target name="unzip-file" if="zip.package" description="Unzips zipFile">
        <unzip src="${basedir}/${src.package.url.name}.${package.suffix}"
                dest="${basedir}/${src.package.url.name}"/>
        <!--
        <unzip src="${basedir}/${bin.package.url.name}.${package.suffix}"
                dest="${basedir}/${bin.package.url.name}"/>-->
    </target>

    <target name="rat-check" >

        <echo message="Checking files at ${basedir}/${src.package.url.name}, report is ${src.rat.report}"/>

        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
            reportFile="${src.rat.report}">
            <fileset dir="${basedir}/${src.package.url.name}">
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="**/*.png"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jpg"/>
                <exclude name="**/*.mp3"/>
                <exclude name="**/*.flv"/>
                <exclude name="**/org.apache.royale.tools.FlexToolGroup"/>
                <exclude name="debugger/META-INF/MANIFEST.MF"/>
                <exclude name="flex-typedefs/target/maven-shared-archive-resources/META-INF/DEPENDENCIES"/>
                <exclude name="**/*.patch"/>
                <exclude name="README_MAVEN.txt"/>
                <exclude name="RELEASE_NOTES_JX"/>
                <exclude name="LICENSE.jx.bin"/>
                <exclude name="NOTICE.jx"/>
                <exclude name="README_JX"/>
                <exclude name="NOTICE.base"/>
                <exclude name="NOTICE.fdb"/>
                <exclude name="NOTICE.oem"/>
                <exclude name="NOTICE.swfutils"/>
            </fileset>
        </rat:report>
		<antcall target="display-text" >
            <param name="file" value="${src.rat.report}" />
        </antcall>
        <input
			message="Check that there are no unknown or unapproved licenses or archives. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="rat.src.license.ok"/>
		<echo>filtering out AL files to make it easier to see binary files</echo>
		<copy file="${src.rat.report}" tofile="${src.rat.report}.bin.txt" />
		<replaceregexp file="${src.rat.report}.bin.txt" match="..AL.*" replace="__AL" byline="true"/>
        <replaceregexp file="${src.rat.report}.bin.txt" flags="gs" match="__AL." replace="" byline="false"/>
		<antcall target="display-text" >
            <param name="file" value="${src.rat.report}.bin.txt" />
        </antcall>
        <input
			message="Check that there are no unexpected binaries.  Is it ok?"
            validargs="y,n"
        defaultvalue="n"
        addproperty="rat.src.binaries.ok"/>
        
        <!--
        <echo message="Checking files at ${basedir}/${bin.package.url.name}, report is ${bin.rat.report}"/>
        
        <antcall target="binary-rat" />
        <antcall target="display-text" >
            <param name="file" value="${bin.rat.report}" />
        </antcall>
        <input
        message="Check that there are no unknown or unapproved licenses or archives. Is it ok?"
        validargs="y,n"
        defaultvalue="y"
        addproperty="rat.bin.license.ok"/>
        <echo>filtering out AL files to make it easier to see binary files</echo>
        <copy file="${bin.rat.report}" tofile="${bin.rat.report}.bin.txt" />
        <replaceregexp file="${bin.rat.report}.bin.txt" match="..AL.*" replace="__AL" byline="true"/>
        <replaceregexp file="${bin.rat.report}.bin.txt" flags="gs" match="__AL." replace="" byline="false"/>
        <antcall target="display-text" >
            <param name="file" value="${bin.rat.report}.bin.txt" />
        </antcall>
        <input
        message="Check that there are no unexpected binaries.  Is it ok?"
        validargs="y,n"
        defaultvalue="n"
        addproperty="rat.bin.binaries.ok"/>
        -->
    </target>

    <target name="binary-rat" >
        <echo>${jars-list}</echo>
        <rat:report xmlns:rat="antlib:org.apache.rat.anttasks"
            reportFile="${bin.rat.report}">
            <fileset dir="${basedir}/${bin.package.url.name}">
                <!-- exclude media (png, gif, jpg, mp3, flv) -->
                <exclude name="**/*.png"/>
                <exclude name="**/*.gif"/>
                <exclude name="**/*.jpg"/>
                <exclude name="**/*.mp3"/>
                <exclude name="**/*.flv"/>
                <exclude name="**/org.apache.royale.tools.FlexToolGroup"/>
                <exclude name="debugger/META-INF/MANIFEST.MF"/>
                <exclude name="flex-typedefs/target/maven-shared-archive-resources/META-INF/DEPENDENCIES"/>
                <exclude name="**/*.patch"/>
                <exclude name="LICENSE.jx.bin"/>
                <exclude name="README_MAVEN.txt"/>
                <exclude name="RELEASE_NOTES_JX"/>
                <exclude name="NOTICE.jx"/>
                <exclude name="README_JX"/>
                <exclude name="NOTICE.base"/>
                <exclude name="NOTICE.fdb"/>
                <exclude name="NOTICE.oem"/>
                <exclude name="NOTICE.swfutils"/>
                <exclude name="compiler/target/generated-sources/**" />
                <exclude name="flex-typedefs/js/target/downloads/svg.js" />
                <exclude name="flex-typedefs/createjs/target/downloads/**" />
                <exclude name="flex-typedefs//**/*.swc" />
                <exclude name="js/libs/cordova.swc"/>
                <exclude name="js/libs/createjs.swc"/>
                <exclude name="js/libs/GCL.swc"/>
                <exclude name="js/libs/google_maps.swc"/>
                <exclude name="js/libs/jasmine.swc"/>
                <exclude name="js/libs/jquery.swc"/>
                <exclude name="js/libs/js.swc"/>
                <exclude name="js/libs/node.swc"/>
                <excludesfile name="${basedir}/jarexcludes.txt" />
            </fileset>
        </rat:report>
    </target>
    
    <!-- someday figure out how to use 
        find . -name "*.jar" -exec tar ft {} \; | sort -u > paths.txt -->
    
    <!-- how to do tar and sort on Windows? -->
    <target name="examine-jars" if="isMac">
        <!-- comma delimited list, no spaces, not one file per line -->
        <copy file="jars.txt" tofile="loop.txt" />
        <ant antfile="ApproveBuildTools.xml" target="loopOnce" inheritAll="false" />
    </target>
    <target name="loopOnce" >
        <!-- make a copy of the list so we can munge it to
             get the first item in the list -->
        <delete file="loop1.txt" />
        <copy file="loop.txt" tofile="loop1.txt" />
        <loadfile srcFile="loop.txt" property="checkiflast" />
        <condition property="islast" value="true">
            <not>
                <contains string="${checkiflast}" substring="," />
            </not>
        </condition>
        <antcall target="notlast" />
        <antcall target="lastone" />
    </target>
    <target name="notlast" unless="islast">
        <loadfile srcFile="loop1.txt" property="echoFile" />
        <replaceregexp file="loop1.txt" match="^(.*),(.*)" replace="\2" />
        <loadfile srcFile="loop1.txt" property="thisFile" />
        <antcall target="jar-check" />
        <replaceregexp file="loop.txt" match="^(.*),(.*)" replace="\1" />
        <ant antfile="ApproveBuildTools.xml" target="loopOnce" inheritAll="false"/>
    </target>
    <target name="lastone" if="islast">
        <loadfile srcFile="loop1.txt" property="thisFile" />
        <antcall target="jar-check" />
        <delete file="loop.txt" />
        <delete file="loop1.txt" />
    </target>

    <target name="jar-check" >
        <delete dir="${basedir}/jar" failonerror="false" />
        <mkdir dir="${basedir}/jar" />
        <unjar src="${basedir}/${thisFile}" dest="${basedir}/jar" />
        <exec executable="tar" output="${basedir}/jarclasses.txt">
            <arg value="tf" />
            <arg value="${basedir}/${thisFile}" />
        </exec>
        <replaceregexp file="${basedir}/jarclasses.txt" match="(.*)/(.*)" replace="\1" flags="m" byline="true"/>
        <exec executable="sort" output="${basedir}/jarpaths.txt">
            <arg value="-u" />
            <arg value="${basedir}/jarclasses.txt" />
        </exec>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jarpaths.txt" />
        </antcall>
        <input
            message="Above is the list of folders in this ${thisFile}.&#xA;Folder names can sometimes indicate presence of third-party content that needs to be in LICENSE and/or NOTICE files.&#xA;Press the Enter key to see the LICENSE for this jar."/>
        
        <fail message="LICENSE not in ${basedir}/${thisFile}">
            <condition>
                <not>
                    <available file="${basedir}/jar/META-INF/LICENSE" />
                </not>
            </condition>
        </fail>
        <fail message="NOTICE not in ${basedir}/${thisFile}">
            <condition>
                <not>
                    <available file="${basedir}/jar/META-INF/NOTICE" />
                </not>
            </condition>
        </fail>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/LICENSE" />
        </antcall>
        <input
            message="Check the LICENSE for the Apache License and third-party licenses. Is it ok?"
            validargs="y,n"
            defaultvalue="y"
            addproperty="jar.license.ok"/>
        <fail message="LICENSE for ${basedir}/${thisFile} not correct">
            <condition>
                <not>
                    <equals arg1="${jar.license.ok}" arg2="y" />
                </not>
            </condition>
        </fail>
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/NOTICE" />
        </antcall>
        <input
            message="Check the NOTICE for required notices from third-parties. Is it ok?"
            validargs="y,n"
            defaultvalue="y"
            addproperty="jar.notice.ok"/>
        <fail message="NOTICE for ${basedir}/${thisFile} not correct">
            <condition>
                <not>
                    <equals arg1="${jar.notice.ok}" arg2="y" />
                </not>
            </condition>
        </fail>
        
    </target>
    
    <target name="check-notices" description="open each notice file for review, grep for a few things" >
        <!--
        <fail message="README not in source package">
			<condition>
	            <not>
    	            <available file="${basedir}/${src.package.url.name}/README" />
        	    </not>
			</condition>
        </fail>
        <fail message="RELEASE_NOTES not in source package">
			<condition>
				<not>
					<available file="${basedir}/${src.package.url.name}/RELEASE_NOTES" />
				</not>
			</condition>
        </fail>
        -->
        <fail message="NOTICE not in source package">
			<condition>
				<not>
					<available file="${basedir}/${src.package.url.name}/apache-royale-compiler-build-tools-${release.version}/NOTICE" />
				</not>
			</condition>
        </fail>
        <fail message="LICENSE not in source package">
			<condition>
				<not>
					<available file="${basedir}/${src.package.url.name}/apache-royale-compiler-build-tools-${release.version}/LICENSE" />
				</not>
			</condition>
        </fail>
        <!--
        <fail message="README not in binary package">
            <condition>
                <not>
                    <available file="${basedir}/${bin.package.url.name}/README" />
                </not>
            </condition>
        </fail>
        <fail message="RELEASE_NOTES not in binary package">
            <condition>
                <not>
                    <available file="${basedir}/${bin.package.url.name}/RELEASE_NOTES" />
                </not>
            </condition>
        </fail>
        <fail message="NOTICE not in binary package">
            <condition>
                <not>
                    <available file="${basedir}/${bin.package.url.name}/NOTICE" />
                </not>
            </condition>
        </fail>
        <fail message="LICENSE not in binary package">
            <condition>
                <not>
                    <available file="${basedir}/${bin.package.url.name}/LICENSE" />
                </not>
            </condition>
        </fail>
        -->
        <!--
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${src.package.url.name}/README" />
        </antcall>
		<input
			message="Check the README for version numbers, spelling, grammar, accuracy.  Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="readme.ok"/>
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${src.package.url.name}/RELEASE_NOTES" />
        </antcall>
		<input
			message="Check the RELEASE_NOTES for copyright years, spelling, grammar, accuracy. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="releasenotes.ok"/>
		-->
        
		<antcall target="display-text" >
            <param name="file" value="${basedir}/${src.package.url.name}/apache-royale-compiler-build-tools-${release.version}/NOTICE" />
        </antcall>
		<input
			message="Check the source package NOTICE for required notices from third-parties. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="src.notice.ok"/>

		<antcall target="display-text" >
            <param name="file" value="${basedir}/${src.package.url.name}/apache-royale-compiler-build-tools-${release.version}/LICENSE" />
        </antcall>
		<input
			message="Check the source package LICENSE for the Apache License and third-party licenses. Is it ok?"
            validargs="y,n"
        defaultvalue="y"
        addproperty="src.license.ok"/>
        
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/NOTICE" />
        </antcall>
        <input
        message="Check the binary package NOTICE for required notices from third-parties. Is it ok?"
        validargs="y,n"
        defaultvalue="y"
        addproperty="bin.notice.ok"/>
        
        <antcall target="display-text" >
            <param name="file" value="${basedir}/jar/META-INF/LICENSE" />
        </antcall>
        <input
        message="Check the binary package LICENSE for the Apache License and third-party licenses. Is it ok?"
        validargs="y,n"
        defaultvalue="y"
        addproperty="bin.license.ok"/>
    </target>

    <target name="build">
		<input
			message="The final step is to run the build and any tests the build script runs.  This can take several minutes.  Press y to start the build."
            validargs="y"
        defaultvalue="y" />
        <exec executable="${mvn}" dir="${basedir}/${src.package.url.name}/apache-royale-compiler-build-tools-${release.version}" failonerror="true" >
            <arg value="clean" />
            <arg value="install" />
        </exec>
    </target>
    	
	<target name="approve" >
		<condition property="vote" value="+1">
			<and>
				<equals arg1="${rat.src.license.ok}" arg2="y" />
                <!--
				<equals arg1="${rat.src.binaries.ok}" arg2="y" />
                <equals arg1="${rat.bin.license.ok}" arg2="y" />
                <equals arg1="${rat.bin.binaries.ok}" arg2="y" />
				<equals arg1="${readme.ok}" arg2="y" />
				<equals arg1="${releasenotes.ok}" arg2="y" />
                -->
				<equals arg1="${src.notice.ok}" arg2="y" />
                <equals arg1="${bin.notice.ok}" arg2="y" />
				<equals arg1="${src.license.ok}" arg2="y" />
                <equals arg1="${bin.license.ok}" arg2="y" />
			</and>
		</condition>
		<property name="vote" value="-1" />
		<echo>
${vote}
Package ${src.package.url.path}/${src.package.url.name}.${package.suffix}
Java ${ant.java.version}
OS: ${os.name} ${os.arch} ${os.version}
Source kit signatures match: y
Source kit builds: y
README is ok: ${readme.ok}
RELEASE_NOTES is ok: ${releasenotes.ok}
NOTICE is ok: ${src.notice.ok}
LICENSE is ok: ${src.license.ok}
No unapproved licenses or archives in source package: ${rat.src.license.ok}
No unapproved binaries in source package: ${rat.src.binaries.ok}

Package ${bin.package.url.path}/${bin.package.url.name}.jar
Binary signatures match: y
NOTICE is ok: ${bin.notice.ok}
LICENSE is ok: ${bin.license.ok}
		</echo>
		<fail>
			<condition>
	            <equals arg1="-1" arg2="${vote}"/>
			</condition>
		</fail>
	</target>
</project>
