<?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 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/CLIO.class"/>
        <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.md 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>

  <!-- ========================================================================= -->
  <!-- ========================== 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="test-nocompile">
    <fail message="Target 'test-nocompile' will not run recursively.  First change directory to the module you want to test."/>
  </target>

  <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">
    <ant dir="solr-ref-guide" target="bare-bones-html-validation" inheritall="false">
      <propertyset refid="uptodate.and.compiled.properties"/>
      <property name="local.javadocs" value="true" />
    </ant>
  </target>
  <target name="compile-core" depends="compile-solr-core" unless="solr.core.compiled"/>

  <target name="documentation-online" description="Generate a link to the online documentation"
      depends="define-solr-javadoc-url">
    <xslt in="${ant.file}" out="${javadoc-online.dir}/index.html" style="site/online-link.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="version" expression="${version}"/>
      <param name="solrJavadocUrl" expression="${solr.javadoc.url}"/>
    </xslt>
    <copy todir="${javadoc-online.dir}">
      <fileset dir="site/assets" includes="**/solr.svg"/>
    </copy>
  </target>

  <target name="process-webpages" depends="define-lucene-javadoc-url,resolve-markdown">
    <makeurl property="process-webpages.buildfiles" separator="|">
      <fileset dir="." includes="core/build.xml,test-framework/build.xml,solrj/build.xml,contrib/**/build.xml"/>
    </makeurl>

    <loadresource property="doc-solr-guide-version-path">
      <propertyresource name="version"/>
      <filterchain>
        <tokenfilter>
          <filetokenizer/>
          <replaceregex pattern="^(\d+)\.(\d+).*" replace="\1_\2"/>
        </tokenfilter>
      </filterchain>
    </loadresource>
    <!--
      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}"/>
      <param name="solrGuideVersion" expression="${doc-solr-guide-version-path}"/>
    </xslt>
    
    <markdown todir="${javadoc.dir}">
      <fileset dir="site" includes="**/*.md" excludes="**/*.template.md"/>
      <globmapper from="*.md" to="*.html"/>
    </markdown>

    <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"/>
  </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.">
    <property name="skipRegexChecksum" value=""/>
    <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"/>
  </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"/>
  </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="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"/>
  </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,documentation,-dist-changes"/>

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

    <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/** gradle/wrapper/gradle-wrapper.jar"/>
      <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-online"/>
    </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.md site/SYSTEM_REQUIREMENTS.md
                            bin/** server/** example/** contrib/**/lib/** contrib/**/conf/** contrib/**/README.md
                            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/ contrib/**/src/" />
      <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/ contrib/**/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 **/*.sha512" />
      <tarfileset dir="${javadoc-online.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>
     <ant dir="server" target="resolve" inheritall="false">
       <propertyset refid="uptodate.and.compiled.properties"/>
     </ant>
     <ant dir="solr-ref-guide" 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">
    <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="-install-to-maven-local-repo" depends="install-maven-tasks">
    <sequential>
      <m2-install pom.xml="${filtered.pom.templates.dir}/solr/pom.xml"/>    <!-- Solr parent POM -->
      <subant target="-install-to-maven-local-repo" 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="-install-to-maven-local-repo"/>
    </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"/>
    <contrib-crawl target="-append-module-dependencies-properties"/>
  </target>

</project>
