<!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]-->

    
    <title>
    Apache ActiveMQ &#8482; -- Code Overview
    </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="developers.html">Developers</a>&nbsp;&gt;&nbsp;<a href="code-overview.html">Code Overview</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"><h1 id="CodeOverview-Architecture">Architecture</h1>

<p>The following section walks through the main parts of Apache ActiveMQ and links to the code to help you understand the layout</p>

<p><span class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image confluence-external-resource" src="http://activemq.apache.org/images/BrokerDiagram.png" data-image-src="http://activemq.apache.org/images/BrokerDiagram.png"></span></p>

<h2 id="CodeOverview-JMSClient">JMS Client</h2>

<p>The <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/package-summary.html">org.apache.activemq</a> package defines the core JMS client.</p>

<h2 id="CodeOverview-Transport">Transport</h2>

<p>The JMS client and the message broker use the <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/transport/Transport.html">Transport</a> abstraction for sending around command objects (like a distributed <em>Command Pattern</em>). A TransportChannel typically deals with some kind of networking mechanism (TCP sockets using BIO, using NIO, UDP / multicast, SSL over sockets, JXTA, EmberIO etc). See the <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/transport/package-summary.html">org.apache.activemq.transport</a> package for more details</p>

<p>So the TransportChannel is basically concerned with sending and receiving <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/Command.html">Command</a> objects (each instance represents some kind of <em>command</em>). Packet is defined in the <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/package-summary.html">org.apache.activemq.command</a> package which defines all the JMS Message implementations classes (which are Commands) along with a number of other kinds of packets, like subsciptions, message acknowledgements, transactions and so forth.</p>

<h2 id="CodeOverview-WireFormat">WireFormat</h2>

<p>There are various possible ways of encoding messages onto a stream. We may wish to adapt to various different encoding mechanisms - such as to provide simpler wire formats for talking to C / JavaScript or to make a C# friendly encoding.</p>

<p>So all the Transport&#160; implementations take a pluggable WireFormat implementation class - which is a <em>Strategy Pattern</em> for deciding how to write the Command to a DataIn / DataOut stream or Datagram.</p>

<p>So if you wish to provide your own binary, <em>on the wire</em> protocol then we just need a WireFormat implementation of your protocol, then we can use this with any transport (TCP BIO, NIO, JXTA etc).</p>

<p>We use <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/openwire/OpenWireFormat.html">OpenWireFormat</a> by default which is the most efficient &amp; easiest format to use from Java code - so if both ends of the wire are Java then its highly recommended. Though other WireFormats are most welcome.</p>

<h2 id="CodeOverview-DefaultWireFormat">Default Wire Format</h2>

