2006-01-29 10:16:56 -05:00
|
|
|
<!-- Solr build file -->
|
2006-11-09 18:13:58 -05:00
|
|
|
|
|
|
|
<!--
|
|
|
|
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.
|
|
|
|
-->
|
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
<project name="solr" default="usage" basedir=".">
|
|
|
|
<!-- Initialize property values: allow easy customization via build.properties -->
|
|
|
|
<property file="build.properties" />
|
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
<property name="Name" value="Solr" />
|
|
|
|
|
2006-11-29 02:08:17 -05:00
|
|
|
<tstamp>
|
|
|
|
<format property="year" pattern="yyyy"/>
|
|
|
|
<format property="DSTAMP" pattern="yyyy-MM-dd"/>
|
|
|
|
<format property="TSTAMP" pattern="HH:mm:ss"/>
|
2006-12-05 02:34:22 -05:00
|
|
|
<!-- datetime format that is safe to treat as part of a dotted version -->
|
|
|
|
<format property="dateversion" pattern="yyyy.MM.dd.HH.mm.ss" />
|
2006-11-29 02:08:17 -05:00
|
|
|
</tstamp>
|
|
|
|
|
|
|
|
<!-- Java Version we are compatible with -->
|
|
|
|
<property name="java.compat.version" value="1.5" />
|
|
|
|
|
2007-05-17 16:00:47 -04:00
|
|
|
<!-- Solr Implementation Version -->
|
2006-12-05 02:34:22 -05:00
|
|
|
<!--
|
|
|
|
This can be any string value that does not include spaces
|
|
|
|
This will be used when creating build artifact file names.
|
2006-01-29 10:16:56 -05:00
|
|
|
|
2006-12-05 02:34:22 -05:00
|
|
|
By default, this should be set to "X.Y.N-dev" where X.Y.N is
|
|
|
|
"1 greater" then the last version released (on this branch).
|
|
|
|
-->
|
2007-05-30 12:56:36 -04:00
|
|
|
<property name="version" value="1.3-dev" />
|
2006-12-05 02:34:22 -05:00
|
|
|
|
|
|
|
<!-- Solr Specification Version -->
|
|
|
|
<!--
|
|
|
|
This will be used in the Manifest file, and therefore must
|
|
|
|
match the pattern "digit+{.digit+}*"
|
|
|
|
|
|
|
|
By default, this should be set to "X.Y.M.${dateversion}"
|
|
|
|
where X.Y.M is the last version released (on this branch).
|
|
|
|
-->
|
2007-05-30 12:56:36 -04:00
|
|
|
<property name="specversion" value="1.2.${dateversion}" />
|
2006-12-05 02:34:22 -05:00
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- 3rd party libraries for compilation -->
|
|
|
|
<property name="lib" value="lib" />
|
|
|
|
|
|
|
|
<!-- solr source files -->
|
|
|
|
<property name="src" value="src" />
|
|
|
|
|
|
|
|
<!-- Destination for compiled classes and binaries -->
|
|
|
|
<property name="dest" value="build" />
|
|
|
|
|
|
|
|
<!-- Destination for distribution files (demo WAR, src distro, etc.) -->
|
|
|
|
<property name="dist" value="dist" />
|
|
|
|
|
2006-12-08 16:01:58 -05:00
|
|
|
<!-- Type of checksum to compute for distribution files -->
|
|
|
|
<property name="checksum.algorithm" value="md5" />
|
|
|
|
|
2006-02-15 20:05:55 -05:00
|
|
|
<!-- Example directory -->
|
|
|
|
<property name="example" value="example" />
|
|
|
|
|
2006-11-28 17:36:42 -05:00
|
|
|
<property name="fullname" value="apache-${ant.project.name}"/>
|
2007-01-17 18:46:30 -05:00
|
|
|
<property name="fullnamever" value="apache-${ant.project.name}-${version}"/>
|
2006-11-28 17:36:42 -05:00
|
|
|
|
2006-05-27 17:55:39 -04:00
|
|
|
<!-- Javadoc properties -->
|
2006-11-29 02:08:17 -05:00
|
|
|
<property name="javadoc.years" value="2006 - ${year}" />
|
2006-02-17 19:17:44 -05:00
|
|
|
<property name="build.docs" value="${dest}/docs"/>
|
2006-05-27 20:41:33 -04:00
|
|
|
<property name="build.javadoc" value="${build.docs}/api"/>
|
2007-07-19 17:05:35 -04:00
|
|
|
<property name="build.javadoc.solrj" value="${build.docs}/api-solrj"/>
|
2006-05-27 20:41:33 -04:00
|
|
|
<property name="javadoc.access" value="protected"/>
|
2006-02-17 19:17:44 -05:00
|
|
|
<property name="javadoc.link.java"
|
|
|
|
value="http://java.sun.com/j2se/1.5.0/docs/api/"/>
|
2006-05-26 21:35:44 -04:00
|
|
|
<property name="javadoc.link.junit"
|
|
|
|
value="http://junit.sourceforge.net/javadoc/"/>
|
|
|
|
<property name="javadoc.link.lucene"
|
|
|
|
value="http://lucene.apache.org/java/docs/api/"/>
|
2006-02-17 19:17:44 -05:00
|
|
|
<property name="javadoc.packages" value="org.apache.solr.*"/>
|
|
|
|
|
2006-05-27 17:55:39 -04:00
|
|
|
<!-- JUnit properties -->
|
2006-04-11 00:36:46 -04:00
|
|
|
<property name="junit.output.dir" location="${dest}/test-results"/>
|
|
|
|
<property name="junit.reports" location="${dest}/test-results/reports"/>
|
|
|
|
<property name="junit.includes" value="**/Test*.java,**/*Test.java"/>
|
2007-01-05 18:14:26 -05:00
|
|
|
<available property="junitPresent"
|
|
|
|
classname="junit.framework.TestCase" />
|
2006-04-11 00:36:46 -04:00
|
|
|
|
2007-06-13 23:26:18 -04:00
|
|
|
<!-- Macro for compilation -->
|
|
|
|
<macrodef name="solr-javac">
|
|
|
|
<attribute name="destdir" />
|
|
|
|
<attribute name="classpathref" />
|
|
|
|
<element name="nested" optional="true" implicit="true" />
|
|
|
|
<sequential>
|
|
|
|
<mkdir dir="@{destdir}" />
|
|
|
|
<javac destdir="@{destdir}"
|
|
|
|
target="${java.compat.version}"
|
|
|
|
source="${java.compat.version}"
|
|
|
|
debug="on"
|
|
|
|
encoding="utf8"
|
2007-06-14 19:54:23 -04:00
|
|
|
sourcepath=""
|
2007-06-13 23:26:18 -04:00
|
|
|
classpathref="@{classpathref}">
|
|
|
|
<nested />
|
|
|
|
</javac>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
|
|
|
<!-- Macro for building Jars -->
|
|
|
|
<macrodef name="solr-jar">
|
|
|
|
<attribute name="destfile" />
|
|
|
|
<attribute name="basedir" />
|
|
|
|
<attribute name="includes" default="org/apache/**" />
|
|
|
|
<attribute name="manifest" default="${dest}/META-INF/MANIFEST.MF" />
|
|
|
|
<element name="nested" optional="true" implicit="true" />
|
|
|
|
<sequential>
|
|
|
|
<jar destfile="@{destfile}"
|
|
|
|
basedir="@{basedir}"
|
|
|
|
includes="@{includes}"
|
|
|
|
filesetmanifest="skip"
|
|
|
|
manifest="@{manifest}">
|
|
|
|
<metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
|
|
|
|
<nested />
|
|
|
|
</jar>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
2006-12-08 16:01:58 -05:00
|
|
|
<!-- Macro for building checksum files
|
|
|
|
This is only needed until the "format" option is supported
|
|
|
|
by ant's built in checksum task
|
|
|
|
-->
|
|
|
|
<macrodef name="solr-checksum">
|
|
|
|
<attribute name="file"/>
|
|
|
|
<!-- NOTE: we use the value of @{file} in the names any properties
|
|
|
|
set because macro's don't have variables, and otherwise we
|
|
|
|
wouldn't be able to checksum more then one file per build
|
|
|
|
-->
|
|
|
|
<sequential>
|
|
|
|
<checksum file="@{file}"
|
|
|
|
property="@{file}.sum"
|
|
|
|
algorithm="${checksum.algorithm}" />
|
|
|
|
<basename file="@{file}" property="@{file}.base" />
|
|
|
|
<concat destfile="@{file}.${checksum.algorithm}"
|
|
|
|
force="yes"
|
|
|
|
append="false"
|
|
|
|
fixlastline="yes">
|
|
|
|
<header trimleading="yes">${@{file}.sum} </header>
|
|
|
|
<!-- empty fileset to trick concat -->
|
|
|
|
<fileset dir="." excludes="**" />
|
|
|
|
<footer trimleading="yes">${@{file}.base}
|
|
|
|
</footer>
|
|
|
|
</concat>
|
|
|
|
</sequential>
|
|
|
|
</macrodef>
|
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- Default target: usage. Prints out instructions. -->
|
|
|
|
<target name="usage"
|
|
|
|
description="Prints out instructions">
|
|
|
|
<echo message="Welcome to the Solr project!" />
|
2006-12-08 02:48:20 -05:00
|
|
|
<echo message="Use 'ant example' to create a runnable example configuration." />
|
|
|
|
<echo message="And for developers:"/>
|
|
|
|
<echo message="Use 'ant clean' to clean compiled files." />
|
2006-01-29 10:50:23 -05:00
|
|
|
<echo message="Use 'ant compile' to compile the source code." />
|
2006-11-28 17:36:42 -05:00
|
|
|
<echo message="Use 'ant dist' to build the project WAR and JAR files." />
|
|
|
|
<echo message="Use 'ant package' to build a .zip and .tgz for distribution." />
|
2006-01-29 10:16:56 -05:00
|
|
|
<echo message="Use 'ant test' to run unit tests." />
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Clean: cleans compiled files and other temporary artifacts. -->
|
|
|
|
<target name="clean"
|
|
|
|
description="Cleans compiled files and other temporary artifacts.">
|
|
|
|
<delete dir="${dest}" />
|
2006-02-17 19:17:44 -05:00
|
|
|
<delete dir="${dist}" />
|
2006-01-29 10:16:56 -05:00
|
|
|
</target>
|
|
|
|
|
2007-05-29 15:16:09 -04:00
|
|
|
<!-- Prepares an entity file for use in Forrest documentation -->
|
|
|
|
<target name="init-forrest-entities">
|
|
|
|
<!-- no description, don't advertise -->
|
|
|
|
|
|
|
|
<mkdir dir="${dest}" />
|
|
|
|
<echo file="${dest}/solr-specific-forrest-variables.ent" append="false">
|
|
|
|
<!ENTITY solr.specversion "${specversion}">
|
|
|
|
</echo>
|
|
|
|
</target>
|
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- ===================== COMPILATION-RELATED TASKS ========================= -->
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
|
2007-06-13 23:26:18 -04:00
|
|
|
<!-- Compile common classes. -->
|
|
|
|
<target name="compile-common"
|
|
|
|
description="Compile the source code."
|
|
|
|
depends="init-forrest-entities,checkJunitPresence">
|
|
|
|
|
|
|
|
<solr-javac destdir="${dest}/common"
|
|
|
|
classpathref="compile.classpath">
|
2007-06-14 20:12:51 -04:00
|
|
|
<src path="${src}/java" />
|
|
|
|
<include name="org/apache/solr/common/**" />
|
2007-06-13 23:26:18 -04:00
|
|
|
</solr-javac>
|
|
|
|
</target>
|
2006-01-29 10:16:56 -05:00
|
|
|
|
|
|
|
<!-- The compilation classpath -->
|
|
|
|
<path id="compile.classpath">
|
|
|
|
<fileset dir="${lib}">
|
2006-02-06 11:24:21 -05:00
|
|
|
<include name="*.jar" />
|
2006-01-29 10:16:56 -05:00
|
|
|
</fileset>
|
2007-06-13 23:26:18 -04:00
|
|
|
<pathelement location="${dest}/common"/>
|
2006-01-29 10:16:56 -05:00
|
|
|
</path>
|
|
|
|
|
|
|
|
<!-- Compile the project. -->
|
|
|
|
<target name="compile"
|
2006-12-24 10:07:37 -05:00
|
|
|
description="Compile the source code."
|
2007-06-13 23:26:18 -04:00
|
|
|
depends="compile-common,init-forrest-entities,checkJunitPresence">
|
2006-01-29 10:50:23 -05:00
|
|
|
|
2007-06-13 23:26:18 -04:00
|
|
|
<solr-javac destdir="${dest}/core"
|
|
|
|
classpathref="compile.classpath">
|
2006-01-29 10:50:23 -05:00
|
|
|
<src path="${src}/java" />
|
2006-04-11 00:36:46 -04:00
|
|
|
<src path="${src}/webapp/src" />
|
2007-06-13 23:26:18 -04:00
|
|
|
<exclude name="org/apache/solr/common/**" />
|
|
|
|
</solr-javac>
|
2006-01-29 10:16:56 -05:00
|
|
|
</target>
|
|
|
|
|
2006-09-13 10:33:28 -04:00
|
|
|
<target name="javadoc" depends="compile"
|
|
|
|
description="Generates javadoc documentation.">
|
2006-06-06 03:53:40 -04:00
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
<mkdir dir="${build.javadoc}"/>
|
2006-06-06 03:53:40 -04:00
|
|
|
|
|
|
|
<!-- we do this to make sure whatever classes where in ant's
|
|
|
|
classpath at runtime are in the classpath used by javadoc
|
|
|
|
(ie: junit.jar)
|
|
|
|
-->
|
|
|
|
<path id="javadoc.classpath">
|
|
|
|
<path refid="compile.classpath"/>
|
|
|
|
<!-- aparently ant.library.dir isn't allways set right? -->
|
|
|
|
<fileset dir="${ant.home}/lib">
|
|
|
|
<include name="**/*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
<fileset dir="${ant.library.dir}">
|
|
|
|
<include name="**/*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
</path>
|
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
<javadoc
|
|
|
|
destdir="${build.javadoc}"
|
|
|
|
author="true"
|
|
|
|
version="true"
|
2007-05-04 13:56:18 -04:00
|
|
|
failonerror="true"
|
2006-02-17 19:17:44 -05:00
|
|
|
use="true"
|
2006-05-27 17:55:39 -04:00
|
|
|
encoding="utf8"
|
2006-05-27 20:41:33 -04:00
|
|
|
access="${javadoc.access}"
|
2007-01-17 18:46:30 -05:00
|
|
|
windowtitle="${Name} ${version} API"
|
|
|
|
doctitle="${Name} ${version} API (${specversion})"
|
2006-11-29 02:08:17 -05:00
|
|
|
bottom="Copyright &copy; ${javadoc.years} The Apache Software Foundation"
|
2006-02-17 19:17:44 -05:00
|
|
|
>
|
|
|
|
<packageset dir="${src}/java"/>
|
2006-11-28 17:36:42 -05:00
|
|
|
<packageset dir="${src}/webapp/src"/>
|
2006-02-17 19:17:44 -05:00
|
|
|
<link href="${javadoc.link.java}"/>
|
2006-05-26 21:35:44 -04:00
|
|
|
<link href="${javadoc.link.junit}"/>
|
|
|
|
<link href="${javadoc.link.lucene}"/>
|
2006-06-06 03:53:40 -04:00
|
|
|
<classpath refid="javadoc.classpath"/>
|
2006-02-17 19:17:44 -05:00
|
|
|
</javadoc>
|
|
|
|
</target>
|
2007-06-14 18:53:25 -04:00
|
|
|
|
|
|
|
<!-- ========================================================================= -->
|
|
|
|
<!-- ===================== CLIENT: solrj ============================= -->
|
|
|
|
<!-- ========================================================================= -->
|
|
|
|
|
|
|
|
<property name="solrj-dir" value="client/java/solrj" />
|
|
|
|
|
|
|
|
<path id="compile.classpath.solrj">
|
|
|
|
<fileset dir="${solrj-dir}/lib">
|
|
|
|
<include name="*.jar" />
|
|
|
|
</fileset>
|
|
|
|
<fileset dir="${lib}">
|
|
|
|
<include name="commons-io-*.jar" />
|
2007-06-14 20:08:56 -04:00
|
|
|
<include name="stax-*.jar" />
|
2007-06-14 18:53:25 -04:00
|
|
|
</fileset>
|
|
|
|
<pathelement location="${dest}/common"/>
|
|
|
|
</path>
|
|
|
|
|
|
|
|
<!-- This depend on all of solr -->
|
|
|
|
<path id="compile.classpath.solrj-embedded">
|
|
|
|
<path refid="compile.classpath.solrj" />
|
|
|
|
<path refid="compile.classpath" />
|
|
|
|
<pathelement location="${dest}/core"/>
|
|
|
|
|
|
|
|
<!-- jetty -->
|
|
|
|
<fileset dir="example/lib">
|
|
|
|
<include name="*.jar" />
|
|
|
|
</fileset>
|
|
|
|
</path>
|
|
|
|
|
|
|
|
<target name="compile-solrj-core"
|
|
|
|
description="Compile the java client."
|
|
|
|
depends="compile-common">
|
|
|
|
|
|
|
|
<solr-javac destdir="${dest}/client/solrj"
|
|
|
|
classpathref="compile.classpath.solrj">
|
|
|
|
<src path="${solrj-dir}/src" />
|
|
|
|
<exclude name="org/apache/solr/client/solrj/embedded/**" />
|
|
|
|
</solr-javac>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- solrj includes the embedded app -->
|
|
|
|
<target name="compile-solrj"
|
|
|
|
description="Compile the java client."
|
|
|
|
depends="compile,compile-solrj-core">
|
|
|
|
|
|
|
|
<solr-javac destdir="${dest}/client/solrj"
|
|
|
|
classpathref="compile.classpath.solrj-embedded">
|
|
|
|
<src path="${solrj-dir}/src/org/apache/solr/client/solrj/embedded" />
|
|
|
|
</solr-javac>
|
|
|
|
</target>
|
2007-07-19 17:05:35 -04:00
|
|
|
|
|
|
|
|
|
|
|
<target name="javadoc-solrj" depends="compile"
|
|
|
|
description="Generates solrj javadoc documentation.">
|
|
|
|
<mkdir dir="${build.javadoc.solrj}"/>
|
|
|
|
<path id="javadoc.classpath.solrj">
|
|
|
|
<path refid="compile.classpath"/>
|
|
|
|
<!-- aparently ant.library.dir isn't allways set right? -->
|
|
|
|
<fileset dir="${ant.home}/lib">
|
|
|
|
<include name="**/*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
<fileset dir="${ant.library.dir}">
|
|
|
|
<include name="**/*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
</path>
|
|
|
|
<javadoc
|
|
|
|
destdir="${build.javadoc.solrj}"
|
|
|
|
author="true"
|
|
|
|
version="true"
|
|
|
|
failonerror="true"
|
|
|
|
use="true"
|
|
|
|
encoding="utf8"
|
|
|
|
access="${javadoc.access}"
|
|
|
|
windowtitle="${Name}-j ${version} API"
|
|
|
|
doctitle="${Name}-j ${version} API (${specversion})"
|
|
|
|
bottom="Copyright &copy; ${javadoc.years} The Apache Software Foundation"
|
|
|
|
>
|
|
|
|
<packageset dir="${solrj-dir}/src" />
|
|
|
|
<link href="${javadoc.link.java}"/>
|
|
|
|
<link href="${javadoc.link.junit}"/>
|
|
|
|
<link href="${javadoc.link.lucene}"/>
|
|
|
|
<classpath refid="compile.classpath.solrj"/>
|
|
|
|
<classpath refid="compile.classpath.solrj-embedded"/>
|
|
|
|
</javadoc>
|
|
|
|
</target>
|
|
|
|
|
2007-06-14 18:53:25 -04:00
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- ===================== TESTING-RELATED TASKS ============================= -->
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
<!-- Classpath for unit test compilation. -->
|
|
|
|
<!-- For now, it's the same as main classpath. Later it will have JUnit, Clover, etc. -->
|
|
|
|
<path id="test.compile.classpath">
|
|
|
|
<path refid="compile.classpath" />
|
2007-06-14 18:53:25 -04:00
|
|
|
<path refid="compile.classpath.solrj-embedded" />
|
|
|
|
|
2007-06-13 23:26:18 -04:00
|
|
|
<pathelement location="${dest}/common"/>
|
|
|
|
<pathelement location="${dest}/core"/>
|
2007-06-14 18:53:25 -04:00
|
|
|
<pathelement location="${dest}/client/solrj"/> <!-- include solrj -->
|
2006-02-07 17:04:39 -05:00
|
|
|
</path>
|
|
|
|
|
|
|
|
<path id="test.run.classpath">
|
|
|
|
<path refid="test.compile.classpath" />
|
2007-06-14 18:53:25 -04:00
|
|
|
<pathelement location="${dest}/tests"/>
|
|
|
|
|
|
|
|
<!-- include the solrj classpath and jetty files included in example -->
|
|
|
|
<path refid="compile.classpath.solrj" />
|
2006-01-29 10:16:56 -05:00
|
|
|
</path>
|
|
|
|
|
2006-12-24 10:07:37 -05:00
|
|
|
<!-- Check that JUnit is present. -->
|
2007-01-05 18:14:26 -05:00
|
|
|
<target name="checkJunitPresence">
|
|
|
|
<!-- no description so it doesn't show up in -projecthelp -->
|
|
|
|
<fail unless="junitPresent">
|
|
|
|
##################################################################
|
|
|
|
JUnit not found.
|
|
|
|
Please make sure junit.jar is in ANT_HOME/lib, or made available
|
|
|
|
to Ant using other mechanisms like -lib or CLASSPATH.
|
|
|
|
##################################################################
|
|
|
|
</fail>
|
2006-12-24 10:07:37 -05:00
|
|
|
</target>
|
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- Compile unit tests. -->
|
|
|
|
<target name="compileTests"
|
|
|
|
description="Compile unit tests."
|
2007-06-14 18:53:25 -04:00
|
|
|
depends="compile,compile-solrj,checkJunitPresence">
|
2006-12-24 10:07:37 -05:00
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
<mkdir dir="${dest}/tests" />
|
2007-06-13 23:26:18 -04:00
|
|
|
<solr-javac
|
2006-02-07 17:04:39 -05:00
|
|
|
destdir="${dest}/tests"
|
|
|
|
classpathref="test.compile.classpath">
|
|
|
|
<src path="${src}/test" />
|
2007-06-14 18:53:25 -04:00
|
|
|
<src path="${solrj-dir}/test" />
|
2007-06-13 23:26:18 -04:00
|
|
|
</solr-javac>
|
2006-01-29 10:16:56 -05:00
|
|
|
</target>
|
|
|
|
|
|
|
|
<!-- Run unit tests. -->
|
|
|
|
<target name="test"
|
|
|
|
description="Runs the unit tests."
|
2007-05-29 15:16:09 -04:00
|
|
|
depends="init-forrest-entities, compileTests, junit" />
|
2006-04-11 00:36:46 -04:00
|
|
|
|
|
|
|
<target name="junit" depends="compileTests">
|
|
|
|
<!-- no description so it doesn't show up in -projecthelp -->
|
|
|
|
<mkdir dir="${junit.output.dir}"/>
|
|
|
|
|
2007-04-27 17:52:31 -04:00
|
|
|
<junit printsummary="on"
|
2006-04-11 00:36:46 -04:00
|
|
|
haltonfailure="no"
|
|
|
|
errorProperty="tests.failed"
|
|
|
|
failureProperty="tests.failed"
|
2006-04-19 02:00:20 -04:00
|
|
|
dir="src/test/test-files/"
|
2006-04-11 00:36:46 -04:00
|
|
|
>
|
2007-01-21 09:56:35 -05:00
|
|
|
<formatter type="brief" usefile="false" if="junit.details"/>
|
2006-04-11 00:36:46 -04:00
|
|
|
<classpath refid="test.run.classpath"/>
|
|
|
|
<formatter type="xml"/>
|
|
|
|
<batchtest fork="yes" todir="${junit.output.dir}" unless="testcase">
|
|
|
|
<fileset dir="src/test" includes="${junit.includes}"/>
|
2007-06-14 18:53:25 -04:00
|
|
|
<!-- this will start jetty and run some tests through HTTP -->
|
|
|
|
<fileset dir="${solrj-dir}/test/" includes="${junit.includes}" />
|
2006-04-11 00:36:46 -04:00
|
|
|
</batchtest>
|
|
|
|
<batchtest fork="yes" todir="${junit.output.dir}" if="testcase">
|
|
|
|
<fileset dir="src/test" includes="**/${testcase}.java"/>
|
|
|
|
</batchtest>
|
|
|
|
</junit>
|
|
|
|
|
|
|
|
<fail if="tests.failed">Tests failed!</fail>
|
|
|
|
</target>
|
2007-06-14 18:53:25 -04:00
|
|
|
|
2006-09-13 10:33:28 -04:00
|
|
|
<target name="test-reports"
|
|
|
|
description="Generates HTML test reports.">
|
2006-04-11 00:36:46 -04:00
|
|
|
<mkdir dir="${junit.reports}"/>
|
|
|
|
<junitreport todir="${junit.output.dir}">
|
|
|
|
<fileset dir="${junit.output.dir}">
|
|
|
|
<include name="TEST-*.xml"/>
|
|
|
|
</fileset>
|
|
|
|
<report format="frames" todir="${junit.reports}"/>
|
|
|
|
</junitreport>
|
|
|
|
</target>
|
2006-01-29 10:16:56 -05:00
|
|
|
|
|
|
|
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
<!-- ===================== DISTRIBUTION-RELATED TASKS ======================== -->
|
2006-01-29 10:50:23 -05:00
|
|
|
<!-- ========================================================================= -->
|
2006-01-29 10:16:56 -05:00
|
|
|
|
|
|
|
|
|
|
|
<!-- Creates the Solr distribution files. -->
|
|
|
|
<target name="dist"
|
|
|
|
description="Creates the Solr distribution files."
|
2007-06-14 18:53:25 -04:00
|
|
|
depends="init-forrest-entities, dist-war, dist-solrj, dist-jar" />
|
2006-01-29 10:16:56 -05:00
|
|
|
|
2006-11-29 02:08:17 -05:00
|
|
|
<!-- Creates a Manifest file for Jars and WARs -->
|
|
|
|
<target name="make-manifest" >
|
2007-06-03 19:04:28 -04:00
|
|
|
<!-- If possible, include the svnversion -->
|
|
|
|
<exec dir="." executable="svnversion" outputproperty="svnversion" failifexecutionfails="false">
|
|
|
|
<arg line="."/>
|
|
|
|
</exec>
|
|
|
|
|
2006-11-29 02:08:17 -05:00
|
|
|
<!-- no description, don't advertise -->
|
|
|
|
<mkdir dir="${dest}/META-INF/" />
|
|
|
|
<manifest mode="replace" file="${dest}/META-INF/MANIFEST.MF">
|
|
|
|
<!--
|
|
|
|
http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest
|
2006-12-05 02:34:22 -05:00
|
|
|
http://java.sun.com/j2se/1.5.0/docs/guide/versioning/spec/versioning2.html
|
|
|
|
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Package.html
|
|
|
|
http://java.sun.com/j2se/1.5.0/docs/api/java/util/jar/package-summary.html
|
|
|
|
http://java.sun.com/developer/Books/javaprogramming/JAR/basics/manifest.html
|
2006-11-29 02:08:17 -05:00
|
|
|
-->
|
2006-12-05 02:34:22 -05:00
|
|
|
<!-- Don't set 'Manifest-Version' it identifies the version of the
|
|
|
|
manifest file format, and should allways be 1.0 (the default)
|
|
|
|
|
|
|
|
Don't set 'Created-by' attribute, it's purpose is
|
2006-11-29 02:08:17 -05:00
|
|
|
to identify the version of java used to build the jar,
|
2006-12-05 02:34:22 -05:00
|
|
|
which ant will do by default.
|
|
|
|
|
|
|
|
Ant will happily override these with bogus strings if you
|
|
|
|
tell it to, so don't.
|
|
|
|
|
|
|
|
NOTE: we don't use section info because all of our manifest data
|
|
|
|
applies to the entire jar/war ... no package specific info.
|
|
|
|
-->
|
|
|
|
<attribute name="Extension-Name"
|
|
|
|
value="org.apache.solr"/>
|
|
|
|
<attribute name="Specification-Title"
|
|
|
|
value="Apache Solr Search Server"/>
|
|
|
|
<!-- spec version must match "digit+{.digit+}*" -->
|
|
|
|
<attribute name="Specification-Version"
|
|
|
|
value="${specversion}"/>
|
|
|
|
<attribute name="Specification-Vendor"
|
|
|
|
value="The Apache Software Foundation"/>
|
|
|
|
<attribute name="Implementation-Title"
|
|
|
|
value="org.apache.solr"/>
|
|
|
|
<!-- impl version can be any string -->
|
|
|
|
<attribute name="Implementation-Version"
|
2007-06-03 19:04:28 -04:00
|
|
|
value="${version} ${svnversion} - ${user.name} - ${DSTAMP} ${TSTAMP}"/>
|
2006-12-05 02:34:22 -05:00
|
|
|
<attribute name="Implementation-Vendor"
|
|
|
|
value="The Apache Software Foundation"/>
|
|
|
|
<attribute name="X-Compile-Source-JDK"
|
|
|
|
value="${java.compat.version}"/>
|
|
|
|
<attribute name="X-Compile-Target-JDK"
|
|
|
|
value="${java.compat.version}"/>
|
2006-11-29 02:08:17 -05:00
|
|
|
</manifest>
|
|
|
|
</target>
|
|
|
|
|
2006-02-07 17:04:39 -05:00
|
|
|
<!-- Creates the Solr WAR file. -->
|
2006-01-29 10:16:56 -05:00
|
|
|
<target name="dist-war"
|
2006-12-08 16:01:58 -05:00
|
|
|
description="Creates the Solr WAR Distribution file."
|
2006-12-08 03:01:51 -05:00
|
|
|
depends="compile, make-manifest, dist-jar">
|
2006-01-29 10:16:56 -05:00
|
|
|
<mkdir dir="${dist}" />
|
2006-11-28 17:36:42 -05:00
|
|
|
<war destfile="${dist}/${fullnamever}.war"
|
2006-11-29 02:08:17 -05:00
|
|
|
webxml="${src}/webapp/WEB-INF/web.xml"
|
|
|
|
filesetmanifest="skip"
|
|
|
|
manifest="${dest}/META-INF/MANIFEST.MF">
|
|
|
|
<lib dir="${lib}">
|
|
|
|
<exclude name="servlet-api*.jar" />
|
2007-05-05 13:14:22 -04:00
|
|
|
<exclude name="easymock.jar" />
|
2006-11-29 02:08:17 -05:00
|
|
|
</lib>
|
2006-12-08 03:01:51 -05:00
|
|
|
<lib dir="${dist}">
|
|
|
|
<include name="${fullnamever}.jar" />
|
2007-06-13 23:26:18 -04:00
|
|
|
<include name="${fullnamever}-common.jar" />
|
2006-12-08 03:01:51 -05:00
|
|
|
</lib>
|
2006-11-29 02:08:17 -05:00
|
|
|
<fileset dir="${src}/webapp/resources" />
|
2006-12-01 12:40:39 -05:00
|
|
|
<metainf dir="${basedir}" includes="LICENSE.txt,NOTICE.txt"/>
|
2006-01-29 10:16:56 -05:00
|
|
|
</war>
|
|
|
|
</target>
|
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
<!-- Creates the solr jar. -->
|
|
|
|
<target name="dist-jar"
|
2006-12-08 16:01:58 -05:00
|
|
|
description="Creates the Solr JAR Distribution file."
|
2006-11-29 02:08:17 -05:00
|
|
|
depends="compile, make-manifest">
|
2006-01-29 10:16:56 -05:00
|
|
|
<mkdir dir="${dist}" />
|
2007-06-13 23:26:18 -04:00
|
|
|
<solr-jar
|
|
|
|
destfile="${dist}/${fullnamever}.jar"
|
|
|
|
basedir="${dest}/core" />
|
|
|
|
|
|
|
|
<!-- package the common classes together -->
|
|
|
|
<solr-jar
|
|
|
|
destfile="${dist}/${fullnamever}-common.jar"
|
|
|
|
basedir="${dest}/common" />
|
|
|
|
|
2006-01-29 10:16:56 -05:00
|
|
|
</target>
|
|
|
|
|
2007-06-14 18:53:25 -04:00
|
|
|
<!-- Creates the solr jar. -->
|
|
|
|
<target name="dist-solrj"
|
|
|
|
description="Creates the Solr JAR Distribution file."
|
|
|
|
depends="compile-solrj, dist-jar">
|
|
|
|
<mkdir dir="${dist}" />
|
|
|
|
<solr-jar
|
|
|
|
destfile="${dist}/${fullnamever}-solrj.jar"
|
|
|
|
basedir="${dest}/client/solrj" />
|
|
|
|
|
|
|
|
<mkdir dir="${dist}/solrj-lib" />
|
|
|
|
<copy todir="${dist}/solrj-lib">
|
|
|
|
<fileset dir="${lib}">
|
|
|
|
<include name="commons-codec-*.jar"/>
|
|
|
|
<include name="commons-io-*.jar"/>
|
|
|
|
<include name="stax-*.jar"/>
|
|
|
|
</fileset>
|
|
|
|
<fileset dir="${solrj-dir}/lib">
|
|
|
|
<include name="*.jar" />
|
|
|
|
</fileset>
|
|
|
|
</copy>
|
|
|
|
|
|
|
|
</target>
|
|
|
|
|
2006-02-15 20:05:55 -05:00
|
|
|
<target name="example"
|
2006-12-08 03:32:57 -05:00
|
|
|
description="Creates a runnable example configuration."
|
2007-05-29 15:16:09 -04:00
|
|
|
depends="init-forrest-entities,dist-war">
|
2006-11-28 17:36:42 -05:00
|
|
|
<copy file="${dist}/${fullnamever}.war"
|
2006-05-04 08:53:31 -04:00
|
|
|
tofile="${example}/webapps/${ant.project.name}.war"/>
|
2007-02-18 16:30:03 -05:00
|
|
|
<jar destfile="${example}/exampledocs/post.jar"
|
2007-06-13 23:26:18 -04:00
|
|
|
basedir="${dest}/core"
|
|
|
|
filesetmanifest="skip"
|
2007-02-18 16:30:03 -05:00
|
|
|
includes="org/apache/solr/util/SimplePostTool*.class">
|
|
|
|
<manifest>
|
|
|
|
<attribute name="Main-Class"
|
|
|
|
value="org.apache.solr.util.SimplePostTool"/>
|
|
|
|
</manifest>
|
|
|
|
</jar>
|
2007-06-13 23:26:18 -04:00
|
|
|
|
2006-05-04 08:53:31 -04:00
|
|
|
<copy todir="${example}/solr/bin">
|
|
|
|
<fileset dir="${src}/scripts">
|
|
|
|
<exclude name="scripts.conf"/>
|
|
|
|
</fileset>
|
|
|
|
</copy>
|
2006-05-09 12:27:51 -04:00
|
|
|
<chmod dir="${example}/solr/bin" perm="755" includes="**"/>
|
2006-12-08 02:48:20 -05:00
|
|
|
<echo>See ${example}/README.txt for how to run the Solr example configuration.</echo>
|
2006-02-15 20:05:55 -05:00
|
|
|
</target>
|
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
<!-- make a distribution -->
|
|
|
|
<target name="package"
|
2006-12-08 16:01:58 -05:00
|
|
|
description="Packages the Solr Distribution files and Documentation."
|
2007-07-19 17:05:35 -04:00
|
|
|
depends="dist, example, javadoc-solrj, javadoc">
|
2006-11-28 17:36:42 -05:00
|
|
|
|
2006-12-15 14:53:10 -05:00
|
|
|
<copy todir="${build.docs}">
|
|
|
|
<fileset dir="site" />
|
|
|
|
</copy>
|
2006-12-16 16:08:42 -05:00
|
|
|
|
2006-11-28 17:36:42 -05:00
|
|
|
<tar destfile="${dist}/${fullnamever}.tgz" compression="gzip">
|
|
|
|
<tarfileset dir="."
|
|
|
|
prefix="${fullnamever}"
|
2006-12-01 12:40:39 -05:00
|
|
|
includes="LICENSE.txt NOTICE.txt *.txt *.xml lib/** src/** example/**"
|
2007-05-30 02:45:56 -04:00
|
|
|
excludes="**/data/ **/logs/* **/classes/ **/*.sh **/bin/ src/scripts/ src/site/build/" />
|
2006-12-17 16:38:20 -05:00
|
|
|
<tarfileset dir="."
|
|
|
|
mode="755"
|
|
|
|
prefix="${fullnamever}"
|
|
|
|
includes="**/*.sh **/bin/ src/scripts/" />
|
2006-11-28 17:36:42 -05:00
|
|
|
<tarfileset dir="."
|
|
|
|
prefix="${fullnamever}"
|
2007-07-14 13:24:00 -04:00
|
|
|
includes="dist/**"
|
|
|
|
excludes="*.tgz *.zip *.md5" />
|
2006-12-15 14:53:10 -05:00
|
|
|
<tarfileset dir="${build.docs}"
|
|
|
|
prefix="${fullnamever}/docs/" />
|
2006-11-28 17:36:42 -05:00
|
|
|
</tar>
|
2006-12-08 16:01:58 -05:00
|
|
|
<solr-checksum file="${dist}/${fullnamever}.tgz"/>
|
2006-11-28 17:36:42 -05:00
|
|
|
|
2006-12-16 16:08:42 -05:00
|
|
|
<gunzip src="${dist}/${fullnamever}.tgz" dest="${dest}/${fullnamever}.tar"/>
|
|
|
|
<untar src="${dest}/${fullnamever}.tar" dest="${dest}"/>
|
|
|
|
|
|
|
|
<fixcrlf srcdir="${dest}/${fullnamever}"
|
|
|
|
eol="crlf"
|
|
|
|
includes="**/*.txt **/*.xml **/*.java **/*.html **/*.csv **/*.css **/*.properties **/*.jsp **/*.xsl **/*.py **/*.rb **/*.js **/*.json **/*.pl"
|
|
|
|
/>
|
|
|
|
|
|
|
|
<zip destfile="${dist}/${fullnamever}.zip">
|
|
|
|
<zipfileset dir="${dest}/${fullnamever}"
|
2006-12-17 17:28:56 -05:00
|
|
|
prefix="${fullnamever}"
|
|
|
|
excludes="**/*.sh **/bin/ src/scripts/" />
|
|
|
|
<zipfileset dir="${dest}/${fullnamever}"
|
|
|
|
prefix="${fullnamever}"
|
|
|
|
includes="**/*.sh **/bin/ src/scripts/"
|
|
|
|
filemode="755" />
|
2006-12-16 16:08:42 -05:00
|
|
|
</zip>
|
|
|
|
<solr-checksum file="${dist}/${fullnamever}.zip"/>
|
|
|
|
|
2006-02-17 19:17:44 -05:00
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="nightly"
|
2006-11-28 17:36:42 -05:00
|
|
|
depends="test, package">
|
2006-12-08 16:01:58 -05:00
|
|
|
<!-- no description, don't advertise -->
|
2006-02-17 19:17:44 -05:00
|
|
|
</target>
|
|
|
|
|
2006-02-06 11:24:21 -05:00
|
|
|
</project>
|
2006-02-15 20:05:55 -05:00
|
|
|
|
2007-05-05 13:14:22 -04:00
|
|
|
|