diff options
| author | Martin Ritchie <ritchiem@apache.org> | 2008-09-05 15:31:08 +0000 |
|---|---|---|
| committer | Martin Ritchie <ritchiem@apache.org> | 2008-09-05 15:31:08 +0000 |
| commit | 115927359841b7aaa5f74340a6ba7abae6ca92b2 (patch) | |
| tree | 6e77496435506569fc133c6b75b8aff1ff761fd9 /java/module.xml | |
| parent | 3fab8e0750ab1fe0a6b68545594033559133ca6a (diff) | |
| download | qpid-python-115927359841b7aaa5f74340a6ba7abae6ca92b2.tar.gz | |
QPID-1257 : Add new build target 'release-bin' that will generate a broker and client package. Documenation will be added to the wiki such that performance tests could also be packaged.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@692461 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/module.xml')
| -rw-r--r-- | java/module.xml | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/java/module.xml b/java/module.xml index cdc260399c..0ff3887e8d 100644 --- a/java/module.xml +++ b/java/module.xml @@ -42,6 +42,19 @@ <property name="module.bin" location="bin"/> <property name="module.etc" location="etc"/> + + <property name="module.namever" value="${project.name}-${module}-${project.version}"/> + <property name="module.release.base" value="${basedir}/release"/> + <property name="module.release" value="${module.release.base}/${module.namever}"/> + <property name="module.release.lib" value="${module.release}/lib"/> + <property name="module.release.zip" location="${module.release.base}/${module.namever}.zip"/> + <property name="module.release.tar" location="${module.release.base}/${module.namever}.tar"/> + <property name="module.release.tgz" location="${module.release.base}/${module.namever}.tar.gz"/> + <property name="module.release.bz2" location="${module.release}/${module.namever}.tar.bz2"/> + + <property name="module.qpid.jar" location="${module.release.lib}/qpid-incubating.jar"/> + <basename property="qpid.jar.name" file="${module.qpid.jar}"/> + <available property="module.test.src.exists" file="${module.test.src}"/> <available property="module.etc.exists" file="${module.etc}"/> <available property="module.bin.exists" file="${module.bin}"/> @@ -267,12 +280,25 @@ <chmod dir="${build.bin}" perm="ugo+rx" includes="**/*"/> </target> + <target name="copy-bin-release" if="module.bin.exists" description="copy dependencies into module release"> + <copy todir="${module.release}/bin" failonerror="true"> + <fileset dir="${module.bin}" /> + </copy> + <chmod dir="${module.release}/bin" perm="ugo+rx" includes="**/*"/> + </target> + <target name="copy-etc" if="module.etc.exists" description="copy etc directory if it exists to build tree"> <copy todir="${build.etc}" failonerror="false"> <fileset dir="${module.etc}"/> </copy> </target> + <target name="copy-etc-release" if="module.etc.exists" description="copy etc directory if it exists to build tree"> + <copy todir="${module.release}/etc" failonerror="false" flatten="true"> + <fileset dir="${module.etc}"/> + </copy> + </target> + <target name="build" depends="jar,jar-tests,libs,copy-bin,copy-etc" description="compile and copy resources into build tree"/> <target name="jar.manifest" depends="compile" if="module.manifest"> <jar destfile="${module.jar}" basedir="${module.classes}" manifest="${module.manifest}"/> @@ -296,6 +322,35 @@ </copy> </target> + <map property="module.depends.jars" value="${module.depends}" join=","> + <globmapper from="*" to="${project.name}-*-${project.version}.jar"/> + </map> + + + <target name="libs-release" description="copy dependencies into module release"> + <!-- Copy the module dependencies --> + <copy todir="${module.release}" failonerror="true"> + <fileset dir="${basedir}${file.separator}.." includes="${module.libs}"/> + </copy> + <!-- Copy the jar for this module --> + <copy todir="${module.release}/lib" failonerror="true"> + <fileset file="${module.jar}"/> + <fileset dir="${build.lib}" includes="${module.depends.jars}"/> + </copy> + </target> + + <target name="resources" description="copy resources into build tree"> + <copy todir="${build}" failonerror="false" flatten="true"> + <fileset dir="${basedir}${file.separator}.." includes="${resources}"/> + </copy> + </target> + + <target name="resources-release" description="copy resources into module release"> + <copy todir="${module.release}" failonerror="false" flatten="true"> + <fileset dir="${resources}" excludes="META-INF"/> + </copy> + </target> + <uptodate property="doc.done" targetfile="${module.api}/index.html"> <srcfiles dir="${module.src}" includes="**/*.java"/> </uptodate> @@ -304,10 +359,94 @@ <javadoc destdir="${module.api}" sourcepathref="module.src.path" classpathref="module.class.path" packagenames="*"/> </target> + + <target name="release-bin-prepare"> + <mkdir dir="${module.release}"/> + <available property="module.release.exists" file="${module.release}"/> + </target> + + <target name="check-module-manifest"> + <uptodate property="module-manifest.done" targetfile="${qpid.jar}"> + <srcfiles dir="${build.lib}" includes="**/*.jar" excludes="**/${qpid.jar.name}"/> + </uptodate> + </target> + + <target name="module-manifest" depends="check-module-manifest" unless="module-manifest.done"> + <path id="class.path"> + <fileset dir="${module.release.lib}" > + <include name="*.jar"/> + <exclude name="${qpid.jar.name}"/> + </fileset> + </path> + <pathconvert property="qpid.jar.classpath" pathsep=" " dirsep="/"> + <path refid="class.path"/> + <globmapper from="${module.release.lib}${file.separator}*" to="*"/> + </pathconvert> + + <jar destfile="${module.qpid.jar}"> + <manifest> + <attribute name="Class-Path" value="${qpid.jar.classpath}"/> + </manifest> + <metainf dir="${project.root}/resources/"/> + </jar> + + <touch file="${module.qpid.jar}"/> + </target> + + + <target name="zip-release" depends="build-release-bin" description="build module release archive"> + <zip destfile="${module.release.zip}"> + <zipfileset dir="${module.release}" prefix="${module.namever}" filemode="755"> + <include name="bin/*"/> + <exclude name="bin/*.txt"/> + </zipfileset> + + <zipfileset dir="${module.release}" prefix="${module.namever}" filemode="644"> + <include name="bin/*.txt"/> + </zipfileset> + + <zipfileset dir="${module.release}" prefix="${module.namever}" excludes="${module.release.excludes}" filemode="644" dirmode="755"> + <exclude name="bin/**"/> + <exclude name="**/*.class"/> + </zipfileset> + </zip> + </target> + + <target name="tar-release" depends="zip-release" description="build release archive"> + <tar destfile="${module.release.tar}" longfile="gnu" > + <zipfileset src="${module.release.zip}"/> + </tar> + </target> + + <target name="gzip-release" depends="tar-release" description="build release archive"> + <gzip src="${module.release.tar}" destfile="${module.release.tgz}"/> + </target> + + <target name="bzip2-release" depends="tar-release" description="build release archive"> + <bzip2 src="${module.release.tar}" destfile="${module.release.bz2}"/> + </target> + + <target name="doc-release" description="no-op override if a doc step is requried "/> + + + <target name="build-release-bin" depends="release-bin-prepare,libs-release,copy-bin-release, + copy-etc-release,doc-release,resources-release,release-bin-other,module-manifest" + description="Task that includes all tasks required to create a module binary release"/> + + <!-- ,zip-release,gzip-release --> + <target name="release-bin-tasks" depends="gzip-release" description="build all release archives except .bz2"/> + + <target name="release-bin-all-tasks" depends="bzip2-release" description="build all release archives"/> + + <!-- Dummy targets to no-op for most modules. Override if a module package is required --> + <target name="release-bin-other" description="Override if there is tasks required for the module bin release to occur last"/> + <target name="release-bin" description="Override and depend on release-bin-tasks to generate"/> + <target name="release-bin-all" description="Override and depend on release-bin-tasks to generate"/> <target name="clean" description="remove build artifacts"> <delete dir="${module.build}"/> <delete dir="${module.results}"/> + <delete dir="${module.release.base}"/> </target> </project> |
