activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jstrac...@apache.org
Subject svn commit: r374430 [8/45] - /incubator/activemq/site/
Date Thu, 02 Feb 2006 16:33:52 GMT
Added: incubator/activemq/site/Changes+in+4.0
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Changes%2Bin%2B4.0?rev=374430&view=auto
==============================================================================
--- incubator/activemq/site/Changes+in+4.0 (added)
+++ incubator/activemq/site/Changes+in+4.0 Thu Feb  2 08:31:10 2006
@@ -0,0 +1,275 @@
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <link rel="stylesheet" href="site.css" type="text/css">
+
+
+
+    <title>ActiveMQ - Changes in 4.0</title>
+  </head>
+
+  <body>
+    <table width="100%" id="layout" style="padding:0px;margin0px;border-collapse:collapse;">
+      <tr>
+        <td colspan="3" style="padding:8px;">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr id="header_row">
+              <td align="left" valign="middle" style="padding:0px;margin:0px;">
+                <span id="Content"><span><span class="nobr"><a href="http://incubator.apache.org/activemq" rel="nofollow"><img align="absmiddle" border=0 src="images/logo.gif"></a></span></span></span>
+
+              </td>
+              
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="breadcrumbs">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr>
+              <td align="left">
+                <a href="">Home</a>  | <a href="Navigation">Navigation</a> &gt; <a href="ActiveMQ+4.0">ActiveMQ&nbsp;4.0</a> &gt; Changes in 4.0
+              </td>
+              <td align="right">
+                  <span id="Content"><span><a href="Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/" rel="nofollow">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/" rel="nofollow">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" rel="nofollow">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">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" rel="nofollow">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ" rel="nofollow">Support
 </a></span></span></span>
