You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by fo...@apache.org on 2006/03/07 12:47:14 UTC

svn commit: r383851 [23/31] - in /incubator/activemq/site: ./ rpc/

Modified: incubator/activemq/site/OpenWire+CPP+Client
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/OpenWire%2BCPP%2BClient?rev=383851&r1=383850&r2=383851&view=diff
==============================================================================
--- incubator/activemq/site/OpenWire+CPP+Client (original)
+++ incubator/activemq/site/OpenWire+CPP+Client Tue Mar  7 03:47:01 2006
@@ -1,21 +1,398 @@
-Server returned HTTP response code: 500 for URL: http://docs.codehaus.org/rpc/xmlrpc com.openxource.unity.providers.confluence.ConfluencePageProviderImpl.getPage(ConfluencePageProviderImpl.java:78)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.getFragment(UnityPageRendererImpl.java:249)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.renderPage(UnityPageRendererImpl.java:155)
- com.openxource.unity.servlets.ContentServlet.doGet(ContentServlet.java:69)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
- org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
- org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
- org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
- org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
- org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
- org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
- org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
- org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
- org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
- org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
- org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
- org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
- java.lang.Thread.run(Thread.java:595)
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<head profile="http://www.w3.org/2000/08/w3c-synd/#">
+    <link rel="stylesheet" href="/__unity__/styles/unity-blue.css" type="text/css"/>
+    <title>ActiveMQ - OpenWire CPP Client</title>
+</head>
+
+<body>
+
+  <table id="ulayout">
+    <tr id="ulayout_top">
+      <td colspan="2" valign="bottom">
+        <table width="100%">
+          <tr id="utop">
+            <td id="utop_left">
+              <a href="http://www.codehaus.org/"><img src="/__unity__/images/logo.png" style="border: none;"/></a>
+            </td>
+            <td id="utop_right" style="text-align: right; vertical-align: middle;padding-right:10px;">
+              <a href="/"><img src="http://www.logicblaze.com/images/logos/products/ActiveMQ/ActiveMQ_logo_200.jpg" alt="ActiveMQ" class="spaceLogo" border="0"/></a>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" id="uadvertising_top">
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <table id="utop_nav">
+          <tr>
+            <td align="left" valign="middle">
+              <div id="ubreadcrumbs">
+                <p>
+                  <a href="/">Home</a>
+                                     		                  </p>
+              </div>
+            </td>
+            <td align="right" valign="middle">
+              <div id="uquicklinks">
+                                  <p><a href="/Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/">3.x</a></span> | <a href="/Source" title="Source">Source</a> | <span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq">IRC Log</a></span> | <a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a> | <span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Support</a></span></p>
+                              </div>
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2"></td>
+    </tr>
+    <tr id="ulayout_middle">
+      <td id="uleft">
+        <div class="content">
+                      <div class="section_3"><h3><a name="Navigation-Overview"></a>Overview</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Home" title="Home">Home</a></li>
+	<li><a href="/News" title="News">News</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">New in 4.0</a></li>
+	<li><a href="/FAQ" title="FAQ">FAQ</a></li>
+	<li><a href="/Articles" title="Articles">Articles</a></li>
+	<li><a href="/Download" title="Download">Download</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Community"></a>Community</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span></li>
+	<li><a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a></li>
+	<li><span class="nobr"><a href="http://gmane.org/find.php?list=activemq">News Reader</a></span></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span></li>
+	<li><a href="/Projects+Using+ActiveMQ" title="Projects Using ActiveMQ">Projects Using ActiveMQ</a></li>
+	<li><a href="/Users" title="Users">Users</a></li>
+	<li><a href="/Contributing" title="Contributing">Contributing</a></li>
+	<li><a href="/Team" title="Team">Team</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-UsingActiveMQ"></a>Using ActiveMQ</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Getting+Started" title="Getting Started">Getting Started</a></li>
+	<li><a href="/Initial+Configuration" title="Initial Configuration">Initial Configuration</a></li>
+	<li><a href="/Run+Broker" title="Run Broker">Running a Broker</a></li>
+	<li><a href="/Configuring+Transports" title="Configuring Transports">Configuring Transports</a></li>
+	<li><a href="/Examples" title="Examples">Examples</a></li>
+	<li><a href="/How+can+I+monitor+ActiveMQ" title="How can I monitor ActiveMQ">Monitoring the Broker</a></li>
+	<li><a href="/Xml+Configuration" title="Xml Configuration">Xml Configuration</a></li>
+	<li><a href="/Xml+Reference" title="Xml Reference">Xml Reference</a></li>
+	<li><a href="/Web+Samples" title="Web Samples">Web Samples</a></li>
+	<li><a href="/Hello+World" title="Hello World">Hello World</a></li>
+	<li><a href="/Use+Cases" title="Use Cases">Use Cases</a></li>
+	<li><a href="/Topologies" title="Topologies">Topologies</a></li>
+	<li><a href="/How+do+I+embed+a+Broker+inside+a+Connection" title="How do I embed a Broker inside a Connection">Embedded Brokers</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">Performance Testing</a></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/x/yK4">Command Line Tools Reference</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Features"></a>Features</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JMX" title="JMX">JMX</a></li>
+	<li><a href="/Performance" title="Performance">Performance</a></li>
+	<li><a href="/Protocols" title="Protocols">Protocols</a></li>
+	<li><a href="/Persistence" title="Persistence">Persistence</a></li>
+	<li><a href="/JDBC+Support" title="JDBC Support">JDBC Support</a></li>
+	<li><a href="/Security" title="Security">Security</a></li>
+	<li><a href="/Interceptors" title="Interceptors">Interceptors</a></li>
+	<li><a href="/Clustering" title="Clustering">Clustering</a></li>
+	<li><a href="/Discovery" title="Discovery">Discovery</a></li>
+	<li><a href="/Composite+Destinations" title="Composite Destinations">Composite Destinations</a></li>
+	<li><a href="/JMS+Streams" title="JMS Streams">JMS Streams</a></li>
+	<li><a href="/Advisory+Message" title="Advisory Message">Advisory Message</a></li>
+	<li><a href="/Resource+Adapter" title="Resource Adapter">JCA 1.5 Resource Adapter</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Featuresin4.x"></a>Features in 4.x</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Message+Groups" title="Message Groups">Message Groups</a></li>
+	<li><a href="/MasterSlave" title="MasterSlave">MasterSlave</a></li>
+	<li><a href="/Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</a></li>
+	<li><a href="/Exclusive+Consumer" title="Exclusive Consumer">Exclusive Consumer</a></li>
+	<li><a href="/Total+Ordering" title="Total Ordering">Total Ordering</a></li>
+	<li><a href="/Consumer+Priority" title="Consumer Priority">Consumer Priority</a></li>
+	<li><a href="/Retroactive+Consumer" title="Retroactive Consumer">Retroactive Consumer</a></li>
+	<li><a href="/JMS+to+JMS+Bridge" title="JMS to JMS Bridge">JMS to JMS Bridge</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">Other new features</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Connectivitiy"></a>Connectivitiy</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Ajax" title="Ajax">Ajax</a></li>
+	<li><a href="/Axis+Support" title="Axis Support">Axis Support</a></li>
+	<li><a href="/C+Integration" title="C Integration">C Integration</a></li>
+	<li><a href="/dot+Net" title="dot Net">.Net Integration</a></li>
+	<li><a href="/Geronimo" title="Geronimo">Geronimo</a></li>
+	<li><a href="/J2EE" title="J2EE">J2EE</a></li>
+	<li><a href="/JBoss+Integration" title="JBoss Integration">JBoss Integration</a></li>
+	<li><a href="/JNDI+Support" title="JNDI Support">JNDI Support</a></li>
+	<li><a href="/OpenWire" title="OpenWire">OpenWire</a></li>
+	<li><a href="/REST" title="REST">REST</a></li>
+	<li><a href="/Spring+Support" title="Spring Support">Spring Support</a></li>
+	<li><a href="/Stomp" title="Stomp">Stomp</a></li>
+	<li><a href="/Tomcat" title="Tomcat">Tomcat</a></li>
+	<li><a href="/WSIF" title="WSIF">WSIF</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Utilities"></a>Utilities</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JCA+Container" title="JCA Container">JCA Container</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-ExternalTools"></a>External Tools</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Hermes+Jms" title="Hermes Jms">Hermes Jms</a></li>
+	<li><a href="/Sun+JNDI" title="Sun JNDI">Sun JNDI</a></li>
+	<li><span class="nobr"><a href="http://jakarta.apache.org/jmeter">JMeter</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://servicemix.org/">ServiceMix</a></span></li>
+	<li><span class="nobr"><a href="http://lingo.codehaus.org/">Lingo</a></span></li>
+	<li><span class="nobr"><a href="http://jencks.org/">Jencks</a></span></li>
+	<li><span class="nobr"><a href="http://stomp.codehaus.org/">Stomp</a></span></li>
+	<li><span class="nobr"><a href="http://activecluster.codehaus.org/">ActiveCluster</a></span></li>
+	<li><span class="nobr"><a href="http://activespace.codehaus.org/">ActiveSpace</a></span></li>
+	<li><span class="nobr"><a href="http://activesoap.codehaus.org/">ActiveSOAP</a></span></li>
+	<li><span class="nobr"><a href="http://www.springframework.org/">Spring</a></span></li>
+	<li><span class="nobr"><a href="http://geronimo.apache.org/">Geronimo</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Support"></a>Support</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Issues</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Roadmap</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:changelog-panel">Change log</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Developers"></a>Developers</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Source" title="Source">Source</a></li>
+	<li><a href="/Code+Overview" title="Code Overview">Code Overview</a></li>
+	<li><a href="/Wire+Protocol" title="Wire Protocol">Wire Protocol</a></li>
+	<li><a href="/ActiveMQ+4.0" title="ActiveMQ 4.0">ActiveMQ 4.0</a></li>
+	<li><a href="/Becoming+a+committer" title="Becoming a committer">Becoming a committer</a></li>
+	<li><a href="/Integration+Tests" title="Integration Tests">Integration Tests</a></li>
+	<li><a href="/Benchmark+Tests" title="Benchmark Tests">Benchmark Tests</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">JMeter Performance Tests</a></li>
+	<li><a href="/Release+Guide" title="Release Guide">Release Guide</a></li>
+	<li><a href="/JUnit+Reports" title="JUnit Reports">JUnit Reports</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/clover/">Clover Report</a></span></li>
+	<li><a href="/Source+XRef" title="Source XRef">Source XRef</a></li>
+	<li><a href="/Test+Source+XRef" title="Test Source XRef">Test Source XRef</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/activemq.xsd.html">XSD</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3>
+
+<p><span class="nobr"><a href="http://www.yourkit.com"><img src="/download/attachments/23786/yourkit.jpg" align="absmiddle" border="0"/></a></span></p></div>
+          
+          <div class="section_3">
+            <h3>Feeds</h3>
+            <ul class="feedList">
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&amp;newPages=false">Site</a></li>
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a></li>
+            </ul>
+          </div>
+        </div>
+      </td>
+      <td id="umain">
+        <div class="content">
+          <a href="/OpenWire+CPP+Client?print=1" style="float:right"><img src="http://www.codehaus.org/print.gif" class="print" alt="Print" border="0"/></a>
+          <div id="upage_title">OpenWire CPP Client</div>
+          <div id="uads">
+
+<script type="text/javascript"><!--
+google_ad_client = "pub-3023399591478482";
+google_ad_width = 468;
+google_ad_height = 60;
+google_ad_format = "468x60_as";
+google_ad_type = "text_image";
+google_ad_channel = "7321085054"; //unity-top
+google_color_border = "FFFFFF";
+google_color_bg = "FFFFFF";
+google_color_link = "557755";
+google_color_url = "557755";
+google_color_text = "333333";
+//--></script>
+<center>
+<script type="text/javascript"
+  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</center>
+
+          </div>
+          <div class="section_1"><h1><a name="OpenWireCPPClient-OpenWireC%5CClient"></a>OpenWire C++ Client</h1>
+
+
+<div class="section_2"><h2><a name="OpenWireCPPClient-Goals"></a>Goals</h2>
+
+<p> We want to be able to provide a C++ API to ActiveMQ that retains rough feature-parity with the Java API while at the same time allowing for more flexibility in application design by opening up lower levels of the event system. We have come up with an API / programming model that maximizes the ways in which the messaging library can adapt to the application using it, not the other way around. Specifically, our goals are:</p>
+<ul>
+	<li>Make no assumption about the threading constraints of the containing application (specifically, allow asynchronous receives within a single-threaded application)</li>
+	<li>Make no assumption about the event loop characteristics of the containing application</li>
+	<li>Make no assumption about libraries needed &#8211; i.e. dont enforce use of a particular library or smart pointer implementation</li>
+	<li>Offer tradeoffs in flexibility versus application complexity</li>
+	<li>Provide distinctly C++-friendly APIs for asynchronous event notification</li>
+	<li>Provide pluggable data transports</li>
+	<li>Maximize portability</li>
+</ul>
+
+
+<p>It makes no assumptions about the threading or event loop model of the containing application, and so puts no restrictions on C++ program design as inherent costs of doing asynchronous messaging. As a result of this flexible and pluggable design, this library is particularly easy to implement as a native layer to a high-level scripting language interface to ActiveMQ since it makes no assumptions about the threading capabilities of the language.</p>
+
+<p>When we use the term programming model, we are referring to the handling of the most complex part of asynchronous messaging APIs &#8211; message delivery to the application.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-JMS%2FJavaprogrammingmodel"></a>JMS / Java programming model</h2>
+
+<p>JMS 1.1 provides two ways for an application to receive messages. One is by a blocking receive in the MsgConsumer class' receive() function. This will suspend the calling thread until a message is received. The other method is through callbacks in subclasses of MessageListener. The OnMessage function is called when a message is received on the topic or queue that the MessageListener was created for.</p>
+
+<p>To sum up &#8211; The JMS model imposes a threading structure on the application developer. Either they must use multiple threads each doing synchronous receive() calls, or rely on a separate thread to deliver messages to them. A single-threaded model is impossible.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-WherewhatsbestforC%5CandJavaAPIsdiverge"></a>Where whats best for C++ and Java APIs diverge</h2>
+
+<p>The JMS API enforces a particular model of threading on an application. This is fine and well-accepted in the Java programming space, since Java is designed for it to be easiest to multiplex communications with threads. Threads are very easy and well-supported in Java.</p>
+
+<p>However, in C++ the common practice is different. Most C++ programs that handle network communication in an event-driven fashion use an event loop. This is a thread that waits for activity on a number of file descriptors, relying on the OS to wake it up when one has data. File descriptors are the lingua franca of event-driven C and C++ programs, since the OS makes it easy to use them for any kind of event, as well as providing rich functionality to wait on multiple file descriptors at once. In C and C+<u>, threads are error-prone (due to no concurrency features in the language) and often unnecessary when a flexible enough event loop is used. The upshot of this is that the most optimal C</u>+ API for an asynchronous messaging system is one that works within this common practice of C++ programs, rather than imposing arbitrary restrictions. In particular, even background threads that share no data or code with the application can affect it since the interaction of multiple threads and UNIX signals is not well defined.</p>
+
+<p>In conclusion, C++ developers expect a level of openness and flexibility when using libraries that can deliver events, so that they can integrate multiple sources of events together without resorting to multithreading. Most libraries that do this properly expose the underlying file descriptor of the network connection directly to the application &#8211; X11 does this for example &#8211; and we will start there with the actual design specification.</p>
+
+<p>C++s lower level nature presents many more inherent design decisions than does Java. In particular, one of the largest issues is that there is no standard smart pointer implementation. Boost is popular, but every enterprise has its own, and every developer has personal preference. It is for this reason that this library does not propose to use any particular smart pointer implementation, as it enforces a design decision on enterprises that have their own requirements in that space. Through careful use of references and API semantics we can make memory ownership explicit enough to avoid the pitfalls. As it is, the API policy is that all returned pointers are the application's responsibility to free. This should make it sufficiently unambiguous.</p>
+
+<p>We are proposing a three-tiered approach to provide the tradeoff between application simplicity and flexibility. The lowest level will do the least and allow the widest range of applications to use it, the next level will be much more functional, but with some design tradeoffs, and the highest we will leave up to enterprise-specific needs.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-ProposedC%5CAPIDesign"></a>Proposed C++ API Design</h2>
+
+<p>The design that we are proposing consists of two layers. The core library owns no threads and acts simply as a filter &#8211; taking data from the broker in and dispatching messages if necessary. This core layer of the library is exposed to allow those C++ developers who do not want any threads other than their own managing events, and/or want to use non-TCP methods of communication with the broker. The socket to the ActiveMQ broker is to be exposed to the application by the transport layer, and data received on it is to be passed opaquely to the core library by the application. This allows for asynchronous messaging with a single-threaded program &#8211; a hard requirement for some developers.<br/>
+There are shortcomings to this approach. If the application blocks on some other activity and data from the broker is never processed, the TCP socket will back up and messages will build up on the broker side. Also, the single-threaded nature of the library means that the application must do all the I/O work itself, and implement a separate thread in order to make meaningful use of the blocking receive.</p>
+
+<p>We can build a second layer (we call it BrokerSession) on top of the first that provides these features &#8211; still integrating into the applications existing event structure, but at the price of a background thread. The background thread handles data from ActiveMQ and passes it to the core library, putting any resulting messages into an internal message buffer (or potentially multiple &#8211; see details below). With this the library can provide a much simpler and more direct messaging interface to the application, since it handles broker communication itself in the same way that an application using the core library would.</p>
+
+<p>The second layer simply invokes an interior instance of the first to perform any ActiveMQ-related messaging tasks &#8211; no messaging-system-specific code is outside of the core lower level library. As a result, the second layer is a thin one &#8211; just the thread, interaction with the transport abstraction layer and functionality passthroughs to the core library.</p>
+
+<p>There is a third level &#8211; there is a need for higher-level, application framework libraries for messaging, that might take all control flow from the user and provide the simplest possible environment. The lower levels are designed to allow the most flexibility in the design and requirements of the third level, which is most often enterprise-specific and lies outside the scope of this document. An example of a library at this level would be one that provides a framework that makes it easy to write a completely callback-based application. Since this would require that an application be designed for it from the start, it is at this level that design decisions such as selecting a smart pointer implementation would be appropriate. It is likely that for a particular enterprise, most applications would use something like this, which would be implemented as a thin wrapper over the BrokerSession library.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-Transportlayerabstractionoverview"></a>Transport layer abstraction overview</h2>
+
+<p> Similar to ActiveMQ itself, we provide a transport layer abstraction that manages connection and I/O on file descriptors. Initially only TCP socket support will be provided, but there is value in other implementations &#8211; in-process pipe, playing back from a file, UDP, etc. This layer provides logical connect, send, recv, and close operations. Transports are initialized with URIs in the same fashion that other ActiveMQ transports are.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-Corelibraryoverview"></a>Core library overview</h2>
+
+<p>The core layer of the library provides a very simple interface &#8211; data in, messages out.</p>
+
+<div class="imageHolder"><img src="/download/attachments/44535/Core Library Usage.JPG" align="absmiddle" border="0"/></div>
+
+<p>When the returned file descriptor from the transport layer's connect() call reads active in the application's event loop, the application reads available data and passes that to the library. The library itself has an internal buffer that will deliver a message when one has been fully accumulated. The purpose of this disconnect is that the core library <b>will not make any blocking I/O calls &#8211; or any system calls at all for that matter</b>. This satisfies the portability goal, as well as ensuring that a single-threaded application can use this library without the potential for losing control of its thread.</p>
+
+<p>The end-to-end lifetime of an outgoing message using the core library is:</p>
+<ul>
+	<li>User calls "send" or "subscribe" etc.</li>
+	<li>The core library constructs the corresponding OpenWire command object</li>
+	<li>The core library marshals this object into a buffer and returns that buffer to the user</li>
+</ul>
+
+
+<p>The end-to-end lifetime of an incoming message using the core library is:</p>
+<ul>
+	<li>The user gets data from ActiveMQ, possibly by using the included transport library</li>
+	<li>This data is passed to the core library, which does one of two things:</li>
+</ul>
+
+
+<ul class="alternate" type="square">
+	<li>if it isn't already receiving a message, it looks at the first few bytes and notes how large the incoming message is by examining OpenWire headers.</li>
+	<li>if it is, it adds the incoming buffer to an internal message buffer, and if this addition completes the incoming message it deserializes it into an OpenWire command object, and the appropriate action is taken.</li>
+</ul>
+
+
+<p>Notable here is the behavior of message receives - the core library is able to receive messages in piecemeal, and only deliver a message when it has been completely received.</p>
+
+<p>Publication and subscription work in the conventional ways, except that they return data to be sent by the transport layer instead of directly sending it. This allows a higher level to determine exactly how the data is sent &#8211; for example, it allows use of non-blocking I/O.</p>
+
+<p>The application is given two choices for message receipt. The library does this by means of one or more internal "message consumer" objects (similar to JMS MessageConsumer objects). There are two kinds &#8211; one for synchronous receives, and one for asynchronous. The synchronous consumer(BlockingMessageConsumer) offers a blocking receive that multiple threads can wait on for messages. The asynchronous message consumer uses an event-based interface, notifying the application that a message is ready via a byte written down a pipe. The NonBlockingMessageConsumer class can dispense its event file descriptor as well as received messages &#8211; the asynchronous receive() call is nonblocking and returns NULL if no message is ready.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-BrokerSessionlibraryoverview"></a>BrokerSession library overview</h2>
+
+<p>The higher level library's interface offers a much simpler and more direct API to the developer than the first layer, as a result of having an internal thread to process data from the ActiveMQ broker.</p>
+
+<div class="imageHolder"><img src="/download/attachments/44535/BrokerSession Library Usage.JPG" align="absmiddle" border="0"/></div>
+
+<p>Since the BrokerSession library contains a copy of the core library, ActiveMQ-specific code is kept encapsulated there. The code in the BrokerSession library does the legwork of managing the core library and broker communication for the application. The use of a background thread to do this and deliver incoming messages to the message consumers greatly simplifies application development.</p>
+
+<p>As in the core library, message dispatch is done explicitly by the application, not from the background thread. Neither library stores message callbacks &#8211; it is not required that they be used. This ensures that only threads that are known by the calling application execute application code &#8211; the result being that thread-safe programming is not enforced or required (satisfying the goal of not mandating a particular thread model). It is not unexpected that there will commonly be enterprise-specific code layered in front of this to do more customized message delivery (potentially using callbacks, for example).</p>
+
+<p>This library allows both a JMS-like programming model of multiple threads waiting on message queues as well as an event-driven, select-loop model that is more common in C++ programs. This makes it adaptable to the varying requirements of new and existing C++ applications that have design constraints imposed by things other than the messaging library.</p>
+
+</div><div class="section_2"><h2><a name="OpenWireCPPClient-Logginganderrorhandling"></a>Logging and error handling</h2>
+
+<p>To fit with the goals of not enforcing particular dependencies and allowing easy enterprise integration, the libraries have a callback-based model for logging. The application registers a logger with the library to be called when log events occur - this logger has function callbacks for error logging, debug logging, etc. This allows the easiest integration with existing logging systems, as these callbacks can then call directly into the native logging environment (such as syslog) or log to a file, or anything else that is appropriate in the particular application.</p>
+
+<p>Error handling is slightly different. The native C++ way of doing error handling is through exceptions. Exceptions work very well for something like the core library, so when an error occurs it will throw an instance of ActiveMQ::Exception to the caller. In the BrokerSession library, however, such exceptions may be caught by the background thread. In this case, that thread will call an application callback to pass along the exception. This ensures that all errors reach the application and can be dealt with appropriately.</p>
+
+<p>The default callback for exception handling simply print the relevant message to standard error.</p></div></div>
+        </div>
+<div style="text-align: center; width: 100%; padding-top: 1cm;padding-bottom: 1cm">
+<script type="text/javascript"><!--
+google_ad_client = "pub-3023399591478482";
+google_ad_width = 468;
+google_ad_height = 60;
+google_ad_format = "468x60_as";
+google_ad_type = "text_image";
+google_ad_channel ="9744516269";
+google_color_border = "FFFFFF";
+google_color_bg = "FFFFFF";
+google_color_link = "557755";
+google_color_url = "557755";
+google_color_text = "333333";
+//--></script>
+<script type="text/javascript"
+  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</div>
+</td>
+    <tr>
+    <tr id="ulayout_bottom">
+      <td colspan="2" id="ufooter">
+        <div class="content">
+          <div class="copyright">Copyright 2003-2006. All rights reserved unless otherwise noted.</div>
+          <div class="credits">Powered by <a href="http://atlassian.com/">Atlassian</a>&nbsp;<a href="http://atlassian.com/confluence/">Confluence</a></div>
+          <div>
+            <a class="editPage" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&amp;title=OpenWire+CPP+Client"><img src="http://www.codehaus.org/edit.gif" border="0">[&nbsp;edit&nbsp;]</a>
+          </div>
+        </div>
+      </td>
+    </tr>
+  </table>
+</html>

