| <?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-test-framework" default="default"> |
| <description>Solr Test Framework</description> |
| |
| <import file="../common-build.xml"/> |
| |
| <path id="solr.test.framework.lucene.libs"> |
| <pathelement location="${test-framework.jar}"/> |
| </path> |
| |
| <path id="classpath"> |
| <fileset dir="lib" excludes="${common.classpath.excludes}"/> |
| <path refid="solr.test.framework.lucene.libs" /> |
| <path refid="solr.base.classpath"/> |
| </path> |
| |
| <!-- Redefine Lucene test-framework compilation here to avoid circular dependency on compile-core --> |
| <target name="compile-test-framework"> |
| <ant dir="${common.dir}" target="compile-test-framework" inheritall="false"> |
| <propertyset refid="uptodate.and.compiled.properties"/> |
| </ant> |
| </target> |
| |
| <target name="compile-core" depends="resolve, compile-solr-core, compile-test-framework"> |
| <!-- TODO: why does test-framework override compile-core to use this special classpath? --> |
| <compile srcdir="${src.dir}" destdir="${build.dir}/classes/java"> |
| <classpath refid="test.base.classpath"/> |
| </compile> |
| |
| <!-- Copy the resources folder (if existent) --> |
| <copy todir="${build.dir}/classes/java"> |
| <fileset dir="${resources.dir}" erroronmissingdir="no"/> |
| </copy> |
| </target> |
| |
| <!-- redefine the clover setup, because we dont want to run clover for the test-framework --> |
| <target name="-clover.setup" if="run.clover"/> |
| |
| <!-- redefine the test compilation, so it's just a no-op --> |
| <target name="compile-test"/> |
| |
| <!-- redefine the forbidden apis for tests, as we check ourselves --> |
| <target name="-check-forbidden-tests" depends="-init-forbidden-apis,compile-core"> |
| <forbidden-apis suppressAnnotation="**.SuppressForbidden" signaturesFile="${common.dir}/tools/forbiddenApis/tests.txt" classpathref="forbidden-apis.allclasses.classpath"> |
| <fileset dir="${build.dir}/classes/java"/> |
| </forbidden-apis> |
| </target> |
| |
| <!-- Override common-solr.javadocs to include JUnit links --> |
| <!-- and to copy the built javadocs to ${dest}/docs/api/test-framework --> |
| <target name="javadocs" |
| depends="compile-core,jar-test-framework,lucene-javadocs,javadocs-test-framework,define-lucene-javadoc-url,check-javadocs-uptodate" unless="javadocs-uptodate-${name}"> |
| <sequential> |
| <mkdir dir="${javadoc.dir}/${name}"/> |
| <!-- NOTE: explicitly not using solr-invoke-javadoc, or attempting to |
| link to lucene-test-framework because if we did javadoc would |
| attempt to link class refs in in org.apache.lucene, causing |
| broken links. (either broken links to things like "Directory" if |
| lucene-test-framework was first, or broken links to things like |
| LuceneTestCase if lucene-core was first) |
| --> |
| <invoke-javadoc destdir="${javadoc.dir}/${name}" |
| title="${Name} ${version} Test Framework API"> |
| <sources> |
| <link offline="true" href="${javadoc.link.junit}" |
| packagelistLoc="${javadoc.packagelist.dir}/junit"/> |
| <packageset dir="${src.dir}"/> |
| </sources> |
| </invoke-javadoc> |
| <solr-jarify basedir="${javadoc.dir}/${name}" destfile="${build.dir}/${final.name}-javadoc.jar"/> |
| </sequential> |
| </target> |
| <target name="module-jars-to-solr" |
| depends="-module-jars-to-solr-not-for-package,-module-jars-to-solr-package"/> |
| <target name="-module-jars-to-solr-not-for-package" unless="called.from.create-package"> |
| <antcall target="jar-test-framework" inheritall="true"/> |
| <property name="test-framework.uptodate" value="true"/> |
| <mkdir dir="${build.dir}/lucene-libs"/> |
| <copy todir="${build.dir}/lucene-libs" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <path refid="solr.test.framework.lucene.libs" /> |
| </copy> |
| </target> |
| <target name="-module-jars-to-solr-package" if="called.from.create-package"> |
| <antcall target="-unpack-lucene-tgz" inheritall="true"/> |
| <pathconvert property="relative.solr.test.framework.lucene.libs" pathsep=","> |
| <path refid="solr.test.framework.lucene.libs"/> |
| <globmapper from="${common.build.dir}/*" to="*" handledirsep="true"/> |
| </pathconvert> |
| <mkdir dir="${build.dir}/lucene-libs"/> |
| <copy todir="${build.dir}/lucene-libs" preservelastmodified="true" flatten="true" failonerror="true" overwrite="true"> |
| <fileset dir="${lucene.tgz.unpack.dir}/lucene-${version}" includes="${relative.solr.test.framework.lucene.libs}"/> |
| </copy> |
| </target> |
| |
| <target name="dist" depends="module-jars-to-solr, common-solr.dist"> |
| <!-- we're not a contrib, our lucene-libs and go in a special place --> |
| <mkdir dir="${dist}/test-framework" /> |
| <copy todir="${dist}/test-framework"> |
| <fileset dir="${build.dir}"> |
| <include name="lucene-libs/*.jar" /> |
| </fileset> |
| <fileset dir="."> |
| <include name="lib/*" /> |
| <include name="README.txt" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| </project> |
| |