+
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td id="leftColumn" valign="top" style="padding-top: 0px;">
+          <span id="Content"><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>
+  <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" rel="nofollow">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" rel="nofollow">News Reader</a></span></li>
+    <li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ" rel="nofollow">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>
+  <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="Installation" title="Installation">Installation</a></li>
+    <li><a href="Building" title="Building">Building</a></li>
+    <li><a href="Run+Broker" title="Run Broker">Running a Broker</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="Use+Cases" title="Use Cases">Use Cases</a></li>
+    <li><a href="Topologies" title="Topologies">Topologies</a></li>
+    <li><a href="Configuring+Transports" title="Configuring Transports">Configuring Transports</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><a href="Web+Samples" title="Web Samples">Web Samples</a></li>
+    <li><a href="Hello+World" title="Hello World">Hello World</a></li>
+  </ul>
+  <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="Clustering" title="Clustering">Clustering</a></li>
+    <li><a href="Discovery" title="Discovery">Discovery</a></li>
+    <li><a href="Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</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>
+  <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>
+  <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>
+  <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" rel="nofollow">JMeter</a></span></li>
+  </ul>
+  <h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+  <ul class="alternate" type="square">
+    <li><span class="nobr"><a href="http://servicemix.org/" rel="nofollow">ServiceMix</a></span></li>
+    <li><span class="nobr"><a href="http://lingo.codehaus.org/" rel="nofollow">Lingo</a></span></li>
+    <li><span class="nobr"><a href="http://jencks.org/" rel="nofollow">Jencks</a></span></li>
+    <li><span class="nobr"><a href="http://stomp.codehaus.org/" rel="nofollow">Stomp</a></span></li>
+    <li><span class="nobr"><a href="http://activecluster.codehaus.org/" rel="nofollow">ActiveCluster</a></span></li>
+    <li><span class="nobr"><a href="http://activespace.codehaus.org/" rel="nofollow">ActiveSpace</a></span></li>
+    <li><span class="nobr"><a href="http://activesoap.codehaus.org/" rel="nofollow">ActiveSOAP</a></span></li>
+    <li><span class="nobr"><a href="http://www.springframework.org/" rel="nofollow">Spring</a></span></li>
+    <li><span class="nobr"><a href="http://geronimo.apache.org/" rel="nofollow">Geronimo</a></span></li>
+  </ul>
+  <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" rel="nofollow">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" rel="nofollow">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" rel="nofollow">Change log</a></span></li>
+  </ul>
+  <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/" rel="nofollow">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" rel="nofollow">XSD</a></span></li>
+  </ul>
+  <h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3><span><span class="nobr"><a href="http://www.yourkit.com" rel="nofollow"><img align="absmiddle" border=0 src="/download/attachments/23786/yourkit.jpg"></a></span></span></span>
+
+            <h3 class="heading3">Feeds</h3>
+            <table border="0" cellspacing="4px">
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a><br/>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false">Site</a>
+              </td>
+            </tr>
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a>
+              </td>
+            </tr>
+            </table>
+        </td>
+        <td id="rightColumn" valign="top">
+
+          <div id="page_title">
+            <table width="100%">
+              <tr>
+                <td>
+            Changes in 4.0 
+                </td>
+                <td align="right">
+            
+                </td>
+              </tr>
+            </table>
+          </div>
+
+
+          <div>
+  <div id="Content">
+    <h3><a name="Changesin4.0-NewFeatures"></a>New Features</h3>
+    <ul>
+      <li>A new <a href="Exclusive+Consumer" title="Exclusive Consumer">Exclusive Consumer</a> feature allows you to pin message processing to a single consumer in a cluser of consumers.</li>
+      <li>A new <a href="Message+Groups" title="Message Groups">Message Groups</a> feaure allows you load balance messages accross a set of consumers but also garantee the message order for messages within a message group.</li>
+      <li>A new <a href="Total+Ordering" title="Total Ordering">Total Ordering</a> feature to allow all consumers on a topic to see messages in the same order.</li>
+      <li>New <a href="How+can+I+monitor+ActiveMQ" title="How can I monitor ActiveMQ">JMX Management</a> and monitoring capabilities. You can now see statistics for each broker, destination, connector and connection!</li>
+      <li>A new <a href="OpenWire+C+Client" title="OpenWire C Client">OpenWire C Client</a> is now available. This client talks the same wire protocol that the standard java client uses so every messaging broker feature available to the java client is available to the c client.</li>
+      <li>An experimental <a href="OpenWire+dotNet" title="OpenWire dotNet">OpenWire dotNet</a> is available, written in pure C# along with a JMS-like API for working on the .Net platform with ActiveMQ</li>
+      <li>Queues can now be loaded up with persistent messages without locking up the broker. Persistent messages are now swapped out of memory when no consumer needs it soon.</li>
+      <li>A new <a href="Consumer+Priority" title="Consumer Priority">Consumer Priority</a> feature allows you to build location affinity by assignin a priority to consumers. The broker can then dispatch messages to higher priority consumers before dispatching to lower priority consumers.</li>
+      <li>A new plug-able topic <a href="Subscription+Recovery+Policy" title="Subscription Recovery Policy">Subscription Recovery Policy</a> which allows you to configure how many transient messages are replayed when a <a href="Retroactive+Consumer" title="Retroactive Consumer">Retroactive Consumer</a> is created.</li>
+      <li>A new <a href="Retroactive+Consumer" title="Retroactive Consumer">Retroactive Consumer</a> feature allows topic consumers to &quot;go back in time&quot; so that it receives old messages when the subscription is activated. If the consumer is a durable consumer, he recover all the messages that are still in the persistent store.</li>
+      <li><a href="Per+Destination+Policies" title="Per Destination Policies">Per Destination Policies</a> are now supported and configured using the <span class="nobr"><a class="createlink" href="http://docs.codehaus.org/pages/createpage.action?spaceKey=ACTIVEMQ&amp;title=Destination+Options+Syntax&amp;linkCreation=true&amp;fromPageId=35927">Destination Options Syntax</a></span>.</li>
+      <li>The broker now supports per destination plugable <span class="nobr"><a class="createlink" href="http://docs.codehaus.org/pages/createpage.action?spaceKey=ACTIVEMQ&amp;title=Dispatch+Policies&amp;linkCreation=true&amp;fromPageId=35927">Dispatch Policies</a></span> so that you can choose the distribution algorithm used to send messages to a consumer.</li>
+      <li>The broker now supports two new types of connectors: <ul>
+          <li><span class="nobr"><a class="createlink" href="http://docs.codehaus.org/pages/createpage.action?spaceKey=ACTIVEMQ&amp;title=The+JMS+Connector&amp;linkCreation=true&amp;fromPageId=35927">The JMS Connector</a></span> is used to establish connection to external JMS providers so that messages can be bridged between the system.</li>
+          <li><a href="The+Proxy+Connector" title="The Proxy Connector">The Proxy Connector</a>. Is used to proxy connections to another broker.</li>
+        </ul>
+      </li>
+    </ul>
+    <h3><a name="Changesin4.0-API%2FConfigurationchanages"></a>API/Configuration chanages</h3>
+    <ul>
+      <li>the <a href="Xml+Configuration" title="Xml Configuration">Xml Configuration</a> has changed a little; mostly its now in the ActiveMQ namespace and has a generated XSD and documentation.</li>
+      <li>the <em>reliable</em> transport has been renamed to <em>failover</em> to make it more clear what it does; we're working on a separate DR mechanism to provide data centre resilliance. So if you wish to connect to one of a number of URIs try <div class="code">
+          <div class="codeContent"><pre class="code-java">failover:tcp:<span class="code-comment">//host1:port1,tcp://host2:port2</span></pre></div>
+        </div>
+      </li>
+      <li>The configuration options of transports have changed. See <a href="ActiveMQ+4+Connection+URIs" title="ActiveMQ 4 Connection URIs">ActiveMQ 4 Connection URIs</a> for a detailed guide of of all the options.</li>
+      <li>The spring package has gone; we now use <span class="nobr"><a href="http://xbean.org" rel="nofollow">XBean</a></span> to configure ActiveMQ. See the org.activemq.xbean.BrokerFactoryBean if you want a factory bean to use in regular spring instead of the org.activemq.spring.BrokerFactoryBean. See <a href="Configuring+Brokers" title="Configuring Brokers">Configuring Brokers</a> for more information on the new XML syntax.</li>
+      <li>ActiveMQTopic and ActiveMQQueue are now in the org.activemq.command package.</li>
+      <li>If you were creating a broker in Java code, the BrokerContainer has been replaced with BrokerService which is easier to use now.</li>
+      <li>The connection URL options have changed slightly to provided more persise configuration options of the transport and wireformat and to allow validation of the options.</li>
+      <li><a href="Message+Redelivery+and+DLQ+Handling" title="Message Redelivery and DLQ Handling">Message Redelivery and DLQ Handling</a> has been re-implemnted. Currently all messages sent poison messages are sent to a single DQL.</li>
+      <li>The <a href="JMS+Streams" title="JMS Streams">JMS Streams</a> API has changed.</li>
+    </ul>
+    <h3><a name="Changesin4.0-GeneralChanges"></a>General Changes</h3>
+    <ul>
+      <li>The JDBC persistence adapter now uses JDBC statement batching to increase it's performance with the database. This should reduce the amount of time a checkpoint takes.</li>
+      <li>QueueBrowsers now play nicely with a queue that is currently being consumed from. It gives you a true snapshot of what the queue looked like when you created the browser and it does not affect the dispatching of messages to active consumers.</li>
+      <li>we no longer have hand-crafted marshalling code any more; its all based on <a href="OpenWire" title="OpenWire">OpenWire</a> and autogenerated from the open wire commands in the org.activemq.command package</li>
+      <li>The network bridges used for broker to broker messaging now use a lower level ActiveMQ command and transport API instead of the JMS API, this allows them to use more optimizations and have a lower per bridge resource consumption while letting the JMS client API implementation reduce it's complexity.</li>
+      <li>Two types of network bridges are now supported: <ul>
+          <li>A simple forwardng bridge - sends all messages as soon as possible to the remote broker. Great you know the usage patterns up front and allways want to do store and forward to a central broker.</li>
+          <li>A demand based forwarding bridge (same type of bridge that was using in ActiveMQ 3.x) which detects consumer demand on the remote broker and only forwards messages as needed.</li>
+        </ul>
+      </li>
+      <li>The demand based forwarding bridge now take advantage of the <a href="Consumer+Priority" title="Consumer Priority">Consumer Priority</a> to avoid forwarding messages to a remote broker if there is a local consumer consuming it's messages.</li>
+      <li>Message fragmentation is no longer done. Fragmented messages add yet another level of complexity when you introduce broker networks. Large objects/streams should be transfered using the <a href="JMS+Streams" title="JMS Streams">JMS Streams</a>.</li>
+      <li>JMS clients marshall fewer messages on the wire on for a rollback.</li>
+      <li>JMS clients marshall fewer messages when sessions/consumers/producers are closed.</li>
+      <li>The client and the broker make more extensive use of Thread Pools to avoid allocating idle threads that are not being used.</li>
+    </ul>
+  </div>
+</div>
+
+          &nbsp;
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="footer">
+          <table width="100%"> 
+            <tr>
+              <td align="left" valign="top">
+          
+              </td>
+              <td align="right" valign="top">
+          <a style="color:#999;" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&title=Changes+in+4.0">[ edit ]</a>
+              </td>
+            </tr>
+          <table>
+        </td>
+      </tr>
+    </table>
+  </body>
+
+</html>
+
+