Modified: incubator/activemq/site/OpenWire+dotNet
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/OpenWire%2BdotNet?rev=383851&r1=383850&r2=383851&view=diff
==============================================================================
--- incubator/activemq/site/OpenWire+dotNet (original)
+++ incubator/activemq/site/OpenWire+dotNet Tue Mar  7 03:47:01 2006
@@ -267,8 +267,11 @@
 </ul>
 
 
-<p>You can browse the source code and tests <span class="nobr"><a href="https://svn.apache.org/repos/asf/incubator/activemq/trunk/openwire-dotnet/">here</a></span><table cellpadding="5" width="85%" cellspacing="8px" class="infoMacro" border="0" align="center"><colgroup><col width="24"/><col/></colgroup><tr><td valign="top"><img src="http://docs.codehaus.org/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"/></td><td><b class="strong">Using the right ActiveMQ version</b><br/><br/>
-Until ActiveMQ 4.0-M5 is out, you will need to use the <span class="nobr"><a href="http://cvs.apache.org/repository/incubator-activemq/distributions/">current snapshot build</a></span> of ActiveMQ if you wish to use the OpenWire.Net client.</td></tr></table></p>
+<p>You can browse the source code and tests <span class="nobr"><a href="https://svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-dotnet/">here</a></span><table cellpadding="5" width="85%" cellspacing="8px" class="infoMacro" border="0" align="center"><colgroup><col width="24"/><col/></colgroup><tr><td valign="top"><img src="http://docs.codehaus.org/images/icons/emoticons/information.gif" width="16" height="16" align="absmiddle" alt="" border="0"/></td><td><b class="strong">Using the right ActiveMQ version</b><br/><br/>
+Until ActiveMQ 4.0-M5 is out, you will need to use the <span class="nobr"><a href="http://cvs.apache.org/repository/incubator-activemq/distributions/">current snapshot build</a></span> of ActiveMQ if you wish to use the OpenWire.Net client.</td></tr></table><br/>
+&nbsp;</p>
+
+<p>&nbsp;</p>
 
 <div class="section_2"><h2><a name="OpenWiredotNet-Example"></a>Example</h2>
 
