blob: d0533661cc6fd422d3b9d1d76d1fbbf1a3c671fa [file] [log] [blame]
Index: META-INF/MANIFEST.MF
===================================================================
--- META-INF/MANIFEST.MF (revision 0)
+++ META-INF/MANIFEST.MF (revision 0)
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Specification-Title: Lucene Search Engine: core
+Specification-Version: 2.4.0-dev
+Specification-Vendor: The Apache Software Foundation
+Implementation-Title: org.apache.lucene
+Implementation-Version: 2.4.0-dev
+Implementation-Vendor: The Apache Software Foundation
+X-Compile-Source-JDK: 1.4
+X-Compile-Target-JDK: 1.4
+Bundle-ManifestVersion: 2
+Bundle-Name: Apache Lucene core
+Bundle-SymbolicName: org.apache.lucene
+Bundle-Version: 2.4.0.dev
+Bundle-ClassPath: lucene.jar
+Export-Package: org.apache.lucene,
+ org.apache.lucene.analysis,
+ org.apache.lucene.analysis.standard,
+ org.apache.lucene.document,
+ org.apache.lucene.index,
+ org.apache.lucene.queryParser,
+ org.apache.lucene.search,
+ org.apache.lucene.search.function,
+ org.apache.lucene.search.payloads,
+ org.apache.lucene.search.spans,
+ org.apache.lucene.store,
+ org.apache.lucene.util,
+ org.apache.lucene.util.cache
+Bundle-Vendor: The Apache Software Fondation
+Bundle-RequiredExecutionEnvironment: J2SE-1.4
Index: build.xml
===================================================================
--- build.xml (revision 679133)
+++ build.xml (working copy)
@@ -25,6 +25,8 @@
<property name="build.demo.template" value="src/demo/demo-build.template"/>
+ <property name="bundle.manifest.file" location="META-INF/MANIFEST.MF"/>
+
<property name="demo.name" value="lucene-demos-${version}"/>
<property name="demo.war.name" value="luceneweb"/>
Index: common-build.xml
===================================================================
--- common-build.xml (revision 679133)
+++ common-build.xml (working copy)
@@ -40,10 +40,8 @@
<property name="name" value="${ant.project.name}"/>
<property name="Name" value="Lucene"/>
- <property name="version" value="2.4-dev"/>
- <property name="spec.version" value="${version}"/>
+ <property name="base.version" value="2.4.0"/>
<property name="year" value="2000-${current.year}"/>
- <property name="final.name" value="lucene-${name}-${version}"/>
<property name="junit.jar" value="junit-3.8.2.jar"/>
<property name="junit-location.jar" value="${common.dir}/lib/${junit.jar}"/>
@@ -148,9 +146,29 @@
</echo>
</target>
- <target name="init" depends="javacc-uptodate-check, javacc-notice, jflex-uptodate-check, jflex-notice">
+ <target name="/release">
+ <property name="release.version" value="true"/>
</target>
+ <target name="compute-version-release" if="release.version">
+ <property name="version" value="${base.version}"/>
+ <property name="bundle.version" value="${base.version}"/>
+ </target>
+
+ <target name="compute-version-dev" unless="release.version">
+ <property name="version" value="${base.version}-dev"/>
+ <property name="bundle.version" value="${base.version}.dev"/>
+ </target>
+
+ <target name="compute-version" depends="compute-version-release,compute-version-dev">
+ <property name="spec.version" value="${base.version}"/>
+ <property name="final.name" value="lucene-${name}-${version}"/>
+ <echo message="Building ${final.name}" />
+ </target>
+
+ <target name="init" depends="compute-version, javacc-uptodate-check, javacc-notice, jflex-uptodate-check, jflex-notice">
+ </target>
+
<target name="jflex-uptodate-check">
<uptodate property="jflex.files.uptodate">
<srcfiles dir="src" includes="**/*.jflex" />
@@ -228,8 +246,17 @@
<!-- convenience target to compile core -->
</target>
- <target name="jar-core" depends="compile-core"
+ <target name="jar-core" depends="jar-plain-core,jar-bundle-core"
description="Packages the JAR file">
+ </target>
+
+ <target name="jar-bundle-core" depends="compile-core"
+ description="Packages the bundle JAR file" if="bundle.manifest.file">
+ <bundlify/>
+ </target>
+
+ <target name="jar-plain-core" depends="compile-core"
+ description="Packages the JAR file" unless="bundle.manifest.file">
<jarify/>
</target>
@@ -295,7 +322,7 @@
<macrodef name="jarify" description="Builds a JAR file">
<attribute name="basedir" default="${build.dir}/classes/java"/>
<attribute name="destfile" default="${build.dir}/${final.name}.jar"/>
- <element name="manifest-attributes" optional="yes"/>
+ <element name="manifest-attributes" optional="yes"/>
<element name="metainf-includes" optional="yes"/>
<sequential>
<!-- If possible, include the svnversion -->
@@ -322,6 +349,52 @@
</sequential>
</macrodef>
+ <macrodef name="build-bundle-manifest" description="Builds a manifest file">
+ <attribute name="title" default="Lucene Search Engine: ${ant.project.name}" />
+ <sequential>
+ <copy file="${bundle.manifest.file}" tofile="${manifest.file}">
+ <filterchain>
+ <replaceregex pattern="Bundle-Version:.*" replace="Bundle-Version: ${bundle.version}" byline="true" />
+ <replaceregex pattern="Implementation-Version:.*" replace="Implementation-Version: ${version} ${svnversion} - ${DSTAMP} ${TSTAMP}" byline="true" />
+ <replaceregex pattern="Specification-Version:.*" replace="Specification-Version: ${spec.version}" byline="true" />
+ <replaceregex pattern="X-Compile-Source-JDK:.*" replace="X-Compile-Source-JDK: ${javac.source}" byline="true" />
+ <replaceregex pattern="X-Compile-Target-JDK:.*" replace="X-Compile-Target-JDK: ${javac.target}" byline="true" />
+ <replaceregex pattern="Bundle-RequiredExecutionEnvironment:.*" replace="Bundle-RequiredExecutionEnvironment: ${javac.target}" byline="true" />
+ </filterchain>
+ </copy>
+ </sequential>
+ </macrodef>
+
+ <macrodef name="bundlify" description="Builds a bundle JAR file">
+ <attribute name="basedir" default="${build.dir}/classes/java"/>
+ <attribute name="destfile" default="${build.dir}/${final.name}.jar"/>
+ <element name="manifest-attributes" optional="yes"/>
+ <element name="metainf-includes" optional="yes"/>
+ <sequential>
+ <!-- If possible, include the svnversion -->
+ <exec dir="." executable="svnversion"
+ outputproperty="svnversion" failifexecutionfails="false">
+ <arg line="."/>
+ </exec>
+
+ <build-bundle-manifest />
+
+ <jar
+ destfile="@{destfile}"
+ basedir="@{basedir}"
+ manifest="${manifest.file}">
+ <manifest>
+ <manifest-attributes/>
+ </manifest>
+ <metainf dir="${common.dir}">
+ <include name="LICENSE.txt"/>
+ <include name="NOTICE.txt"/>
+ </metainf>
+ <metainf-includes/>
+ </jar>
+ </sequential>
+ </macrodef>
+
<target name="compile-test" depends="compile-core">
<compile
srcdir="src/test"