Added: incubator/activemq/site/Clustering
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Clustering?rev=374430&view=auto
==============================================================================
--- incubator/activemq/site/Clustering (added)
+++ incubator/activemq/site/Clustering Thu Feb  2 08:31:10 2006
@@ -0,0 +1,240 @@
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <link rel="stylesheet" href="site.css" type="text/css">
+
+
+
+    <title>ActiveMQ - Clustering</title>
+  </head>
+
+  <body>
+    <table width="100%" id="layout" style="padding:0px;margin0px;border-collapse:collapse;">
+      <tr>
+        <td colspan="3" style="padding:8px;">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr id="header_row">
+              <td align="left" valign="middle" style="padding:0px;margin:0px;">
+                <span id="Content"><span><span class="nobr"><a href="http://incubator.apache.org/activemq" rel="nofollow"><img align="absmiddle" border=0 src="images/logo.gif"></a></span></span></span>
+
+              </td>
+              
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="breadcrumbs">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr>
+              <td align="left">
+                <a href="">Home</a>  | Clustering
+              </td>
+              <td align="right">
+                  <span id="Content"><span><a href="Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/" rel="nofollow">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/" rel="nofollow">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" rel="nofollow">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">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" rel="nofollow">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ" rel="nofollow">Support
 </a></span></span></span>
