summaryrefslogtreecommitdiff
path: root/qpid/java/module.xml
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/java/module.xml')
-rw-r--r--qpid/java/module.xml909
1 files changed, 909 insertions, 0 deletions
diff --git a/qpid/java/module.xml b/qpid/java/module.xml
new file mode 100644
index 0000000000..8c6a05e035
--- /dev/null
+++ b/qpid/java/module.xml
@@ -0,0 +1,909 @@
+<!--
+ -
+ - 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="module" xmlns:artifact="antlib:org.apache.maven.artifact.ant">
+
+ <import file="common.xml"/>
+
+ <path id="maven-ant-tasks.classpath" path="${project.root}/lib/maven-ant-tasks-2.1.1.jar" />
+ <typedef resource="org/apache/maven/artifact/ant/antlib.xml"
+ uri="antlib:org.apache.maven.artifact.ant"
+ classpathref="maven-ant-tasks.classpath" />
+
+ <map property="module" value="${basedir}" split="${path.separator}">
+ <globmapper from="${project.root}${file.separator}*" to="*"/>
+ </map>
+
+ <map property="module.name" value="${module}">
+ <filtermapper>
+ <replacestring from="${file.separator}" to="-"/>
+ </filtermapper>
+ </map>
+
+ <echo message="Running ant for module : ${module}" level="info"/>
+
+ <property file="${project.root}/build.deps"/>
+
+ <property name="module.build" location="${build.scratch}/${module}"/>
+ <property name="module.classes" location="${module.build}/classes"/>
+ <property name="module.instrumented" location="${module.build}/classes-instrumented"/>
+ <property name="module.precompiled" location="${module.build}/src"/>
+ <property name="module.api" location="${build.api}/${module}/"/>
+ <property name="module.test.api" location="${build.test.api}/${module}"/>
+ <property name="module.test.classes" location="${module.build}/test/classes"/>
+ <property name="module.results" location="${build.results}/${module}"/>
+ <property name="module.failed" location="${module.results}/FAILED"/>
+ <property name="module.src" location="src/main/java"/>
+ <property name="module.test.src" location="src/test/java"/>
+ <property name="module.bin" location="bin"/>
+ <property name="module.etc" location="etc"/>
+
+ <property name="module.namever" value="${project.name}-${module.name}-${project.version}"/>
+ <property name="module.namever.osgi" value="${project.name}-${module.name}_${project.version}.0.osgi"/>
+ <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.genpom.args" value=""/>
+ <property name="maven.remote.repo" value="file://${module.release.base}/maven"/>
+
+ <property name="broker.log.prefix" value="BROKER: "/>
+ <property name="broker.log.interleave" value="true"/>
+
+ <property name="module.qpid.jar" location="${module.release.lib}/qpid-all.jar"/>
+ <basename property="qpid.jar.name" file="${module.qpid.jar}"/>
+
+ <property name="module.coverage" location="${module.build}/coverage"/>
+ <property name="cobertura.datafile" location="${module.instrumented}/cobetura.ser"/>
+
+
+ <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}"/>
+
+ <property name="module.source.jar"
+ location="${build.lib}/${project.name}-${module.name}-${project.version}-sources.jar"/>
+
+ <!-- module.depends and module.test.depends are supplied by the importing file -->
+ <property name="module.depends" value=""/>
+ <property name="module.test.depends" value=""/>
+ <property name="module.test.excludes" value=""/>
+
+ <map property="module.depends.path" value="${module.depends}" join="${path.separator}">
+ <globmapper from="*" to="${build.scratch}/*/classes"/>
+ </map>
+
+ <map property="module.test.depends.path" value="${module.test.depends}" join="${path.separator}">
+ <globmapper from="*" to="${build.scratch}/*/classes"/>
+ </map>
+
+
+ <!-- Add depenencies dependencies to path -->
+ <map property="module.depends.libs" value="${module.depends}" join=" ">
+ <chainedmapper>
+ <filtermapper>
+ <replacestring from="${file.separator}" to="-"/>
+ </filtermapper>
+ <propertymapper from="*" to="*.libs"/>
+ </chainedmapper>
+ </map>
+ <condition property="module.depends.libs.includes" value="__EMPTY__" else="${module.depends.libs}">
+ <equals trim="true" arg1="${module.depends.libs}" arg2=""/>
+ </condition>
+
+
+ <!-- Add depenencies test dependencies to path -->
+ <map property="module.test.depends.libs" value="${module.test.depends}" join=" ">
+ <chainedmapper>
+ <filtermapper>
+ <replacestring from="${file.separator}" to="-"/>
+ </filtermapper>
+ <propertymapper from="*" to="*.libs"/>
+ </chainedmapper>
+ </map>
+ <condition property="module.test.depends.libs.includes" value="__EMPTY__" else="${module.test.depends.libs}">
+ <equals trim="true" arg1="${module.test.depends.libs}" arg2=""/>
+ </condition>
+
+
+ <indirect name="module.libs" variable="${module.name}.libs"/>
+ <condition property="module.libs.includes" value="__EMPTY__" else="${module.libs}">
+ <equals trim="true" arg1="${module.libs}" arg2=""/>
+ </condition>
+
+ <indirect name="module.test.libs" variable="${module.name}.test.libs"/>
+ <condition property="module.test.libs.includes" value="__EMPTY__" else="${module.test.libs}">
+ <equals trim="true" arg1="${module.test.libs}" arg2=""/>
+ </condition>
+
+ <path id="module.libs">
+ <fileset dir="${project.root}" includes="${module.libs.includes}"/>
+ <fileset dir="${project.root}" includes="${module.depends.libs.includes}"/>
+ </path>
+
+ <path id="module.test.libs">
+ <fileset dir="${project.root}" includes="${module.test.libs.includes}"/>
+ <fileset dir="${project.root}" includes="${module.test.depends.libs.includes}"/>
+ </path>
+
+ <path id="module.src.path">
+ <pathelement location="${module.src}"/>
+ <pathelement location="${module.precompiled}"/>
+ </path>
+
+ <path id="module.test.src.path">
+ <pathelement location="${module.test.src}"/>
+ </path>
+
+ <condition property="module.jar"
+ value="${build.plugins}/${project.name}-${module.name}-${project.version}.jar"
+ else="${build.lib}/${project.name}-${module.name}-${project.version}.jar">
+ <and>
+ <isset property="module.plugin"/>
+ <istrue value="${module.plugin}"/>
+ </and>
+ </condition>
+
+ <property name="module.test.jar"
+ location="${build.lib}/${project.name}-${module.name}-tests-${project.version}.jar"/>
+
+ <path id="module.class.path">
+ <pathelement location="${module.classes}"/>
+ <pathelement path="${module.depends.path}"/>
+ <path refid="module.libs"/>
+ </path>
+
+ <path id="module.test.path">
+ <pathelement path="${module.test.classes}"/>
+ <path refid="module.class.path"/>
+ <pathelement path="${module.test.depends.path}"/>
+ <path refid="module.test.libs"/>
+ </path>
+
+ <property name="javac.deprecation" value="off"/>
+
+ <target name="debug">
+ <echo-prop name="basedir"/>
+ <echo-prop name="project.root"/>
+ <echo-prop name="module"/>
+ <echo-prop name="module.libs"/>
+ <echo-prop name="module.test.libs"/>
+ <echo-prop name="module.name"/>
+ <echo-prop name="module.jar"/>
+ <echo-prop name="module.depends"/>
+ <echo-prop name="module.depends.path"/>
+ <echo-prop name="module.test.depends"/>
+ <echo-prop name="module.test.depends.path"/>
+ <echo-prop name="module.depends.libs"/>
+ <echo-prop name="module.test.depends.libs"/>
+ <echo-path refid="module.src.path"/>
+ <echo-path refid="module.class.path"/>
+ <echo-path refid="module.test.path"/>
+ </target>
+
+ <target name="prepare">
+ <mkdir dir="${build.bin}"/>
+ <mkdir dir="${build.etc}"/>
+ <mkdir dir="${build.lib}"/>
+ <mkdir dir="${build.results}"/>
+ <mkdir dir="${build.data}"/>
+ <mkdir dir="${build.plugins}"/>
+ <mkdir dir="${module.classes}"/>
+ <mkdir dir="${module.precompiled}"/>
+ <mkdir dir="${module.api}"/>
+ <mkdir dir="${module.test.api}"/>
+ <mkdir dir="${module.test.classes}"/>
+ <mkdir dir="${module.results}"/>
+ </target>
+
+ <target name="pom" depends="prepare" if="module.genpom">
+ <jython path="${mllib.dir}">
+ <args>
+ <arg line='"${project.root}/genpom"'/>
+ <arg line='-s "${project.root}/lib/poms"'/>
+ <arg line='-o "${build.scratch}/qpid-${module.name}.pom"'/>
+ <arg line="-u ${project.url}"/>
+ <arg line="-g ${project.groupid}"/>
+ <arg line="-v ${project.version}${maven.version.suffix}"/>
+ <arg line="-p qpid"/>
+ <arg line='-m "${module.depends}"'/>
+ <arg line="-a ${module.name}"/>
+ <arg line="${module.genpom.args}"/>
+ <arg line="${module.libs}"/>
+ </args>
+ </jython>
+ </target>
+
+ <target name="release-mvn" depends="pom" if="module.genpom" description="Install the artifacts into the local repository and prepare the release">
+ <antcall target="build"/>
+
+ <artifact:pom id="module.pom" file="${build.scratch}/qpid-${module.name}.pom"/>
+
+ <artifact:install file="${module.jar}" pomRefId="module.pom" settingsFile="${maven.settings.xml}">
+ <localRepository path="${maven.local.repo}"/>
+ </artifact:install>
+
+ <artifact:deploy file="${module.jar}" pomRefId="module.pom" uniqueVersion="${maven.unique.version}" settingsFile="${maven.settings.xml}">
+ <attach file="${module.source.jar}" classifier="sources"/>
+ <localRepository path="${maven.local.repo}"/>
+ <remoteRepository url="${maven.remote.repo}"/>
+ </artifact:deploy>
+ </target>
+
+ <target name="precompile"/>
+
+ <target name="compile" depends="prepare,precompile" description="compile sources">
+
+ <echo message="Targeting : ${java.target}" level="info"/>
+
+ <javac source="${java.source}" target="${java.target}"
+ destdir="${module.classes}" debug="on" debuglevel="lines,vars,source" includeantruntime="false"
+ deprecation="${javac.deprecation}">
+ <compilerarg line="${javac.compiler.args}"/>
+ <src refid="module.src.path"/>
+ <classpath refid="module.class.path"/>
+ </javac>
+
+ <!-- copy any non java src files into the build tree, e.g. log4j.properties -->
+ <copy todir="${module.classes}" verbose="true">
+ <fileset dir="${module.src}">
+ <exclude name="**/*.java"/>
+ <exclude name="**/package.html"/>
+ </fileset>
+ </copy>
+ </target>
+
+ <target name="precompile-tests" if="module.test.src.exists"/>
+
+ <target name="compile-tests" depends="compile,precompile-tests" if="module.test.src.exists"
+ description="compilte unit tests">
+ <javac target="${java.target}" source="${java.source}"
+ destdir="${module.test.classes}" debug="on"
+ deprecation="${javac.deprecation}"
+ srcdir="${module.test.src}">
+ <classpath refid="module.test.path"/>
+ </javac>
+
+ <!-- copy any non java src files into the build tree, e.g. log4j.properties -->
+ <copy todir="${module.test.classes}" verbose="true">
+ <fileset dir="${module.test.src}">
+ <exclude name="**/*.java"/>
+ <exclude name="**/package.html"/>
+ </fileset>
+ </copy>
+ </target>
+
+
+ <property name="profile" value="default"/>
+ <property name="testprofile.file" value="${test.profiles}/${profile}.testprofile"/>
+
+ <available file="${testprofile.file}" property="testprofile.file.present"/>
+ <fail unless="testprofile.file.present" message="The requested test profile was not found: ${testprofile.file}"/>
+
+ <property file="${testprofile.file}" prefix="preload"/>
+ <property name="preload.include" value=""/>
+ <condition property="profiles"
+ value="${preload.include} ${profile}"
+ else="default ${preload.include} ${profile}">
+ <equals arg1="${profile}" arg2="default"/>
+ </condition>
+ <map property="_profile_files" value="${profiles}" join=" ">
+ <globmapper from="*" to="*.testprofile"/>
+ </map>
+ <concat destfile="${build.scratch}/test-${profile}.properties" force="no" fixlastline="yes">
+ <filelist dir="${test.profiles}" files="${_profile_files}"/>
+ </concat>
+ <property file="${build.scratch}/test-${profile}.properties"/>
+
+ <map property="test.excludefiles" value="${test.excludes}">
+ <globmapper from="*" to="${test.profiles}/*"/>
+ </map>
+
+
+ <condition property="dontruntest" value="dontruntest" else="runtest">
+ <contains substring="${module.name}" string="${exclude.modules}" />
+ </condition>
+
+ <property name="jvm.args" value=""/>
+ <property name="broker.existing.qpid.work" value=""/>
+
+ <target name="test" depends="build,compile-tests" if="module.test.src.exists"
+ unless="${dontruntest}" description="execute unit tests">
+
+ <delete file="${module.failed}"/>
+
+ <echo message="Using profile:${profile}" level="info"/>
+ <junit fork="yes" forkmode="once" maxmemory="${test.mem}" reloading="no"
+ haltonfailure="${haltonfailure}" haltonerror="${haltonerror}"
+ failureproperty="test.failures" printsummary="on" timeout="6000000" >
+
+ <jvmarg line="${jvm.args}" />
+
+ <sysproperty key="amqj.logging.level" value="${amqj.logging.level}"/>
+ <sysproperty key="amqj.server.logging.level" value="${amqj.server.logging.level}"/>
+ <sysproperty key="amqj.protocol.logging.level" value="${amqj.protocol.logging.level}"/>
+ <sysproperty key="log4j.debug" value="${log4j.debug}"/>
+ <sysproperty key="root.logging.level" value="${root.logging.level}"/>
+ <sysproperty key="log4j.configuration" value="${log4j.configuration}"/>
+ <sysproperty key="java.naming.factory.initial" value="${java.naming.factory.initial}"/>
+ <sysproperty key="java.naming.provider.url" value="${java.naming.provider.url}"/>
+ <sysproperty key="broker" value="${broker}"/>
+ <sysproperty key="broker.clean" value="${broker.clean}"/>
+ <sysproperty key="broker.clean.between.tests" value="${broker.clean.between.tests}"/>
+ <sysproperty key="broker.existing.qpid.work" value="${broker.existing.qpid.work}"/>
+ <sysproperty key="broker.persistent" value="${broker.persistent}"/>
+ <sysproperty key="broker.version" value="${broker.version}"/>
+ <sysproperty key="broker.ready" value="${broker.ready}" />
+ <sysproperty key="broker.stopped" value="${broker.stopped}" />
+ <sysproperty key="broker.config" value="${broker.config}" />
+ <sysproperty key="messagestore.class.name" value="${messagestore.class.name}" />
+ <sysproperty key="test.output" value="${module.results}"/>
+ <sysproperty key="qpid.amqp.version" value="${qpid.amqp.version}"/>
+
+ <syspropertyset>
+ <propertyref prefix="test"/>
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="profile"/>
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="javax.net.ssl"/>
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="broker"/>
+ </syspropertyset>
+
+ <sysproperty key="max_prefetch" value ="${max_prefetch}"/>
+ <sysproperty key="qpid.dest_syntax" value ="${qpid.dest_syntax}"/>
+
+ <sysproperty key="example.plugin.target" value="${project.root}/build/lib/plugins"/>
+ <sysproperty key="QPID_EXAMPLE_HOME" value="${qpid.home}"/>
+ <sysproperty key="QPID_HOME" value="${qpid.home}"/>
+ <sysproperty key="QPID_WORK" value="${qpid.work}"/>
+
+ <formatter type="plain"/>
+ <formatter type="xml"/>
+
+ <classpath refid="module.test.path"/>
+
+ <batchtest todir="${module.results}">
+ <fileset dir="${module.test.src}" excludes="${module.test.excludes}">
+ <include name="**/${test}.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+
+ <antcall target="touch-failed"/>
+
+ <condition property="failed">
+ <and>
+ <isfalse value="${test.failures.ignore}"/>
+ <available file="${module.failed}"/>
+ </and>
+ </condition>
+
+ <fail if="failed" message="TEST SUITE FAILED"/>
+
+ </target>
+
+ <target name="report-module" description="generate junit reports for each module">
+ <junitreport todir="${module.results}">
+ <fileset dir="${module.results}">
+ <include name="TEST-*.xml"/>
+ </fileset>
+ <report format="frames" todir="${module.results}/report/html"/>
+ </junitreport>
+ </target>
+
+ <target name="touch-failed" if="test.failures">
+ <touch file="${module.failed}"/>
+ <touch file="${build.failed}"/>
+ </target>
+
+ <target name="copy-bin" if="module.bin.exists" description="copy bin directory if it exists to build tree">
+ <copy todir="${build.bin}" failonerror="false">
+ <fileset dir="${module.bin}"/>
+ </copy>
+ <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="postbuild" description="run after a build"/>
+
+ <target name="build" depends="jar,jar-tests,jar-sources,libs,copy-bin,copy-etc,postbuild" 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}"/>
+ </target>
+
+ <target name="jar.nomanifest" depends="compile" unless="module.manifest">
+ <jar destfile="${module.jar}" basedir="${module.classes}">
+ <metainf dir="${project.root}/resources/" />
+ </jar>
+ </target>
+
+ <target name="jar" depends="jar.manifest,jar.nomanifest" description="create jar"/>
+
+ <target name="jar-tests" depends="compile-tests" description="create unit test jar">
+ <jar destfile="${module.test.jar}" basedir="${module.test.classes}"/>
+ </target>
+
+ <target name="jar-sources" depends="prepare" description="create sources jar">
+ <jar destfile="${module.source.jar}">
+ <fileset dir="${project.root}/resources">
+ <include name="LICENSE"/>
+ <include name="NOTICE"/>
+ </fileset>
+ <fileset dir="${module.src}" includes="**/*.java"/>
+ <fileset dir="${module.precompiled}" includes="**/*.java"/>
+ </jar>
+ </target>
+
+ <target name="libs" description="copy dependencies into build tree">
+ <copylist todir="${build.lib}" dir="${project.root}" files="${module.libs}"/>
+ </target>
+
+ <map property="module.depends.jars" value="${module.depends}" join=",">
+ <globmapper from="*" to="${project.name}-*-${project.version}.jar"/>
+ <filtermapper>
+ <replacestring from="/" to="-"/>
+ </filtermapper>
+ </map>
+
+
+ <target name="libs-release" description="copy dependencies into module release">
+ <!-- Copy the module dependencies -->
+ <echo message="${module.libs}"/>
+ <copylist todir="${module.release}/lib" dir="${project.root}" files="${module.libs}"/>
+ <copylist todir="${module.release}/lib" dir="${project.root}" files="${module.depends.libs}"/>
+
+ <!-- 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>
+
+ <property name="module.doc.access" value="package"/>
+ <target name="doc" depends="prepare" unless="doc.done" description="generate api-doc">
+ <javadoc access="${module.doc.access}" destdir="${module.api}" author="false" version="true" use="true"
+ windowtitle="${project.name} - ${module.name} - API Documentation"
+ sourcepathref="module.src.path" classpathref="module.class.path" packagenames="*">
+ <arg value="-J-Dhttp.proxyHost=${http.proxyHost}"/>
+ <arg value="-J-Dhttp.proxyPort=${http.proxyPort}"/>
+ <bottom><![CDATA[<em><a href="http://www.apache.org/licenses/LICENSE-2.0">Licensed to the Apache Software Foundation</a></em>]]></bottom>
+ <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
+ <link href="http://download.oracle.com/docs/cd/E17477_01/javaee/5/api/"/>
+ <link href="http://commons.apache.org/configuration/apidocs/"/>
+ <tag name="todo" scope="all" description="Todo:" />
+ </javadoc>
+ </target>
+
+ <uptodate property="test-doc.done" targetfile="${module.test.api}/index.html">
+ <srcfiles dir="${module.test.src}" includes="**/*.java"/>
+ </uptodate>
+
+ <property name="module.test.doc.access" value="public"/>
+ <target name="test-doc" depends="prepare" unless="testdoc.done" if="module.test.src.exists" description="generate test api-doc">
+ <javadoc access="${module.test.doc.access}" destdir="${module.test.api}" author="false" version="true" use="true"
+ windowtitle="${project.name} - ${module.name} - Test API Documentation"
+ sourcepathref="module.test.src.path" classpathref="module.test.path" packagenames="*">
+ <arg value="-J-Dhttp.proxyHost=${http.proxyHost}"/>
+ <arg value="-J-Dhttp.proxyPort=${http.proxyPort}"/>
+ <bottom><![CDATA[<em><a href="http://www.apache.org/licenses/LICENSE-2.0">Licensed to the Apache Software Foundation</a></em>]]></bottom>
+ <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
+ <link href="http://download.oracle.com/docs/cd/E17477_01/javaee/5/api/"/>
+ <link href="http://commons.apache.org/configuration/apidocs/"/>
+ <tag name="todo" scope="all" description="Todo:" />
+ </javadoc>
+ </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="bundle" description="Build module osgi artifact. Override and depend on bundle-tasks to use"/>
+
+ <target name="bundle-tasks" depends="jar">
+ <taskdef resource="aQute/bnd/ant/taskdef.properties" classpath="${project.root}/lib/bnd-0.0.384.jar"/>
+ <echo message="Bundling ${build}/lib/${module.namever}.jar with ${module.src}/${module.name}.bnd"/>
+ <bnd
+ classpath="${build}/lib/${module.namever}.jar"
+ eclipse="false"
+ failok="false"
+ exceptions="true"
+ output="${build}/lib/${module.namever.osgi}.jar"
+ files="${module.src}/${module.name}.bnd"/>
+ </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}"/>
+ <delete dir="${module.instrumented}"/>
+ </target>
+
+ <target name="instrument" depends="cobertura-init">
+ <cobertura-instrument todir="${module.instrumented}"
+ datafile="${cobertura.datafile}">
+ <fileset dir="${module.classes}">
+ <include name="**/*.class"/>
+ </fileset>
+ </cobertura-instrument>
+ </target>
+
+ <target name="cover-test" depends="instrument">
+
+ <mkdir dir="${build.coveragereport}" />
+ <junit fork="yes" forkmode="once" maxmemory="${test.mem}" reloading="no"
+ haltonfailure="${haltonfailure}" haltonerror="${haltonerror}"
+ failureproperty="test.failures" printsummary="on" timeout="600000" >
+
+ <sysproperty key="amqj.logging.level" value="${amqj.logging.level}"/>
+ <sysproperty key="amqj.protocol.logging.level" value="${amqj.protocol.logging.level}"/>
+ <sysproperty key="log4j.debug" value="${log4j.debug}"/>
+ <sysproperty key="root.logging.level" value="${root.logging.level}"/>
+ <sysproperty key="log4j.configuration" value="${log4j.configuration}"/>
+ <sysproperty key="java.naming.factory.initial" value="${java.naming.factory.initial}"/>
+ <sysproperty key="java.naming.provider.url" value="${java.naming.provider.url}"/>
+ <sysproperty key="broker" value="${broker}"/>
+ <sysproperty key="broker.clean" value="${broker.clean}"/>
+ <sysproperty key="broker.version" value="${broker.version}"/>
+ <sysproperty key="broker.ready" value="${broker.ready}" />
+ <sysproperty key="test.output" value="${module.results}"/>
+
+ <syspropertyset>
+ <propertyref prefix="test"/>
+ </syspropertyset>
+ <syspropertyset>
+ <propertyref prefix="broker"/>
+ </syspropertyset>
+
+ <sysproperty key="max_prefetch" value ="${max_prefetch}"/>
+ <sysproperty key="example.plugin.target" value="${project.root}/build/lib/plugins"/>
+ <sysproperty key="QPID_EXAMPLE_HOME" value="${project.root}/build"/>
+ <sysproperty key="QPID_HOME" value="${project.root}/build"/>
+
+ <sysproperty key="net.sourceforge.cobertura.datafile"
+ file="${cobertura.datafile}" />
+
+ <formatter type="plain"/>
+ <formatter type="xml"/>
+
+ <classpath path="${module.instrumented}"/>
+ <classpath>
+ <fileset dir="${build}">
+ <include name="**/classes-instrumented/*.class"/>
+ </fileset>
+ </classpath>
+ <classpath refid="module.test.path"/>
+ <classpath refid="cobertura.classpath"/>
+
+ <batchtest todir="${module.results}">
+ <fileset dir="${module.test.src}" excludes="${module.test.excludes}">
+ <include name="**/${test}.java"/>
+ </fileset>
+ </batchtest>
+ </junit>
+ </target>
+
+ <target name="coverage-report" depends="cobertura-init">
+ <echo message="${cobertura.datafile}"/>
+ <cobertura-report format="html"
+ destdir="${module.coverage}"
+ datafile="${cobertura.datafile}">
+ <fileset dir="${module.src}" includes="**/*.java" />
+ </cobertura-report>
+ </target>
+
+ <property name="version.file" location="${module.classes}/qpidversion.properties"/>
+ <property file="${version.file}" prefix="old."/>
+
+ <target name="check-version">
+ <exec executable="svnversion" spawn="false" failifexecutionfails="false"
+ dir="${project.root}" outputproperty="svnversion.output">
+ <arg line="."/>
+ </exec>
+ <condition property="version.stale">
+ <not>
+ <equals arg1="${svnversion.output}" arg2="${old.qpid.svnversion}"/>
+ </not>
+ </condition>
+ </target>
+
+ <target name="create-version" depends="check-version" if="version.stale">
+ <!-- Write the version.properties out.-->
+ <!-- Echos exactly as shown, so leave no spaces before/after lines -->
+ <echo file="${version.file}" append="false">qpid.version=${project.version}
+qpid.svnversion=${svnversion.output}
+qpid.name=${project.name}
+</echo>
+ </target>
+
+ <!-- Additions to perform LogMessage generation
+ To activate for your plugin add the following to your plugin build.xml
+
+ <target name="precompile" depends="gen_logging"/>
+
+ -->
+
+ <property name="gentools.home" location="${project.root}/../gentools" />
+ <property name="generated.dir" location="${module.precompiled}" />
+ <property name="velocity.compile.dir" value="${build.scratch}/broker/velocity"/>
+ <property name="velocity.timestamp" location="${generated.dir}/velocity.timestamp" />
+
+ <target name="compile_velocity" >
+ <mkdir dir="${velocity.compile.dir}" />
+ <!-- Compile LogMessages Velocity Generator -->
+ <javac source="${java.source}" target="${java.target}"
+ destdir="${velocity.compile.dir}" debug="on" includeantruntime="false"
+ deprecation="${javac.deprecation}"
+ srcdir="${project.root}/broker/src/velocity/java" >
+ <classpath>
+ <pathelement path="${gentools.home}/lib/velocity-1.4.jar" />
+ </classpath>
+ <compilerarg line="${javac.compiler.args}"/>
+ </javac>
+ </target>
+
+
+ <target name="check_velocity_deps">
+ <uptodate property="velocity.notRequired" targetfile="${velocity.timestamp}">
+ <srcfiles dir="${module.src}" includes="**/*_logmessages.properties" />
+ <srcfiles dir="${project.root}/broker/src/velocity/" includes="**/*.java **/*.vm" />
+ </uptodate>
+ </target>
+
+
+ <target name="gen_logging" depends="compile_velocity,check_velocity_deps" unless="velocity.notRequired">
+ <mkdir dir="${generated.dir}"/>
+
+ <path id="logmessages.path">
+ <fileset dir="${module.src}">
+ <include name="**/*_logmessages.properties"/>
+ </fileset>
+ </path>
+
+ <pathconvert property="logmessages"
+ refid="logmessages.path"
+ pathsep="' '"/>
+
+ <echo message="logmessages is ${logmessages}"/>
+
+ <java classname="org.apache.qpid.server.logging.GenerateLogMessages" fork="true" dir="${gentools.home}/src" failonerror="true">
+ <arg line="'${logmessages}'"/>
+ <arg value="-j"/>
+ <arg value="-o"/>
+ <arg value="${generated.dir}"/>
+ <arg value="-t"/>
+ <arg value="${project.root}/broker/src/velocity/templates/org/apache/qpid/server/logging/messages"/>
+ <arg value="-s"/>
+ <arg value="${module.src}"/>
+
+
+ <classpath>
+ <pathelement path="${module.src}"/>
+ <pathelement path="${velocity.compile.dir}" />
+ <fileset dir="${project.root}/lib">
+ <include name="**/*.jar"/>
+ </fileset>
+ <pathelement path="${gentools.home}/lib/velocity-1.4.jar" />
+ </classpath>
+ </java>
+ <touch file="${velocity.timestamp}" />
+ </target>
+
+ <target name="eclipse" depends="eclipse-setup,eclipse-project,eclipse-source-only,eclipse-source-and-test"/>
+
+ <target name="eclipse-setup">
+ <taskdef name="eclipse" classname="prantl.ant.eclipse.EclipseTask" />
+
+ <!-- Build set of directories representing the dependencies -->
+
+ <dirset id="eclipse.required.projectdirs.path" dir="${project.root}" includes="${module.depends} ${module.test.depends} neverBeEmpty">
+ <!-- Select only those projects from module.depends that contain a build.xml. This serves to exclude dependencies that
+ don't become Eclipse projects e.g. broker-plugins and common-tests -->
+ <present targetdir="${project.root}">
+ <mapper type="glob" from="*" to="*/build.xml"/>
+ </present>
+ </dirset>
+
+ <!-- Convert from the set of directories into Eclipse project names proceeded by forward slashes -->
+
+ <pathconvert property="eclipse.required.projectnames" refid="eclipse.required.projectdirs.path" pathsep=" " dirsep="-">
+ <map from="${project.root}${file.separator}" to=''/>
+ </pathconvert>
+ <map property="eclipse.required.slashedprojectnames" value="${eclipse.required.projectnames}" join="${path.separator}">
+ <globmapper from="*" to="/*"/>
+ </map>
+
+ <echo message="Ant module dependencies : ${module.depends} ${module.test.depends} converted to Eclipse required project(s): ${eclipse.required.slashedprojectnames}"/>
+ <path id="eclipse.required.slashedprojectnames.path">
+ <pathelement path="${eclipse.required.slashedprojectnames}"/>
+ </path>
+ </target>
+
+ <!-- Create the Eclipse .project -->
+ <target name="eclipse-project">
+ <eclipse updatealways="${eclipse.updatealways}">
+ <project name="${module.name}"/>
+
+ <!-- If the Eclipse task were to ever support the generation of
+ linked resources, we would configure it to generate
+ the following:
+
+ scratch_src -> ${module.precompiled}
+
+ in each project. This would avoid the 'linked sources'
+ manual step documented on the Wiki.
+ -->
+ </eclipse>
+ </target>
+
+ <!-- Create the Eclipse .classpath -->
+ <target name="eclipse-source-only" unless="module.test.src.exists">
+ <eclipse updatealways="${eclipse.updatealways}">
+ <settings>
+ <jdtcore compilercompliance="${eclipse.compilercompliance}" />
+ </settings>
+ <classpath>
+ <container path="${eclipse.container}" />
+ <source path="${module.src}" />
+ <source pathref="eclipse.required.slashedprojectnames.path" />
+ <library pathref="module.libs"/>
+ <output path="classes" />
+ </classpath>
+ </eclipse>
+ </target>
+
+ <!-- Create the Eclipse .classpath -->
+ <target name="eclipse-source-and-test" if="module.test.src.exists">
+ <eclipse updatealways="${eclipse.updatealways}">
+ <settings>
+ <jdtcore compilercompliance="${eclipse.compilercompliance}" />
+ </settings>
+ <classpath>
+ <container path="${eclipse.container}" />
+ <source path="${module.src}" />
+ <source path="${module.test.src}" />
+ <source pathref="eclipse.required.slashedprojectnames.path" />
+ <library pathref="module.libs"/>
+ <library pathref="module.test.libs"/>
+ <output path="classes" />
+ </classpath>
+ </eclipse>
+ </target>
+</project>