<?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="lucene" default="default" basedir="."
         xmlns:jacoco="antlib:org.jacoco.ant"
         xmlns:artifact="antlib:org.apache.maven.artifact.ant">

  <import file="common-build.xml"/>

  <path id="classpath">
    <pathelement location="${common.dir}/build/core/classes/java"/>
  </path>

  <patternset id="binary.build.dist.patterns"
              includes="docs/,**/*.jar,**/*.war"
              excludes="poms/**,**/*-src.jar,**/*-javadoc.jar"
  />
  <patternset id="binary.root.dist.patterns"
              includes="LICENSE.txt,NOTICE.txt,README.md,
                        MIGRATE.md,JRE_VERSION_MIGRATION.md,
                        SYSTEM_REQUIREMENTS.md,
                        CHANGES.txt,
                        **/lib/*.jar,
                        licenses/**,
                        */docs/,**/README*"
              excludes="build/**,site/**,tools/**,**/lib/*servlet-api*.jar,dev-docs/**"
  />

  <!-- ================================================================== -->
  <!-- Prepares the build directory                                       -->
  <!-- ================================================================== -->

  <target name="test-core" description="Runs unit tests for the core Lucene code">
    <ant dir="${common.dir}/core" target="test" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <!-- "-clover.load" is *not* a useless dependency. do not remove -->
  <target name="test" depends="-clover.load, -init-totals, test-core, test-test-framework, test-modules, -check-totals"
          description="Runs all unit tests (core, modules and back-compat)"
  />
  <target name="test-nocompile">
    <fail message="Target 'test-nocompile' will not run recursively.  First change directory to the module you want to test."/>
  </target>


  <target name="pitest" depends="pitest-modules"
          description="Runs pitests (core, modules and back-compat)"
  />

  <target name="beast">
    <fail message="The Beast only works inside of individual modules"/>
  </target>

  <target name="compile-core" depends="compile-lucene-core"/>

  <!-- lucene/test-framework is excluded from compilation -->
  <target name="compile" depends="init,compile-lucene-core,compile-codecs"
          description="Compiles core, codecs, and all modules">
    <modules-crawl target="compile-core"/>
  </target>

  <!-- Validation (license/notice/api checks). -->
  <target name="validate" depends="check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />

  <!-- Validation here depends on compile-tools: but we want to compile modules' tools too -->
  <target name="compile-tools" depends="common.compile-tools">
    <modules-crawl target="compile-tools"/>
  </target>

  <target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
    <property name="skipRegexChecksum" value=""/>
    <license-check-macro dir="${basedir}" licensedir="${common.dir}/licenses">
      <additional-filters>
        <replaceregex pattern="^jetty([^/]+)$" replace="jetty" flags="gi" />
        <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" />
        <replaceregex pattern="javax\.servlet([^/]+)$" replace="javax.servlet" flags="gi" />
        <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" />
      </additional-filters>
    </license-check-macro>
  </target>

  <target name="check-lib-versions" depends="compile-tools,resolve,load-custom-tasks"
          description="Verify that the '/org/name' keys in ivy-versions.properties are sorted lexically and are neither duplicates nor orphans, and that all dependencies in all ivy.xml files use rev=&quot;$${/org/name}&quot; format.">
    <lib-versions-check-macro dir="${common.dir}/.."
                              centralized.versions.file="${common.dir}/ivy-versions.properties"
                              top.level.ivy.settings.file="${common.dir}/top-level-ivy-settings.xml"
                              ivy.resolution-cache.dir="${ivy.resolution-cache.dir}"
                              ivy.lock-strategy="${ivy.lock-strategy}"
                              common.build.dir="${common.build.dir}"
                              ignore.conflicts.file="${common.dir}/ivy-ignore-conflicts.properties"/>
  </target>

  <!-- -install-forbidden-apis is *not* a useless dependency. do not remove -->
  <target name="check-forbidden-apis" depends="-install-forbidden-apis" description="Check forbidden API calls in compiled class files">
    <subant target="check-forbidden-apis" failonerror="true" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
      <fileset dir="core" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
      <fileset dir="tools" includes="build.xml"/>
    </subant>
    <modules-crawl target="check-forbidden-apis"/>
  </target>

  <target name="resolve">
    <sequential>
      <ant dir="test-framework" target="resolve" inheritall="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
      <ant dir="${common.dir}/tools" target="resolve" inheritAll="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
      <modules-crawl target="resolve"/>
    </sequential>
  </target>

  <target name="documentation" description="Generate all documentation"
    depends="javadocs,changes-to-html,process-webpages"/>
  <target name="javadoc" depends="javadocs"/>
  <target name="javadocs" description="Generate javadoc" depends="javadocs-lucene-core, javadocs-modules, javadocs-test-framework"/>

  <target name="documentation-lint" depends="-ecj-javadoc-lint,-documentation-lint-unsupported" if="documentation-lint.supported"
          description="Validates the generated documentation (HTML errors, broken links,...)">
    <!-- we use antcall here, otherwise ANT will run all dependent targets: -->
    <antcall target="-documentation-lint"/>
  </target>

  <!-- we check for broken links across all documentation -->
  <target name="-documentation-lint" depends="documentation">
    <echo message="Checking for broken links..."/>
    <check-broken-links dir="build/docs"/>
    <echo message="Checking for missing docs..."/>
    <!-- TODO: change this level=method -->
    <check-missing-javadocs dir="build/docs" level="class"/>
    <!-- too many classes to fix overall to just enable
         the above to be level="method" right now, but we
         can prevent the modules that don't have problems
         from getting any worse -->
    <!-- analyzers-common: problems -->
    <check-missing-javadocs dir="build/docs/analyzers-icu" level="method"/>
    <!-- analyzers-kuromoji: problems -->
    <check-missing-javadocs dir="build/docs/analyzers-morfologik" level="method"/>
    <check-missing-javadocs dir="build/docs/analyzers-phonetic" level="method"/>
    <!-- analyzers-smartcn: problems -->
    <check-missing-javadocs dir="build/docs/analyzers-stempel" level="method"/>
    <!-- benchmark: problems -->
    <check-missing-javadocs dir="build/docs/classification" level="method"/>
    <!-- codecs: problems -->
    <!-- core: problems -->
    <check-missing-javadocs dir="build/docs/demo" level="method"/>
    <check-missing-javadocs dir="build/docs/expressions" level="method"/>
    <check-missing-javadocs dir="build/docs/facet" level="method"/>
    <!-- grouping: problems -->
    <!-- highlighter: problems -->
    <check-missing-javadocs dir="build/docs/join" level="method"/>
    <check-missing-javadocs dir="build/docs/memory" level="method"/>
    <!-- misc: problems -->
    <!-- queries: problems -->
    <!-- queryparser: problems -->
    <!-- sandbox: problems -->
    <!-- spatial-extras: problems -->
    <check-missing-javadocs dir="build/docs/suggest" level="method"/>
    <!-- test-framework: problems -->

    <!-- too much to fix core/ for now, but enforce full javadocs for key packages -->
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/util/automaton" level="method"/>
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/analysis" level="method"/>
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/document" level="method"/>
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/search/similarities" level="method"/>
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/index" level="method"/>
    <check-missing-javadocs dir="build/docs/core/org/apache/lucene/codecs" level="method"/>

    <check-missing-javadocs dir="build/docs/spatial3d" level="method"/>
  </target>
  
  <target name="-ecj-javadoc-lint" depends="compile,compile-test,-ecj-javadoc-lint-unsupported,-ecj-resolve" if="ecj-javadoc-lint.supported">
    <subant target="-ecj-javadoc-lint" failonerror="true" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
      <fileset dir="core" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
    </subant>
    <modules-crawl target="-ecj-javadoc-lint"/>
  </target>

  <target name="process-webpages" depends="resolve-markdown">
    <makeurl property="process-webpages.buildfiles" separator="|">
      <fileset dir="." includes="**/build.xml" excludes="build.xml,analysis/*,build/**,tools/**,site/**"/>
    </makeurl>
    <property name="Codec.java" location="core/src/java/org/apache/lucene/codecs/Codec.java"/>
    <loadfile srcfile="${Codec.java}" property="defaultCodec" encoding="UTF-8">
      <filterchain>
        <!--  private static Codec defaultCodec   =   LOADER    .   lookup    (   "LuceneXXX"                 )   ; -->
        <containsregex pattern="^.*defaultCodec\s*=\s*LOADER\s*\.\s*lookup\s*\(\s*&quot;([^&quot;]+)&quot;\s*\)\s*;.*$" replace="\1"/>
        <fixcrlf eol="unix" eof="remove" />
        <deletecharacters chars="\n"/>
      </filterchain>
    </loadfile>

    <!--
      The XSL input file is ignored completely, but XSL expects one to be given,
      so we pass ourself (${ant.file}) here. The list of module build.xmls is given
      via string parameter, that must be splitted by the XSL at '|'.
    --> 
    <xslt in="${ant.file}" out="${javadoc.dir}/index.html" style="site/xsl/index.xsl" force="true">
      <outputproperty name="method" value="html"/>
      <outputproperty name="version" value="4.0"/>
      <outputproperty name="encoding" value="UTF-8"/>
      <outputproperty name="indent" value="yes"/>
      <param name="buildfiles" expression="${process-webpages.buildfiles}"/>
      <param name="version" expression="${version}"/>
      <param name="defaultCodec" expression="${defaultCodec}"/>
    </xslt>
    
    <markdown todir="${javadoc.dir}">
      <fileset dir="." includes="MIGRATE.md,JRE_VERSION_MIGRATION.md,SYSTEM_REQUIREMENTS.md"/>
      <globmapper from="*.md" to="*.html"/>
    </markdown>

    <copy todir="${javadoc.dir}">
      <fileset dir="site/html"/>
    </copy>
  </target>
  
  <target name="javadocs-modules" description="Generate javadoc for modules classes">
    <modules-crawl target="javadocs"/>
  </target>

  <!-- rat-sources-typedef is *not* a useless dependency. do not remove -->
  <target name="rat-sources" depends="rat-sources-typedef,common.rat-sources">
    <subant target="rat-sources" failonerror="true" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
      <fileset dir="core" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
      <fileset dir="tools" includes="build.xml"/>
    </subant>
    <modules-crawl target="rat-sources"/>
  </target>

  <!-- ================================================================== -->
  <!-- D I S T R I B U T I O N                                            -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->
  <target name="package" depends="jar-core, jar-test-framework, build-modules, init-dist, documentation"/>

  <target name="nightly" depends="test, package-tgz">
  </target>

  <!-- ================================================================== -->
  <!-- Packages the distribution with zip                                 -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->
  <target name="package-zip" depends="package"
    description="--> Generates the Lucene distribution as .zip">

    <delete file="${dist.dir}/lucene-${version}.zip"/>
    <zip destfile="${dist.dir}/lucene-${version}.zip">
      <zipfileset prefix="lucene-${version}" dir=".">
        <patternset refid="binary.root.dist.patterns"/>
      </zipfileset>
      <zipfileset prefix="lucene-${version}" dir="${build.dir}">
        <patternset refid="binary.build.dist.patterns"/>
      </zipfileset>
      <zipfileset prefix="lucene-${version}" dir="${build.dir}" includes="**/*.sh,**/*.bat" filemode="755"/>
    </zip>
    <make-checksums file="${dist.dir}/lucene-${version}.zip"/>
  </target>

  <!-- ================================================================== -->
  <!-- packages the distribution with tar-gzip                            -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->

  <!-- TODO: fix this stuff to not be a duplicate of the zip logic above! -->
  <target name="package-tgz" depends="package"
    description="--> Generates the lucene distribution as .tgz">

    <delete file="${dist.dir}/lucene-${version}.tgz"/>
    <tar tarfile="${dist.dir}/lucene-${version}.tgz"
      longfile="gnu" compression="gzip">
      <tarfileset prefix="lucene-${version}" dir=".">
        <patternset refid="binary.root.dist.patterns"/>
      </tarfileset>
      <tarfileset prefix="lucene-${version}" dir="${build.dir}">
        <patternset refid="binary.build.dist.patterns"/>
      </tarfileset>
      <tarfileset prefix="lucene-${version}" dir="${build.dir}" includes="**/*.sh,**/*.bat" filemode="755"/>
    </tar>
    <make-checksums file="${dist.dir}/lucene-${version}.tgz"/>
  </target>

  <!-- ================================================================== -->
  <!-- packages the distribution with zip and tar-gzip                    -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->
  <target name="package-all-binary" depends="package-zip, package-tgz"
    description="--> Generates the .tgz and .zip distributions"/>

  <!-- ================================================================== -->
  <!-- same as package-all. it is just here for compatibility.            -->
  <!-- ================================================================== -->
  <!--                                                                    -->
  <!-- ================================================================== -->
  <target name="dist" depends="package-all-binary"/>

  <!-- ================================================================== -->
  <!-- S O U R C E  D I S T R I B U T I O N                               -->
  <!-- ================================================================== -->
    <target name="init-dist" >

        <!-- Package is not called first if packaging src standalone, so the dist.dir may not exist -->
        <mkdir dir="${build.dir}"/>
        <mkdir dir="${dist.dir}"/>
        <mkdir dir="${maven.dist.dir}"/>
    </target>

  <!-- ================================================================== -->
  <!-- Packages the sources with tar-gzip               -->
  <!-- ================================================================== -->
  <target name="package-tgz-src" depends="init-dist"
          description="--> Generates the Lucene source distribution as .tgz">
    <property name="source.package.file"
              location="${dist.dir}/lucene-${version}-src.tgz"/>
    <delete file="${source.package.file}"/>
    <export-source source.dir="."/>

    <!-- Exclude javadoc package-list files under licenses incompatible with the ASL -->
    <delete dir="${src.export.dir}/tools/javadoc/java8"/>

    <!-- because we only package the "lucene/" folder, we have to adjust dir to work on: -->
    <property name="local.src.export.dir" location="${src.export.dir}/lucene"/>
    
    <build-changes changes.src.file="${local.src.export.dir}/CHANGES.txt"
                   changes.target.dir="${local.src.export.dir}/docs/changes"
                   changes.product="lucene"/>
    <tar tarfile="${source.package.file}" compression="gzip" longfile="gnu">
      <tarfileset prefix="lucene-${version}" dir="${local.src.export.dir}"/>
    </tar>
    <make-checksums file="${source.package.file}"/>
  </target>


  <!-- ================================================================== -->
  <!-- Packages the sources from local working copy with tar-gzip     -->
  <!-- ================================================================== -->
  <target name="package-local-src-tgz" depends="init-dist"
    description="--> Packages the Lucene source from the local working copy">
    <mkdir dir="${common.dir}/build"/>
    <property name="source.package.file"
              value="${common.dir}/build/lucene-${version}-src.tgz"/>
    <delete file="${source.package.file}"/>
    <tar tarfile="${source.package.file}" compression="gzip" longfile="gnu">
      <tarfileset prefix="lucene-${version}" dir=".">
        <patternset refid="lucene.local.src.package.patterns"/>
      </tarfileset>
    </tar>
  </target>

  <!-- ================================================================== -->
  <!-- same as package-tgz-src. it is just here for compatibility.        -->
  <!-- ================================================================== -->
  <target name="dist-src" depends="package-tgz-src"/>

  <target name="dist-all" depends="dist, dist-src, -dist-changes"/>

  <!-- copy changes/ to the release folder -->
  <target name="-dist-changes">
   <copy todir="${dist.dir}/changes">
     <fileset dir="${build.dir}/docs/changes"/>
   </copy>
  </target>

  <target name="prepare-release-no-sign" depends="clean, dist-all, generate-maven-artifacts"/>
  <target name="prepare-release" depends="prepare-release-no-sign, sign-artifacts"/>

  <target name="-dist-maven" depends="install-maven-tasks">
    <sequential>
      <m2-deploy pom.xml="${filtered.pom.templates.dir}/pom.xml"/>        <!-- Lucene/Solr grandparent POM -->
      <m2-deploy pom.xml="${filtered.pom.templates.dir}/lucene/pom.xml"/> <!-- Lucene parent POM -->
      <subant target="-dist-maven" failonerror="true" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
        <fileset dir="${common.dir}/core" includes="build.xml"/>
        <fileset dir="${common.dir}/test-framework" includes="build.xml"/>
      </subant>
      <modules-crawl target="-dist-maven"/>
    </sequential>
  </target>

  <target name="-install-to-maven-local-repo" depends="install-maven-tasks">
    <sequential>
      <m2-install pom.xml="${filtered.pom.templates.dir}/pom.xml"/>        <!-- Lucene/Solr grandparent POM -->
      <m2-install pom.xml="${filtered.pom.templates.dir}/lucene/pom.xml"/> <!-- Lucene parent POM -->
      <subant target="-install-to-maven-local-repo" failonerror="true" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
        <fileset dir="${common.dir}/core" includes="build.xml"/>
        <fileset dir="${common.dir}/test-framework" includes="build.xml"/>
      </subant>
      <modules-crawl target="-install-to-maven-local-repo"/>
    </sequential>
  </target>

  <target name="generate-maven-artifacts" depends="-unpack-lucene-tgz">
    <ant dir=".." target="resolve" inheritall="false"/>
    <antcall target="-filter-pom-templates" inheritall="false"/>
    <antcall target="-dist-maven" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </antcall>
  </target>
  
  <target name="-validate-maven-dependencies" depends="compile-tools, install-maven-tasks, load-custom-tasks">
    <sequential>
      <subant target="-validate-maven-dependencies" failonerror="true" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
        <fileset dir="${common.dir}/core" includes="build.xml"/>
        <fileset dir="${common.dir}/test-framework" includes="build.xml"/>
      </subant>
      
      <modules-crawl target="-validate-maven-dependencies"/>
    </sequential>
  </target>
  
  <!-- ================================================================== -->
  <!-- support for signing the artifacts using gpg                        -->
  <!-- ================================================================== -->
  <target name="sign-artifacts">
    <sign-artifacts-macro artifacts.dir="${dist.dir}"/>
  </target>

  <target name="build-modules" depends="compile-test"
          description="Builds all additional modules and their tests">
    <modules-crawl target="build-artifacts-and-tests"/>
  </target>

  <target name="compile-test" description="Builds core, codecs, test-framework, and modules tests">
    <sequential>
      <ant dir="core" target="compile-test" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
      <ant dir="test-framework" target="compile-test" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
      <modules-crawl target="compile-test"/>
    </sequential>
  </target>

  <target name="test-test-framework">
      <ant dir="test-framework" target="test" inheritall="false">
        <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
  </target>
  
  <target name="test-modules">
    <modules-crawl target="test"/>
  </target>

  <target name="changes-to-html">
    <build-changes changes.product="lucene"/>
  </target>

  <target name="pitest-modules" depends="compile-test">
    <modules-crawl target="pitest" failonerror="false"/>
  </target>

  <target name="jacoco" description="Generates JaCoCo code coverage reports" depends="-jacoco-install">
    <!-- run jacoco for each module -->
    <ant dir="${common.dir}/core" target="jacoco" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
    <ant dir="${common.dir}/test-framework" target="jacoco" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
    <modules-crawl target="jacoco"/>

    <!-- produce aggregate report -->
    <property name="jacoco.output.dir" location="${jacoco.report.dir}/lucene-all"/>
    <!-- try to clean output dir to prevent any confusion -->
    <delete dir="${jacoco.output.dir}" failonerror="false"/>
    <mkdir dir="${jacoco.output.dir}"/>

    <jacoco:report>
      <executiondata>
        <fileset dir="${common.dir}/build" includes="**/jacoco.db"/>
      </executiondata>
      <structure name="${Name} aggregate JaCoCo coverage report">
        <classfiles>
          <fileset dir="${common.dir}/build">
             <include name="**/classes/java/**/*.class"/>
             <exclude name="tools/**"/>
          </fileset>
        </classfiles>
        <!-- TODO: trying to specify source files could maybe work, but would
             double the size of the reports -->
      </structure>
      <html destdir="${jacoco.output.dir}" footer="Copyright ${year} Apache Software Foundation.  All Rights Reserved."/>
    </jacoco:report>
  </target>

  <!--
   Committer helpers
   -->

  <property name="patch.file" value="${basedir}/../patches/${patch.name}"/>
  <!-- Apply a patch.  Assumes  patch can be applied in the basedir.
  -Dpatch.name assumes the patch is located in ${basedir}/../patches/${patch.name}
  -Dpatch.file means the patch can be located anywhere on the file system
  -->
  <target name="apply-patch" depends="clean" description="Apply a patch file.  Set -Dpatch.file, or -Dpatch.name when the patch is in the directory ../patches/">
    <patch patchfile="${patch.file}" strip="0"/>
  </target>

  <target name="jar-test-framework">
    <ant dir="${common.dir}/test-framework" target="jar-core" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <!-- Override common-build.xml definition to check for the jar already being up-to-date -->
  <target name="jar-core" depends="check-lucene-core-uptodate,compile-lucene-core" unless="lucene-core.uptodate">
    <ant dir="${common.dir}/core" target="jar-core" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
    <property name="core.compiled" value="true"/>
    <property name="lucene-core.uptodate" value="true"/>
  </target>

  <target name="jar" depends="jar-core,jar-test-framework"
          description="Jars core, codecs, test-framework, and all modules">
    <modules-crawl target="jar-core"/>
  </target>

  <target name="jar-src" description="create source jars for all modules">
    <ant dir="${common.dir}/core" target="jar-src" inheritAll="false" />
    <ant dir="${common.dir}/test-framework" target="jar-src" inheritAll="false" />
    <modules-crawl target="jar-src"/>
  </target>

  <target name="get-jenkins-line-docs" unless="enwiki.exists">
    <sequential>
      <!-- TODO: can get .lzma instead (it's ~17% smaller) but there's no builtin ant support...? -->
      <get src="http://home.apache.org/~mikemccand/enwiki.random.lines.txt.bz2"
           dest="enwiki.random.lines.txt.bz2"/>
      <bunzip2 src="enwiki.random.lines.txt.bz2" dest="enwiki.random.lines.txt"/>
    </sequential>
  </target>

  <target name="jar-checksums" depends="resolve">
    <jar-checksum-macro srcdir="${common.dir}" dstdir="${common.dir}/licenses"/>
  </target>

  <target name="regenerate">
    <subant target="regenerate" failonerror="true" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
      <fileset dir="core" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
    </subant>
    <modules-crawl target="regenerate"/>
  </target>

  <target name="-append-module-dependencies-properties">
    <sequential>
      <ant dir="core" target="common.-append-module-dependencies-properties" inheritall="false"/>
      <ant dir="test-framework" target="common.-append-module-dependencies-properties" inheritall="false"/>
      <modules-crawl target="-append-module-dependencies-properties"/>
    </sequential>
  </target>
</project>
