pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.4.0 / lucene / common-build.xml
diff --git a/lucene-java-3.4.0/lucene/common-build.xml b/lucene-java-3.4.0/lucene/common-build.xml
deleted file mode 100644 (file)
index a9522af..0000000
+++ /dev/null
@@ -1,1060 +0,0 @@
-<?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="common" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
-  <description>
-    This file is designed for importing into a main build file, and not intended
-    for standalone use.
-  </description>
-
-  <dirname file="${ant.file.common}" property="common.dir"/>
-  <property name="dev-tools.dir" value="${common.dir}/../dev-tools"/>
-  <property name="prettify.dir" value="${common.dir}/src/tools/prettify"/>
-  <property name="maven.build.dir" value="${build.dir}/maven"/>
-
-  <!-- Give user a chance to override without editing this file
-      (and without typing -D each time it compiles it -->
-  <property file="${user.home}/lucene.build.properties"/>
-  <property file="${user.home}/build.properties"/>
-  <property file="${basedir}/build.properties"/>
-  <property file="${common.dir}/build.properties"/>
-
-  <tstamp>
-    <format property="current.year" pattern="yyyy"/>
-    <format property="DSTAMP" pattern="yyyy-MM-dd"/>
-    <format property="TSTAMP" pattern="HH:mm:ss"/>
-    <!-- datetime format that is safe to treat as part of a dotted version -->
-    <format property="dateversion" pattern="yyyy.MM.dd.HH.mm.ss" />
-  </tstamp>
-
-  <property name="name" value="${ant.project.name}"/>
-  <property name="Name" value="Lucene"/>
-  <property name="dev.version" value="3.4-SNAPSHOT"/>
-  <property name="tests.luceneMatchVersion" value="3.4"/>
-  <property name="version" value="${dev.version}"/>
-  <property name="spec.version" value="${version}"/>   
-  <property name="year" value="2000-${current.year}"/>
-  <property name="final.name" value="lucene-${name}-${version}"/>
-
-  <property name="junit.jar" value="junit-4.7.jar"/>
-  <property name="junit-location.jar" value="${common.dir}/lib/${junit.jar}"/>
-  <path id="junit-path">
-    <pathelement location="${junit-location.jar}"/>
-  </path>
-
-  <path id="ant-path">
-    <fileset dir="${common.dir}/lib" includes="ant-*.jar"/>
-  </path>
-
-  <path id="tools.runtime.classpath">
-    <pathelement location="${common.dir}/build/classes/tools"/>
-  </path>
-
-  <path id="maven-ant-tasks.classpath">
-    <fileset dir="${common.dir}/lib">
-      <include name="maven-ant-tasks-*.jar"/>
-    </fileset>
-  </path>
-
-  <!-- default arguments to pass to JVM executing tests -->
-  <property name="testmethod" value=""/>
-  <property name="args" value=""/>
-  <property name="tests.threadspercpu" value="1" />
-  <condition property="tests.sequential">
-    <or>
-      <isset property="testcase"/>
-      <equals arg1="${tests.threadspercpu}" arg2="0"/>
-    </or>
-  </condition>
-  <property name="tests.multiplier" value="1" />
-  <property name="tests.locale" value="random" />
-  <property name="tests.timezone" value="random" />
-  <property name="tests.directory" value="random" />
-  <property name="tests.linedocsfile" value="europarl.lines.txt.gz" />
-  <property name="tests.iter" value="1" />
-  <property name="tests.iter.min" value="${tests.iter}" />
-  <property name="tests.seed" value="random" />
-  <property name="tests.loggingfile" value="/dev/null"/>
-  <property name="tests.nightly" value="false" />
-  <property name="tests.cleanthreads.sysprop" value="perMethod"/>
-    
-  <property name="javac.deprecation" value="off"/>
-  <property name="javac.debug" value="on"/>
-  <property name="javac.source" value="1.5"/>
-  <property name="javac.target" value="1.5"/>
-  <property name="javac.source.backwards" value="1.5"/>
-  <property name="javac.target.backwards" value="1.5"/>
-  <!-- clover wants to run with -lib, otherwise we prefer a repeatable
-       classpath -->
-  <property name="javac.includeAntRuntime" value="${run.clover}"/>
-
-  <property name="javadoc.link" value="http://download.oracle.com/javase/1.5.0/docs/api/"/>
-  <property name="javadoc.access" value="protected"/>
-  <property name="javadoc.charset" value="utf-8"/>
-  <property name="javadoc.dir" value="${common.dir}/build/docs/api"/>
-  <property name="javadoc.maxmemory" value="512m" />
-  <!-- Javadoc classpath -->
-  <path id="javadoc.classpath">
-    <path refid="classpath"/>
-    <pathelement location="${ant.home}/lib/ant.jar"/>
-    <fileset dir=".">
-      <exclude name="build/**/*.jar"/>
-      <include name="**/lib/*.jar"/>
-    </fileset>
-  </path>
-       
-  <property name="changes.src.dir" value="${common.dir}/src/site/changes"/>
-  <property name="changes.target.dir" value="${common.dir}/build/docs/changes"/>
-
-  <property name="project.name" value="site"/> <!-- todo: is this used by anakia or something else? -->
-  <property name="build.encoding" value="utf-8"/>
-
-  <property name="src.dir" location="src/java"/>
-  <property name="tests.src.dir" location="src/test"/>
-  <property name="tests-framework.src.dir" location="${common.dir}/src/test-framework"/>
-  <property name="build.dir" location="build"/>
-  <!-- Needed in case a contrib needs the original build, also for compile-tools to be called from contrib -->
-  <property name="common.build.dir" location="${common.dir}/build"/>
-  <property name="dist.dir" location="dist"/>
-  <property name="maven.dist.dir" location="dist/maven"/>
-  <property name="m2.repository.url" value="file://${maven.dist.dir}"/>
-  <property name="m2.repository.private.key" value="${user.home}/.ssh/id_dsa"/>
-
-  <property name="javacc.home" location="${common.dir}"/>
-  <property name="jflex.home" location="${common.dir}"/>
-
-  <path id="jflex.classpath">
-    <fileset dir="${jflex.home}/">
-      <!-- for a JFlex trunk checkout: -->
-      <include name="jflex/target/*.jar"/>
-      <!-- for a JFlex distribution (not yet available): -->
-      <include name="lib/*.jar"/>
-    </fileset>
-  </path>
-
-  <path id="javacc.classpath">
-    <fileset dir="${javacc.home}/">
-      <include name="bin/lib/*.jar"/>
-    </fileset>
-  </path>
-
-  <property name="backwards.dir" location="backwards"/>
-  <property name="build.dir.backwards" location="${build.dir}/backwards"/>
-
-  <property name="junit.output.dir" location="${build.dir}/test"/>
-  <property name="junit.output.dir.backwards" location="${build.dir.backwards}/test"/>
-  <property name="junit.reports" location="${build.dir}/test/reports"/>
-  <property name="junit.reports.backwards" location="${build.dir.backwards}/test/reports"/>
-  <property name="junit.excludes" value=""/>
-  <condition property="junit.details.formatter" 
-      value="org.apache.tools.ant.taskdefs.optional.junit.BriefJUnitResultFormatter"
-      else="org.apache.lucene.util.LuceneJUnitResultFormatter">
-    <isset property="tests.sequential"/>
-  </condition>
-  <property name="junit.parallel.selector" value="org.apache.lucene.util.LuceneJUnitDividingSelector"/>
-
-  <property name="manifest.file" location="${common.dir}/build/MANIFEST.MF"/>
-
-  <!-- 
-    we attempt to exec svnversion to get details build information
-    for jar manifests.  this property can be set at runtime to an
-    explicit path as needed, or ant will just try to find it in the
-    default PATH. (this is useful for Hudson)
-  -->
-  <property name="svnversion.exe" value="svnversion" />
-  <property name="svn.exe" value="svn" />
-  
-  <property name="gpg.exe" value="gpg" />
-  <property name="gpg.key" value="CODE SIGNING KEY" />
-
-  <property name="clover.db.dir" location="${common.dir}/build/test/clover/db"/>
-  <property name="clover.report.dir" location="${common.dir}/build/test/clover/reports"/>
-
-    <available
-            property="clover.present"
-            classname="com.cenqua.clover.tasks.CloverReportTask"
-            />
-   <condition property="clover.enabled">
-       <and>
-           <isset property="run.clover"/>
-           <isset property="clover.present"/>
-       </and>
-   </condition>
-
-  <propertyset id="uptodate.and.compiled.properties" dynamic="true">
-    <propertyref regex=".*\.uptodate$$"/>
-    <propertyref regex=".*\.compiled$$"/>
-  </propertyset>
-
-  <patternset id="lucene.local.src.package.patterns"
-              includes="src/,index.html,*build*.xml,docs/,*.txt,contrib/,lib/,backwards/"
-              excludes="**/pom.xml,**/*.iml,src/site/build/"
-  />
-
-  <target name="clean"
-    description="Removes contents of build and dist directories">
-    <delete dir="${build.dir}"/>
-    <delete dir="${dist.dir}"/>
-    <delete file="velocity.log"/>
-  </target>
-
-  <!-- TODO: maybe make JavaCC checking specific to only the projects
-             that use it (Lucene core and contrib/misc
-  -->
-  <target name="javacc-uptodate-check">
-    <uptodate property="javacc.files.uptodate">
-      <srcfiles dir="${src.dir}" includes="**/*.jj" />
-      <mapper type="glob" from="*.jj" to="*.java"/>
-    </uptodate>
-  </target>
-
-  <target name="javacc-notice" depends="javacc-uptodate-check" unless="javacc.files.uptodate">
-    <echo>
-      One or more of the JavaCC .jj files is newer than its corresponding
-      .java file.  Run the "javacc" target to regenerate the artifacts.
-    </echo>
-  </target>
-
-  <target name="init">
-    <!-- currently empty -->
-  </target>
-
-  <target name="jflex-uptodate-check">
-    <uptodate property="jflex.files.uptodate">
-      <srcfiles dir="${src.dir}" includes="**/*.jflex" />
-      <mapper type="glob" from="*.jflex" to="*.java"/>
-    </uptodate>
-  </target>
-  <target name="jflex-notice" depends="jflex-uptodate-check" unless="jflex.files.uptodate">
-    <echo>
-      One or more of the JFlex .jflex files is newer than its corresponding
-      .java file.  Run the "jflex" target to regenerate the artifacts.
-    </echo>
-  </target>
-
-  <target name="javacc-check">
-    <available property="javacc.present" classname="org.javacc.parser.Main">
-      <classpath refid="javacc.classpath"/>
-    </available>
-    <fail unless="javacc.present">
-      ##################################################################
-      JavaCC not found.
-      JavaCC Home: ${javacc.home}
-
-      Please download and install JavaCC 4.1 from:
-
-      &lt;http://javacc.dev.java.net&gt;
-
-      Then, create a build.properties file either in your home
-      directory, or within the Lucene directory and set the javacc.home
-      property to the path where JavaCC is installed. For example,
-      if you installed JavaCC in /usr/local/java/javacc-4.1, then set the
-      javacc.home property to:
-
-      javacc.home=/usr/local/java/javacc-4.1
-
-      If you get an error like the one below, then you have not installed
-      things correctly. Please check all your paths and try again.
-
-      java.lang.NoClassDefFoundError: org.javacc.parser.Main
-      ##################################################################
-    </fail>
-
-  </target>
-       
-  <target name="jflex-check">
-    <available property="jflex.present" classname="jflex.anttask.JFlexTask">
-      <classpath refid="jflex.classpath"/>
-    </available>
-    <fail unless="jflex.present">
-      ##################################################################
-      JFlex not found.
-      JFlex Home: ${jflex.home}
-
-      Please install the jFlex 1.5 version (currently not released)
-      from its SVN repository:
-
-       svn co http://jflex.svn.sourceforge.net/svnroot/jflex/trunk jflex
-       cd jflex
-       mvn install
-
-      Then, create a build.properties file either in your home
-      directory, or within the Lucene directory and set the jflex.home
-      property to the path where the JFlex trunk checkout is located
-      (in the above example its the directory called "jflex").
-
-      ##################################################################
-    </fail>
-  </target>
-
-  <target name="compile-core" depends="init, clover"
-          description="Compiles core classes">
-    <compile
-      srcdir="${src.dir}"
-      destdir="${build.dir}/classes/java">
-      <classpath refid="classpath"/>
-    </compile>
-
-    <!-- Copy the resources folder (if existent) -->
-    <copy todir="${build.dir}/classes/java" includeEmptyDirs="false">
-      <globmapper from="resources/*" to="*" handledirsep="yes"/>
-      <fileset dir="src" includes="resources/**"/>
-    </copy>
-  </target>
-
-  <target name="compile" depends="compile-core, validate-lucene">
-    <!-- convenience target to compile core -->
-  </target>
-
-  <target name="jar-core" depends="compile-core"
-    description="Packages the JAR file">
-    <jarify/>
-  </target>
-
-  <macrodef name="m2-deploy" description="Builds a Maven artifact">
-       <element name="artifact-attachments" optional="yes"/>
-    <attribute name="pom.xml" default="pom.xml"/>
-    <attribute name="jar.file" default="${build.dir}/${final.name}.jar"/>
-    <sequential>
-      <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-7"/>
-      <artifact:pom id="maven.project" file="@{pom.xml}"/>
-      <artifact:deploy file="@{jar.file}">
-        <artifact-attachments/>
-       <remoteRepository url="${m2.repository.url}">
-          <authentication username="${m2.repository.username}" privateKey="${m2.repository.private.key}" password="${m2.repository.password}"/>
-        </remoteRepository>
-        <pom refid="maven.project"/>
-      </artifact:deploy>
-    </sequential>
-  </macrodef>
-  
-  <macrodef name="m2-deploy-with-pom-template" description="Builds a Maven artifact given a POM template">
-    <attribute name="pom.xml"/>
-    <attribute name="jar.file"/>
-    <sequential>
-      <copy file="@{pom.xml}" tofile="${maven.build.dir}/pom.xml" overwrite="true">
-        <filterset begintoken="@" endtoken="@">
-          <filter token="version" value="${version}"/>
-        </filterset>
-      </copy>
-      <artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-7"/>
-      <artifact:pom id="maven.project" file="${maven.build.dir}/pom.xml" />
-      <artifact:deploy file="@{jar.file}">
-        <remoteRepository url="${m2.repository.url}">
-          <authentication username="${m2.repository.username}" privateKey="${m2.repository.private.key}" password="${m2.repository.password}"/>
-        </remoteRepository>
-        <pom refid="maven.project"/>
-      </artifact:deploy>
-    </sequential>
-  </macrodef>
-       
-  <macrodef name="build-manifest" description="Builds a manifest file">
-       <attribute name="title"/>
-    <attribute name="implementation.title"/>
-    <attribute name="spec.version"/>
-    <sequential>
-      <manifest file="${manifest.file}">
-        <!--
-        http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest
-        http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html
-        http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html
-        http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html
-        http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
-        -->
-        <!-- Don't set 'Manifest-Version' it identifies the version of the
-             manifest file format, and should always be 1.0 (the default)
-
-             Don't set 'Created-by' attribute, its purpose is
-             to identify the version of java used to build the jar,
-             which ant will do by default.
-
-             Ant will happily override these with bogus strings if you
-             tell it to, so don't.
-
-             NOTE: we don't use section info because all of our manifest data
-             applies to the entire jar/war ... no package specific info.
-        -->
-        <attribute name="Extension-Name" value="@{implementation.title}"/>
-        <attribute name="Specification-Title" value="@{title}"/>
-        <!-- spec version must match "digit+{.digit+}*" -->
-        <attribute name="Specification-Version" value="@{spec.version}"/>
-        <attribute name="Specification-Vendor"
-                   value="The Apache Software Foundation"/>
-        <attribute name="Implementation-Title" value="@{implementation.title}"/>
-        <!-- impl version can be any string -->
-        <attribute name="Implementation-Version"
-                   value="${version} ${svnversion} - ${user.name} - ${DSTAMP} ${TSTAMP}"/>
-        <attribute name="Implementation-Vendor"
-                   value="The Apache Software Foundation"/>
-        <attribute name="X-Compile-Source-JDK" value="${javac.source}"/>
-        <attribute name="X-Compile-Target-JDK" value="${javac.target}"/>
-      </manifest>
-    </sequential>
-  </macrodef>
-       
-  <macrodef name="jarify" description="Builds a JAR file">
-       <attribute name="basedir" default="${build.dir}/classes/java"/>
-       <attribute name="destfile" default="${build.dir}/${final.name}.jar"/>
-       <attribute name="title" default="Lucene Search Engine: ${ant.project.name}"/>
-    <attribute name="excludes" default="**/pom.xml,**/*.iml"/>
-    <attribute name="metainf.source.dir" default="${common.dir}"/>
-    <attribute name="implementation.title" default="org.apache.lucene"/>
-    <attribute name="spec.version" default="${spec.version}"/>
-    <element name="nested" optional="true" implicit="true"/>
-    <sequential>
-      <!-- If possible, include the svnversion -->
-      <exec dir="." executable="${svnversion.exe}"
-            outputproperty="svnversion" failifexecutionfails="false">
-        <arg line="."/>
-      </exec>
-      
-      <build-manifest title="@{title}"
-                      implementation.title="@{implementation.title}"
-                      spec.version="@{spec.version}"/>
-       
-      <jar destfile="@{destfile}"
-           basedir="@{basedir}"
-           manifest="${manifest.file}"
-           excludes="@{excludes}">
-        <metainf dir="@{metainf.source.dir}" includes="LICENSE.txt,NOTICE.txt"/>
-        <nested />
-      </jar>
-    </sequential>
-  </macrodef>
-
-  <property name="lucene-core.jar" value="${common.dir}/build/lucene-core-${version}.jar"/>
-  <target name="check-lucene-core-uptodate" unless="lucene-core.uptodate">
-    <uptodate property="lucene-core.uptodate" targetfile="${lucene-core.jar}">
-       <srcfiles dir="${common.dir}/src/java" includes="**/*.java"/>
-    </uptodate>
-  </target>
-  <target name="jar-lucene-core" unless="lucene-core.uptodate" depends="check-lucene-core-uptodate">
-    <ant dir="${common.dir}" target="jar-core" inheritAll="false">
-      <propertyset refid="uptodate.and.compiled.properties"/>
-    </ant>
-    <property name="lucene-core.uptodate" value="true"/>
-  </target>
-  <target name="compile-lucene-core" unless="core.compiled">
-    <ant dir="${common.dir}" target="compile-core" inheritAll="false">
-      <propertyset refid="uptodate.and.compiled.properties"/>
-    </ant>
-    <property name="core.compiled" value="true"/>
-  </target>
-  
-  <path id="test-framework.classpath">
-    <path refid="ant-path"/>
-    <path refid="test.classpath"/>
-  </path>
-  
-  <target name="compile-test-framework" depends="compile-core">
-       <compile-test-macro srcdir="${tests-framework.src.dir}" destdir="${common.dir}/build/classes/test-framework"
-                                               test.classpath="test-framework.classpath"/>
-  </target>
-
-  <target name="compile-tools">
-    <compile
-      srcdir="${common.dir}/src/tools/java"
-      destdir="${common.build.dir}/classes/tools">
-      <classpath refid="classpath"/>
-    </compile>
-  </target>
-
-  <target name="compile-test" depends="compile-test-framework">
-       <compile-test-macro srcdir="${tests.src.dir}" destdir="${build.dir}/classes/test"
-                                               test.classpath="test.classpath"/>
-  </target>
-
-  <property name="tests.verbose" value="false"/>
-       
-  <macrodef name="compile-test-macro" description="Compiles junit tests.">
-       <attribute name="srcdir"/>
-       <attribute name="destdir"/>
-       <attribute name="test.classpath"/>
-    <attribute name="javac.source" default="${javac.source}"/>
-    <attribute name="javac.target" default="${javac.target}"/>
-       <sequential>
-      <compile
-        srcdir="@{srcdir}" 
-        destdir="@{destdir}"
-        javac.source="@{javac.source}"
-        javac.target="@{javac.source}">
-        <classpath refid="@{test.classpath}"/>
-      </compile>
-
-      <!-- Copy any data files present to the classpath -->
-      <copy todir="@{destdir}">
-        <fileset dir="@{srcdir}" excludes="**/*.java"/>
-      </copy>
-       </sequential>
-  </macrodef>
-       
-  <macrodef name="test-macro" description="Executes junit tests.">
-       <attribute name="junit.output.dir" default="${junit.output.dir}"/>
-       <attribute name="junit.classpath" default="junit.classpath"/>
-       <attribute name="dataDir" default="${tests.src.dir}"/>
-       <attribute name="tempDir" default="${build.dir}/test"/>
-       <attribute name="threadNum" default="1"/>
-       <attribute name="threadTotal" default="1"/>
-        <attribute name="tests.nightly" default="${tests.nightly}"/>
-        <attribute name="tests.multiplier" default="${tests.multiplier}"/>
-
-    <sequential>
-           <condition property="runall">
-             <not><or>
-               <isset property="testcase" />
-               <isset property="testpackage" />
-               <isset property="testpackageroot" />
-             </or></not>
-           </condition>
-           <!-- <mkdir dir="@{tempDir}/@{pattern}"/> 
-           This is very loud and obnoxious. abuse touch instead for a "quiet" mkdir
-           -->
-       <touch file="@{tempDir}/@{threadNum}/quiet.ant" verbose="false" mkdirs="true"/>
-           <junit printsummary="off" haltonfailure="no" maxmemory="512M" tempdir="@{tempDir}/@{threadNum}"
-             errorProperty="tests.failed" failureProperty="tests.failed" forkmode="perBatch" dir="@{tempDir}/@{threadNum}">
-             <classpath refid="@{junit.classpath}"/>
-             <assertions>
-               <enable package="org.apache.lucene"/>
-               <enable package="org.apache.solr"/>
-             </assertions>
-             
-             <jvmarg line="${args}"/>
-       
-             <!-- allow tests to control debug prints -->
-             <sysproperty key="tests.verbose" value="${tests.verbose}"/>
-              <!-- set the locale tests should run with -->
-             <sysproperty key="tests.locale" value="${tests.locale}"/>
-              <!-- set the timezone tests should run with -->
-             <sysproperty key="tests.timezone" value="${tests.timezone}"/>
-              <!-- set the directory tests should run with -->
-              <sysproperty key="tests.directory" value="${tests.directory}"/>
-              <!-- set the line file source for oal.util.LineFileDocs -->
-              <sysproperty key="tests.linedocsfile" value="${tests.linedocsfile}"/>
-              <!-- set the number of times tests should run -->
-              <sysproperty key="tests.iter" value="${tests.iter}"/>
-              <!-- set the minimum number of times tests should run unless failure -->
-              <sysproperty key="tests.iter.min" value="${tests.iter.min}"/>
-              <!-- set the test seed -->
-              <sysproperty key="tests.seed" value="${tests.seed}"/>
-              <!-- set the Version that tests should run against -->
-              <sysproperty key="tests.luceneMatchVersion" value="${tests.luceneMatchVersion}"/>
-              <!-- for lucene we can be strict, and we don't want false fails even across methods -->
-              <sysproperty key="tests.cleanthreads" value="${tests.cleanthreads.sysprop}"/>
-              <!-- logging config file -->
-              <sysproperty key="java.util.logging.config.file" value="${tests.loggingfile}"/>
-          <!-- set whether or not nightly tests should run -->
-          <sysproperty key="tests.nightly" value="@{tests.nightly}"/>
-
-             <!-- TODO: create propertyset for test properties, so each project can have its own set -->
-              <sysproperty key="tests.multiplier" value="@{tests.multiplier}"/>
-             <sysproperty key="tempDir" file="@{tempDir}/@{threadNum}"/>
-
-             <sysproperty key="lucene.version" value="${dev.version}"/>
-              
-              <sysproperty key="testmethod" value="${testmethod}"/>
-              <sysproperty key="jetty.testMode" value="1"/>
-              <sysproperty key="jetty.insecurerandom" value="1"/>
-             <sysproperty key="solr.directoryFactory" value="org.apache.solr.core.MockDirectoryFactory"/>
-               
-             <formatter type="xml"/>
-             <formatter classname="${junit.details.formatter}" usefile="false"/>
-             <batchtest fork="yes" todir="@{junit.output.dir}" if="runall">
-               <fileset dir="@{dataDir}" includes="**/Test*.java,**/*Test.java" excludes="${junit.excludes}">
-                 <custom classname="${junit.parallel.selector}" classpathref="@{junit.classpath}">
-                   <param name="divisor" value="@{threadTotal}" />
-                   <param name="part" value="@{threadNum}" />
-                 </custom>
-               </fileset>
-             </batchtest>
-             <batchtest fork="yes" todir="@{junit.output.dir}" if="testpackage">
-               <fileset dir="@{dataDir}" includes="**/${testpackage}/**/Test*.java,**/${testpackage}/**/*Test.java" excludes="${junit.excludes}">
-                     <custom classname="${junit.parallel.selector}" classpathref="@{junit.classpath}">
-                       <param name="divisor" value="@{threadTotal}" />
-                       <param name="part" value="@{threadNum}" />
-                     </custom>
-               </fileset>
-             </batchtest>
-             <batchtest fork="yes" todir="@{junit.output.dir}" if="testpackageroot">
-               <fileset dir="@{dataDir}" includes="**/${testpackageroot}/Test*.java,**/${testpackageroot}/*Test.java" excludes="${junit.excludes}">
-                         <custom classname="${junit.parallel.selector}" classpathref="@{junit.classpath}">
-                           <param name="divisor" value="@{threadTotal}" />
-                           <param name="part" value="@{threadNum}" />
-                         </custom>
-               </fileset>
-             </batchtest>
-             <batchtest fork="yes" todir="@{junit.output.dir}" if="testcase">
-               <fileset dir="@{dataDir}" includes="**/${testcase}.java"/>
-             </batchtest>
-           </junit>
-           <fail if="tests.failed">Tests failed!</fail>
-       </sequential>
-  </macrodef>
-       
-  <target name="test" depends="compile-test,junit-mkdir,junit-sequential,junit-parallel" description="Runs unit tests"/>
-
-  <target name="junit-mkdir">
-       <mkdir dir="${junit.output.dir}"/>
-  </target>
-
-  <target name="junit-sequential" if="tests.sequential">
-    <test-macro/>
-  </target>
-
-  <target name="junit-parallel" unless="tests.sequential">
-    <parallel threadsPerProcessor="${tests.threadspercpu}">
-     <test-macro threadNum="1" threadTotal="8"/>
-     <test-macro threadNum="2" threadTotal="8"/>
-     <test-macro threadNum="3" threadTotal="8"/>
-     <test-macro threadNum="4" threadTotal="8"/>
-     <test-macro threadNum="5" threadTotal="8"/>
-     <test-macro threadNum="6" threadTotal="8"/>
-     <test-macro threadNum="7" threadTotal="8"/>
-     <test-macro threadNum="8" threadTotal="8"/>
-    </parallel>
-  </target>
-
-
-    <!--
-     If you want clover test code coverage, run this before the tests.  You need clover.jar and the license in your ANT classspath and you need to specify -Drun.clover=true on the command line.
-
-     See http://issues.apache.org/jira/browse/LUCENE-721
-     -->
-  <target name="clover" depends="clover.setup, clover.info" description="Instrument the Unit tests using Clover.  Requires a Clover 2.x license and clover.jar in the ANT classpath.  To use, specify -Drun.clover=true on the command line."/>
-
-  <target name="clover.setup" if="clover.enabled">
-    <taskdef resource="cloverlib.xml"/>
-    <mkdir dir="${clover.db.dir}"/>
-    <clover-setup initString="${clover.db.dir}/lucene_coverage.db" encoding="${build.encoding}">
-      <fileset dir="${src.dir}">
-        <include name="org/apache/**/*.java" />
-      </fileset>
-      <testsources dir="${tests-framework.src.dir}">
-        <include name="org/apache/**/*.java" />
-      </testsources>
-      <testsources dir="${tests.src.dir}">
-        <include name="org/apache/**/*.java" />
-      </testsources>
-    </clover-setup>
-  </target>
-
-  <target name="clover.info" unless="clover.present">
-       <echo>
-      Clover not found. Code coverage reports disabled.
-       </echo>
-  </target>
-
-  <target name="clover.check">
-       <fail unless="clover.present">
-         ##################################################################
-      Clover not found.
-      Please make sure clover.jar is in ANT_HOME/lib, or made available
-      to Ant using other mechanisms like -lib or CLASSPATH.
-      ##################################################################
-       </fail>
-  </target>
-    <!--
-     Run after Junit tests.
-     -->
-  <target name="generate-clover-reports" depends="clover.check, clover">
-    <mkdir dir="${clover.report.dir}"/>
-    <!-- This extra path is needed, because from a top-level ant run, the contrib tests would be not visible (report generation is only done on top-level not via subants) -->
-    <fileset dir="contrib" id="clover.contrib.test.src.files">
-      <include name="**/test/**/*.java"/>
-    </fileset>
-    <fileset dir="${tests-framework.src.dir}" id="clover.test.src.files">
-      <include name="**/*.java" />
-    </fileset>
-    <fileset dir="${tests.src.dir}" id="clover.test.src.files">
-      <include name="**/*.java" />
-    </fileset>
-    <fileset dir="${build.dir}" id="clover.test.result.files">
-      <include name="**/test/TEST-*.xml" />
-      <!-- do not include BW tests -->
-      <exclude name="backwards/**"/>
-    </fileset>
-    <clover-report>
-       <current outfile="${clover.report.dir}" title="${final.name}" numThreads="0">
-          <format type="html" filter="assert"/>
-          <testsources refid="clover.test.src.files"/>
-          <testsources refid="clover.contrib.test.src.files"/>
-          <testresults refid="clover.test.result.files"/>
-       </current>
-       <current outfile="${clover.report.dir}/clover.xml" title="${final.name}">
-          <format type="xml" filter="assert"/>
-          <testsources refid="clover.test.src.files"/>
-          <testsources refid="clover.contrib.test.src.files"/>
-          <testresults refid="clover.test.result.files"/>
-       </current>
-    </clover-report>
-  </target>
-
-  <target name="generate-test-reports" description="Generates test reports">
-    <mkdir dir="${junit.reports}"/>
-    <junitreport todir="${junit.output.dir}">
-      <!-- this fileset let's the task work for individual contribs,
-           as well as the project as a whole
-       -->
-      <fileset dir="${build.dir}">
-        <include name="**/test/TEST-*.xml"/>
-      </fileset>
-      <report format="frames" todir="${junit.reports}"/>
-    </junitreport>
-    
-    <mkdir dir="${junit.reports.backwards}"/>
-    <junitreport todir="${junit.output.dir.backwards}">
-      <!-- this fileset let's the task work for individual contribs,
-           as well as the project as a whole
-       -->
-      <fileset dir="${build.dir.backwards}">
-        <include name="**/test/TEST-*.xml"/>
-      </fileset>
-      <report format="frames" todir="${junit.reports.backwards}"/>
-    </junitreport>
-  </target>
-
-  <target name="jar" depends="jar-core">
-    <!-- convenience target to package core JAR -->
-  </target>
-
-  <target name="jar-src" depends="init">
-       <jarify basedir="${src.dir}" destfile="${build.dir}/${final.name}-src.jar"/>
-  </target>
-
-  <target name="default" depends="jar-core"/>
-
-  <target name="rat-sources-typedef">
-    <typedef resource="org/apache/rat/anttasks/antlib.xml" uri="antlib:rat.anttasks">
-      <classpath>
-        <fileset dir="." includes="rat*.jar"/>
-      </classpath>
-    </typedef>
-  </target>
-
-  <target name="rat-sources" depends="rat-sources-typedef"
-         description="runs the tasks over source and test files">
-    <rat:report xmlns:rat="antlib:org.apache.rat.anttasks">
-      <fileset dir="${src.dir}"/>
-      <fileset dir="${tests-framework.src.dir}"/>
-      <fileset dir="${tests.src.dir}"/>
-    </rat:report>
-  </target>
-
-  <!--+
-      | M A C R O S
-      +-->
-  <macrodef name="compile">
-    <attribute name="srcdir"/>
-    <attribute name="destdir"/>
-    <attribute name="javac.source" default="${javac.source}"/>
-    <attribute name="javac.target" default="${javac.target}"/>
-    <element name="nested" implicit="yes" optional="yes"/>
-
-    <sequential>
-      <mkdir dir="@{destdir}"/>
-      <javac
-        includeAntRuntime="${javac.includeAntRuntime}"
-        encoding="${build.encoding}"
-        srcdir="@{srcdir}"
-        destdir="@{destdir}"
-        deprecation="${javac.deprecation}"
-        debug="${javac.debug}"
-        source="@{javac.source}"
-        target="@{javac.target}">
-        <nested/>
-        <!-- <compilerarg line="-Xmaxwarns 10000000"/>
-        <compilerarg line="-Xmaxerrs 10000000"/> -->
-        <!-- for generics in Java 1.5: -->
-        <compilerarg line="-Xlint -Xlint:-deprecation -Xlint:-serial"/>
-      </javac>
-    </sequential>
-  </macrodef>
-
-  <macrodef name="invoke-javacc">
-    <attribute name="target"/>
-    <attribute name="outputDir"/>
-    <sequential>
-      <mkdir dir="@{outputDir}"/>
-      <javacc
-          target="@{target}"
-          outputDirectory="@{outputDir}"
-          debugTokenManager="${javacc.debug.tokenmgr}"
-          debugParser="${javacc.debug.parser}"
-          debuglookahead="${javacc.debug.lookahead}"
-          javacchome="${javacc.home}"
-          jdkversion="${javac.source}"
-      />
-      <fixcrlf srcdir="@{outputDir}" includes="*.java" encoding="UTF-8">
-        <containsregexp expression="Generated.*By.*JavaCC"/>
-      </fixcrlf>
-    </sequential>
-  </macrodef>
-
-  <property name="failonjavadocwarning" value="true"/>
-  <macrodef name="invoke-javadoc">
-    <element name="sources" optional="yes"/>
-    <attribute name="destdir"/>
-       <attribute name="title" default="${Name} ${version} API"/>
-    <attribute name="overview" default="${src.dir}/overview.html"/>
-    <sequential>
-      <copy todir="@{destdir}/../prettify" overwrite="false">
-        <fileset dir="${prettify.dir}"/>
-      </copy>
-      <record name="@{destdir}/log_javadoc.txt" action="start" append="no"/>
-      <javadoc
-          overview="@{overview}"
-          packagenames="org.apache.lucene.*,org.apache.solr.*"
-          destdir="@{destdir}"
-          access="${javadoc.access}"
-          encoding="${build.encoding}"
-          charset="${javadoc.charset}"
-          docencoding="${javadoc.charset}"
-          author="true"
-          version="true"
-          use="true"
-          failonerror="true"
-          source="${ant.java.version}"
-          link="${javadoc.link}"
-          windowtitle="${Name} ${version} API"
-          doctitle="@{title}"
-          stylesheetfile="@{destdir}/../prettify/stylesheet+prettify.css"
-          maxmemory="${javadoc.maxmemory}"
-          bottom="Copyright &amp;copy; ${year} Apache Software Foundation.  All Rights Reserved.">
-        <tag name="lucene.experimental" 
-       description="WARNING: This API is experimental and might change in incompatible ways in the next release."/>
-        <tag name="lucene.internal"
-        description="NOTE: This API is for internal purposes only and might change in incompatible ways in the next release."/>
-       <link offline="true" packagelistLoc="${javadoc.dir}"/>
-        <header><![CDATA[
-           <script src="{@docRoot}/../prettify/prettify.js" type="text/javascript"></script>
-           <script language="JavaScript">window.onload=function(){windowTitle();prettyPrint();}</script>
-        ]]></header>
-       
-       <sources />
-               
-        <classpath refid="javadoc.classpath"/>
-      </javadoc>
-      <record name="@{destdir}/log_javadoc.txt" action="stop"/>
-
-      <delete>
-        <fileset file="@{destdir}/log_javadoc.txt">
-          <or>
-            <not>
-              <containsregexp expression="\[javadoc\]\s*[1-9][0-9]*\s*warning"/>
-            </not>
-            <and>
-              <!-- allow 1 warning, if there is also a bootstrap warning generated by Java7 -->
-              <containsregexp expression="\[javadoc\]\s*warning.*bootstrap"/>
-              <containsregexp expression="\[javadoc\]\s*1\s*warning"/>
-            </and>
-          </or>
-        </fileset>
-      </delete>
-
-      <fail message="Javadocs warnings were found!">
-        <condition>
-          <and>
-            <available file="@{destdir}/log_javadoc.txt"/>
-            <istrue value="${failonjavadocwarning}"/>
-          </and>
-        </condition>
-      </fail>
-
-
-   </sequential>
-  </macrodef>
-
-  <macrodef name="contrib-crawl">
-    <attribute name="target" default=""/>
-    <attribute name="failonerror" default="true"/>
-    <sequential>
-      <subant target="@{target}" failonerror="@{failonerror}" inheritall="false">
-        <propertyset refid="uptodate.and.compiled.properties"/>
-        <fileset dir="." includes="contrib/*/build.xml"/>
-      </subant>
-    </sequential>
-  </macrodef>
-
-  <!-- VALIDATION work -->
-  <!--
-   >find . -name lib
-./lucene/backwards/lib
-./lucene/contrib/ant/lib
-./lucene/contrib/benchmark/lib
-./lucene/contrib/db/bdb/lib
-./lucene/contrib/db/bdb-je/lib
-./lucene/contrib/icu/lib
-./lucene/contrib/lucli/lib
-./lucene/contrib/queries/lib
-./lucene/lib
-
-
-   -->
-  <target name="check-legal-lucene" depends="compile-tools">
-    <java classname="org.apache.lucene.validation.DependencyChecker" failonerror="true" fork="true">
-      <classpath>
-        <path refid="tools.runtime.classpath" />
-      </classpath>
-      <!-- TODO: it might be better to just automatically find all directories that contain jar files, but that could take a
-       long time.  This should be faster, but we could miss a directory
-       TODO: convert this to just check whichever library is currently being built
-       -->
-      <!-- Lucene  -->
-      <arg value="-c" />
-      <arg value="${common.dir}/lib" />
-      <arg value="-c" />
-      <arg value="${common.dir}/contrib/benchmark/lib" />
-      <arg value="-c" />
-      <arg value="${common.dir}/contrib/icu/lib" />
-
-      <arg value="-c" />
-      <arg value="${common.dir}/contrib/lucli/lib" />
-      <arg value="-c" />
-      <arg value="${common.dir}/contrib/queries/lib" />
-    </java>
-  </target>
-
-  <target name="check-legal" depends="check-legal-lucene"/>
-
-  <target name="validate-lucene" depends="check-legal-lucene" unless="validated-lucene"/>
-
-  <!-- Generic placeholder target for if we add other validation tasks -->
-  <target name="validate" depends="validate-lucene"/>
-
-  <property name="svn.export.dir" location="${build.dir}/svn-export"/>
-  <macrodef name="svn-export-source"
-            description="Runs 'svn export' with the same URL and revision as the current working copy.">
-    <attribute name="source.dir"/>
-    <sequential>
-      <delete dir="${svn.export.dir}" includeemptydirs="true" failonerror="false"/>
-      <get-svn-info directory="@{source.dir}"/>
-      <exec dir="@{source.dir}" executable="${svn.exe}" failonerror="true">
-        <arg value="export"/>
-        <arg value="--native-eol"/>
-        <arg value="LF"/>
-        <arg value="-r"/>
-        <arg value="${svn.Revision}"/>
-        <arg value="${svn.URL}"/>
-        <arg value="${svn.export.dir}"/>
-      </exec>
-    </sequential>
-  </macrodef>
-
-  <macrodef name="get-svn-info"
-            description="Populates properties svn.URL and svn.Revision using 'svn info'.">
-    <attribute name="directory"/>
-    <sequential>
-      <exec dir="." executable="${svnversion.exe}" outputproperty="svn.ver"/>
-      <fail message="A subversion checkout is required for this target">
-        <condition>
-          <equals arg1="${svn.ver}" arg2="exported"/>
-        </condition>
-      </fail>
-      <exec dir="@{directory}" executable="${svn.exe}" outputproperty="svn.info" failonerror="true">
-        <arg value="info"/>
-      </exec>
-      <loadproperties>
-        <propertyresource name="svn.info"/>
-        <filterchain>
-          <linecontainsregexp>
-            <regexp pattern="(URL|Revision):"/>
-          </linecontainsregexp>
-          <replacestring from=": " to="="/>
-          <prefixlines prefix="svn."/>
-        </filterchain>
-      </loadproperties>
-    </sequential>
-  </macrodef>
-
-  <macrodef name="make-checksums" description="Macro for building checksum files">
-    <attribute name="file"/>
-    <sequential>
-      <echo>Building checksums for '@{file}'</echo>
-      <checksum file="@{file}" algorithm="md5" format="MD5SUM" forceoverwrite="yes" readbuffersize="65536"/>
-      <checksum file="@{file}" algorithm="sha1" format="MD5SUM" forceoverwrite="yes" readbuffersize="65536"/>
-    </sequential>
-  </macrodef>
-
-  <macrodef name="sign-artifacts-macro">
-    <attribute name="artifacts.dir"/>
-    <sequential>
-      <delete failonerror="false">
-        <fileset dir="@{artifacts.dir}">
-          <include name="**/*.asc"/>
-        </fileset>
-      </delete>
-
-      <available property="gpg.input.handler" classname="org.apache.tools.ant.input.SecureInputHandler"
-                 value="org.apache.tools.ant.input.SecureInputHandler"/>
-      <!--else:--><property name="gpg.input.handler" value="org.apache.tools.ant.input.DefaultInputHandler"/>
-      <input message="Enter GPG keystore password: >" addproperty="gpg.passphrase">
-        <handler classname="${gpg.input.handler}" />
-      </input>
-
-      <apply executable="${gpg.exe}" inputstring="${gpg.passphrase}"
-             dest="@{artifacts.dir}" type="file" maxparallel="1" verbose="yes">
-        <arg value="--passphrase-fd"/>
-        <arg value="0"/>
-        <arg value="--batch"/>
-        <arg value="--armor"/>
-        <arg value="--default-key"/>
-        <arg value="${gpg.key}"/>
-        <arg value="--output"/>
-        <targetfile/>
-        <arg value="--detach-sig"/>
-        <srcfile/>
-
-        <fileset dir="@{artifacts.dir}">
-          <include name="**/*.jar"/>
-          <include name="**/*.zip"/>
-          <include name="**/*.tgz"/>
-          <include name="**/*.pom"/>
-        </fileset>
-        <globmapper from="*" to="*.asc"/>
-      </apply>
-    </sequential>
-  </macrodef>
-
-  <property name="rc" value="rc0"/>
-  <property name="remote.staging.dir" value="public_html/staging_area/${rc}/${version}"/>
-  <property name="keyfile" value="${user.home}/.ssh/id_rsa"/>
-  <property name="scp.user" value="${user.name}"/>
-  <!--keys.dir is the location of the https://svn.apache.org/repos/asf/lucene/java/dist/ directory-->
-  <property name="keys.dir" value="${common.dir}/../../dist"/>
-  <macrodef name="copy-to-stage-macro">
-    <attribute name="artifacts.dir"/>
-    <sequential>
-      <sshexec host="people.apache.org"
-               username="${scp.user}"
-               keyfile="${keyfile}"
-               command="mkdir -p ${remote.staging.dir}"/>
-      <echo>Uploading artifacts to ${scp.user}@people.apache.org:${remote.staging.dir}</echo>
-      <scp todir="${scp.user}@people.apache.org:${remote.staging.dir}"
-           username="${scp.user}"
-           keyfile="${keyfile}"
-           verbose="true">
-        <fileset dir="${artifacts.dir}"/>
-        <fileset dir="${keys.dir}">
-          <include name="KEYS"/>
-        </fileset>
-      </scp>
-    </sequential>
-  </macrodef>
-
-</project>