+
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td id="leftColumn" valign="top" style="padding-top: 0px;">
+          <span id="Content"><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>
+  <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" rel="nofollow">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" rel="nofollow">News Reader</a></span></li>
+    <li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ" rel="nofollow">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>
+  <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="Installation" title="Installation">Installation</a></li>
+    <li><a href="Building" title="Building">Building</a></li>
+    <li><a href="Run+Broker" title="Run Broker">Running a Broker</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="Use+Cases" title="Use Cases">Use Cases</a></li>
+    <li><a href="Topologies" title="Topologies">Topologies</a></li>
+    <li><a href="Configuring+Transports" title="Configuring Transports">Configuring Transports</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><a href="Web+Samples" title="Web Samples">Web Samples</a></li>
+    <li><a href="Hello+World" title="Hello World">Hello World</a></li>
+  </ul>
+  <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="Clustering" title="Clustering">Clustering</a></li>
+    <li><a href="Discovery" title="Discovery">Discovery</a></li>
+    <li><a href="Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</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>
+  <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>
+  <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>
+  <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" rel="nofollow">JMeter</a></span></li>
+  </ul>
+  <h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+  <ul class="alternate" type="square">
+    <li><span class="nobr"><a href="http://servicemix.org/" rel="nofollow">ServiceMix</a></span></li>
+    <li><span class="nobr"><a href="http://lingo.codehaus.org/" rel="nofollow">Lingo</a></span></li>
+    <li><span class="nobr"><a href="http://jencks.org/" rel="nofollow">Jencks</a></span></li>
+    <li><span class="nobr"><a href="http://stomp.codehaus.org/" rel="nofollow">Stomp</a></span></li>
+    <li><span class="nobr"><a href="http://activecluster.codehaus.org/" rel="nofollow">ActiveCluster</a></span></li>
+    <li><span class="nobr"><a href="http://activespace.codehaus.org/" rel="nofollow">ActiveSpace</a></span></li>
+    <li><span class="nobr"><a href="http://activesoap.codehaus.org/" rel="nofollow">ActiveSOAP</a></span></li>
+    <li><span class="nobr"><a href="http://www.springframework.org/" rel="nofollow">Spring</a></span></li>
+    <li><span class="nobr"><a href="http://geronimo.apache.org/" rel="nofollow">Geronimo</a></span></li>
+  </ul>
+  <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" rel="nofollow">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" rel="nofollow">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" rel="nofollow">Change log</a></span></li>
+  </ul>
+  <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/" rel="nofollow">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" rel="nofollow">XSD</a></span></li>
+  </ul>
+  <h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3><span><span class="nobr"><a href="http://www.yourkit.com" rel="nofollow"><img align="absmiddle" border=0 src="/download/attachments/23786/yourkit.jpg"></a></span></span></span>
+
+            <h3 class="heading3">Feeds</h3>
+            <table border="0" cellspacing="4px">
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a><br/>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false">Site</a>
+              </td>
+            </tr>
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a>
+              </td>
+            </tr>
+            </table>
+        </td>
+        <td id="rightColumn" valign="top">
+
+          <div id="page_title">
+            <table width="100%">
+              <tr>
+                <td>
+            Clustering 
+                </td>
+                <td align="right">
+            
+                </td>
+              </tr>
+            </table>
+          </div>
+
+
+          <div>
+  <div id="Content">
+    <p>Clustering is a large area and often means different things to different people. We'll try to list the various aspects of clustering and how they relate to ActiveMQ</p>
+    <h2><a name="Clustering-Brokerclusters"></a>Broker clusters</h2>
+    <p>The most common mental model of clustering in a JMS context is that there is a logical cluster of JMS brokers and a JMS client will connect to one of them; then if the JMS broker goes down, it will auto-reconnect to another broker.</p>
+    <p>We implement this using the <b>reliable://</b> protocol in the JMS client. See the <a href="Protocols" title="Protocols">Protocols</a> page for details of how to configure the reliable protocol.</p>
+    <h2><a name="Clustering-Queueconsumerclusters"></a>Queue consumer clusters</h2>
+    <p>We support load balancing of messages on a queue across consumers. So you can have a cluster of consumers on a queue processing messages. If anyone goes down, other consumers pick up the slack. So this is a kind of cluster of consumers.</p>
+    <p>Using queues in this way, possibly across a network of brokers (see below) provides a good <b>grid</b> style processing model, allowing a cluster of worker processes to asynchronously process messages placed on a queue in a scalable and efficient <a href="SEDA" title="SEDA">SEDA</a> style manner. Many folks often want a <em>grid</em> solution to allow server farms to process various tasks like complex calculations and so forth - mostly an ActiveMQ network of brokers and clients with reliable:// transport will do the trick.</p>
+    <h2><a name="Clustering-Networksofbrokers"></a>Networks of brokers</h2>
+    <p>If you are using <a href="Topologies" title="Topologies">client/server or hub/spoke style topology</a> then the broker you connect to becomes a single point of failure. To avoid this 1.1 onwards of ActiveMQ supports <a href="Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</a> which allows us to support <a href="How+do+distributed+queues+work" title="How do distributed queues work">distributed queues and topics</a> across a network of brokers.</p>
+    <p>This allows a client to connect to any broker - and fail over to another broker if there is a failure - providing from the clients perspective a cluster of brokers.</p>
+    <p>Networks of brokers also allows us to scale up to massive number of clients in a network as we can run as many brokers as we need.</p>
+    <h2><a name="Clustering-AutoDiscoveryofbrokers"></a>Auto-Discovery of brokers</h2>
+    <p>We support <a href="Discovery" title="Discovery">auto-discovery</a> of brokers so clients can automatically detect and connect to a broker out of a logical group (cluster) of brokers as well for brokers to auto-discover and connect to other brokers to form large networks.</p>
+    <p>You can think of this as a cluster of clients connecting with a cluster of brokers with auto-failover and discovery making a simple and easy to use messaging fabric.</p>
+    <h2><a name="Clustering-ReplicatedMessageStores"></a>Replicated Message Stores</h2>
+    <p>If you have a network of brokers and you are using persistent messaging and the messages are stored on the hard drive of the broker; then you have a single point of failure with respect to the message persistence. If you lose the entire machine and disk, you have lost messages.</p>
+    <p>So by supporting a <a href="Replicated+Message+Store" title="Replicated Message Store">Replicated Message Store</a> you can reduce the risk of message loss to provide either a HA backup or a full <a href="DR" title="DR">DR</a> solution capable of surviving data centre failure.</p>
+  </div>
+</div>
+
+          &nbsp;
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="footer">
+          <table width="100%"> 
+            <tr>
+              <td align="left" valign="top">
+          
+              </td>
+              <td align="right" valign="top">
+          <a style="color:#999;" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&title=Clustering">[ edit ]</a>
+              </td>
+            </tr>
+          <table>
+        </td>
+      </tr>
+    </table>
+  </body>
+
+</html>
+
+

Added: incubator/activemq/site/Code+Overview
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Code%2BOverview?rev=374430&view=auto
==============================================================================
--- incubator/activemq/site/Code+Overview (added)
+++ incubator/activemq/site/Code+Overview Thu Feb  2 08:31:10 2006
@@ -0,0 +1,255 @@
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <link rel="stylesheet" href="site.css" type="text/css">
+
+
+
+    <title>ActiveMQ - Code Overview</title>
+  </head>
+
+  <body>
+    <table width="100%" id="layout" style="padding:0px;margin0px;border-collapse:collapse;">
+      <tr>
+        <td colspan="3" style="padding:8px;">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr id="header_row">
+              <td align="left" valign="middle" style="padding:0px;margin:0px;">
+                <span id="Content"><span><span class="nobr"><a href="http://incubator.apache.org/activemq" rel="nofollow"><img align="absmiddle" border=0 src="images/logo.gif"></a></span></span></span>
+
+              </td>
+              
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="breadcrumbs">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr>
+              <td align="left">
+                <a href="">Home</a>  | Code Overview
+              </td>
+              <td align="right">
+                  <span id="Content"><span><a href="Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/" rel="nofollow">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/" rel="nofollow">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" rel="nofollow">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">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" rel="nofollow">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ" rel="nofollow">Support
 </a></span></span></span>
