<?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" 
         xmlns:jacoco="antlib:org.jacoco.ant"
         xmlns:ivy="antlib:org.apache.ivy.ant">

  <description>Solr</description>
  
  <target name="usage" description="Prints out instructions">
    <echo message="Welcome to the Solr project!" />
    <echo message="Use 'ant server' to create the Solr server." />
    <echo message="Use 'bin/solr' to run the Solr after it is created." />
    <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 JAR files." />
    <echo message="Use 'ant documentation' to build documentation." />
    <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="server" depends="dist-contrib"
          description="Creates a Solr server">
    <ant dir="webapp" target="dist" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
    <jar destfile="${example}/exampledocs/post.jar">
      <fileset dir="${dest}/solr-core/classes/java">
        <include name="org/apache/solr/util/SimplePostTool*.class"/>
        <include name="org/apache/solr/util/RTimer.class"/>
        <include name="org/apache/solr/util/RTimer$*.class"/>
      </fileset>
      <manifest>
        <attribute name="Main-Class" value="org.apache.solr.util.SimplePostTool"/>
      </manifest>
    </jar>
    <echo>See ${common-solr.dir}/README.txt for how to run the Solr server.</echo>
  </target>

  <target name="run-example" depends="server"
          description="Run Solr interactively, via Jetty.  -Dexample.debug=true to enable JVM debugger">
    <property name="example.solr.home" location="${server.dir}/solr"/>
    <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="${server.dir}/start.jar" fork="true" dir="${server.dir}" maxmemory="${example.heap.size}">
      <jvmarg line="${example.jvm.line}"/>
      <arg value="--module=http"/>
      <sysproperty key="solr.solr.home" file="${example.solr.home}"/>
      <sysproperty key="jetty.port" value="${example.jetty.port}"/>
      <sysproperty key="jetty.home" value="${server.dir}"/>
    </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}/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/core/classes/java" />
    <pathelement location="${common.dir}/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 ============================= -->
  <!-- ========================================================================= -->

  <!-- solr/test-framework is excluded from compilation -->
  <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="-init-totals, test-core, test-contrib, -check-totals"/>

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

    <!-- produce aggregate report -->
    <property name="jacoco.output.dir" location="${jacoco.report.dir}/solr-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-solr.dir}/build" includes="**/jacoco.db"/>
      </executiondata>
      <structure name="${Name} aggregate JaCoCo coverage report">
        <classfiles>
          <fileset dir="${common-solr.dir}/build">
             <include name="**/classes/java/**/*.class"/>
             <exclude name="solr-test-framework/**"/>
          </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>

  <!-- "-clover.load" is *not* a useless dependency. do not remove -->
  <target name="test-core" description="Runs the core and solrj unit tests."
          depends="-clover.load, test-solr-core, test-solrj"/>
  <target name="pitest" description="Validate, then run core, solrj, and contrib unit tests."
          depends="pitest-core, pitest-contrib"/>
  <target name="beast">
    <fail message="The Beast only works inside of individual modules"/>
  </target>
  <target name="compile-test" description="Compile core, solrj, and contrib unit tests, and solr-test-framework."
          depends="compile-solr-test-framework, compile-test-solr-core, compile-test-solrj, compile-test-contrib"/>
  <target name="javadocs" description="Calls javadocs-all, javadocs-solrj, and javadocs-test-framework"
          depends="define-lucene-javadoc-url,javadocs-solr-core,javadocs-solrj,javadocs-test-framework,javadocs-contrib"/>
  <target name="documentation" description="Generate all documentation"
    depends="javadocs,changes-to-html,process-webpages"/>
  <target name="compile-core" depends="compile-solr-core" unless="solr.core.compiled"/>
  
  <target name="process-webpages" depends="define-lucene-javadoc-url,resolve-pegdown">
    <makeurl property="process-webpages.buildfiles" separator="|">
      <fileset dir="." includes="core/build.xml,test-framework/build.xml,solrj/build.xml,contrib/**/build.xml"/>
    </makeurl>
    <!--
      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/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="luceneJavadocUrl" expression="${lucene.javadoc.url}"/>
    </xslt>
    
    <pegdown todir="${javadoc.dir}">
      <fileset dir="site" includes="**/*.mdtext"/>
      <globmapper from="*.mdtext" to="*.html"/>
    </pegdown>

    <copy todir="${javadoc.dir}">
      <fileset dir="site/assets" />
    </copy>
  </target>

  <target name="jar" depends="jar-core,jar-solrj,jar-solr-test-framework,jar-contrib"
          description="Jar solr core, solrj, solr-test-framework, and all contribs"/>

  <target name="jar-src" 
          description="Create source jars for solr core, solrj, solr-test-framework, and all contribs">
    <ant dir="core" target="jar-src" inheritAll="false"/>
    <ant dir="solrj" target="jar-src" inheritAll="false"/>
    <ant dir="test-framework" target="jar-src" inheritAll="false"/>
    <contrib-crawl target="jar-src"/>
  </target>

  <!-- 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>

  <target name="jar-core">
    <ant dir="${common-solr.dir}/core" target="jar-core" 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>

  <!-- Solr contrib targets -->
  <target name="test-contrib" description="Run contrib unit tests.">
    <contrib-crawl target="test" failonerror="true"/>
  </target>

  <!-- Pitest targets -->
  <target name="pitest-core" description="PiTest solr core">
    <ant dir="core" target="pitest" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <target name="pitest-solrj" description="PiTest java client">
    <ant dir="solrj" target="pitest" inheritAll="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
    </ant>
  </target>

  <target name="pitest-contrib" description="Run contrib PiTests.">
    <contrib-crawl target="pitest" failonerror="false"/>
  </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>
    
  <!-- Validation (license/notice/api checks). -->
  <target name="validate" depends="check-example-lucene-match-version,check-licenses,rat-sources,check-forbidden-apis" description="Validate stuff." />

  <target name="check-example-lucene-match-version">
    <property name="configsets.dir" value="${server.dir}/solr/configsets"/>
    <!-- validates all configset solrconfig files-->
    <fail message="Some example solrconfig.xml files under ${configsets.dir} do not refer to the correct luceneMatchVersion: ${tests.luceneMatchVersion}">
      <condition>
        <resourcecount when="greater" count="0">
          <fileset dir="${configsets.dir}" includes="**/solrconfig.xml">
            <not>
              <contains text="&lt;luceneMatchVersion&gt;${tests.luceneMatchVersion}&lt;" casesensitive="no"/>
            </not>
          </fileset>
        </resourcecount>
      </condition>
    </fail>
    <!-- validates remaining example solrconfig files-->
    <fail message="Some example solrconfig.xml files under ${example} do not refer to the correct luceneMatchVersion: ${tests.luceneMatchVersion}">
      <condition>
        <resourcecount when="greater" count="0">
          <fileset dir="${example}" includes="**/solrconfig.xml">
            <not>
              <contains text="&lt;luceneMatchVersion&gt;${tests.luceneMatchVersion}&lt;" casesensitive="no"/>
            </not>
          </fileset>
        </resourcecount>
      </condition>
    </fail>
    <!-- Count the immediate sub-directories of the configsets dir to ensure all sub-dirs have a solrconfig.xml -->
    <resourcecount property="count.subdirs">
      <dirset dir="${configsets.dir}" includes="*"/>
    </resourcecount>
    <!-- Ensure there is at least one sub-directory -->
    <fail message="No sub-directories found under ${configsets.dir}">
      <condition>
        <equals arg1="${count.subdirs}" arg2="0"/>
      </condition>
    </fail>
    <fail message="At least one sub-directory under ${configsets.dir} does not have a solrconfig.xml file">
      <condition>
        <resourcecount when="ne" count="${count.subdirs}">
          <fileset dir="${configsets.dir}" includes="**/solrconfig.xml"/>
        </resourcecount>
      </condition>
    </fail>
  </target>

  <target name="check-licenses" depends="compile-tools,resolve,load-custom-tasks" description="Validate license stuff.">
    <license-check-macro dir="${basedir}" licensedir="${common-solr.dir}/licenses">
      <additional-excludes>
        <exclude name="example/exampledocs/post.jar" />
        <exclude name="server/solr-webapp/**" />
        <exclude name="package/**"/>
      </additional-excludes>
      <additional-filters>
        <replaceregex pattern="jetty([^/]+)$" replace="jetty" flags="gi" />
        <!-- start.jar comes from jetty, .jar already stripped by checker defaults --> 
        <replaceregex pattern="^start$" replace="jetty" flags="gi" />
        <replaceregex pattern="slf4j-([^/]+)$" replace="slf4j" flags="gi" />
        <replaceregex pattern="(bcmail|bcprov)-([^/]+)$" replace="\1" flags="gi" />
      </additional-filters>
    </license-check-macro>
  </target>
  
  <target name="check-forbidden-apis" depends="-install-forbidden-apis" description="Check forbidden API calls in compiled class files.">
    <subant target="check-forbidden-apis" inheritall="false" >
      <propertyset refid="uptodate.and.compiled.properties"/>
      <fileset dir="core" includes="build.xml"/>
      <fileset dir="solrj" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
    </subant>
    <contrib-crawl target="check-forbidden-apis" failonerror="true"/>
  </target>

  <!-- rat sources -->
  <!-- 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" inheritall="false" >
      <propertyset refid="uptodate.and.compiled.properties"/>
      <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="rat-sources" failonerror="true"/>
  </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="server/solr/lib" />
    <delete dir="example/solr/lib" />
    <delete dir="example/cloud" />
    <delete dir="example/techproducts" />
    <delete dir="example/schemaless" />
    <delete includeemptydirs="true">
      <fileset dir="bin">
        <include name="*.pid" />
      </fileset>
      <fileset dir="example">
        <include name="**/data/**/*" />
        <exclude name="**/.gitignore" />
      </fileset>
      <fileset dir="server">
        <include name="**/data/**/*" />
        <include name="solr/zoo_data/" />
        <include name="start.jar" />
        <include name="logs/*" />
        <include name="webapps" />
        <include name="solr-webapp/**/*" />
        <exclude name="**/.gitignore" />
      </fileset>      
    </delete>
  </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>

  <!-- ========================================================================= -->
  <!-- ===================== 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" />
 
  <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="prepare-release-no-sign" depends="clean, package, generate-maven-artifacts"/>
  <target name="prepare-release" depends="prepare-release-no-sign, sign-artifacts"/>
 
  <!-- make a distribution -->
  <target name="package" depends="package-src-tgz,create-package,-dist-changes,-dist-keys"/>

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

  <!-- copy KEYS to the release folder -->
  <target name="-dist-keys">
   <get src="http://people.apache.org/keys/group/lucene.asc" 
        dest="${package.dir}/KEYS"/>
  </target>
 
  <!-- Makes a tarball of the source.    -->
  <!-- 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"
              location="${package.dir}/${fullnamever}-src.tgz"/>
    <delete file="${source.package.file}" failonerror="false" />
    <export-source source.dir=".."/>

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

    <build-changes changes.src.file="${src.export.dir}/solr/CHANGES.txt"
                   changes.target.dir="${src.export.dir}/solr/docs/changes"
                   changes.product="SOLR"/>

    <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
      <tarfileset dir="${src.export.dir}/lucene"
                  includes="CHANGES.txt"
                  fullpath="${fullnamever}/solr/LUCENE_CHANGES.txt" />
      <tarfileset dir="${src.export.dir}"
                  prefix="${fullnamever}"
                  excludes="solr/example/**/*.sh solr/example/**/bin/ solr/scripts/**"/>
      <tarfileset dir="${src.export.dir}"
                  prefix="${fullnamever}"
                  filemode="755"
                  includes="solr/example/**/*.sh solr/example/**/bin/ solr/scripts/**"/>
      <tarfileset dir="${src.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" />

    <!-- includes/excludes requires a relative path -->
    <property name="dist.rel" location="${dist}" relative="yes"/>
    <property name="package.dir.rel" location="${package.dir}" relative="yes"/>

    <tar destfile="${source.package.file}" compression="gzip" longfile="gnu">
      <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.rel}/** ${dist.rel}/**
                            example/lib/**
                            **/*.jar 
                            lib/README.committers.txt **/data/ **/logs/*
                            **/*.sh **/bin/ scripts/ 
                            .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">
    <antcall inheritall="true">
      <param name="called.from.create-package" value="true"/>
      <propertyset refid="uptodate.and.compiled.properties"/>
      <target name="init-dist"/>
      <target name="dist"/>
      <target name="server"/>
      <target name="documentation"/>
    </antcall>
    <mkdir dir="${dest}/${fullnamever}"/>
    <delete includeemptydirs="true">
      <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="../lucene"
                  includes="CHANGES.txt"
                  fullpath="${fullnamever}/LUCENE_CHANGES.txt" />
      <tarfileset dir="."
                  prefix="${fullnamever}"
                  includes="LICENSE.txt NOTICE.txt CHANGES.txt README.txt SYSTEM_REQUIREMENTS.txt
                            bin/** server/** example/** contrib/**/lib/** contrib/**/README.txt 
                            licenses/**"
                  excludes="licenses/README.committers.txt **/data/ **/logs/* 
                            **/classes/ **/*.sh **/ivy.xml **/build.xml
                            **/bin/ **/*.iml **/*.ipr **/*.iws **/pom.xml 
                            **/*pom.xml.template server/etc/test/" />
      <tarfileset dir="${dest}/contrib-lucene-libs-to-package"
                  prefix="${fullnamever}"
                  includes="**" />
      <tarfileset dir="."
                  filemode="755"
                  prefix="${fullnamever}"
                  includes="bin/** server/**/*.sh example/**/*.sh example/**/bin/"
                  excludes="server/etc/test/**" />
      <tarfileset dir="."
                  prefix="${fullnamever}"
                  includes="dist/*.jar
                            dist/solrj-lib/*
                            dist/test-framework/**"
                  excludes="**/*.tgz **/*.zip **/*.md5 **/*src*.jar **/*docs*.jar **/*.sha1" />
      <tarfileset dir="${javadoc.dir}"
                  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="changes-to-html" depends="define-lucene-javadoc-url">
    <build-changes changes.product="SOLR"/>
  </target>
 
  <target name="sign-artifacts">
    <sign-artifacts-macro artifacts.dir="${package.dir}"/>
  </target>
 
  <target name="resolve" depends="resolve-example,resolve-server">
     <sequential>
     <ant dir="core" target="resolve" inheritall="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
     <ant dir="solrj" target="resolve" inheritall="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
     <ant dir="test-framework" target="resolve" inheritall="false">
         <propertyset refid="uptodate.and.compiled.properties"/>
      </ant>
     <contrib-crawl target="resolve"/>
    </sequential>
  </target>

  <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>

  <!-- TODO: does solr have any other docs we should check? -->
  <!-- TODO: also integrate checkJavaDocs.py, which does more checks -->
  <target name="-documentation-lint" depends="documentation">
    <jtidy-macro>
       <!-- NOTE: must currently exclude deprecated-list due to a javadocs bug (as of 1.7.0_09)
            javadocs generates invalid XML if you deprecate a method that takes a parameter
            with a generic type -->
      <fileset dir="build/docs" includes="**/*.html" excludes="**/deprecated-list.html,quickstart.html"/>
    </jtidy-macro>
    <echo message="Checking for broken links..."/>
    <check-broken-links dir="${javadoc.dir}"/>
    <echo message="Checking for malformed docs..."/>
    <!-- TODO: add missing docs for all classes and bump this to level=class -->
    <check-missing-javadocs dir="${javadoc.dir}" level="package"/>
  </target>

  <target name="-ecj-javadoc-lint" depends="compile,compile-test,jar-test-framework,-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="solrj" includes="build.xml"/>
      <fileset dir="test-framework" includes="build.xml"/>
    </subant>
    <contrib-crawl target="-ecj-javadoc-lint"/>
  </target>

  <!-- define-lucene-javadoc-url is *not* a useless dependencies. Do not remove! -->
  <target name="-dist-maven" depends="install-maven-tasks,define-lucene-javadoc-url">
    <sequential>
      <m2-deploy pom.xml="${filtered.pom.templates.dir}/solr/pom.xml"/>    <!-- Solr parent POM -->
      <subant target="-dist-maven" inheritall="false" >
        <propertyset refid="uptodate.and.compiled.properties"/>
        <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>
  
  <target name="generate-maven-artifacts" depends="-unpack-solr-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="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="-validate-maven-dependencies"/>
    </sequential>
  </target>
   
  <!-- ========================================================================= -->
  <!-- ========================= COMMITTERS' HELPERS =========================== -->
  <!-- ========================================================================= -->
  
  <property name="analysis-common.res.dir"  value="../lucene/analysis/common/src/resources/org/apache/lucene/analysis"/>
  <property name="analysis-kuromoji.res.dir"  value="../lucene/analysis/kuromoji/src/resources/org/apache/lucene/analysis"/>
  <property name="analysis.conf.dest" value="${example}/solr/collection1/conf/lang"/>

  <target name="sync-analyzers"
          description="Committers' Helper: synchronizes analysis resources (e.g. stoplists) to the example">
    <!-- arabic -->
    <copy verbose="true" file="${analysis-common.res.dir}/ar/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ar.txt"/>
    <!-- bulgarian -->
    <copy verbose="true" file="${analysis-common.res.dir}/bg/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_bg.txt"/>
    <!-- catalan -->
    <copy verbose="true" file="${analysis-common.res.dir}/ca/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ca.txt"/>
    <!-- kurdish -->
    <copy verbose="true" file="${analysis-common.res.dir}/ckb/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ckb.txt"/>
    <!-- czech -->
    <copy verbose="true" file="${analysis-common.res.dir}/cz/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_cz.txt"/>
    <!-- danish -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/danish_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_da.txt"/>
    <!-- german -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/german_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_de.txt"/>
    <!-- greek -->
    <copy verbose="true" file="${analysis-common.res.dir}/el/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_el.txt"/>
    <!-- spanish -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/spanish_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_es.txt"/>
    <!-- basque -->
    <copy verbose="true" file="${analysis-common.res.dir}/eu/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_eu.txt"/>
    <!-- persian -->
    <copy verbose="true" file="${analysis-common.res.dir}/fa/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_fa.txt"/>
    <!-- finnish -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/finnish_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_fi.txt"/>
    <!-- french -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/french_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_fr.txt"/>
        <!-- irish -->
    <copy verbose="true" file="${analysis-common.res.dir}/ga/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ga.txt"/>
    <!-- galician -->
    <copy verbose="true" file="${analysis-common.res.dir}/gl/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_gl.txt"/>
    <!-- hindi -->
    <copy verbose="true" file="${analysis-common.res.dir}/hi/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_hi.txt"/>
    <!-- hungarian -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/hungarian_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_hu.txt"/>
    <!-- armenian -->
    <copy verbose="true" file="${analysis-common.res.dir}/hy/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_hy.txt"/>
    <!-- indonesian -->
    <copy verbose="true" file="${analysis-common.res.dir}/id/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_id.txt"/>
    <!-- italian -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/italian_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_it.txt"/>
    <!-- japanese -->
    <copy verbose="true" file="${analysis-kuromoji.res.dir}/ja/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ja.txt"/>
    <copy verbose="true" file="${analysis-kuromoji.res.dir}/ja/stoptags.txt"
                         tofile="${analysis.conf.dest}/stoptags_ja.txt"/>
    <!-- latvian -->
    <copy verbose="true" file="${analysis-common.res.dir}/lv/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_lv.txt"/>
    <!-- dutch -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/dutch_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_nl.txt"/>
    <!-- norwegian -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/norwegian_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_no.txt"/>
    <!-- portuguese -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/portuguese_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_pt.txt"/>
    <!-- romanian -->
    <copy verbose="true" file="${analysis-common.res.dir}/ro/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_ro.txt"/>
    <!-- russian -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/russian_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_ru.txt"/>
    <!-- swedish -->
    <copy verbose="true" file="${analysis-common.res.dir}/snowball/swedish_stop.txt"
                         tofile="${analysis.conf.dest}/stopwords_sv.txt"/>
    <!-- thai -->
    <copy verbose="true" file="${analysis-common.res.dir}/th/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_th.txt"/>
    <!-- turkish -->
    <copy verbose="true" file="${analysis-common.res.dir}/tr/stopwords.txt"
                         tofile="${analysis.conf.dest}/stopwords_tr.txt"/>
  </target>

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

  <target name="-append-module-dependencies-properties">
    <ant dir="core" target="-append-module-dependencies-properties" inheritAll="false"/>
    <ant dir="solrj" target="-append-module-dependencies-properties" inheritAll="false"/>
    <ant dir="test-framework" target="-append-module-dependencies-properties" inheritAll="false"/>
    <ant dir="webapp" target="-append-module-dependencies-properties" inheritAll="false"/>
    <contrib-crawl target="-append-module-dependencies-properties"/>
  </target>

  <target name="example" depends="server">
    <!-- no description so -p doesn't list it -->
    <echo>

    ! ! ! NOTICE NOTICE NOTICE ! ! !

    'ant example' is no longer recomended

    Use 'ant server' instead

    'ant example' is going to be removed at some point

    </echo>
  </target>
</project>