@@ -311,6 +314,7 @@
     }
 }</pre>
 </div></div>
+<p>&nbsp;</p>
 
 <div class="section_3"><h3><a name="OpenWiredotNet-Asynchronousconsumption"></a>Asynchronous consumption</h3>
 
@@ -319,6 +323,8 @@
 <pre class="code-java">IMessageConsumer consumer = session.CreateConsumer(<span class="code-keyword">this</span>.Destination);
 consumer.Listener += <span class="code-keyword">new</span> MessageListener(OnMessage);</pre>
 </div></div>
+<p>&nbsp;</p>
+
 <p>The above uses a C# <b>delegate</b> so that the OnMessage() method will be called whenever a message arrives.</p>
 
 <p>Note that the threading contract is similar to that of JMS - messages are dispatched for a single session's consumers in one thread at once. Consumers in different sessions can process messages concurrently but consumers in the same session are guarrenteed to be called by only one thread at once. e.g. if you have 3 consumers on a session then only one of the consumers will be called concurrently.</p>
@@ -329,39 +335,39 @@
 
 <p>Using <span class="nobr"><a href="http://subversion.tigris.org/">Subversion</a></span> you should be able to grab to get the code by typing</p>
 <div class="code"><div class="codeContent">
-<pre class="code-java">svn co https:<span class="code-comment">//svn.apache.org/repos/asf/incubator/activemq/trunk/openwire-dotnet/</span></pre>
+<pre class="code-java">svn co https:<span class="code-comment">//svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-dotnet/</span></pre>
 </div></div>
