mirror of https://github.com/apache/activemq.git
789 lines
28 KiB
XML
Executable File
789 lines
28 KiB
XML
Executable File
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!--
|
|
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 default="default"
|
|
xmlns:j="jelly:core"
|
|
xmlns:u="jelly:util"
|
|
xmlns:ant="jelly:ant"
|
|
xmlns:util="jelly:util"
|
|
xmlns:artifact="artifact"
|
|
>
|
|
|
|
<!-- ================= -->
|
|
<!-- Global Properties -->
|
|
<!-- ================= -->
|
|
|
|
<!-- Determine what the top-level project root is -->
|
|
<j:set var="project.root" value="${pom.parentBasedir().getParentFile().getCanonicalFile()}"/>
|
|
|
|
<!-- ==================== -->
|
|
<!-- Default Global Goals -->
|
|
<!-- ==================== -->
|
|
<goal name="default">
|
|
<ant:copy todir="${basedir}/src/test/org/apache/activemq/usecases" file="${basedir}/src/release/conf/activemq.xml" overwrite="true"/>
|
|
<attainGoal name="dist:build-bin"/>
|
|
</goal>
|
|
|
|
<goal name="prepare"
|
|
prereqs="dist:prepare-bin-filesystem"/>
|
|
|
|
<postGoal name="clean">
|
|
<delete dir="${basedir}/activemq-data" />
|
|
</postGoal>
|
|
|
|
<preGoal name="jar:jar">
|
|
|
|
<ant:mkdir dir="${maven.build.dir}/timestamps"/>
|
|
<!-- Unpack all the composite ActiveMQ modules into the classes dir -->
|
|
<j:forEach var="artifact" items="${pom.artifacts}">
|
|
<j:set var="dependency" value="${artifact.dependency}"/>
|
|
<j:if test="${dependency.getProperty('activemq.module') == 'true'}">
|
|
<u:file var="file" name="${artifact.path}"/>
|
|
<j:if test="${file.exists()}" >
|
|
<j:set var="uptodateFile" value="${maven.build.dir}/timestamps/${artifact.name}.ts"/>
|
|
<j:set var="uptodatePropName" value="tests.uptodate"/>
|
|
<j:remove var="${uptodatePropName}"/>
|
|
<ant:uptodate property="${uptodatePropName}" targetfile="${uptodateFile}" srcfile="${artifact.path}"/>
|
|
<j:if test="${context.getVariable(uptodatePropName) != 'true'}">
|
|
<unjar dest="${maven.build.dir}/classes" src="${artifact.path}"/>
|
|
<ant:move todir="${maven.build.dir}/classes/META-INF/${artifact.name}">
|
|
<fileset dir="${maven.build.dir}/classes/META-INF">
|
|
<include name="MANIFEST.MF*"/>
|
|
<include name="COPYRIGHT*"/>
|
|
<include name="LICENSE*"/>
|
|
<include name="NOTICE*"/>
|
|
<include name="DISCLAIMER*"/>
|
|
</fileset>
|
|
</ant:move>
|
|
<touch file="${uptodateFile}"/>
|
|
</j:if>
|
|
</j:if>
|
|
</j:if>
|
|
</j:forEach>
|
|
|
|
</preGoal>
|
|
|
|
<goal name="rebuild">
|
|
<attainGoal name="clean"/>
|
|
<attainGoal name="default"/>
|
|
</goal>
|
|
|
|
<goal
|
|
name="dist:prepare-bin-filesystem"
|
|
prereqs="jar:install"
|
|
description="Builds the binary distribution file system.">
|
|
|
|
<!--
|
|
This is the directory where everything is copied to so that it can
|
|
be archived.
|
|
-->
|
|
|
|
<ant:delete dir="${maven.dist.bin.assembly.dir}"/>
|
|
<ant:mkdir dir="${maven.dist.bin.assembly.dir}"/>
|
|
<ant:mkdir dir="${maven.build.dir}/unjar"/>
|
|
|
|
<ant:echo>
|
|
+-------------------------------------------------------+
|
|
| C R E A T I N G B I N A R Y D I S T R I B U T I O N |
|
|
+-------------------------------------------------------+
|
|
</ant:echo>
|
|
|
|
|
|
|
|
<!-- Copy in distribution files -->
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}">
|
|
<ant:fileset dir="src/release"/>
|
|
</ant:copy>
|
|
<ant:fixcrlf srcdir="${maven.dist.bin.assembly.dir}/bin" eol="crlf" eof="doc" includes="*.bat"/>
|
|
<ant:fixcrlf srcdir="${maven.dist.bin.assembly.dir}/bin" eol="lf" eof="unix" includes="*" excludes="*.bat"/>
|
|
<ant:chmod perm="ugo+rx">
|
|
<ant:fileset dir="${maven.dist.bin.assembly.dir}/bin">
|
|
<ant:include name="activemq"/>
|
|
</ant:fileset>
|
|
</ant:chmod>
|
|
|
|
<ant:jar destfile="${maven.dist.bin.assembly.dir}/bin/run.jar" basedir="${maven.build.dir}/classes">
|
|
<ant:include name="org/apache/activemq/console/Main*.class"/>
|
|
<ant:manifest>
|
|
<ant:attribute name="Main-Class" value="org.apache.activemq.console.Main"/>
|
|
</ant:manifest>
|
|
</ant:jar>
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir/conf}">
|
|
<ant:fileset dir="${maven.build.dir}/classes" includes="**/activemq.dtd"/>
|
|
</ant:copy>
|
|
|
|
<!--
|
|
<ant:unjar src="${maven.repo.local}/${pom.groupId}/jars/activemq-core-${pom.currentVersion}.jar"
|
|
dest="${maven.build.dir}/unjar">
|
|
<ant:patternset>
|
|
<ant:include name="**/activemq.dtd"/>
|
|
</ant:patternset>
|
|
</ant:unjar>
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}/conf" flatten="true">
|
|
<ant:fileset dir="${maven.build.dir}/unjar" includes="**/activemq.dtd"/>
|
|
</ant:copy>
|
|
-->
|
|
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}" file="${maven.repo.local}/${pom.groupId}/jars/${pom.artifactId}-${pom.currentVersion}.jar"/>
|
|
|
|
<!-- Copy the runtime dependencies into lib and create a classpath for the server.jar file -->
|
|
<j:set var="libDir" value="${maven.dist.bin.assembly.dir}/lib"/>
|
|
<j:set var="optionalDir" value="${maven.dist.bin.assembly.dir}/lib/optional"/>
|
|
<ant:mkdir dir="${libDir}"/>
|
|
<ant:mkdir dir="${optionalDir}"/>
|
|
|
|
<j:forEach var="artifact" items="${pom.artifacts}">
|
|
<j:set var="dependency" value="${artifact.dependency}"/>
|
|
<j:if test="${dependency.getProperty('lib') == 'true'}">
|
|
<ant:copy todir="${libDir}" file="${artifact.path}"/>
|
|
<j:set var="classpath" value="${classpath} ../lib/${artifact.name}"/>
|
|
</j:if>
|
|
</j:forEach>
|
|
|
|
<j:forEach var="artifact" items="${pom.artifacts}">
|
|
<j:set var="dependency" value="${artifact.dependency}"/>
|
|
<echo>${artifact.path} ${dependency.getProperty('optional') == 'true'}</echo>
|
|
</j:forEach>
|
|
|
|
<j:forEach var="artifact" items="${pom.artifacts}">
|
|
<j:set var="dependency" value="${artifact.dependency}"/>
|
|
<echo>${artifact.path}</echo>
|
|
<j:if test="${dependency.getProperty('optional') == 'true'}">
|
|
<ant:copy todir="${optionalDir}" file="${artifact.path}"/>
|
|
<j:if test="${dependency.extension == 'jar'}">
|
|
<j:set var="classpath" value="${classpath} ../lib/optional/${artifact.name}"/>
|
|
</j:if>
|
|
<!--
|
|
<j:if test="${dependency.extension == 'rar'}">
|
|
<ant:unzip src="${artifact.path}" dest="${optionalDir}">
|
|
<ant:patternset>
|
|
<include name="${dependency.artifactId}*.jar"/>
|
|
</ant:patternset>
|
|
</ant:unzip>
|
|
</j:if>
|
|
-->
|
|
</j:if>
|
|
</j:forEach>
|
|
|
|
<ant:echo message="${project.root}"/>
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}">
|
|
<fileset dir="${project.root}" includes="STATUS"/>
|
|
</ant:copy>
|
|
|
|
<!-- Copy documentation -->
|
|
<u:file var="file" name="${project.root}/activemq-core/target/docs"/>
|
|
<j:if test="${file.exists()}">
|
|
<j:set var="docsDest" value="${project.root}/activemq-core/target/docs"/>
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}/docs">
|
|
<ant:fileset dir="${docsDest}">
|
|
<ant:include name="**"/>
|
|
</ant:fileset>
|
|
</ant:copy>
|
|
</j:if>
|
|
|
|
<!-- Copy example modules -->
|
|
<u:file var="file" name="${project.root}/activemq-web-console"/>
|
|
<j:if test="${file.exists()}">
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}/example/activemq-web-console">
|
|
<ant:fileset dir="${file}">
|
|
<ant:include name="**"/>
|
|
<ant:exclude name="target"/>
|
|
</ant:fileset>
|
|
</ant:copy>
|
|
</j:if>
|
|
|
|
<!-- Copy example modules -->
|
|
<u:file var="file" name="${project.root}/activemq-web-demo"/>
|
|
<j:if test="${file.exists()}">
|
|
<ant:copy todir="${maven.dist.bin.assembly.dir}/example/activemq-web-demo">
|
|
<ant:fileset dir="${file}">
|
|
<ant:include name="**"/>
|
|
<ant:exclude name="target"/>
|
|
</ant:fileset>
|
|
</ant:copy>
|
|
</j:if>
|
|
|
|
</goal>
|
|
|
|
<goal
|
|
name="dist:prepare-src-filesystem"
|
|
description="Builds the source distribution file system.">
|
|
|
|
<!-- S O U R C E D I S T R I B U T I O N -->
|
|
|
|
<ant:delete dir="${maven.dist.src.assembly.dir}" />
|
|
<ant:mkdir dir="${maven.dist.src.assembly.dir}" />
|
|
|
|
<ant:echo>
|
|
+-------------------------------------------------------+
|
|
| C R E A T I N G S O U R C E D I S T R I B U T I O N |
|
|
+-------------------------------------------------------+
|
|
</ant:echo>
|
|
|
|
<ant:copy todir="${maven.dist.src.assembly.dir}">
|
|
<ant:fileset dir="${project.root}">
|
|
<ant:exclude name="**/target/**"/>
|
|
<ant:exclude name="*/bin/**"/>
|
|
<ant:exclude name="**/CVS/**"/>
|
|
<ant:exclude name="**/.*/**"/>
|
|
<ant:exclude name="**/junit*.properties"/>
|
|
<ant:exclude name="**/*~"/>
|
|
<ant:exclude name="**/*.bak"/>
|
|
<ant:exclude name="**/activemq-data/**"/>
|
|
<ant:exclude name="activemq-core/foo/**"/>
|
|
<ant:exclude name="data/**"/>
|
|
</ant:fileset>
|
|
</ant:copy>
|
|
|
|
<ant:available property="maven.dist.build.xml.avail" file="${basedir}/build.xml"/>
|
|
|
|
<j:choose>
|
|
<j:when test="${maven.dist.build.xml.avail}">
|
|
<ant:copy todir="${maven.dist.src.assembly.dir}" file="${basedir}/build.xml"/>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<j:if test="${sourcesPresent == 'true'}">
|
|
<attainGoal name="ant:generate-build"/>
|
|
<ant:move
|
|
file="${basedir}/build.xml"
|
|
tofile="${maven.dist.src.assembly.dir}/build.xml"/>
|
|
</j:if>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
|
|
<!-- Copy Source -->
|
|
<util:available file="${maven.src.dir}">
|
|
<ant:copy todir="${maven.dist.src.assembly.dir}/src">
|
|
<ant:fileset dir="${maven.src.dir}" />
|
|
</ant:copy>
|
|
</util:available>
|
|
</goal>
|
|
|
|
<!-- ================================================================ -->
|
|
<!-- GOALS for running activemq components -->
|
|
<!-- ================================================================ -->
|
|
|
|
<!-- Sample programs -->
|
|
<goal name="server" prereqs="setclasspath"
|
|
description="Runs the ActiveMQ server">
|
|
|
|
<j:choose>
|
|
<j:when test="${empty(url)}">
|
|
<!-- run using XML deployment descriptor -->
|
|
|
|
<j:if test="${empty(config)}">
|
|
<j:set var="config" value="xbean:file:src/release/conf/activemq.xml"/>
|
|
</j:if>
|
|
|
|
<echo>Running an ActiveMQ server with $$config = ${config}</echo>
|
|
<java classname="org.apache.activemq.console.Main" fork="yes" maxmemory="512M">
|
|
<classpath refid="test.classpath"/>
|
|
<arg value="${config}"/>
|
|
<j:if test="${!empty(debug)}">
|
|
<jvmarg value="-Xdebug"/>
|
|
<jvmarg value="-Xnoagent"/>
|
|
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>
|
|
<jvmarg value="-Djava.compiler=NONE"/>
|
|
</j:if>
|
|
<j:if test="${empty(ignoreServer) || !empty(debug)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<sysproperty key="derby.system.home" value="target/derby"/>
|
|
<sysproperty key="derby.storage.fileSyncTransactionLog" value="true"/>
|
|
</java>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<!-- run simple server using just a URL -->
|
|
|
|
<echo>Running an ActiveMQ server at $$url = ${url}</echo>
|
|
<java classname="org.apache.activemq.console.Main" fork="yes" maxmemory="512M">
|
|
<classpath refid="test.classpath"/>
|
|
<arg value="${url}"/>
|
|
|
|
<j:if test="${!empty(debug)}">
|
|
<jvmarg value="-Xdebug"/>
|
|
<jvmarg value="-Xnoagent"/>
|
|
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>
|
|
<jvmarg value="-Djava.compiler=NONE"/>
|
|
</j:if>
|
|
<j:if test="${empty(ignoreServer) || !empty(debug)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<sysproperty key="derby.system.home" value="target/derby"/>
|
|
<sysproperty key="derby.storage.fileSyncTransactionLog" value="true"/>
|
|
<sysproperty key="activemq.persistenceAdapterFactory" value="${activemq.persistenceAdapterFactory}"/>
|
|
</java>
|
|
</j:otherwise>
|
|
</j:choose>
|
|
|
|
</goal>
|
|
|
|
<goal name="profile:server" prereqs="setclasspath"
|
|
description="Profiles the ActiveMQ server with OptimizeIt">
|
|
<j:if test="${empty(OPTIT_HOME)}">
|
|
<j:set var="OPTIT_HOME" value="C:/java/OptimizeitSuite/OptimizeitSuite50"/>
|
|
</j:if>
|
|
<j:choose>
|
|
<j:when test="${empty(url)}">
|
|
<!-- run using XML deployment descriptor -->
|
|
|
|
<j:if test="${empty(config)}">
|
|
<j:set var="config" value="src/sample-conf/default.xml"/>
|
|
</j:if>
|
|
|
|
<echo>Profiling an ActiveMQ server with $$config = ${config}</echo>
|
|
|
|
<java classname="intuitive.audit.Audit" fork="yes" maxmemory="64M">
|
|
<classpath refid="test.classpath"/>
|
|
<classpath path="${OPTIT_HOME}/lib/optit.jar"/>
|
|
<jvmarg value="-classic"/>
|
|
<jvmarg value="-Xrunpri"/>
|
|
<jvmarg value="-Xbootclasspath/a:${OPTIT_HOME}/lib/oibcp.jar"/>
|
|
<jvmarg value="-Xnoclassgc"/>
|
|
<arg value="-pause"/>
|
|
<arg value="org.apache.activemq.console.Main"/>
|
|
<arg value="${config}"/>
|
|
</java>
|
|
</j:when>
|
|
<j:otherwise>
|
|
<!-- run simple server using just a URL -->
|
|
|
|
<echo>Profiling an ActiveMQ server at $$url = ${url}</echo>
|
|
|
|
<java classname="intuitive.audit.Audit" fork="yes" maxmemory="64M">
|
|
<classpath refid="test.classpath"/>
|
|
<classpath path="${OPTIT_HOME}/lib/optit.jar"/>
|
|
<jvmarg value="-classic"/>
|
|
<jvmarg value="-Xrunpri"/>
|
|
<jvmarg value="-Xbootclasspath/a:${OPTIT_HOME}/lib/oibcp.jar"/>
|
|
<jvmarg value="-Xnoclassgc"/>
|
|
<arg value="-pause"/>
|
|
<arg value="org.apache.activemq.console.Main"/>
|
|
<arg value="${url}"/>
|
|
<sysproperty key="derby.system.home" value="target/derby"/>
|
|
<sysproperty key="derby.storage.fileSyncTransactionLog" value="true"/>
|
|
<sysproperty key="activemq.persistenceAdapterFactory" value="${activemq.persistenceAdapterFactory}"/>
|
|
</java>
|
|
|
|
</j:otherwise>
|
|
</j:choose>
|
|
|
|
</goal>
|
|
|
|
<goal name="webserver" prereqs="setclasspath"
|
|
description="Runs the ActiveMQ server embedded inside a web server">
|
|
|
|
<!--
|
|
<j:set var="maven.test.skip" value="true"/>
|
|
<attainGoal name="war"/>
|
|
-->
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="${maven.repo.local}/${pom.groupId}/wars/activemq-web-${pom.currentVersion}.war"/>
|
|
</j:if>
|
|
|
|
<echo>Running an ActiveMQ web server with webapp = ${url}</echo>
|
|
<java classname="org.apache.activemq.tool.WebServer" fork="yes">
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-server"/>
|
|
<arg value="${url}"/>
|
|
<sysproperty key="org.apache.commons.logging.simplelog.defaultlog" value="debug"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="consumer" prereqs="setclasspath"
|
|
description="Runs a simple consumer">
|
|
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="tcp://localhost:61616"/>
|
|
</j:if>
|
|
<j:if test="${empty(topic)}">
|
|
<j:set var="topic" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="FOO.BAR"/>
|
|
</j:if>
|
|
<j:if test="${empty(durable)}">
|
|
<j:set var="durable" value="false"/>
|
|
</j:if>
|
|
<j:if test="${empty(max)}">
|
|
<j:set var="max" value="0"/>
|
|
</j:if>
|
|
|
|
<echo>Running consumer against server at $$url = ${url} for subject $$subject = ${subject}</echo>
|
|
<java classname="org.apache.activemq.tool.ConsumerTool" fork="yes" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-server"/>
|
|
<arg value="${url}"/>
|
|
<arg value="${topic}"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${durable}"/>
|
|
<arg value="${max}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="producer" prereqs="setclasspath"
|
|
description="Runs a simple producer">
|
|
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="tcp://localhost:61616"/>
|
|
</j:if>
|
|
<j:if test="${empty(topic)}">
|
|
<j:set var="topic" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="FOO.BAR"/>
|
|
</j:if>
|
|
<j:if test="${empty(durable)}">
|
|
<j:set var="durable" value="false"/>
|
|
</j:if>
|
|
<j:if test="${empty(messageCount)}">
|
|
<j:set var="messageCount" value="10"/>
|
|
</j:if>
|
|
<j:if test="${empty(messageSize)}">
|
|
<j:set var="messageSize" value="255"/>
|
|
</j:if>
|
|
|
|
|
|
<echo>Running producer against server at $$url = ${url} for subject $$subject = ${subject}</echo>
|
|
<java classname="org.apache.activemq.tool.ProducerTool" fork="yes" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-server"/>
|
|
<arg value="${url}"/>
|
|
<arg value="${topic}"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${durable}"/>
|
|
<arg value="${messageCount}"/>
|
|
<arg value="${messageSize}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
|
|
<!-- JNDI examples -->
|
|
<goal name="jndi:producer" prereqs="setclasspath"
|
|
description="Runs a simple producer using JNDI to find the ConnectionFactory and Destination">
|
|
|
|
<j:if test="${!empty(jndi)}">
|
|
<echo>Using JNDI properties ${jndi}</echo>
|
|
<copy tofile="target/test-classes/jndi.properties" file="${jndi}" overwrite="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="MyQueue"/>
|
|
</j:if>
|
|
<j:if test="${empty(messageCount)}">
|
|
<j:set var="messageCount" value="10"/>
|
|
</j:if>
|
|
|
|
<echo>Running producer using subject $$subject = ${subject}</echo>
|
|
<java classname="org.apache.activemq.demo.SimpleProducer" fork="yes">
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-server"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${messageCount}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="jndi:consumer" prereqs="setclasspath"
|
|
description="Runs a simple consumer using JNDI to find the ConnectionFactory and Destination">
|
|
|
|
<j:if test="${!empty(jndi)}">
|
|
<echo>Using JNDI properties ${jndi}</echo>
|
|
<copy tofile="target/test-classes/jndi.properties" file="${jndi}" overwrite="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="MyQueue"/>
|
|
</j:if>
|
|
|
|
<echo>Running consumer using subject $$subject = ${subject}</echo>
|
|
<java classname="org.apache.activemq.demo.SimpleConsumer" fork="yes">
|
|
<classpath refid="test.classpath"/>
|
|
<jvmarg value="-server"/>
|
|
<arg value="${subject}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<!-- benchmark tools -->
|
|
<goal name="bench:consumer" prereqs="setclasspath"
|
|
description="Runs a benchmark consumer">
|
|
|
|
<j:if test="${empty(topic)}">
|
|
<j:set var="topic" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="tcp://localhost:61616"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="FOO.BAR"/>
|
|
</j:if>
|
|
<j:if test="${empty(durable)}">
|
|
<j:set var="durable" value="false"/>
|
|
</j:if>
|
|
<j:if test="${empty(connections)}">
|
|
<j:set var="connections" value="1"/>
|
|
</j:if>
|
|
|
|
<echo>Running topic consumer against server at $$url = ${url} for subject $$subject = ${subject} with $$topic = ${topic}</echo>
|
|
<java classname="org.apache.activemq.benchmark.Consumer" fork="yes" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<j:if test="${empty(ignoreServer)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<arg value="${url}"/>
|
|
<arg value="${topic}"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${durable}"/>
|
|
<arg value="${connections}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="bench:producer" prereqs="setclasspath"
|
|
description="Runs a benchmark producer">
|
|
|
|
<j:if test="${empty(topic)}">
|
|
<j:set var="topic" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="tcp://localhost:61616"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="FOO.BAR"/>
|
|
</j:if>
|
|
<j:if test="${empty(durable)}">
|
|
<j:set var="durable" value="false"/>
|
|
</j:if>
|
|
<j:if test="${empty(messageSize)}">
|
|
<j:set var="messageSize" value="1000"/>
|
|
</j:if>
|
|
<j:if test="${empty(connections)}">
|
|
<j:set var="connections" value="1"/>
|
|
</j:if>
|
|
|
|
<echo>Running topic producer against server at $$url = ${url} for subject $$subject = ${subject} with $$topic = ${topic} $$messageSize = ${messageSize}</echo>
|
|
<java classname="org.apache.activemq.benchmark.Producer" fork="yes">
|
|
<classpath refid="test.classpath"/>
|
|
<j:if test="${empty(ignoreServer)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<arg value="${url}"/>
|
|
<arg value="${topic}"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${durable}"/>
|
|
<arg value="${messageSize}"/>
|
|
<arg value="${connections}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
|
|
<goal name="bench:both" prereqs="setclasspath"
|
|
description="Runs a benchmark producer and consumer inside the same JVM">
|
|
|
|
<j:if test="${empty(topic)}">
|
|
<j:set var="topic" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(url)}">
|
|
<j:set var="url" value="tcp://localhost:61616"/>
|
|
</j:if>
|
|
<j:if test="${empty(subject)}">
|
|
<j:set var="subject" value="FOO.BAR"/>
|
|
</j:if>
|
|
<j:if test="${empty(durable)}">
|
|
<j:set var="durable" value="false"/>
|
|
</j:if>
|
|
<j:if test="${empty(connections)}">
|
|
<j:set var="connections" value="1"/>
|
|
</j:if>
|
|
|
|
<echo>Running topic producer against server at $$url = ${url} for subject $$subject = ${subject} with $$topic = ${topic}</echo>
|
|
<java classname="org.apache.activemq.benchmark.ProducerConsumer" fork="yes" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<j:if test="${empty(ignoreServer)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<arg value="${url}"/>
|
|
<arg value="${topic}"/>
|
|
<arg value="${subject}"/>
|
|
<arg value="${durable}"/>
|
|
<arg value="${connections}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="bench:activemq-journal" prereqs="setclasspath"
|
|
description="Runs a benchmark to test the performance of the ActiveMQ journal">
|
|
|
|
<j:if test="${empty(journalDirectory)}">
|
|
<j:set var="journalDirectory" value="journal-logs"/>
|
|
</j:if>
|
|
<j:if test="${empty(workerIncrement)}">
|
|
<j:set var="workerIncrement" value="10"/>
|
|
</j:if>
|
|
<j:if test="${empty(incrementDelay)}">
|
|
<j:set var="incrementDelay" value="10000"/>
|
|
</j:if>
|
|
<j:if test="${empty(verbose)}">
|
|
<j:set var="verbose" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(recordSize)}">
|
|
<j:set var="recordSize" value="1024"/>
|
|
</j:if>
|
|
<j:if test="${empty(syncFrequency)}">
|
|
<j:set var="syncFrequency" value="12"/>
|
|
</j:if>
|
|
<j:if test="${empty(workerThinkTime)}">
|
|
<j:set var="workerThinkTime" value="100"/>
|
|
</j:if>
|
|
|
|
<j:if test="${empty(segmentCount)}">
|
|
<j:set var="segmentCount" value="4"/>
|
|
</j:if>
|
|
<j:if test="${empty(segmentSize)}">
|
|
<j:set var="segmentSize" value="16777216"/>
|
|
</j:if>
|
|
<j:if test="${empty(OPTIT_HOME)}">
|
|
<j:set var="OPTIT_HOME" value="C:/java/OptimizeitSuite/OptimizeitSuite50"/>
|
|
</j:if>
|
|
|
|
<echo>Running ActiveMQ Journal Benchmark</echo>
|
|
<j:set var="mainClass" value="org.apache.activemq.journal.impl.JournalPerfTool"/>
|
|
<j:if test="${profile=='true'}">
|
|
<j:set var="mainClass" value="intuitive.audit.Audit"/>
|
|
</j:if>
|
|
|
|
<java classname="${mainClass}" fork="yes">
|
|
<j:if test="${profile=='true'}">
|
|
<jvmarg value="-Xrunpri:dmp=1"/>
|
|
<jvmarg value="-Xbootclasspath/a:${OPTIT_HOME}/lib/oibcp.jar"/>
|
|
<jvmarg value="-Xnoclassgc"/>
|
|
<classpath path="${OPTIT_HOME}/lib/optit.jar"/>
|
|
<arg value="-pause"/>
|
|
<arg value="org.apache.activemq.journal.impl.JournalPerfTool"/>
|
|
</j:if>
|
|
<j:elseif test="${empty(ignoreServer)}">
|
|
<jvmarg value="-server"/>
|
|
</j:elseif>
|
|
<classpath refid="test.classpath"/>
|
|
<arg value="${journalDirectory}"/>
|
|
<arg value="${workerIncrement}"/>
|
|
<arg value="${incrementDelay}"/>
|
|
<arg value="${verbose}"/>
|
|
<arg value="${recordSize}"/>
|
|
<arg value="${syncFrequency}"/>
|
|
<arg value="${workerThinkTime}"/>
|
|
<arg value="${segmentCount}"/>
|
|
<arg value="${segmentSize}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="bench:howl-journal" prereqs="setclasspath"
|
|
description="Runs a benchmark to test the performance of the HOWL journal">
|
|
|
|
<j:if test="${empty(journalDirectory)}">
|
|
<j:set var="journalDirectory" value="journal-logs"/>
|
|
</j:if>
|
|
<j:if test="${empty(workerIncrement)}">
|
|
<j:set var="workerIncrement" value="10"/>
|
|
</j:if>
|
|
<j:if test="${empty(incrementDelay)}">
|
|
<j:set var="incrementDelay" value="10000"/>
|
|
</j:if>
|
|
<j:if test="${empty(verbose)}">
|
|
<j:set var="verbose" value="true"/>
|
|
</j:if>
|
|
<j:if test="${empty(recordSize)}">
|
|
<j:set var="recordSize" value="1024"/>
|
|
</j:if>
|
|
<j:if test="${empty(syncFrequency)}">
|
|
<j:set var="syncFrequency" value="12"/>
|
|
</j:if>
|
|
<j:if test="${empty(workerThinkTime)}">
|
|
<j:set var="workerThinkTime" value="100"/>
|
|
</j:if>
|
|
|
|
<j:if test="${empty(maxLogFiles)}">
|
|
<j:set var="maxLogFiles" value="4"/>
|
|
</j:if>
|
|
|
|
<j:if test="${empty(bufferSize)}">
|
|
<j:set var="bufferSize" value="64"/> <!-- in k -->
|
|
</j:if>
|
|
<j:if test="${empty(maxBlocksPerFile)}">
|
|
<j:set var="maxBlocksPerFile" value="256"/>
|
|
</j:if>
|
|
<j:if test="${empty(maxBuffers)}">
|
|
<j:set var="maxBuffers" value="1000"/>
|
|
</j:if>
|
|
|
|
<echo>Running HOWL Journal Benchmark</echo>
|
|
<java classname="org.apache.activemq.journal.howl.JournalPerfTool" fork="no" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<j:if test="${empty(ignoreServer)}">
|
|
<jvmarg value="-server"/>
|
|
</j:if>
|
|
<arg value="${journalDirectory}"/>
|
|
<arg value="${workerIncrement}"/>
|
|
<arg value="${incrementDelay}"/>
|
|
<arg value="${verbose}"/>
|
|
<arg value="${recordSize}"/>
|
|
<arg value="${syncFrequency}"/>
|
|
<arg value="${workerThinkTime}"/>
|
|
<arg value="${maxLogFiles}"/>
|
|
<arg value="${bufferSize}"/>
|
|
<arg value="${maxBuffers}"/>
|
|
<arg value="${maxBlocksPerFile}"/>
|
|
</java>
|
|
</goal>
|
|
|
|
<goal name="derbyserver" prereqs="setclasspath"
|
|
description="Starts a Derby Network Server">
|
|
|
|
<echo>Running Derby Network Server</echo>
|
|
|
|
<java classname="org.apache.derby.drda.NetworkServerControl" fork="yes" maxmemory="100M">
|
|
<classpath refid="test.classpath"/>
|
|
<arg value="start"/>
|
|
</java>
|
|
|
|
</goal>
|
|
|
|
<goal name="test-create-temp-queues" prereqs="setclasspath, test:compile"
|
|
description="Tests the creation of lots of temporary queues">
|
|
|
|
<java classname="org.apache.activemq.usecases.CreateLotsOfTemporaryQueuesTest" fork="yes" maxmemory="10M">
|
|
<classpath refid="test.classpath"/>
|
|
<arg value="${count}"/>
|
|
</java>
|
|
|
|
</goal>
|
|
|
|
<goal name="setclasspath">
|
|
<path id="test.classpath">
|
|
<pathelement path="src/release/conf"/>
|
|
<pathelement path="${maven.build.dest}"/>
|
|
<pathelement path="target/classes"/>
|
|
<pathelement path="target/test-classes"/>
|
|
<path refid="maven.dependency.classpath"/>
|
|
|
|
<pathelement path="${derby.db2jcc.jar.path}"/>
|
|
<pathelement path="${derby.db2jcc_license_c.jar.path}"/>
|
|
</path>
|
|
|
|
|
|
<!-- make directories for log and data -->
|
|
<mkdir dir="../var"/>
|
|
<mkdir dir="target/derby"/>
|
|
</goal>
|
|
|
|
</project>
|