<?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="solr" default="usage">
  <description>Solr</description>
  
  <target name="usage" description="Prints out instructions">
    <echo message="Welcome to the Solr project!" />
    <echo message="Use 'ant example' to create a runnable example configuration." />
    <echo message="Use 'ant run-example' to create and run the example." />
    <echo message="And for developers:"/>
    <echo message="Use 'ant clean' to clean compiled files." />
    <echo message="Use 'ant compile' to compile the source code." />
    <echo message="Use 'ant dist' to build the project WAR and JAR files." />
    <echo message="Use 'ant javadocs' to build javadocs under build/docs/api" />
    <echo message="Use 'ant generate-maven-artifacts' to generate maven artifacts." />
    <echo message="Use 'ant package' to generate zip, tgz for distribution." />
    <!--<echo message="Use 'ant luke' to start luke.  see: http://luke.googlecode.com" />-->
    <echo message="Use 'ant test' to run unit tests." />
  </target>

  <import file="common-build.xml"/>
  
  <!-- ========================================================================= -->
  <!-- ============================== USER TASKS =============================== -->
  <!-- ========================================================================= -->
 
  <target name="example" description="Creates a runnable example configuration."
          depends="dist-contrib,dist-war">
    <copy file="${dist}/${fullnamever}.war"
          tofile="${example}/webapps/${ant.project.name}.war"/>
    <jar destfile="${example}/exampledocs/post.jar"
         basedir="${dest}/solr-core/classes/java"
         includes="org/apache/solr/util/SimplePostTool*.class">
      <manifest>
        <attribute name="Main-Class" value="org.apache.solr.util.SimplePostTool"/>
      </manifest>
    </jar>
    <delete includeemptydirs="true">
      <fileset dir="${example}/work" includes="**/*"/>
    </delete>
    <echo>See ${example}/README.txt for how to run the Solr example configuration.</echo>
  </target>
 
  <target name="run-example" depends="example"
          description="Run Solr interactively, via Jetty.  -Dexample.debug=true to enable JVM debugger">
    <property name="example.solr.home" location="example/solr"/>
    <property name="example.data.dir" location="example/solr/data"/>
    <property name="example.debug.suspend" value="n"/>
    <property name="example.jetty.port" value="8983"/>
    <condition property="example.jvm.line" value="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=${example.debug.suspend},address=5005">
      <isset property="example.debug"/>
    </condition>
    <property name="example.jvm.line" value=""/>
    <property name="example.heap.size" value="512M"/>
    <java jar="${example}/start.jar" fork="true" dir="${example}" maxmemory="${example.heap.size}">
      <jvmarg line="${example.jvm.line}"/>
      <sysproperty key="solr.solr.home" file="${example.solr.home}"/>
      <sysproperty key="solr.data.dir" file="${example.data.dir}"/>
      <sysproperty key="jetty.port" value="${example.jetty.port}"/>
    </java>
  </target>
 
  <!-- setup proxy for download tasks -->
  <condition property="proxy.specified">
    <or>
      <isset property="proxy.host"/>
      <isset property="proxy.port"/>
      <isset property="proxy.user"/>
    </or>
  </condition>
 
  <target name="proxy.setup" if="proxy.specified">
    <setproxy proxyhost="${proxy.host}" proxyport="${proxy.port}" proxyuser="${proxy.user}" proxypassword="${proxy.password}"/>
  </target>

  <!--LUCENE-3286: Luke is incompatible with new XML QP location and target is not flexible
  when it comes to incompatible changes.  Update when Luke has updated.
  <target name="compile-xml-query-parser">
  	<ant dir="${common.dir}/../modules/queryparser" target="compile-core" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <property  name="luke.version" value="1.0.1"/>
  <available file="luke/luke-${luke.version}.jar" property="luke.jar.exists" />
  <target name="luke-download" unless="luke.jar.exists" depends="proxy.setup,compile-xml-query-parser">
    <mkdir dir="luke"/>
    <get src="http://luke.googlecode.com/files/luke-${luke.version}.jar"
         dest="luke/luke-${luke.version}.jar"/>
  </target>
  <path id="luke.classpath">
    <pathelement location="${common.dir}/build/classes/java" />
    <pathelement location="${common.dir}/../modules/queryparser/build/classes/java" />
  </path>
  <target name="luke" depends="luke-download">
    <java fork="true"
          classname="org.getopt.luke.Luke"
          logError="true"
          failonerror="true">
      <classpath>
        <fileset dir="luke">
          <include name="luke-${luke.version}.jar"/>
        </fileset>
        <path refid="classpath"/>
        <path refid="luke.classpath"/>
        <path refid="test.classpath"/>
      </classpath>
    </java>
  </target>-->
  
  <!-- ========================================================================= -->
  <!-- ========================== BUILD/TEST TASKS ============================= -->
  <!-- ========================================================================= -->
  
  <target name="compile" description="Compile the source code."
          depends="compile-core, compile-contrib"/>
  <target name="test" description="Validate, then run core, solrj, and contrib unit tests."
          depends="validate-solr, test-core, test-contrib"/>
  <target name="test-core" description="Runs the core and solrj unit tests."
          depends="test-solr-core, test-solrj"/>
  <target name="compile-test" description="Compile unit tests."
          depends="compile-solr-test-framework, compile-test-solr-core, compile-test-solrj, compile-test-contrib, test-jsp"/>
  <target name="javadocs" description="Calls javadocs-all, javadocs-solrj, and javadocs-test-framework"
          depends="javadocs-all,javadocs-solrj,javadocs-test-framework"/>
  <target name="compile-core" depends="compile-solr-core" unless="solr.core.compiled"/>
  
  <!-- Solr core targets -->
  <target name="test-solr-core" description="Test solr core">
    <ant dir="core" target="test" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  
  <!-- Solrj targets -->
  <target name="test-solrj" description="Test java client">
    <ant dir="solrj" target="test" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  <target name="javadocs-solrj">
    <ant dir="solrj" target="javadocs" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <!-- Solr contrib targets -->
  <target name="test-contrib" description="Run contrib unit tests.">
    <contrib-crawl target="test" failonerror="true"/>
  </target>
  
  <!-- test-framework targets -->
  <target name="javadocs-test-framework">
    <ant dir="test-framework" target="javadocs" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  
  <!-- Webapp targets -->
  <target name="test-jsp">
    <ant dir="webapp" target="test" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  
  <!-- Clean targets -->
  <target name="clean" description="Cleans compiled files and other temporary artifacts.">
    <delete dir="build" />
    <delete dir="dist" />
    <delete dir="package" />
    <delete dir="example/solr/lib" />
  </target>
  
  <target name="clean-dest"
          description="Cleans out build/ but leaves build/docs/, dist/ and package/ alone.  This allows us to run nightly and clover together in Hudson">
    <delete includeemptydirs="true" >
      <fileset dir="build">
        <exclude name="docs/"/>
      </fileset>
    </delete>
  </target>

  <!-- Clover targets -->
  <target name="clover" depends="clover.setup, clover.info"
          description="Instrument the Unit tests using Clover.  Requires a Clover 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">
      <fileset dir="core/src/java"/>
      <fileset dir="solrj/src/java"/>
      <fileset dir="contrib/analysis-extras/src/java"/>
      <fileset dir="contrib/clustering/src/java"/>
      <fileset dir="contrib/dataimporthandler/src/java"/>
      <fileset dir="contrib/dataimporthandler-extras/src/java"/>
      <fileset dir="contrib/extraction/src/java"/>
      <fileset dir="contrib/uima/src/java"/>
      <testsources dir="test-framework/src/java"/>
      <testsources dir="core/src/test"/>
      <testsources dir="solrj/src/test"/>
      <testsources dir="contrib/analysis-extras/src/test" />
      <testsources dir="contrib/clustering/src/test" />
      <testsources dir="contrib/dataimporthandler/src/test" />
      <testsources dir="contrib/dataimporthandler-extras/src/test" />
      <testsources dir="contrib/extraction/src/test" />
      <testsources dir="contrib/uima/src/test" />
    </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}"/>
    <clover-report>
       <current outfile="${clover.report.dir}/clover.xml"
                title="${fullnamever}">
          <format type="xml"/>
       </current>
       <current outfile="${clover.report.dir}" title="${fullnamever}">
          <format type="html"/>
       </current>
    </clover-report>
  </target>

  
  <!-- ========================================================================= -->
  <!-- ===================== DISTRIBUTION-RELATED TASKS ======================== -->
  <!-- ========================================================================= -->
 
  <target name="copy-to-stage">
    <copy-to-stage-macro artifacts.dir="${package.dir}"/>
  </target>
  
  <target name="dist"
          description="Creates the Solr distribution files."
          depends="dist-solrj, dist-core, dist-test-framework, dist-contrib, dist-war" />
 
  <target name="dist-test-framework" depends="init-dist"
          description="Creates the Solr test-framework JAR.">
    <ant dir="test-framework" target="dist" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  
  <target name="dist-contrib" depends="init-dist"
          description="Make the contribs ready for distribution">
    <contrib-crawl target="dist" failonerror="true" />
  </target>
  
  <target name="dist-war"
          description="Creates the Solr WAR Distribution file.">
    <ant dir="webapp" target="dist" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>
  
  <target name="prepare-release"
          depends="clean, package, generate-maven-artifacts, sign-artifacts"/>
 
  <!-- make a distribution -->
  <target name="package" depends="package-src-tgz,create-package"/>
 
  <!-- Makes a tarball from running "svn export" at the root level.    -->
  <!-- Copies NOTICE.txt and LICENSE.txt from solr/ to the root level. -->
  <target name="package-src-tgz" depends="init-dist"
          description="Packages the Solr Source Distribution">
    <property name="source.package.file"
              value="${package.dir}/${fullnamever}-src.tgz"/>
    <delete file="${source.package.file}" failonerror="false" />
    <svn-export-source source.dir=".."/>
    <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
      <tarfileset dir="${svn.export.dir}"
                  prefix="${fullnamever}"
                  excludes="example/**/*.sh example/**/bin/"/>
      <tarfileset dir="${svn.export.dir}"
                  prefix="${fullnamever}"
                  filemode="755"
                  includes="example/**/*.sh example/**/bin/"/>
      <tarfileset dir="${svn.export.dir}/solr" prefix="${fullnamever}"
                  includes="NOTICE.txt,LICENSE.txt"/>
    </tar>
    <make-checksums file="${source.package.file}"/>
  </target>
 
  <target name="package-local-src-tgz"
          description="Packages the Solr and Lucene sources from the local working copy">
    <mkdir dir="${common-solr.dir}/build"/>
    <property name="source.package.file"
              value="${common-solr.dir}/build/${fullnamever}-src.tgz"/>
    <delete file="${source.package.file}" failonerror="false" />

    <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
      <tarfileset dir="../modules" prefix="${fullnamever}/modules" excludes="**/build/" />
      <tarfileset dir=".." prefix="${fullnamever}" includes="*.txt *.xml dev-tools/" />
      <tarfileset dir="." prefix="${fullnamever}" includes="LICENSE.txt NOTICE.txt"/>
      <tarfileset dir="." prefix="${fullnamever}/solr"
                  excludes="build ${package.dir}/** ${dist}/**
                            example/webapps/*.war example/exampledocs/post.jar
                            lib/README.committers.txt **/data/ **/logs/*
                            **/*.sh **/bin/ scripts/ site-src/build/
                            .idea/ **/*.iml **/pom.xml" />
      <tarfileset dir="." prefix="${fullnamever}/solr"
                  includes="core/src/test-files/solr/lib/classes/empty-file-main-lib.txt" />
      <tarfileset dir="." filemode="755" prefix="${fullnamever}/solr"
                  includes="**/*.sh **/bin/ scripts/"
                  excludes="build/**"/>
      <tarfileset dir="../lucene" prefix="${fullnamever}/lucene">
        <patternset refid="lucene.local.src.package.patterns"/>
      </tarfileset>
    </tar>
  </target>

  <target name="create-package"
          description="Packages the Solr Binary Distribution"
          depends="init-dist, dist, example, javadocs">
    <mkdir dir="${dest}/${fullnamever}"/>
    <delete includeemptydirs="true">
      <fileset dir="${example}/work" includes="**/*"/>
      <fileset dir="${dest}/${fullnamever}" includes="**/*"/>
    </delete>
 
    <delete file="${package.dir}/${fullnamever}.tgz" failonerror="false" />
    <delete file="${package.dir}/${fullnamever}.zip" failonerror="false" />
 
    <mkdir dir="${dest}/contrib-lucene-libs-to-package"/>
    <delete dir="${dest}/contrib-lucene-libs-to-package" includes="**/*"/>
    <contrib-crawl target="add-lucene-libs-to-package"/>
 
    <tar destfile="${package.dir}/${fullnamever}.tgz" compression="gzip" longfile="gnu">
      <tarfileset dir="."
                  prefix="${fullnamever}"
                  includes="LICENSE.txt NOTICE.txt CHANGES.txt README.txt example/**
                             client/README.txt client/ruby/solr-ruby/** contrib/**/lib/**
                             contrib/**/README.txt contrib/**/CHANGES.txt"
                  excludes="lib/README.committers.txt **/data/ **/logs/* **/classes/ **/*.sh
                             **/bin/ **/*.iml **/*.ipr **/*.iws **/pom.xml **/*pom.xml.template" />
      <tarfileset dir="${dest}/contrib-lucene-libs-to-package"
                  prefix="${fullnamever}"
                  includes="**" />
      <tarfileset dir="."
                  filemode="755"
                  prefix="${fullnamever}"
                  includes="example/**/*.sh example/**/bin/" />
      <tarfileset dir="."
                  prefix="${fullnamever}"
                  includes="dist/*.jar dist/*.war dist/solrj-lib/*"
                  excludes="**/*.tgz **/*.zip **/*.md5 **/*src*.jar **/*docs*.jar" />
      <tarfileset dir="${dest}/docs"
                  prefix="${fullnamever}/docs" />
    </tar>
    <make-checksums file="${package.dir}/${fullnamever}.tgz"/>
 
    <untar compression="gzip" src="${package.dir}/${fullnamever}.tgz" dest="${dest}"/>
 
    <!--
        This is a list of text file patterns to convert to CRLF line-ending style.
        Shell scripts and files included in shell scripts should not be converted.
        NB: The line-ending conversion process will mangle non-UTF8-encoded files.
       -->
    <fixcrlf srcdir="${dest}/${fullnamever}"
             encoding="UTF-8"
             eol="crlf"
             includes="**/*.alg **/*.cfg **/*.cgi **/*.cpp **/*.css **/*.csv **/*.dtd
                        **/*.erb **/*.fcgi **/.htaccess **/*.htm **/*.html **/*.incl
                        **/*.java **/*.javacc **/*.jflex **/*.jflex-macro **/*.jj
                        **/*.js **/*.json **/*.jsp **/*LICENSE **/package-list **/*.pl
                        **/*.pom **/*pom.xml.template **/*.properties **/*.py
                        **/*.rake **/Rakefile **/*.rb **/*.rbbi **/README* **/*.rhtml
                        **/*.rslp **/*.rxml **/*.script **/*.svg **/*.tsv **/*.txt
                        **/UPGRADING **/USAGE **/*.uxf **/*.vm **/*.xcat **/*.xml
                        **/*.xsl **/*.xslt **/*.yml"
             excludes="**/stopwordsWrongEncoding.txt **/gb18030-example.xml"
        />
 
    <zip destfile="${package.dir}/${fullnamever}.zip">
      <zipfileset dir="${dest}/${fullnamever}"
                  prefix="${fullnamever}"
                  excludes="**/*.sh **/bin/ src/scripts/" />
      <zipfileset dir="${dest}/${fullnamever}"
                  prefix="${fullnamever}"
                  includes="**/*.sh **/bin/ src/scripts/"
                  filemode="755" />
    </zip>
    <make-checksums file="${package.dir}/${fullnamever}.zip"/>
  </target>
 
  <target name="sign-artifacts">
    <sign-artifacts-macro artifacts.dir="${package.dir}"/>
  </target>
 
  <target name="javadocs-dep">
    <copy failonerror="false" todir="${dest}/docs">
      <fileset dir="${common-solr.dir}/site" />
    </copy>
  </target>
 
  <target name="javadocs-all" depends="prep-lucene-jars,javadocs-dep"
          description="Generate javadoc for core, java client and contrib">
    <sequential>
      <mkdir dir="${dest}/docs/api"/>
 
      <!-- TODO: optimize this, thats stupid here: -->
      <subant target="module-jars-to-solr">
        <fileset dir="contrib/analysis-extras" includes="build.xml"/>
      </subant>

      <path id="javadoc.classpath">
        <path refid="classpath"/>
        <fileset dir="${dest}/contrib">
          <include name="**/lucene-libs/**/*.jar"/>
        </fileset>
        <fileset dir="contrib">
          <include name="**/lib/**/*.jar"/>
          <exclude name="**/analysis-extras/lib/**/*icu4j*.jar"/> <!-- extraction/lib/ has this one -->
        </fileset>
        <pathelement location="${dest}/solr-solrj/classes/java"/>
      </path>
 
      <invoke-javadoc destdir="${dest}/docs/api"
                      overview="core/src/java/overview.html">
        <sources>
          <packageset dir="core/src/java" />
          <packageset dir="solrj/src/java" />
          <packageset dir="contrib/analysis-extras/src/java"/>
          <packageset dir="contrib/clustering/src/java"/>
          <packageset dir="contrib/dataimporthandler/src/java"/>
          <packageset dir="contrib/dataimporthandler-extras/src/java"/>
          <packageset dir="contrib/extraction/src/java"/>
          <packageset dir="contrib/uima/src/java"/>
          <group title="Core" packages="org.apache.*" />
          <group title="SolrJ" packages="org.apache.solr.common.*,org.apache.solr.client.solrj*" />
          <group title="contrib: Clustering" packages="org.apache.solr.handler.clustering*" />
          <group title="contrib: DataImportHandler" packages="org.apache.solr.handler.dataimport*" />
          <group title="contrib: Solr Cell" packages="org.apache.solr.handler.extraction*" />
          <group title="contrib: Solr UIMA" packages="org.apache.solr.uima*" />
        </sources>
      </invoke-javadoc>
    </sequential>
  </target>
 
  <target name="generate-maven-artifacts">
    <taskdef uri="antlib:org.apache.maven.artifact.ant"
             resource="org/apache/maven/artifact/ant/antlib.xml"
             classpathref="maven-ant-tasks.classpath" />
    <sequential>
      <ant target="get-maven-poms" dir=".." inheritall="false"/>
      <m2-deploy pom.xml="pom.xml"/> <!-- Solr parent POM -->
      <subant target="dist-maven" inheritall="false" >
        <fileset dir="core" includes="build.xml"/>
        <fileset dir="solrj" includes="build.xml"/>
        <fileset dir="test-framework" includes="build.xml"/>
        <fileset dir="webapp" includes="build.xml"/>
      </subant>
      <contrib-crawl target="dist-maven"/>
    </sequential>
  </target>
 
 
  <!-- ========================================================================= -->
  <!-- ========================= COMMITTERS' HELPERS =========================== -->
  <!-- ========================================================================= -->
 
  <target name="stub-factories" depends="dist-core,lucene-jars-to-solr"
          description="Generates stub factories as needed">
 
    <path id="stub.jars">
      <!-- this needs to be a list of all jars that might contain
            classes we want to build factories for
         -->
      <fileset dir="${lucene-libs}">
        <include name="*.jar"/>
      </fileset>
      <fileset dir="${dist}">
        <include name="*.jar"/>
        <exclude name="*solrj*.jar"/>
      </fileset>
    </path>
    <pathconvert property="jar.list" pathsep=" " refid="stub.jars" />
    <path id="missing.factories.classpath">
      <pathelement path="${common.dir}/contrib/queries/lib/jakarta-regexp-1.4.jar"/>
      <path refid="test.classpath"/>
    </path>
    <property name="stub.list" value="${dest}/need-stub-factories.txt" />
    <java fork="false"
          classname="org.apache.solr.util.SuggestMissingFactories"
          logError="true"
          failonerror="true"
          classpathref="missing.factories.classpath"
          output="${stub.list}">
      <arg line="${jar.list}" />
    </java>
    <fail unless="stub.src.path">...
 
      This task requires that the property 'stub.src.path' be set.
 
      It must contain a "path" listing directories containing source
      files that this task should use when looking for classes that
      need factories created, the format is platform specific --
      typically it is  colon seperated in Unix, semi-colon seperated
      on windows, ie:
 
      ant stub-factories -Dstub.src.path="core/src:../lucene/contrib:../lucene/src/java:../modules/analysis"
 
      FYI: The file ${stub.list} contains a list of classes
      that seem to need stub factories. (if java files can be found to
      use as guides for creating them).
    </fail>
 
    <pathconvert pathsep=" " property="stub.src.dirs">
      <path>
        <pathelement path="${stub.src.path}"/>
      </path>
    </pathconvert>
    <exec executable="perl"
          dir="core/src/java/org/apache/solr/analysis/"
          failonerror="true">
      <arg value="${common-solr.dir}/dev-tools/stub-analysis-factory-maker.pl"/>
      <redirector input="${stub.list}">
        <!-- place to put special case classes we want to ignore -->
        <inputfilterchain>
          <linecontainsregexp negate="true">
            <!-- only for internal Solr highlighting purposes -->
            <regexp pattern="TokenOrderingFilter"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- no way to leverage this in Solr -->
            <regexp pattern="CachingTokenFilter"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- no way to leverage this in Solr -->
            <regexp pattern="HyphenationCompoundWordTokenFilter"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- no way to leverage these in Solr (yet) -->
            <regexp pattern="Sink|Tee"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- Solr already has a different impl for this -->
            <regexp pattern="SynonymTokenFilter"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- solr and lucene both have one? ? ? ? -->
            <regexp pattern="LengthFilter"/>
          </linecontainsregexp>
          <linecontainsregexp negate="true">
            <!-- solr provides it's own SnowballPorterFilter variant -->
            <regexp pattern="SnowballFilter"/>
          </linecontainsregexp>
        </inputfilterchain>
      </redirector>
      <arg line="${stub.src.dirs}"/>
    </exec>
  </target>
 
  <target name="build-site" depends="svn-up"
          description="Committers' Helper: build the site and copy to site/.">
    <delete dir="site-src/build"/>
    <exec executable="forrest" dir="site-src"/>
    <copy todir="site">
      <fileset dir="site-src/build/site"/>
    </copy>
    <antcall target="svn-up"/>
  </target>
  
  <target name="svn-up">
    <exec executable="${svn.exe}">
      <arg value="update"/>
    </exec>
  </target>
</project>