+<p>&nbsp;</p>
+
 <p>If you are behind a firewall then this anonymous checkout might be better</p>
 <div class="code"><div class="codeContent">
-<pre class="code-java">svn co http:<span class="code-comment">//svn.apache.org/repos/asf/incubator/activemq/trunk/openwire-dotnet/</span></pre>
+<pre class="code-java">svn co http:<span class="code-comment">//svn.apache.org/repos/asf/incubator/activemq/trunk/activemq-dotnet/</span></pre>
 </div></div>
+<p>&nbsp;</p>
 
-</div><div class="section_2"><h2><a name="OpenWiredotNet-Buildingthecode"></a>Building the code</h2>
+</div><div class="section_2"><h2><a name="OpenWiredotNet-BuildingthecodeUsingNAnt"></a>Building the code Using NAnt</h2>
 
 <p>On Windows you can use Visual Studio to build the code. On Linux or OS X you can use <span class="nobr"><a href="http://www.mono-project.com">Mono</a></span>.</p>
 
 <p>The build uses <span class="nobr"><a href="http://nant.sourceforge.net/">NAnt</a></span> which works on .Net and Mono.</p>
 
 <p>To build the code with Nant type the following</p>
-
 <div class="code"><div class="codeContent">
-<pre class="code-java">cd openwire-dotnet
-nant build</pre>
+<pre class="code-java">cd activemq-dotnet
+nant</pre>
 </div></div>