<p>The default wire format writes a byte which indicates the kind of Command which is being sent (see the <a shape="rect" class="external-link" href="http://activemq.apache.org/maven/5.5.0/activemq-core/apidocs/org/apache/activemq/command/CommandTypes.html">CommandTypes</a> interface which defines all the int constants for each type of command.</p>

<p>The core JMS Message types each have a unique byte ID for</p>
<ul><li>Message</li><li>ObjectMessage</li><li>TextMessage</li><li>MapMessage</li><li>BytesMessage</li><li>StreamMessage</li></ul>


<p>Then in addition there are various other <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/package-summary.html">types of command</a> such as</p>
<ul><li><a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/ConnectionInfo.html">ConnectionInfo </a> for when a new connection is established with a message broker</li><li><a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/ConsumerInfo.html">ConsumerInfo</a> when a new consumer is created on a connection</li><li><a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/MessageAck.html">MessageAck</a> to acknowledge a message ID</li><li><a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/TransactionInfo.html">TransactionInfo</a> to denote a transaction</li></ul>


<p>There are a few others; the <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/command/package-summary.html">org.apache.activemq.command</a> package describes them in their gory detail.</p>

<p>Basically the DefaultWireFormat has a default encoding of each of these commands. So after the first byte which indicates the type of packet is written, there is a specific wire format per packet type.</p>

<p>For new wire formats it may be that you only need to support a small subset of these types. e.g. you might just have a simple publish message, consume message &amp; message ack.</p>

<h1 id="CodeOverview-MessageBroker">Message Broker</h1>

<p>The APIs for the message broker (server side of the JMS client) are defined in the <a shape="rect" class="external-link" href="http://incubator.apache.org/activemq/maven/activemq-core/apidocs/org/apache/activemq/broker/package-summary.html">org.apache.activemq.broker</a>. There are various other packages which define different parts, from the message stores to the message routing and so forth. </p>

<p>To see an overview of these packages try the <a shape="rect" href="javadocs.html">JavaDocs</a></p>

<hr>

<p></p><p>
</p><h1>ActiveMQ System Overview</h1>

<h2>Introduction</h2>

<p>ActiveMQ is the system responsible for creating and managing network connections used for communication between clients and the broker. This document hopes to outline the inner workings of this system with in order to make it easier to understand for future developers. It will give a high-level overview of the system and outline the major players. We will also cover a few other interesting classes that may be useful to others working on the system. Most of this document is written with the server side code in mind. This is because the client-side communication systems are architecturally simple and understanding the server will make understanding clients trivial by comparison.</p>

<p>We assume the reader has basic understanding of JMS. Refer to the official Java docs for more information.</p>

<h2>Overview: The Big Players</h2>

<p>The core classes involved in the ActiveMQ communication system are Transports. These include the <code>Transport</code>, <code>TransportServer</code>, and <code>TransportFactory</code> hierarchies. <code>Transport</code>s and <code>TransportServer</code>s are wrappers around sockets and server sockets respectively. <code>TransportFactory</code>s (as you may have guessed) are factories that create <code>Transport</code>s and <code>TransportServers</code>. <code>Transport</code>s are connected to <code>Broker</code>s and transmit <code>Command</code>s, which represent all major actions to be taken by ActiveMQ (more on this later). The following example illustrates how these pieces fit together.</p>

<p>The primary class needed to create a JMS "provider" application is the <code>Broker</code> class. The default ActiveMQ binary will use a <code>BrokerService</code> class to wrap around <code>Broker</code>s. When the application is started, it instantiates a <code>BrokerService</code> and instructs it to bind to a specific (local) address, say "tcp://localhost:61616". The <code>Broker</code> will use the scheme in the given address and find the proper <code>TransportFactory</code>, <code>TcpTransportFactory</code> in this example. This factory will then be used to create a <code>TcpTransportServer</code> that will be bound to "localhost:61616". Once the <code>TransportServer</code> is started, it will continually pole its socket for incoming connections. Successfully connected incoming sockets will be wrapped in a <code>TcpTransport</code> instance and passed back (indirectly) to the <code>Broker</code>. The <code>Broker</code> will then start polling the new <code>Transport</code> for incoming <code>Command</code>s to process.</p>

<p>The final pieces missing from the above example are the <code>TransportConnection</code> and <code>TransportConnector</code> classes. These classes are used to connect <code>Broker</code>s to <code>Transport</code>s and <code>TransportServer</code>s respectively.</p>

<h2>Class Details</h2>

<p>This section will explain some of the more interesting details of the mentioned classes separately.

</p><h3>Transports, TransportServers, and TransportFactories</h3>

<p>The basic principles of how these classes operate are very simple: <code>Transport</code>s and <code>TransportServer</code>s are wrappers around sockets and server sockets used to hide implementation, and <code>TransportFactory</code>s are factory classes for the mentioned classes. The only caveats are how <code>TransportFactory</code>s are chosen and configured based on URIs they are supplied.</p>

<p>The <code>TransportFactory</code> class is abstract and incapable of creating <code>Transport</code> or <code>TransportServer</code> classes directly. It, nevertheless, is the class used to create <code>Transport</code>s and <code>TransportServer</code>s. <code>TransportFactory</code> delegates its responsibilities to its subclasses based on the choice of subclass provided by the <code>FactoryFinder</code> class, which uses the URI's scheme to find a matching factory classes based on text files stored under the META-INF directory.</p>

<p>Configuration of the created <code>Transport</code>s is done entirely to reflection. <code>Transport</code>s are configured through calls to <code>compositeConfigure</code>, which are made by the factory at the time of the <code>Transport</code>'s creation. <code>compositeConfigure</code> uses the <code>IntrospectionSupport</code> class to call setters for parameters passed in through the URI. For example, creating a <code>Transport</code> using the URI "ssl://localhost:61616/?needClientAuth=true" would result in the creation of an <code>SslTransport</code> object whose <code>setNeedClientAuth</code> method (if it exists) is called with the value of <code>true</code> immediately after its creation. <code>TransportServer</code>s operate in a similar fashion. The only difference is that the call to <code>IntrospectionSupport</code> is made from the <code>doBind</code> method of the <code>TransportFactory</code>.</p>

<h3>Commands</h3>

<p><code>Command</code>s are the main means for communication within <code>Broker</code>s. Each <code>Command</code> represents an action to be taken. <code>Command</code> subclasses include <code>ConnectionInfo</code>, <code>KeepAliveInfo</code>, and <code>Message</code>, which result in processing of new connections, maintenance of old connections, and processing of user messages respectively. These classes are de-serialized from <code>Transport</code>s using Marshalers. Whenever new data is found in a socket, the first byte is read to determine what type of <code>Command</code> being received. The proper Marshaller is then selected to de-serialize the <code>Command</code> (e.g. to de-serialize a <code>ConnectionInfo</code>, the <code>ConnectionInfoMarshaller</code> is used).</p>

<h3>TransportConnections and TransportConnectors</h3>

<p>Every <code>TransportServer</code> is connected to a <code>Broker</code> using a <code>TransportConnector</code>. The server's accept listener (which is called when a new <code>Transport</code> is constructed) is set to call the given <code>TransportConnector</code>'s <code>createConnection</code> method with the new <code>Transport</code>. When called, <code>createConnection</code> creates a new <code>TransportConnection</code> that links the given <code>Transport</code> and the supporting <code>Broker</code> together; the <code>Transport</code>'s transport listener is set to the <code>TransportConnection</code>'s <code>onCommand</code> method, which is then called whenever a new <code>Command</code> is received.</p>

<p><code>Command</code>s and <code>AbstractConnection</code> (the superclass of <code>TransportConnection</code>) form a visitor pattern. <code>onCommand</code> will call <code>AbstractConnection</code>'s service method which will make a series of calls in line with the visitor patter and eventually, the proper <code>Command</code> subclass to be passed to the corresponding method of the <code>Broker</code> for processing.</p>

<h3>BrokerFilters and BrokerPlugins</h3>

<p>While not used directly by the communication system, <code>BrokerFilter</code>s and <code>BrokerPlugin</code>s provide an effective and easy to use way of modifying Broker behavior. <code>BrokerFilter</code>s allow for one to modify a few <code>Broker</code> methods without touching the rest (as the name suggests). The <code>BrokerFilter</code> passes on all of its responsibilities to a <code>Broker</code> it receives in its constructor. Subclassing <code>BrokerFilter</code> allows us to perform additional actions before passing the work down to the underlying <code>Broker</code>.</p>

<p>The power of the <code>BrokerFilter</code> class comes from the fact that multiple filters can be cascaded to create different functional combinations. As an example, the <code>JaasAuthenticationBroker</code> is a subclass of <code>BrokerFilter</code> that modifies the methods used for adding and removing connections to allow for JAAS authentication. <code>AuthorizationBroker</code> is another subclass of <code>BrokerFilter</code>. This class modifies the destination regulation methods to enforce access levels. With this architecture, one can create a <code>JaasAuthenticationBroker</code> and have it use an <code>AuthorizationBroker</code> as its underlying broker (which would use another broker itself, etc.).</p>

<p><code>BrokerPlugin</code>s are simple classes that will wrap their corresponding <code>Brokers</code> around the one they are given. i.e. "installing" an <code>AuthorizationPlugin</code> on an existing <code>Broker</code> will create an <code>AuthorizationBroker</code> that uses the original <code>Broker</code> internally. The main reason for the existence of <code>BrokerPlugin</code>s is to allow for one to configure the <code>Broker</code> used by the <code>BrokerService</code> class (either through code or XML configuration and spring).</p>
<p></p></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=35934">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>
