blob: 474ef466cbe3df6c9185288d9b5398f7af534d48 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
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.
-->
<html>
<head>
<link href="http://activemq.apache.org/styles/site.css" rel="stylesheet" type="text/css"/>
<link href="http://activemq.apache.org/styles/type-settings.css" rel="stylesheet" type="text/css"/>
<script src="http://activemq.apache.org/styles/prototype.js" type="text/javascript"></script>
<script src="http://activemq.apache.org/styles/rico.js" type="text/javascript"></script>
<script src="http://activemq.apache.org/styles/site.js" type="text/javascript"></script>
<style type="text/css">
.maincontent { overflow:hidden; }
</style>
<!--[if IE]>
<style type="text/css">
.maincontent { width:100%; }
</style>
<![endif]-->
<link href='http://activemq.apache.org/styles/highlighter/styles/shCore.css' rel='stylesheet' type='text/css' />
<link href='http://activemq.apache.org/styles/highlighter/styles/shThemeEclipse.css' rel='stylesheet' type='text/css' />
<script src='http://activemq.apache.org/styles/highlighter/scripts/shCore.js' type='text/javascript'></script>
<script src='http://activemq.apache.org/styles/highlighter/scripts/shBrushJava.js' type='text/javascript'></script>
<script type="text/javascript">
SyntaxHighlighter.defaults['toolbar'] = false;
SyntaxHighlighter.all();
</script>
<title>
Apache ActiveMQ &#8482; -- Geronimo
</title>
</head>
<body>
<div class="white_box">
<div class="header">
<div class="header_l">
<div class="header_r">
</div>
</div>
</div>
<div class="content">
<div class="content_l">
<div class="content_r">
<div>
<!-- Banner -->
<div id="asf_logo">
<div id="activemq_logo">
<a shape="rect" style="float:left; width:280px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:10px; margin-left:100px;" href="http://activemq.apache.org" title="The most popular and powerful open source Message Broker">ActiveMQ</a>
<a shape="rect" style="float:right; width:210px;display:block;text-indent:-5000px;text-decoration:none;line-height:60px; margin-top:15px; margin-right:10px;" href="http://www.apache.org" title="The Apache Software Foundation">ASF</a>
</div>
</div>
<div class="top_red_bar">
<div id="site-breadcrumbs">
<a href="connectivity.html">Connectivity</a>&nbsp;&gt;&nbsp;<a href="containers.html">Containers</a>&nbsp;&gt;&nbsp;<a href="geronimo.html">Geronimo</a>
</div>
<div id="site-quicklinks">
<p><a shape="rect" href="download.html">Download</a> | <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/apidocs/index.html">JavaDocs</a> <a shape="rect" href="javadocs.html">More...</a> | <a shape="rect" href="source.html">Source</a> | <a shape="rect" href="discussion-forums.html">Forums</a> | <a shape="rect" href="support.html">Support</a></p>
</div>
</div>
<table border="0">
<tbody>
<tr>
<td valign="top" width="100%">
<div class="wiki-content maincontent">
<p>ActiveMQ is the default JMS provider in <a shape="rect" class="external-link" href="http://geronimo.apache.org">Apache Geronimo</a>.</p>
<p>ActiveMQ can be used both as JMS Client and a JMS Broker. This short<br clear="none">
article explains how to use it on a standalone client to access the<br clear="none">
topics/queues setup on a remote Geronimo/ActiveMQ broker.</p>
<p>1) Setup the queues and topics on the ActiveMQ Broker<br clear="none">
If you're using a standalone ActiveMQ broker, then following the instructions on<br clear="none">
ActiveMQ's website should be enough to setup everything.<br clear="none">
However, if your ActiveMQ's instance is embedded inside the J2EE Geronimo<br clear="none">
Application Server, creating Queues and Topics is about deploying Resource<br clear="none">
Adapters to your Geronimo server.<br clear="none">
The following deployment descriptor can be used to deploy two topics and a<br clear="none">
ConnectionFactory: weatherTopic and weatherRequestsTopic</p>
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector"
version="1.5"
configId="weather/Topics"
parentId="org/apache/geronimo/SystemJMS"&gt;
&lt;resourceadapter&gt;
&lt;resourceadapter-instance&gt;
&lt;resourceadapter-name&gt;ActiveMQ RA&lt;/resourceadapter-name&gt;
&lt;config-property-setting name="ServerUrl"&gt;tcp://localhost:61616&lt;/config-property-setting&gt;
&lt;config-property-setting name="UserName"&gt;geronimo&lt;/config-property-setting&gt;
&lt;config-property-setting name="Password"&gt;geronimo&lt;/config-property-setting&gt;
&lt;workmanager&gt;
&lt;gbean-link&gt;DefaultWorkManager&lt;/gbean-link&gt;
&lt;/workmanager&gt;
&lt;/resourceadapter-instance&gt;
&lt;outbound-resourceadapter&gt;
&lt;connection-definition&gt;
&lt;connectionfactory-interface&gt;javax.jms.ConnectionFactory&lt;/connectionfactory-interface&gt;
&lt;connectiondefinition-instance&gt;
&lt;name&gt;ConnectionFactory&lt;/name&gt;
&lt;implemented-interface&gt;javax.jms.QueueConnectionFactory&lt;/implemented-interface&gt;
&lt;implemented-interface&gt;javax.jms.TopicConnectionFactory&lt;/implemented-interface&gt;
&lt;connectionmanager&gt;
&lt;xa-transaction&gt;
&lt;transaction-caching/&gt;
&lt;/xa-transaction&gt;
&lt;single-pool&gt;
&lt;max-size&gt;10&lt;/max-size&gt;
&lt;blocking-timeout-milliseconds&gt;5000&lt;/blocking-timeout-milliseconds&gt;
&lt;match-one/&gt;
&lt;/single-pool&gt;
&lt;/connectionmanager&gt;
&lt;global-jndi-name&gt;ConnectionFactory&lt;/global-jndi-name&gt;
&lt;!--
&lt;credential-interface&gt;javax.resource.spi.security.PasswordCredential&lt;/credential-interface&gt;
--&gt;
&lt;/connectiondefinition-instance&gt;
&lt;/connection-definition&gt;
&lt;/outbound-resourceadapter&gt;
&lt;/resourceadapter&gt;
&lt;adminobject&gt;
&lt;adminobject-interface&gt;javax.jms.Topic&lt;/adminobject-interface&gt;
&lt;adminobject-class&gt;org.codehaus.activemq.message.ActiveMQTopic&lt;/adminobject-class&gt;
&lt;adminobject-instance&gt;
&lt;message-destination-name&gt;weatherTopic&lt;/message-destination-name&gt;
&lt;config-property-setting
name="PhysicalName"&gt;weatherTopic&lt;/config-property-setting&gt;
&lt;/adminobject-instance&gt;
&lt;/adminobject&gt;
&lt;adminobject&gt;
&lt;adminobject-interface&gt;javax.jms.Topic&lt;/adminobject-interface&gt;
&lt;adminobject-class&gt;org.codehaus.activemq.message.ActiveMQTopic&lt;/adminobject-class&gt;
&lt;adminobject-instance&gt;
&lt;message-destination-name&gt;weatherRequestsTopic&lt;/message-destination-name&gt;
&lt;config-property-setting
name="PhysicalName"&gt;weatherRequestsTopic&lt;/config-property-setting&gt;
&lt;/adminobject-instance&gt;
&lt;/adminobject&gt;
&lt;/connector&gt;
</pre>
</div></div>
<p>Then deploy it using Geronimo's deploy tool :</p>
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
D:\geronimo&gt;java -jar bin\deployer.jar deploy d:\projects\weather\src\resources\
geronimo-activemq.xml repository\activemq\rars\activemq-ra-3.1-SNAPSHOT.rar
Username: system
Password: manager
Deployed weather/Topics
</pre>
</div></div>
<p>The geronimo.log file should now refer to these newly deployed Topics.</p>
<p>2) Now that the queues are available server-side, what we want is access them<br clear="none">
thanks to a standalone Client.<br clear="none">
Usually, the process is the following one :</p>
<ul><li>Contact the J2EE naming server (port 1099, RMI) to get an JNDI InitialContext.</li><li>The J2EE server automatically exposes the ConnectionFactory and the Topics<br clear="none">
through JNDI, so the InitialContext allows you to retrieve both the<br clear="none">
ConnectionFactory and the Topics</li><li>Once you have your Topics, you just use them..</li></ul>
<p>However, ActiveMQ's JNDI Implementation does NOT talk to the naming server. It's<br clear="none">
a stripped down version of a JNDI client that just allows to get Topics and<br clear="none">
Queues directly from a JMS instance.<br clear="none">
So, instead of supplying the naming server address, you have to supply the JMS<br clear="none">
server address.<br clear="none">
Most JNDI implementations use the java.naming.provider.url property to specify<br clear="none">
the naming server's address. ActiveMQ uses the brokerURL one. Using the<br clear="none">
java.naming.provider.url one instead will result in ActiveMQ trying to load the<br clear="none">
whole Broker.</p>
<p>3) So, now we have explained the process, let's detail the Spring way of doing<br clear="none">
things :</p>
<ul class="alternate"><li>Create a bootstrap.properties file that's available in your classpath<br clear="none">
jms.connectionFactoryName=ConnectionFactory<br clear="none">
jms.jndiProviderUrl=tcp://localhost:61616<br clear="none">
jms.jndiContextFactory=org.activemq.jndi.ActiveMQInitialContextFactory</li></ul>
<p>jms.weatherTopic=weatherTopic<br clear="none">
jms.weatherRequestsTopic=weatherRequestsTopic</p>
<ul class="alternate"><li>Now, in your Spring description file, declare the bean that will read<br clear="none">
the properties from the bootstrap.properties file
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
&lt;bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;
&lt;property name="location"&gt;&lt;value&gt;classpath:/bootstrap.properties&lt;/value&gt;&lt;/property&gt;
&lt;/bean&gt;
</pre>
</div></div></li></ul>
<ul class="alternate"><li>Create a JNDI template (A Spring-specific wrapper around the JNDI InitialContext
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
&lt;bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate"&gt;
&lt;property name="environment"&gt;
&lt;props&gt;
&lt;prop key="java.naming.factory.initial"&gt;${jms.jndiContextFactory}&lt;/prop&gt;
&lt;!-- Specific to ActiveMQ --&gt;
&lt;!-- the address of the ActiveMQ broker --&gt;
&lt;prop key="brokerURL"&gt;${jms.jndiProviderUrl}&lt;/prop&gt;
&lt;!-- Some Topics Registration, since we are using a fake JNDI implementation --&gt;
&lt;prop key="topic.${jms.weatherTopic}"&gt;${jms.weatherTopic}&lt;/prop&gt;
&lt;prop key="topic.${jms.weatherRequestsTopic}"&gt;${jms.weatherRequestsTopic}&lt;/prop&gt;
&lt;/props&gt;
&lt;/property&gt;
&lt;/bean&gt;
</pre>
</div></div></li></ul>
<ul class="alternate"><li>Retrieve the ConnectionFactory from the JNDI context</li></ul>
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
&lt;bean id="internalJmsQueueConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean"&gt;
&lt;property name="jndiTemplate"&gt;
&lt;ref bean="jndiTemplate"/&gt;
&lt;/property&gt;
&lt;property name="jndiName"&gt;
&lt;value&gt;${jms.connectionFactoryName}&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
</pre>
</div></div>
<p>I'm not 100% sure, but I think that you can put any Factory Name, it will just<br clear="none">
work. (In a scenario where the JNDI context actually contacts a naming server,<br clear="none">
it should match the name of the deployed ConnectionFactory)</p>
<ul class="alternate"><li>Get the Topics instances from the JNDI Context</li></ul>
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
&lt;bean id="weatherTopic"
class="org.springframework.jndi.JndiObjectFactoryBean"
singleton="true"&gt;
&lt;property name="jndiTemplate"&gt;
&lt;ref bean="jndiTemplate"/&gt;
&lt;/property&gt;
&lt;property name="jndiName"&gt;
&lt;value&gt;${jms.weatherTopic}&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
&lt;bean id="weatherRequestTopic"
class="org.springframework.jndi.JndiObjectFactoryBean"
singleton="true"&gt;
&lt;property name="jndiTemplate"&gt;
&lt;ref bean="jndiTemplate"/&gt;
&lt;/property&gt;
&lt;property name="jndiName"&gt;
&lt;value&gt;${jms.weatherRequestsTopic}&lt;/value&gt;
&lt;/property&gt;
&lt;/bean&gt;
</pre>
</div></div>
<ul class="alternate"><li>Now, you can reuse these Topics beans the way you want.</li></ul></div>
</td>
<td valign="top">
<div class="navigation">
<div class="navigation_top">
<div class="navigation_bottom">
<h3 id="Navigation-Overviewhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35985"><a shape="rect" href="overview.html">Overview</a></h3><ul class="alternate"><li><a shape="rect" href="index.html">Index</a></li><li><a shape="rect" href="news.html">News</a></li><li><a shape="rect" href="new-features.html">New Features</a></li><li><a shape="rect" href="getting-started.html">Getting Started</a></li><li><a shape="rect" href="faq.html">FAQ</a></li><li><a shape="rect" href="articles.html">Articles</a></li><li><a shape="rect" href="books.html">Books</a></li><li><a shape="rect" href="download.html">Download</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/licenses/">License</a></li></ul><h3 id="Navigation-Search">Search</h3><div>
<form enctype="application/x-www-form-urlencoded" method="get" action="http://www.google.com/search" style="font-size: 10px;">
<input type="hidden" name="ie" value="UTF-8">
<input type="hidden" name="oe" value="UTF-8">
<input maxlength="255" type="text" name="q" size="15" value="value"><br clear="none">
<input type="submit" name="btnG" value="Search">
<input type="hidden" name="domains" value="activemq.apache.org">
<input type="hidden" name="sitesearch" value="activemq.apache.org">
</form>
</div>
<h3 id="Navigation-SubProjects">Sub Projects</h3><ul class="alternate"><li><a shape="rect" class="external-link" href="http://activemq.apache.org/artemis/">Artemis</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/apollo" title="ActiveMQ Apollo">Apollo</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/cms/">CMS</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/" title="NMS is the .Net Messaging API">NMS</a></li></ul><h3 id="Navigation-Communityhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=36130"><a shape="rect" href="community.html">Community</a></h3><ul class="alternate"><li><a shape="rect" href="support.html">Support</a></li><li><a shape="rect" href="contributing.html">Contributing</a></li><li><a shape="rect" href="discussion-forums.html">Discussion Forums</a></li><li><a shape="rect" href="mailing-lists.html">Mailing Lists</a></li><li><a shape="rect" href="irc.html">IRC</a></li><li><a shape="rect" class="external-link" href="http://javabot.evanchooly.com/logs/%23apache-activemq/today" rel="nofollow">IRC Log</a></li><li><a shape="rect" href="security-advisories.html">Security Advisories</a></li><li><a shape="rect" href="site.html">Site</a></li><li><a shape="rect" class="external-link" href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li><li><a shape="rect" href="projects-using-activemq.html">Projects Using ActiveMQ</a></li><li><a shape="rect" href="users.html">Users</a></li><li><a shape="rect" href="team.html">Team</a></li><li><a shape="rect" href="thanks.html">Thanks</a></li></ul><h3 id="Navigation-Featureshttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35883"><a shape="rect" href="features.html">Features</a></h3><ul class="alternate"><li><a shape="rect" href="advisory-message.html">Advisory Message</a></li><li><a shape="rect" href="clustering.html">Clustering</a></li><li><a shape="rect" href="cross-language-clients.html">Cross Language Clients</a></li><li><a shape="rect" href="enterprise-integration-patterns.html">Enterprise Integration Patterns</a></li><li><a shape="rect" href="jmx.html">JMX</a></li><li><a shape="rect" href="jms-to-jms-bridge.html">JMS to JMS Bridge</a></li><li><a shape="rect" href="masterslave.html">MasterSlave</a></li><li><a shape="rect" href="message-groups.html">Message Groups</a></li><li><a shape="rect" href="networks-of-brokers.html">Networks of Brokers</a></li><li><a shape="rect" href="performance.html">Performance</a></li><li><a shape="rect" href="persistence.html">Persistence</a></li><li><a shape="rect" href="security.html">Security</a></li><li><a shape="rect" href="virtual-destinations.html">Virtual Destinations</a></li><li><a shape="rect" href="visualisation.html">Visualisation</a></li><li><a shape="rect" href="features.html">More ...</a></li></ul><h3 id="Navigation-Connectivityhttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=36167"><a shape="rect" href="connectivity.html">Connectivity</a></h3><ul class="alternate"><li><a shape="rect" href="ajax.html">Ajax</a></li><li><a shape="rect" href="amqp.html">AMQP</a></li><li><a shape="rect" href="axis-and-cxf-support.html">Axis and CXF Support</a></li><li><a shape="rect" href="c-integration.html">C Integration</a></li><li><a shape="rect" href="activemq-c-clients.html">C++</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/">C# and .Net Integration</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/cms/">CMS</a></li><li><a shape="rect" href="j2ee.html">J2EE</a></li><li><a shape="rect" href="jboss-integration.html">JBoss Integration</a></li><li><a shape="rect" class="external-link" href="http://docs.codehaus.org/display/JETTY/Integrating+with+ActiveMQ" rel="nofollow">Jetty</a></li><li><a shape="rect" href="jndi-support.html">JNDI Support</a></li><li><a shape="rect" class="external-link" href="http://activemq.apache.org/nms/" title="NMS is the .Net Messaging API">NMS</a></li><li><a shape="rect" href="rest.html">REST</a></li><li><a shape="rect" href="rss-and-atom.html">RSS and Atom</a></li><li><a shape="rect" href="spring-support.html">Spring Support</a></li><li><a shape="rect" href="stomp.html">Stomp</a></li><li><a shape="rect" href="tomcat.html">Tomcat</a></li><li><a shape="rect" href="unix-service.html">Unix Service</a></li><li><a shape="rect" href="weblogic-integration.html">WebLogic Integration</a></li><li><a shape="rect" href="xmpp.html">XMPP</a></li><li><a shape="rect" href="connectivity.html">More ...</a></li></ul><h3 id="Navigation-UsingActiveMQ5https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=71176"><a shape="rect" href="using-activemq-5.html">Using ActiveMQ 5</a></h3><ul class="alternate"><li><a shape="rect" href="version-5-getting-started.html">Getting Started</a></li><li><a shape="rect" href="version-5-initial-configuration.html">Initial Configuration</a></li><li><a shape="rect" href="version-5-run-broker.html">Running a Broker</a></li><li><a shape="rect" href="how-do-i-embed-a-broker-inside-a-connection.html">Embedded Brokers</a></li><li><a shape="rect" href="activemq-command-line-tools-reference.html">Command Line Tools</a></li><li><a shape="rect" href="configuring-version-5-transports.html">Configuring Transports</a></li><li><a shape="rect" href="version-5-examples.html">Examples</a></li><li><a shape="rect" href="version-5-web-samples.html">Web Samples</a></li><li><a shape="rect" href="how-can-i-monitor-activemq.html">Monitoring the Broker</a></li><li><a shape="rect" href="version-5-xml-configuration.html">Xml Configuration</a></li><li><a shape="rect" href="xml-reference.html">Xml Reference</a></li><li><a shape="rect" href="using-activemq-5.html">More ...</a></li></ul><h3 id="Navigation-Toolshttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35912"><a shape="rect" href="tools.html">Tools</a></h3><ul class="alternate"><li><a shape="rect" href="web-console.html">Web Console</a></li><li><a shape="rect" href="activemq-performance-module-users-manual.html">Maven2 Performance Plugin</a></li></ul><h3 id="Navigation-Supporthttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35919"><a shape="rect" href="support.html">Support</a></h3><ul class="alternate"><li><a shape="rect" class="external-link" href="http://issues.apache.org/jira/browse/AMQ">Issues</a></li><li><a shape="rect" class="external-link" href="http://issues.apache.org/activemq/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Roadmap</a></li><li><a shape="rect" class="external-link" href="http://issues.apache.org/activemq/browse/AMQ?report=com.atlassian.jira.plugin.system.project:changelog-panel">Change log</a></li></ul><h3 id="Navigation-Developershttps://cwiki.apache.org/confluence/pages/viewpage.action?pageId=35903"><a shape="rect" href="developers.html">Developers</a></h3><ul class="alternate"><li><a shape="rect" href="source.html">Source</a></li><li><a shape="rect" href="building.html">Building</a></li><li><a shape="rect" href="developer-guide.html">Developer Guide</a></li><li><a shape="rect" href="becoming-a-committer.html">Becoming a committer</a></li><li><a shape="rect" href="code-overview.html">Code Overview</a></li><li><a shape="rect" href="wire-protocol.html">Wire Protocol</a></li><li><a shape="rect" href="release-guide.html">Release Guide</a></li></ul><h3 id="Navigation-Tests">Tests</h3><ul class="alternate"><li><a shape="rect" href="activemq-performance-module-users-manual.html">Maven2 Performance Plugin</a></li><li><a shape="rect" href="benchmark-tests.html">Benchmark Tests</a></li><li><a shape="rect" href="jmeter-system-tests.html">JMeter System Tests</a></li><li><a shape="rect" href="jmeter-performance-tests.html">JMeter Performance Tests</a></li><li><a shape="rect" href="integration-tests.html">Integration Tests</a></li></ul><h3 id="Navigation-ProjectReports">Project Reports</h3><ul class="alternate"><li><a shape="rect" href="junit-reports.html">JUnit Reports</a></li><li><a shape="rect" href="source-xref.html">Source XRef</a></li><li><a shape="rect" href="test-source-xref.html">Test Source XRef</a></li><li><a shape="rect" href="xml-reference.html">Xml Reference</a></li></ul>
</div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<div class="bottom_red_bar"></div>
</div>
</div>
</div>
</div>
<div class="black_box">
<div class="footer">
<div class="footer_l">
<div class="footer_r">
<div>
<a href="http://activemq.apache.org/privacy-policy.html">Privacy Policy</a> -
(<a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=36040">edit this page</a>)
</div>
</div>
</div>
</div>
</div>
</div>
<div class="design_attribution">
&copy; 2004-2011 The Apache Software Foundation.
<br/>
Apache ActiveMQ, ActiveMQ, Apache, the Apache feather logo, and the Apache ActiveMQ project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
<br/>
<a href="http://hiramchirino.com">Graphic Design By Hiram</a>
</div>
<!-- delay the loading of large javascript files to the end so that they don't interfere with the loading of page content -->
<span style="display: none">
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-1347593-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</span>
</body>
</html>