-
-<table cellpadding="5" width="85%" cellspacing="8px" class="warningMacro" border="0" align="center"><colgroup><col width="24"/><col/></colgroup><tr><td valign="top"><img src="http://docs.codehaus.org/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"/></td><td><b class="strong">Running the Unit Tests</b><br/>
+<p>&nbsp;<table cellpadding="5" width="85%" cellspacing="8px" class="warningMacro" border="0" align="center"><colgroup><col width="24"/><col/></colgroup><tr><td valign="top"><img src="http://docs.codehaus.org/images/icons/emoticons/forbidden.gif" width="16" height="16" align="absmiddle" alt="" border="0"/></td><td><b class="strong">Running the Unit Tests</b><br/>
 <p>The unit tests depend on an ActiveMQ broker running on tcp://localhost:61616 so that the test cases can connect to ActiveMQ and send and receive messages etc.<br/>
-So if you have a distribution of ActiveMQ, <a href="/Run+Broker" title="Run Broker">run the broker</a> first before building OpenWire.Net</p></td></tr></table>
+So if you have a distribution of ActiveMQ, <a href="/Run+Broker" title="Run Broker">run the broker</a> first before building OpenWire.Net</p></td></tr></table><br/>
+&nbsp;</p>
 
 <p>If you want to run a build with the unit tests (assuming you have a broker running) then type</p>
-
 <div class="code"><div class="codeContent">
-<pre class="code-java">nant</pre>
+<pre class="code-java">nant test</pre>
 </div></div>
+<p>&nbsp;</p>
 
-<div class="section_3"><h3><a name="OpenWiredotNet-BuildingthecodeonOSX"></a>Building the code on OS X</h3>
-
-<p>If you are on OS X we recommend the use of <span class="nobr"><a href="http://www.omnicore.com/xdevelop.htm">X-develop</a></span> for editing, refactoring and running the code.</p>
+<div class="section_3"><h3><a name="OpenWiredotNet-SettingupNAntonMacOSX"></a>Setting up NAnt on Mac OS X</h3>
 
 <p>To use NAnt on OS X</p>
 <ul>
@@ -376,7 +382,27 @@
 <pre class="code-java">#!/bin/sh
 exec /usr/bin/mono /path/to/nant/NAnt.exe <span class="code-quote">"$@"</span></pre>
 </div></div>
+<p>&nbsp;</p>
+
 <p>Thanks to the hints from <span class="nobr"><a href="http://cs-sdl.sourceforge.net/index.php/The_absolute_newbies_guide_to_SDL.NET">this page</a></span>.</p>
+
+</div></div><div class="section_2"><h2><a name="OpenWiredotNet-BuildingthecodeusingMaven2"></a>Building the code using Maven 2</h2>
+
+<p>You can use the <span class="nobr"><a href="http://maven-csharp.javaforge.com/">Maven C# plugin</a></span> to build the code if you have Maven 2.0.2 or later installed.</p>
+
+<p>Once that's done you only need to:</p>
+<div class="code"><div class="codeContent">
+<pre class="code-java">cd activemq-dotnet
+mvn install</pre>
+</div></div>
+<p>&nbsp;</p>
+
+</div><div class="section_2"><h2><a name="OpenWiredotNet-%26nbsp%3BIDETips"></a>&nbsp;IDE Tips</h2>
+
+
+<div class="section_3"><h3><a name="OpenWiredotNet-UsingXdevelop"></a>Using <span class="nobr"><a href="http://www.omnicore.com/xdevelop.htm">X-develop</a></span> to edit C#</h3>
+
+<p>If you are on OS X we recommend the use of <span class="nobr"><a href="http://www.omnicore.com/xdevelop.htm">X-develop</a></span>for editing, refactoring and running the code.&nbsp; Just tell it to load the activemq-dotnet.sln file and X-develop should be ready to go.</p>
 
 </div><div class="section_3"><h3><a name="OpenWiredotNet-UsingEclipsetoeditC%23"></a>Using Eclipse to edit C#</h3>
 