+
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td id="leftColumn" valign="top" style="padding-top: 0px;">
+          <span id="Content"><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>
+  <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" rel="nofollow">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" rel="nofollow">News Reader</a></span></li>
+    <li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ" rel="nofollow">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>
+  <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="Installation" title="Installation">Installation</a></li>
+    <li><a href="Building" title="Building">Building</a></li>
+    <li><a href="Run+Broker" title="Run Broker">Running a Broker</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="Use+Cases" title="Use Cases">Use Cases</a></li>
+    <li><a href="Topologies" title="Topologies">Topologies</a></li>
+    <li><a href="Configuring+Transports" title="Configuring Transports">Configuring Transports</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><a href="Web+Samples" title="Web Samples">Web Samples</a></li>
+    <li><a href="Hello+World" title="Hello World">Hello World</a></li>
+  </ul>
+  <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="Clustering" title="Clustering">Clustering</a></li>
+    <li><a href="Discovery" title="Discovery">Discovery</a></li>
+    <li><a href="Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</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>
+  <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>
+  <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>
+  <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" rel="nofollow">JMeter</a></span></li>
+  </ul>
+  <h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+  <ul class="alternate" type="square">
+    <li><span class="nobr"><a href="http://servicemix.org/" rel="nofollow">ServiceMix</a></span></li>
+    <li><span class="nobr"><a href="http://lingo.codehaus.org/" rel="nofollow">Lingo</a></span></li>
+    <li><span class="nobr"><a href="http://jencks.org/" rel="nofollow">Jencks</a></span></li>
+    <li><span class="nobr"><a href="http://stomp.codehaus.org/" rel="nofollow">Stomp</a></span></li>
+    <li><span class="nobr"><a href="http://activecluster.codehaus.org/" rel="nofollow">ActiveCluster</a></span></li>
+    <li><span class="nobr"><a href="http://activespace.codehaus.org/" rel="nofollow">ActiveSpace</a></span></li>
+    <li><span class="nobr"><a href="http://activesoap.codehaus.org/" rel="nofollow">ActiveSOAP</a></span></li>
+    <li><span class="nobr"><a href="http://www.springframework.org/" rel="nofollow">Spring</a></span></li>
+    <li><span class="nobr"><a href="http://geronimo.apache.org/" rel="nofollow">Geronimo</a></span></li>
+  </ul>
+  <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" rel="nofollow">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" rel="nofollow">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" rel="nofollow">Change log</a></span></li>
+  </ul>
+  <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/" rel="nofollow">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" rel="nofollow">XSD</a></span></li>
+  </ul>
+  <h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3><span><span class="nobr"><a href="http://www.yourkit.com" rel="nofollow"><img align="absmiddle" border=0 src="/download/attachments/23786/yourkit.jpg"></a></span></span></span>
+
+            <h3 class="heading3">Feeds</h3>
+            <table border="0" cellspacing="4px">
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a><br/>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false">Site</a>
+              </td>
+            </tr>
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a>
+              </td>
+            </tr>
+            </table>
+        </td>
+        <td id="rightColumn" valign="top">
+
+          <div id="page_title">
+            <table width="100%">
+              <tr>
+                <td>
+            Code Overview 
+                </td>
+                <td align="right">
+            
+                </td>
+              </tr>
+            </table>
+          </div>
+
+
+          <div>
+  <div id="Content">
+    <p>The <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/package-summary.html" rel="nofollow">org.activemq</a></span> package defines the core JMS client.</p>
+    <h2><a name="CodeOverview-Transport"></a>Transport</h2>
+    <p>The JMS client and the message broker use the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/transport/TransportChannel.html" rel="nofollow">TransportChannel</a></span> 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 <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/transport/package-summary.html" rel="nofollow">org.activemq.transport</a></span> package for more details</p>
+    <p>So the TransportChannel is basically concerned with sending and receiving <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/Packet.html" rel="nofollow">Packet</a></span> objects (each instance represents some kind of <em>command</em>). Packet is defined in the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/package-summary.html" rel="nofollow">org.activemq.message</a></span> package which defines all the JMS Message implementations classes (which are Packets) along with a number of other kinds of packets, like subsciptions, message acknowledgements, transactions and so forth.</p>
+    <h2><a name="CodeOverview-WireFormat"></a>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 TransportChannel implementations take a pluggable <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/package-summary.html" rel="nofollow">WireFormat</a></span> implementation class - which is a <em>Strategy Pattern</em> for deciding how to write the Packets 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 <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/DefaultWireFormat.html" rel="nofollow">DefaultWireFormat</a></span> 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><a name="CodeOverview-DefaultWireFormat"></a>Default Wire Format</h2>
+    <p>The default wire format writes a byte which indicates the kind of Packet which is being sent (see the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/Packet.html" rel="nofollow">Packet</a></span> interface which defines all the int constants for each type of packet.</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 <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/package-summary.html" rel="nofollow">types of packet</a></span> such as</p>
+    <ul>
+      <li><span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/ConnectionInfo.html" rel="nofollow">ConnectionInfo </a></span> for when a new connection is established with a message broker</li>
+      <li><span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/ConsumerInfo.html" rel="nofollow">ConsumerInfo</a></span> when a new consumer is created on a connection</li>
+      <li><span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/MessageAck.html" rel="nofollow">MessageAck</a></span> to acknowledge a message ID</li>
+      <li><span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/TransactionInfo.html" rel="nofollow">TransactionInfo</a></span> to denote a transaction</li>
+    </ul>
+    <p>There are a few others; the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/message/package-summary.html" rel="nofollow">org.activemq.message</a></span> 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><a name="CodeOverview-MessageBroker"></a>Message Broker</h1>
+    <p>The APIs for the message broker (server side of the JMS client) are defined in the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/broker/package-summary.html" rel="nofollow">org.activemq.broker</a></span> with implementations in the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/org/activemq/broker/impl/package-summary.html" rel="nofollow">org.activemq.broker.impl</a></span> package. There are various other packages which define different parts, from the message stores to the message routing and so forth. To see an overview of these packages try the <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/index.html" rel="nofollow">javadoc overview</a></span></p>
+  </div>
+</div>
+
+          &nbsp;
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="footer">
+          <table width="100%"> 
+            <tr>
+              <td align="left" valign="top">
+          
+              </td>
+              <td align="right" valign="top">
+          <a style="color:#999;" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&title=Code+Overview">[ edit ]</a>
+              </td>
+            </tr>
+          <table>
+        </td>
+      </tr>
+    </table>
+  </body>
+
+</html>
+
+

Added: incubator/activemq/site/Compile+ActiveMQ+with+GCJ
URL: http://svn.apache.org/viewcvs/incubator/activemq/site/Compile%2BActiveMQ%2Bwith%2BGCJ?rev=374430&view=auto
==============================================================================
--- incubator/activemq/site/Compile+ActiveMQ+with+GCJ (added)
+++ incubator/activemq/site/Compile+ActiveMQ+with+GCJ Thu Feb  2 08:31:10 2006
@@ -0,0 +1,497 @@
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+  <head>
+    <link rel="stylesheet" href="site.css" type="text/css">
+
+
+
+    <title>ActiveMQ - Compile ActiveMQ with GCJ</title>
+  </head>
+
+  <body>
+    <table width="100%" id="layout" style="padding:0px;margin0px;border-collapse:collapse;">
+      <tr>
+        <td colspan="3" style="padding:8px;">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr id="header_row">
+              <td align="left" valign="middle" style="padding:0px;margin:0px;">
+                <span id="Content"><span><span class="nobr"><a href="http://incubator.apache.org/activemq" rel="nofollow"><img align="absmiddle" border=0 src="images/logo.gif"></a></span></span></span>
+
+              </td>
+              
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="breadcrumbs">
+          <table width="100%" id="banner" style="padding:0px;margin:0px">
+            <tr>
+              <td align="left">
+                <a href="">Home</a>  | <a href="C+Integration">C&nbsp;Integration</a> &gt; Compile ActiveMQ with GCJ
+              </td>
+              <td align="right">
+                  <span id="Content"><span><a href="Download" title="Download">Download</a> | <span class="nobr"><a href="http://activemq.codehaus.org/maven/apidocs/" rel="nofollow">JavaDocs for 4.x</a></span> <span class="nobr"><a href="http://activemq.org/maven/activemq-3/activemq-core/apidocs/" rel="nofollow">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" rel="nofollow">Wiki</a></span> |<span class="nobr"><a href="irc://irc.codehaus.org/activemq" rel="nofollow">IRC</a></span> | <span class="nobr"><a href="http://servlet.uwyn.com/drone/log/hausbot/activemq" rel="nofollow">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" rel="nofollow">Discussion Forum</a></span> | <span class="nobr"><a href="http://jira.logicblaze.com/jira/browse/AMQ" rel="nofollow">Support
 </a></span></span></span>
+
+              </td>
+            </tr>
+          </table>
+        </td>
+      </tr>
+      <tr>
+        <td id="leftColumn" valign="top" style="padding-top: 0px;">
+          <span id="Content"><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>
+  <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" rel="nofollow">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" rel="nofollow">News Reader</a></span></li>
+    <li><span class="nobr"><a href="http://docs.codehaus.org/pages/listpages.action?key=ACTIVEMQ" rel="nofollow">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>
+  <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="Installation" title="Installation">Installation</a></li>
+    <li><a href="Building" title="Building">Building</a></li>
+    <li><a href="Run+Broker" title="Run Broker">Running a Broker</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="Use+Cases" title="Use Cases">Use Cases</a></li>
+    <li><a href="Topologies" title="Topologies">Topologies</a></li>
+    <li><a href="Configuring+Transports" title="Configuring Transports">Configuring Transports</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><a href="Web+Samples" title="Web Samples">Web Samples</a></li>
+    <li><a href="Hello+World" title="Hello World">Hello World</a></li>
+  </ul>
+  <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="Clustering" title="Clustering">Clustering</a></li>
+    <li><a href="Discovery" title="Discovery">Discovery</a></li>
+    <li><a href="Networks+of+Brokers" title="Networks of Brokers">Networks of Brokers</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>
+  <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>
+  <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>
+  <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" rel="nofollow">JMeter</a></span></li>
+  </ul>
+  <h3><a name="Navigation-RelatedProjects"></a>Related Projects</h3>
+  <ul class="alternate" type="square">
+    <li><span class="nobr"><a href="http://servicemix.org/" rel="nofollow">ServiceMix</a></span></li>
+    <li><span class="nobr"><a href="http://lingo.codehaus.org/" rel="nofollow">Lingo</a></span></li>
+    <li><span class="nobr"><a href="http://jencks.org/" rel="nofollow">Jencks</a></span></li>
+    <li><span class="nobr"><a href="http://stomp.codehaus.org/" rel="nofollow">Stomp</a></span></li>
+    <li><span class="nobr"><a href="http://activecluster.codehaus.org/" rel="nofollow">ActiveCluster</a></span></li>
+    <li><span class="nobr"><a href="http://activespace.codehaus.org/" rel="nofollow">ActiveSpace</a></span></li>
+    <li><span class="nobr"><a href="http://activesoap.codehaus.org/" rel="nofollow">ActiveSOAP</a></span></li>
+    <li><span class="nobr"><a href="http://www.springframework.org/" rel="nofollow">Spring</a></span></li>
+    <li><span class="nobr"><a href="http://geronimo.apache.org/" rel="nofollow">Geronimo</a></span></li>
+  </ul>
+  <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" rel="nofollow">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" rel="nofollow">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" rel="nofollow">Change log</a></span></li>
+  </ul>
+  <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/" rel="nofollow">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" rel="nofollow">XSD</a></span></li>
+  </ul>
+  <h3><a name="Navigation-Toolsweuse"></a>Tools we use</h3><span><span class="nobr"><a href="http://www.yourkit.com" rel="nofollow"><img align="absmiddle" border=0 src="/download/attachments/23786/yourkit.jpg"></a></span></span></span>
+
+            <h3 class="heading3">Feeds</h3>
+            <table border="0" cellspacing="4px">
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a><br/>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/rss.action?key=ACTIVEMQ&newPages=false">Site</a>
+              </td>
+            </tr>
+            <tr>
+              <td align="right">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ"><img src="http://docs.codehaus.org/images/icons/rss.gif" border="0"></a>
+              </td>
+              <td align="left">
+                <a href="http://docs.codehaus.org/spaces/blogrss.action?key=ACTIVEMQ">News</a>
+              </td>
+            </tr>
+            </table>
+        </td>
+        <td id="rightColumn" valign="top">
+
+          <div id="page_title">
+            <table width="100%">
+              <tr>
+                <td>
+            Compile ActiveMQ with GCJ 
+                </td>
+                <td align="right">
+            
+                </td>
+              </tr>
+            </table>
+          </div>
+
+
+          <div>
+  <div id="Content">
+    <p>You can use <span class="nobr"><a href="http://gcc.gnu.org/java/" rel="nofollow">GCJ</a></span> to build ActiveMQ as a shared library you can reuse from C++.</p>
+    <h3><a name="CompileActiveMQwithGCJ-NativecompileActiveMQHOWTO"></a>Native compile ActiveMQ HOWTO</h3>
+    <h4><a name="CompileActiveMQwithGCJ-Abstract"></a>Abstract</h4>
+    <p>This document describes how to native compile ActiveMQ for use in a C++ environment. The version of ActiveMQ used is 3.2 in this howto. To compile you'll need GCC 4.0.2, or later, with both Java, and C/C++ support.</p>
+    <h4><a name="CompileActiveMQwithGCJ-ToolsSetup"></a>Tools Setup</h4>
+    <p>If you don't already have GCC 4.0.2 installed you need to download and build it. See GCC manuals for complete instructions on how to build GCC but below is a short descriptions of the steps involved. The GCC build steps assumes that you already have an older GCC compiler installed.</p>
+    <ul>
+      <li>Unpack GCC into an arbitrary directory, for example /opt/gccbuild, and then create a separate output directory. Your directory structure should look similar to this; <div class="preformatted">
+          <div class="preformattedContent"><pre>        /opt/gccbuild/gcc-4.0.2
+        /opt/gccbuild/output
+</pre></div>
+        </div>
+      </li>
+      <li>Go to the output directory and run configure. <div class="preformatted">
+          <div class="preformattedContent"><pre>        cd /opt/gccbuild/output
+        ../gcc-4.0.2/configure --prefix=/opt/gcc402
+                               --enable-shared
+                               --enable-threads=posix
+                               --enable-languages=c,c++,java
+</pre></div>
+        </div>
+      </li>
+      <li>Run make. <div class="preformatted">
+          <div class="preformattedContent"><pre>        make bootstrap
+        make install
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Download ActiveMQ and copy the JARs to a new empty directory /opt/app, including <div class="preformatted">
+          <div class="preformattedContent"><pre>        activeio-1.1.jar
+        activemq-core-3.2.jar
+        commons-logging-1.0.3.jar
+        concurrent-1.3.4.jar
+        geronimo-spec-j2ee-jacc-1.0-rc4.jar
+        geronimo-spec-j2ee-management-1.0-rc4.jar
+        geronimo-spec-jms-1.1-rc4.jar
+        geronimo-spec-jta-1.0.1B-rc4.jar
+        log4j-1.2.8.jar
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <h4><a name="CompileActiveMQwithGCJ-WritetheGlueCode"></a>Write the Glue Code</h4>
+    <p>Either access the ActiveMQ classes directly from C++ or write a facade object in Java that handles all startup and shutdown logic of ActiveMQ. Save the glue files in the same directory as for the ActiveMQ jars.</p>
+    <p>An CNI example using a Java object starting the MQ.</p>
+    <h5><a name="CompileActiveMQwithGCJ-Bootstrap.cpp"></a>Bootstrap.cpp</h5>
+    <p class="paragraph">
+      <div class="preformatted">
+        <div class="preformattedContent"><pre>#include &lt;gcj/cni.h&gt;
+#include &lt;iostream&gt;
+#include &lt;java/lang/System.h&gt;
+#include &lt;java/lang/Throwable.h&gt;
+#include &lt;java/io/PrintStream.h&gt;
+#include &quot;MQAdapter.h&quot;
+
+using namespace std;
+
+int main(int argc, char* argv[])
+{
+    cout &lt;&lt; &quot;Entering main&quot; &lt;&lt; endl;
+    using namespace java::lang;
+
+    try
+    {
+        // Create and startup Java VM
+        JvCreateJavaVM(NULL) ;
+        JvAttachCurrentThread(NULL, NULL) ;
+
+        System::out-&gt;println(JvNewStringLatin1(&quot;Java println&quot;)) ;
+
+        // Start ActiveMQ
+        MQAdapter* pAdapter = new MQAdapter() ;
+        pAdapter-&gt;start() ;
+
+        // Send a message
+        pAdapter-&gt;send(JvNewStringLatin1(&quot;Hello World!&quot;)) ;
+
+        // Shutdown ActiveMQ
+        pAdapter-&gt;stop() ;
+     
+        JvDetachCurrentThread() ;
+    }
+    catch( Throwable *t )
+    {
+        System::err-&gt;println(JvNewStringLatin1(&quot;Exception&quot;)) ;
+        t-&gt;printStackTrace() ;
+    }
+}
+</pre></div>
+      </div>
+    </p>
+    <h5><a name="CompileActiveMQwithGCJ-MQAdapter.java"></a>MQAdapter.java</h5>
+    <p class="paragraph">
+      <div class="preformatted">
+        <div class="preformattedContent"><pre>import org.activemq.*;
+import java.util.Hashtable ;
+import javax.jms.*;
+import javax.naming.*;
+
+public class MQAdapter
+{
+    private InitialContext         jndiContext ;
+    private QueueConnectionFactory factory ;
+    private QueueConnection        connection ;
+    private QueueSession           session ;
+    private QueueSender            sender ;
+    private Queue                  queue ;
+
+    public MQAdapter()
+    {
+    }
+
+    public void start()
+    {
+        try
+        {
+            Hashtable props = new Hashtable() ;
+            props.put(Context.INITIAL_CONTEXT_FACTORY, &quot;org.activemq.jndi.ActiveMQInitialContextFactory&quot;) ;
+            props.put(Context.PROVIDER_URL, &quot;tcp://localhost:61616&quot;) ;
+            props.put(&quot;queue.MyQueue&quot;, &quot;example.MyQueue&quot;) ;
+
+            jndiContext = new InitialContext(props) ;
+        
+            // Create and configure JMS connection factory
+            factory = (QueueConnectionFactory)jndiContext.lookup(&quot;ConnectionFactory&quot;) ;
+
+            // Lookup Queue
+            queue = (Queue)jndiContext.lookup(&quot;MyQueue&quot;) ;
+
+            // Create a JMS connection
+            connection = (QueueConnection)factory.createQueueConnection() ;
+            System.out.println(&quot;Created connection: &quot; + connection) ;
+
+            // Create a JMS session
+            session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE) ;
+            System.out.println(&quot;Created session: &quot; + session) ;
+
+            // Create JMS sender
+            sender  = session.createSender(queue) ;
+        }
+        catch( Exception e )
+        {
+            e.printStackTrace() ;
+
+            try
+            {
+                if( connection != null )
+                    connection.close() ;
+            } catch( JMSException jmse )
+            { /* ignore */ }
+        }
+    }
+
+    public void stop()
+    {
+        try
+        {
+            if( connection != null )
+                connection.close() ;
+        } catch( JMSException e )
+        { /* ignore */ }
+    }
+
+    public void send(String msg)
+    {
+        TextMessage message ;
+
+        try
+        {
+            message = session.createTextMessage(msg) ;
+            sender.send(message) ;
+        }
+        catch( JMSException e )
+        {
+            e.printStackTrace() ;
+        }
+    }
+}
+</pre></div>
+      </div>
+    </p>
+    <h4><a name="CompileActiveMQwithGCJ-CompiletheJavaandCCode"></a>Compile the Java and C++ Code</h4>
+    <p>The Java code must be BC compiled to be able to dynamically link required classes as needed, see reference for more information on BC compilation. Use the suggested script to compile all ActiveMQ JARs and create a class map database.</p>
+    <p class="paragraph">
+      <table align="center" border=0 cellpadding=5 cellspacing="8px" class="infoMacro" width="85%">
+        <colgroup>
+          <col width=24>
+          <col>
+        </colgroup>
+        <tr>
+          <td valign="top"><img align="absmiddle" alt="" border=0 height=16 src="/images/icons/emoticons/information.gif" width=16></td>
+          <td><b class="strong">Note</b><br>
+            <p>Using -Bsymbolic does not seem to work, use -symbolic instead.</p>
+          </td>
+        </tr>
+      </table>
+      <div class="preformatted">
+        <div class="preformattedContent"><pre>    compile.sh:
+
+    #!/bin/sh
+
+    # Create new classmap database
+    gcj-dbtool -n classmap.db
+
+    for JAR_FILE in `find -iname &quot;*.jar&quot;`
+    do
+        echo &quot;Compiling ${JAR_FILE} to native&quot;
+        gcj -shared -findirect-dispatch -fjni -fPIC -Wl,-symbolic -o ${JAR_FILE}.so ${JAR_FILE}
+        gcj-dbtool -a classmap.db ${JAR_FILE} ${JAR_FILE}.so
+    done
+</pre></div>
+      </div>
+    </p>
+    <ul>
+      <li>Run the above script and set environment property GCJ_PROPERTIES. <div class="preformatted">
+          <div class="preformattedContent"><pre>           ./compile.sh
+           export GCJ_PROPERTIES=&quot;gnu.gcj.precompiled.db.path=/opt/app/classmap.db&quot;
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Java compile MQAdapter.java <div class="preformatted">
+          <div class="preformattedContent"><pre>           gcj --classpath=./geronimo-spec-jms-1.1-rc4.jar:./activemq-core-3.2.jar -C MQAdapter.java
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Generate CNI header for MQAdapter.class <div class="preformatted">
+          <div class="preformattedContent"><pre>           gcjh MQAdapter
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>JAR the Java glue code <div class="preformatted">
+          <div class="preformattedContent"><pre>           fastjar cf MQAdapter.jar MQAdapter.class
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Native compile the Java JAR into a shared library, add output directory to LD_LIBRARY_PATH. <div class="preformatted">
+          <div class="preformattedContent"><pre>           gcj -shared -findirect-dispatch -fjni -fPIC -Wl,-symbolic -o MQAdapter.so MQAdapter.jar
+           export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/app
+
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Compile the C++ code <div class="preformatted">
+          <div class="preformattedContent"><pre>           g++ -c Bootstrap.cpp
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <ul>
+      <li>Link Bootstrap with the Java code <div class="preformatted">
+          <div class="preformattedContent"><pre>           gcj -o Bootstrap Bootstrap.o -L /opt/app -lgcj -lstdc++ activeio-1.1.jar.so activemq-core-3.2.jar.so
+               commons-logging-1.0.3.jar.so concurrent-1.3.4.jar.so geronimo-spec-jms-1.1-rc4.jar.so
+               geronimo-spec-j2ee-management-1.0-rc4.jar.so geronimo-spec-j2ee-jacc-1.0-rc4.jar.so
+               geronimo-spec-jta-1.0.1B-rc4.jar.so log4j-1.2.8.jar.so MQAdapter.so
+</pre></div>
+        </div>
+      </li>
+    </ul>
+    <p>Now, if everything went ok you should be able to run the app. with ./Bootstrap.</p>
+    <h4><a name="CompileActiveMQwithGCJ-References"></a>References</h4>
+    <p><span class="nobr"><a href="http://gcc.gnu.org/wiki/How%20to%20BC%20compile%20with%20GCJ" rel="nofollow">How to BC compile with GCJ</a></span></p>
+    <p><span class="nobr"><a href="http://www.redhat.com/magazine/012oct05/features/java/" rel="nofollow">The state of Java on Linux</a></span></p>
+  </div>
+</div>
+
+          &nbsp;
+        </td>
+      </tr>
+      <tr>
+        <td colspan="3" id="footer">
+          <table width="100%"> 
+            <tr>
+              <td align="left" valign="top">
+          
+              </td>
+              <td align="right" valign="top">
+          <a style="color:#999;" href="http://docs.codehaus.org/pages/editpage.action?spaceKey=ACTIVEMQ&title=Compile+ActiveMQ+with+GCJ">[ edit ]</a>
+              </td>
+            </tr>
+          <table>
+        </td>
+      </tr>
+    </table>
+  </body>
+
+</html>
+
+



Mime
View raw message