Modified: incubator/activemq/site/Peer+Transport+Reference
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Peer%2BTransport%2BReference?rev=383851&r1=383850&r2=383851&view=diff
==============================================================================
--- incubator/activemq/site/Peer+Transport+Reference (original)
+++ incubator/activemq/site/Peer+Transport+Reference Tue Mar  7 03:47:01 2006
@@ -1,21 +1,290 @@
-Server returned HTTP response code: 500 for URL: http://docs.codehaus.org/rpc/xmlrpc com.openxource.unity.providers.confluence.ConfluencePageProviderImpl.getPage(ConfluencePageProviderImpl.java:78)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.getFragment(UnityPageRendererImpl.java:249)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.renderPage(UnityPageRendererImpl.java:155)
- com.openxource.unity.servlets.ContentServlet.doGet(ContentServlet.java:69)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
- org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
- org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
- org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
- org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
- org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
- org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
- org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
- org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
- org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
- org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
- org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
- org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
- java.lang.Thread.run(Thread.java:595)
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<head profile="http://www.w3.org/2000/08/w3c-synd/#">
+    <link rel="stylesheet" href="/__unity__/styles/unity-blue.css" type="text/css"/>
+    <title>ActiveMQ - Peer Transport Reference</title>
+</head>
+
+<body>
+
+  <table id="ulayout">
+    <tr id="ulayout_top">
+      <td colspan="2" valign="bottom">
+        <table width="100%">
+          <tr id="utop">
+            <td id="utop_left">
+              <a href="http://www.codehaus.org/"><img src="/__unity__/images/logo.png" style="border: none;"/></a>
+            </td>
+            <td id="utop_right" style="text-align: right; vertical-align: middle;padding-right:10px;">
+              <a href="/"><img src="http://www.logicblaze.com/images/logos/products/ActiveMQ/ActiveMQ_logo_200.jpg" alt="ActiveMQ" class="spaceLogo" border="0"/></a>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" id="uadvertising_top">
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <table id="utop_nav">
+          <tr>
+            <td align="left" valign="middle">
+              <div id="ubreadcrumbs">
+                <p>
+                  <a href="/">Home</a>
+                                     		                  </p>
+              </div>
+            </td>
+            <td align="right" valign="middle">
+              <div id="uquicklinks">
+                                  <p><a href="/Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/">3.x</a></span> | <a href="/Source" title="Source">Source</a> | <span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq">IRC Log</a></span> | <a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a> | <span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Support</a></span></p>
+                              </div>
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2"></td>
+    </tr>
+    <tr id="ulayout_middle">
+      <td id="uleft">
+        <div class="content">
+                      <div class="section_3"><h3><a name="Navigation-Overview"></a>Overview</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Home" title="Home">Home</a></li>
+	<li><a href="/News" title="News">News</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">New in 4.0</a></li>
+	<li><a href="/FAQ" title="FAQ">FAQ</a></li>
+	<li><a href="/Articles" title="Articles">Articles</a></li>
+	<li><a href="/Download" title="Download">Download</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Community"></a>Community</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span></li>
+	<li><a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a></li>
+	<li><span class="nobr"><a href="http://gmane.org/find.php?list=activemq">News Reader</a></span></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span></li>
+	<li><a href="/Projects+Using+ActiveMQ" title="Projects Using ActiveMQ">Projects Using ActiveMQ</a></li>
+	<li><a href="/Users" title="Users">Users</a></li>
+	<li><a href="/Contributing" title="Contributing">Contributing</a></li>
+	<li><a href="/Team" title="Team">Team</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-UsingActiveMQ"></a>Using ActiveMQ</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Getting+Started" title="Getting Started">Getting Started</a></li>
+	<li><a href="/Initial+Configuration" title="Initial Configuration">Initial Configuration</a></li>
+	<li><a href="/Run+Broker" title="Run Broker">Running a Broker</a></li>
+	<li><a href="/Configuring+Transports" title="Configuring Transports">Configuring Transports</a></li>
+	<li><a href="/Examples" title="Examples">Examples</a></li>
+	<li><a href="/How+can+I+monitor+ActiveMQ" title="How can I monitor ActiveMQ">Monitoring the Broker</a></li>
+	<li><a href="/Xml+Configuration" title="Xml Configuration">Xml Configuration</a></li>
+	<li><a href="/Xml+Reference" title="Xml Reference">Xml Reference</a></li>
+	<li><a href="/Web+Samples" title="Web Samples">Web Samples</a></li>
+	<li><a href="/Hello+World" title="Hello World">Hello World</a></li>
+	<li><a href="/Use+Cases" title="Use Cases">Use Cases</a></li>
+	<li><a href="/Topologies" title="Topologies">Topologies</a></li>
+	<li><a href="/How+do+I+embed+a+Broker+inside+a+Connection" title="How do I embed a Broker inside a Connection">Embedded Brokers</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">Performance Testing</a></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/x/yK4">Command Line Tools Reference</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Features"></a>Features</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JMX" title="JMX">JMX</a></li>
+	<li><a href="/Performance" title="Performance">Performance</a></li>
+	<li><a href="/Protocols" title="Protocols">Protocols</a></li>
+	<li><a href="/Persistence" title="Persistence">Persistence</a></li>
+	<li><a href="/JDBC+Support" title="JDBC Support">JDBC Support</a></li>
+	<li><a href="/Security" title="Security">Security</a></li>
+	<li><a href="/Interceptors" title="Interceptors">Interceptors</a></li>
+	<li><a href="/Clustering" title="Clustering">Clustering</a></li>
+	<li><a href="/Discovery" title="Discovery">Discovery</a></li>
+	<li><a href="/Composite+Destinations" title="Composite Destinations">Composite Destinations</a></li>
+	<li><a href="/JMS+Streams" title="JMS Streams">JMS Streams</a></li>
+	<li><a href="/Advisory+Message" title="Advisory Message">Advisory Message</a></li>
+	<li><a href="/Resource+Adapter" title="Resource Adapter">JCA 1.5 Resource Adapter</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Featuresin4.x"></a>Features in 4.x</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Message+Groups" title="Message Groups">Message Groups</a></li>
+	<li><a href="/MasterSlave" title="MasterSlave">MasterSlave</a></li>
+	<li><a href="/Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</a></li>
+	<li><a href="/Exclusive+Consumer" title="Exclusive Consumer">Exclusive Consumer</a></li>
+	<li><a href="/Total+Ordering" title="Total Ordering">Total Ordering</a></li>
+	<li><a href="/Consumer+Priority" title="Consumer Priority">Consumer Priority</a></li>
+	<li><a href="/Retroactive+Consumer" title="Retroactive Consumer">Retroactive Consumer</a></li>
+	<li><a href="/JMS+to+JMS+Bridge" title="JMS to JMS Bridge">JMS to JMS Bridge</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">Other new features</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Connectivitiy"></a>Connectivitiy</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Ajax" title="Ajax">Ajax</a></li>
+	<li><a href="/Axis+Support" title="Axis Support">Axis Support</a></li>
+	<li><a href="/C+Integration" title="C Integration">C Integration</a></li>
+	<li><a href="/dot+Net" title="dot Net">.Net Integration</a></li>
+	<li><a href="/Geronimo" title="Geronimo">Geronimo</a></li>
+	<li><a href="/J2EE" title="J2EE">J2EE</a></li>
+	<li><a href="/JBoss+Integration" title="JBoss Integration">JBoss Integration</a></li>
+	<li><a href="/JNDI+Support" title="JNDI Support">JNDI Support</a></li>
+	<li><a href="/OpenWire" title="OpenWire">OpenWire</a></li>
+	<li><a href="/REST" title="REST">REST</a></li>
+	<li><a href="/Spring+Support" title="Spring Support">Spring Support</a></li>
+	<li><a href="/Stomp" title="Stomp">Stomp</a></li>
+	<li><a href="/Tomcat" title="Tomcat">Tomcat</a></li>
+	<li><a href="/WSIF" title="WSIF">WSIF</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Utilities"></a>Utilities</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JCA+Container" title="JCA Container">JCA Container</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-ExternalTools"></a>External Tools</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Hermes+Jms" title="Hermes Jms">Hermes Jms</a></li>
+	<li><a href="/Sun+JNDI" title="Sun JNDI">Sun JNDI</a></li>
+	<li><span class="nobr"><a href="http://jakarta.apache.org/jmeter">JMeter</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://servicemix.org/">ServiceMix</a></span></li>
+	<li><span class="nobr"><a href="http://lingo.codehaus.org/">Lingo</a></span></li>
+	<li><span class="nobr"><a href="http://jencks.org/">Jencks</a></span></li>
+	<li><span class="nobr"><a href="http://stomp.codehaus.org/">Stomp</a></span></li>
+	<li><span class="nobr"><a href="http://activecluster.codehaus.org/">ActiveCluster</a></span></li>
+	<li><span class="nobr"><a href="http://activespace.codehaus.org/">ActiveSpace</a></span></li>
+	<li><span class="nobr"><a href="http://activesoap.codehaus.org/">ActiveSOAP</a></span></li>
+	<li><span class="nobr"><a href="http://www.springframework.org/">Spring</a></span></li>
+	<li><span class="nobr"><a href="http://geronimo.apache.org/">Geronimo</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Support"></a>Support</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Issues</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Roadmap</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:changelog-panel">Change log</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Developers"></a>Developers</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Source" title="Source">Source</a></li>
+	<li><a href="/Code+Overview" title="Code Overview">Code Overview</a></li>
+	<li><a href="/Wire+Protocol" title="Wire Protocol">Wire Protocol</a></li>
+	<li><a href="/ActiveMQ+4.0" title="ActiveMQ 4.0">ActiveMQ 4.0</a></li>
+	<li><a href="/Becoming+a+committer" title="Becoming a committer">Becoming a committer</a></li>
+	<li><a href="/Integration+Tests" title="Integration Tests">Integration Tests</a></li>
+	<li><a href="/Benchmark+Tests" title="Benchmark Tests">Benchmark Tests</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">JMeter Performance Tests</a></li>
+	<li><a href="/Release+Guide" title="Release Guide">Release Guide</a></li>
+	<li><a href="/JUnit+Reports" title="JUnit Reports">JUnit Reports</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/clover/">Clover Report</a></span></li>
+	<li><a href="/Source+XRef" title="Source XRef">Source XRef</a></li>
+	<li><a href="/Test+Source+XRef" title="Test Source XRef">Test Source XRef</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/activemq.xsd.html">XSD</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3>
+
+<p><span class="nobr"><a href="http://www.yourkit.com"><img src="/download/attachments/23786/yourkit.jpg" align="absmiddle" border="0"/></a></span></p></div>
+          
+          <div class="section_3">
+            <h3>Feeds</h3>
+            <ul class="feedList">
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&amp;newPages=false">Site</a></li>
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a></li>
+            </ul>
+          </div>
+        </div>
+      </td>
+      <td id="umain">
+        <div class="content">
+          <a href="/Peer+Transport+Reference?print=1" style="float:right"><img src="http://www.codehaus.org/print.gif" class="print" alt="Print" border="0"/></a>
+          <div id="upage_title">Peer Transport Reference</div>
+          <div id="uads">
+
+<script type="text/javascript"><!--
+google_ad_client = "pub-3023399591478482";
+google_ad_width = 468;
+google_ad_height = 60;
+google_ad_format = "468x60_as";
+google_ad_type = "text_image";
+google_ad_channel = "7321085054"; //unity-top
+google_color_border = "FFFFFF";
+google_color_bg = "FFFFFF";
+google_color_link = "557755";
+google_color_url = "557755";
+google_color_text = "333333";
+//--></script>
+<center>
+<script type="text/javascript"
+  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</center>
+
+          </div>
+          <div class="section_3"><h3><a name="PeerTransportReference-ThePeerTransport"></a>The Peer Transport</h3>
+
+<p>The Peer transport is a composite transport which uses the VM transport to create and connect to a local embedded broker but which configures the embedded broker to establish network connections to other peer embedded brokers.</p>
+
+<div class="section_4"><h4><a name="PeerTransportReference-ConfigurationSyntax"></a>Configuration Syntax</h4>
+
+<p><b>peer://peer-group/brokerName?brokerOptions</b></p>
+
+<div class="section_5"><h5><a name="PeerTransportReference-ExampleURI"></a>Example URI</h5>
+
+<div class="preformatted"><div class="preformattedContent">
+<pre>peer://groupa/broker1?persistent=false
+</pre>
+</div></div>
+<p>&nbsp;</p>
+
+<p>&nbsp;</p></div></div></div>
+        </div>
+</div>
+</td>
+    <tr>
+    <tr id="ulayout_bottom">
+      <td colspan="2" id="ufooter">
+        <div class="content">
+          <div class="copyright">Copyright 2003-2006. All rights reserved unless otherwise noted.</div>
+          <div class="credits">Powered by <a href="http://atlassian.com/">Atlassian</a>&nbsp;<a href="http://atlassian.com/confluence/">Confluence</a></div>
+          <div>
+            <a class="editPage" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&amp;title=Peer+Transport+Reference"><img src="http://www.codehaus.org/edit.gif" border="0">[&nbsp;edit&nbsp;]</a>
+          </div>
+        </div>
+      </td>
+    </tr>
+  </table>
+</html>

Modified: incubator/activemq/site/Per+Destination+Policies
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Per%2BDestination%2BPolicies?rev=383851&r1=383850&r2=383851&view=diff
==============================================================================
--- incubator/activemq/site/Per+Destination+Policies (original)
+++ incubator/activemq/site/Per+Destination+Policies Tue Mar  7 03:47:01 2006
@@ -1,21 +1,274 @@
-Server returned HTTP response code: 500 for URL: http://docs.codehaus.org/rpc/xmlrpc com.openxource.unity.providers.confluence.ConfluencePageProviderImpl.getPage(ConfluencePageProviderImpl.java:78)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.getFragment(UnityPageRendererImpl.java:249)
- com.openxource.unity.beans.impl.UnityPageRendererImpl.renderPage(UnityPageRendererImpl.java:155)
- com.openxource.unity.servlets.ContentServlet.doGet(ContentServlet.java:69)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
- javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
- org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
- org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
- org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
- org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
- org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
- org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
- org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
- org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
- org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
- org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
- org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:744)
- org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:674)
- org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:866)
- org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
- java.lang.Thread.run(Thread.java:595)
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
+<head profile="http://www.w3.org/2000/08/w3c-synd/#">
+    <link rel="stylesheet" href="/__unity__/styles/unity-blue.css" type="text/css"/>
+    <title>ActiveMQ - Per Destination Policies</title>
+</head>
+
+<body>
+
+  <table id="ulayout">
+    <tr id="ulayout_top">
+      <td colspan="2" valign="bottom">
+        <table width="100%">
+          <tr id="utop">
+            <td id="utop_left">
+              <a href="http://www.codehaus.org/"><img src="/__unity__/images/logo.png" style="border: none;"/></a>
+            </td>
+            <td id="utop_right" style="text-align: right; vertical-align: middle;padding-right:10px;">
+              <a href="/"><img src="http://www.logicblaze.com/images/logos/products/ActiveMQ/ActiveMQ_logo_200.jpg" alt="ActiveMQ" class="spaceLogo" border="0"/></a>
+            </td>
+          </tr>
+          <tr>
+            <td colspan="2" id="uadvertising_top">
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2">
+        <table id="utop_nav">
+          <tr>
+            <td align="left" valign="middle">
+              <div id="ubreadcrumbs">
+                <p>
+                  <a href="/">Home</a>
+                                     		                  </p>
+              </div>
+            </td>
+            <td align="right" valign="middle">
+              <div id="uquicklinks">
+                                  <p><a href="/Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/">3.x</a></span> | <a href="/Source" title="Source">Source</a> | <span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq">IRC Log</a></span> | <a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a> | <span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Support</a></span></p>
+                              </div>
+            </td>
+          </tr>
+        </table>
+      </td>
+    </tr>
+    <tr>
+      <td colspan="2"></td>
+    </tr>
+    <tr id="ulayout_middle">
+      <td id="uleft">
+        <div class="content">
+                      <div class="section_3"><h3><a name="Navigation-Overview"></a>Overview</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Home" title="Home">Home</a></li>
+	<li><a href="/News" title="News">News</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">New in 4.0</a></li>
+	<li><a href="/FAQ" title="FAQ">FAQ</a></li>
+	<li><a href="/Articles" title="Articles">Articles</a></li>
+	<li><a href="/Download" title="Download">Download</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Community"></a>Community</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://forums.logicblaze.com/forums/show/1.page">Discussion Forum</a></span></li>
+	<li><a href="/Mailing+Lists" title="Mailing Lists">Mailing Lists</a></li>
+	<li><span class="nobr"><a href="http://gmane.org/find.php?list=activemq">News Reader</a></span></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ">Wiki</a></span></li>
+	<li><a href="/Projects+Using+ActiveMQ" title="Projects Using ActiveMQ">Projects Using ActiveMQ</a></li>
+	<li><a href="/Users" title="Users">Users</a></li>
+	<li><a href="/Contributing" title="Contributing">Contributing</a></li>
+	<li><a href="/Team" title="Team">Team</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-UsingActiveMQ"></a>Using ActiveMQ</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Getting+Started" title="Getting Started">Getting Started</a></li>
+	<li><a href="/Initial+Configuration" title="Initial Configuration">Initial Configuration</a></li>
+	<li><a href="/Run+Broker" title="Run Broker">Running a Broker</a></li>
+	<li><a href="/Configuring+Transports" title="Configuring Transports">Configuring Transports</a></li>
+	<li><a href="/Examples" title="Examples">Examples</a></li>
+	<li><a href="/How+can+I+monitor+ActiveMQ" title="How can I monitor ActiveMQ">Monitoring the Broker</a></li>
+	<li><a href="/Xml+Configuration" title="Xml Configuration">Xml Configuration</a></li>
+	<li><a href="/Xml+Reference" title="Xml Reference">Xml Reference</a></li>
+	<li><a href="/Web+Samples" title="Web Samples">Web Samples</a></li>
+	<li><a href="/Hello+World" title="Hello World">Hello World</a></li>
+	<li><a href="/Use+Cases" title="Use Cases">Use Cases</a></li>
+	<li><a href="/Topologies" title="Topologies">Topologies</a></li>
+	<li><a href="/How+do+I+embed+a+Broker+inside+a+Connection" title="How do I embed a Broker inside a Connection">Embedded Brokers</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">Performance Testing</a></li>
+	<li><span class="nobr"><a href="http://docs.codehaus.org/x/yK4">Command Line Tools Reference</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Features"></a>Features</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JMX" title="JMX">JMX</a></li>
+	<li><a href="/Performance" title="Performance">Performance</a></li>
+	<li><a href="/Protocols" title="Protocols">Protocols</a></li>
+	<li><a href="/Persistence" title="Persistence">Persistence</a></li>
+	<li><a href="/JDBC+Support" title="JDBC Support">JDBC Support</a></li>
+	<li><a href="/Security" title="Security">Security</a></li>
+	<li><a href="/Interceptors" title="Interceptors">Interceptors</a></li>
+	<li><a href="/Clustering" title="Clustering">Clustering</a></li>
+	<li><a href="/Discovery" title="Discovery">Discovery</a></li>
+	<li><a href="/Composite+Destinations" title="Composite Destinations">Composite Destinations</a></li>
+	<li><a href="/JMS+Streams" title="JMS Streams">JMS Streams</a></li>
+	<li><a href="/Advisory+Message" title="Advisory Message">Advisory Message</a></li>
+	<li><a href="/Resource+Adapter" title="Resource Adapter">JCA 1.5 Resource Adapter</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Featuresin4.x"></a>Features in 4.x</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Message+Groups" title="Message Groups">Message Groups</a></li>
+	<li><a href="/MasterSlave" title="MasterSlave">MasterSlave</a></li>
+	<li><a href="/Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</a></li>
+	<li><a href="/Exclusive+Consumer" title="Exclusive Consumer">Exclusive Consumer</a></li>
+	<li><a href="/Total+Ordering" title="Total Ordering">Total Ordering</a></li>
+	<li><a href="/Consumer+Priority" title="Consumer Priority">Consumer Priority</a></li>
+	<li><a href="/Retroactive+Consumer" title="Retroactive Consumer">Retroactive Consumer</a></li>
+	<li><a href="/JMS+to+JMS+Bridge" title="JMS to JMS Bridge">JMS to JMS Bridge</a></li>
+	<li><a href="/Changes+in+4.0" title="Changes in 4.0">Other new features</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Connectivitiy"></a>Connectivitiy</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Ajax" title="Ajax">Ajax</a></li>
+	<li><a href="/Axis+Support" title="Axis Support">Axis Support</a></li>
+	<li><a href="/C+Integration" title="C Integration">C Integration</a></li>
+	<li><a href="/dot+Net" title="dot Net">.Net Integration</a></li>
+	<li><a href="/Geronimo" title="Geronimo">Geronimo</a></li>
+	<li><a href="/J2EE" title="J2EE">J2EE</a></li>
+	<li><a href="/JBoss+Integration" title="JBoss Integration">JBoss Integration</a></li>
+	<li><a href="/JNDI+Support" title="JNDI Support">JNDI Support</a></li>
+	<li><a href="/OpenWire" title="OpenWire">OpenWire</a></li>
+	<li><a href="/REST" title="REST">REST</a></li>
+	<li><a href="/Spring+Support" title="Spring Support">Spring Support</a></li>
+	<li><a href="/Stomp" title="Stomp">Stomp</a></li>
+	<li><a href="/Tomcat" title="Tomcat">Tomcat</a></li>
+	<li><a href="/WSIF" title="WSIF">WSIF</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Utilities"></a>Utilities</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/JCA+Container" title="JCA Container">JCA Container</a></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-ExternalTools"></a>External Tools</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Hermes+Jms" title="Hermes Jms">Hermes Jms</a></li>
+	<li><a href="/Sun+JNDI" title="Sun JNDI">Sun JNDI</a></li>
+	<li><span class="nobr"><a href="http://jakarta.apache.org/jmeter">JMeter</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://servicemix.org/">ServiceMix</a></span></li>
+	<li><span class="nobr"><a href="http://lingo.codehaus.org/">Lingo</a></span></li>
+	<li><span class="nobr"><a href="http://jencks.org/">Jencks</a></span></li>
+	<li><span class="nobr"><a href="http://stomp.codehaus.org/">Stomp</a></span></li>
+	<li><span class="nobr"><a href="http://activecluster.codehaus.org/">ActiveCluster</a></span></li>
+	<li><span class="nobr"><a href="http://activespace.codehaus.org/">ActiveSpace</a></span></li>
+	<li><span class="nobr"><a href="http://activesoap.codehaus.org/">ActiveSOAP</a></span></li>
+	<li><span class="nobr"><a href="http://www.springframework.org/">Spring</a></span></li>
+	<li><span class="nobr"><a href="http://geronimo.apache.org/">Geronimo</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Support"></a>Support</h3>
+
+<ul class="alternate" type="square">
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ">Issues</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:roadmap-panel">Roadmap</a></span></li>
+	<li><span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ?report=com.atlassian.jira.plugin.system.project:changelog-panel">Change log</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Developers"></a>Developers</h3>
+
+<ul class="alternate" type="square">
+	<li><a href="/Source" title="Source">Source</a></li>
+	<li><a href="/Code+Overview" title="Code Overview">Code Overview</a></li>
+	<li><a href="/Wire+Protocol" title="Wire Protocol">Wire Protocol</a></li>
+	<li><a href="/ActiveMQ+4.0" title="ActiveMQ 4.0">ActiveMQ 4.0</a></li>
+	<li><a href="/Becoming+a+committer" title="Becoming a committer">Becoming a committer</a></li>
+	<li><a href="/Integration+Tests" title="Integration Tests">Integration Tests</a></li>
+	<li><a href="/Benchmark+Tests" title="Benchmark Tests">Benchmark Tests</a></li>
+	<li><a href="/JMeter+Performance+Tests" title="JMeter Performance Tests">JMeter Performance Tests</a></li>
+	<li><a href="/Release+Guide" title="Release Guide">Release Guide</a></li>
+	<li><a href="/JUnit+Reports" title="JUnit Reports">JUnit Reports</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/clover/">Clover Report</a></span></li>
+	<li><a href="/Source+XRef" title="Source XRef">Source XRef</a></li>
+	<li><a href="/Test+Source+XRef" title="Test Source XRef">Test Source XRef</a></li>
+	<li><span class="nobr"><a href="http://activemq.codehaus.org/maven/activemq.xsd.html">XSD</a></span></li>
+</ul>
+
+
+</div><div class="section_3"><h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3>
+
+<p><span class="nobr"><a href="http://www.yourkit.com"><img src="/download/attachments/23786/yourkit.jpg" align="absmiddle" border="0"/></a></span></p></div>
+          
+          <div class="section_3">
+            <h3>Feeds</h3>
+            <ul class="feedList">
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&amp;newPages=false">Site</a></li>
+              <li><a class="rss" href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a></li>
+            </ul>
+          </div>
+        </div>
+      </td>
+      <td id="umain">
+        <div class="content">
+          <a href="/Per+Destination+Policies?print=1" style="float:right"><img src="http://www.codehaus.org/print.gif" class="print" alt="Print" border="0"/></a>
+          <div id="upage_title">Per Destination Policies</div>
+          <div id="uads">
+
+<script type="text/javascript"><!--
+google_ad_client = "pub-3023399591478482";
+google_ad_width = 468;
+google_ad_height = 60;
+google_ad_format = "468x60_as";
+google_ad_type = "text_image";
+google_ad_channel = "7321085054"; //unity-top
+google_color_border = "FFFFFF";
+google_color_bg = "FFFFFF";
+google_color_link = "557755";
+google_color_url = "557755";
+google_color_text = "333333";
+//--></script>
+<center>
+<script type="text/javascript"
+  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
+</script>
+</center>
+
+          </div>
+          <p>We support a number of different policies which can be attached to individual destinations (queues, topics) or to wildcards of queue/topic hierarchies. This makes it easy to configure how different regions of the JMS destination space are handled.</p>
+        </div>
+</div>
+</td>
+    <tr>
+    <tr id="ulayout_bottom">
+      <td colspan="2" id="ufooter">
+        <div class="content">
+          <div class="copyright">Copyright 2003-2006. All rights reserved unless otherwise noted.</div>
+          <div class="credits">Powered by <a href="http://atlassian.com/">Atlassian</a>&nbsp;<a href="http://atlassian.com/confluence/">Confluence</a></div>
+          <div>
+            <a class="editPage" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&amp;title=Per+Destination+Policies"><img src="http://www.codehaus.org/edit.gif" border="0">[&nbsp;edit&nbsp;]</a>
+          </div>
+        </div>
+      </td>
+    </tr>
+  </table>
+</html>