You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by bu...@apache.org on 2012/09/25 00:17:34 UTC

svn commit: r832928 - in /websites/production/camel/content: cache/main.pageCache sjms.html

Author: buildbot
Date: Mon Sep 24 22:17:34 2012
New Revision: 832928

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/sjms.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/sjms.html
==============================================================================
--- websites/production/camel/content/sjms.html (original)
+++ websites/production/camel/content/sjms.html Mon Sep 24 22:17:34 2012
@@ -81,9 +81,14 @@
 
 <div class="panelMacro"><table class="noteMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/warning.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1">This component is under active development.</td></tr></table></div>
 
-<p>The SJMS Component is a JMS client for Camel based purely on the JMS API.  It will be released as part of Camel 2.11 with the following functionality:</p>
+<p>The SJMS Component is a JMS client API for use with Camel. It is based purely on the JMS API and as such does not rely on any third party messaging implementations keeping it light and flexible.  It is scheduled to be released as part of Camel 2.11 with the following functionality:</p>
 
-<ul><li>Queue and Topic Support (Durable &amp; Non-Durable)</li><li>InOnly &amp; InOut Support</li><li>Plugable Connection Resource Management</li><li>Session, Consumer, &amp; Producer Pooling &amp; Caching Management</li><li>Asynchronous Producer and Consumer Processing</li><li>Internal JMS Transaction Support</li></ul>
+<ul><li>Standard Queue and Topic Support (Durable &amp; Non-Durable)</li><li>InOnly &amp; InOut MEP Support</li><li>Asynchronous Producer and Consumer Processing</li><li>Internal JMS Transaction Support</li></ul>
+
+
+<p>Additional key features include:</p>
+
+<ul><li>Plugable Connection Resource Management</li><li>Session, Consumer, &amp; Producer Pooling &amp; Caching Management</li><li>Transacted Batch Consumers &amp; Producers</li><li>Support for Customizable Transaction Commit Strategies (Local JMS Transactions only)</li></ul>
 
 
 <div class="panelMacro"><table class="infoMacro"><colgroup span="1"><col span="1" width="24"><col span="1"></colgroup><tr><td colspan="1" rowspan="1" valign="top"><img align="middle" src="https://cwiki.apache.org/confluence/images/icons/emoticons/information.gif" width="16" height="16" alt="" border="0"></td><td colspan="1" rowspan="1"><b>Why the S in SJMS</b><br clear="none">S stands for Simple and Standard and Springless.  Also camel-jms was already taken. <img align="middle" class="emoticon" src="https://cwiki.apache.org/confluence/images/icons/emoticons/smile.gif" height="20" width="20" alt="" border="0"></td></tr></table></div>
@@ -100,7 +105,7 @@
 </pre>
 </div></div>
 
-<h3><a shape="rect" name="SJMS-URIformat"></a>URI format</h3>
+<h4><a shape="rect" name="SJMS-URIformat"></a>URI format</h4>
 
 <div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
 <pre class="code-java">
@@ -134,7 +139,34 @@ sjms:topic:Stocks.Prices
 
 <p>You append query options to the URI using the following format, <tt>?option=value&amp;option=value&amp;...</tt></p>
 
-<h3><a shape="rect" name="SJMS-SjmsComponentOptionsandConfigurations"></a>SjmsComponent Options and Configurations</h3>
+<h3><a shape="rect" name="SJMS-UsageNotes"></a>Usage Notes</h3>
+
+<p>As stated above SJMS Component uses a JMS client API that was written from the ground up for use in Camel. As such there are some key behaviors and features that deserve noting.</p>
+
+<h4><a shape="rect" name="SJMS-PlugableConnectionResourceManagement"></a>Plugable Connection Resource Management</h4>
+
+<p>Coming soon ...</p>
+
+<h4><a shape="rect" name="SJMS-Session%2CConsumer%2C%26ProducerPooling%26CachingManagement"></a>Session, Consumer, &amp; Producer Pooling &amp; Caching Management</h4>
+
+<p>Coming soon ...</p>
+
+<h4><a shape="rect" name="SJMS-TransactedBatchConsumers%26Producers"></a>Transacted Batch Consumers &amp; Producers</h4>
+
+<p>Coming soon ...</p>
+
+<h4><a shape="rect" name="SJMS-CustomizableTransactionCommitStrategies%28LocalJMSTransactionsonly%29"></a>Customizable Transaction Commit Strategies (Local JMS Transactions only)</h4>
+
+<p>Coming soon ...</p>
+
+<h3><a shape="rect" name="SJMS-ComponentOptionsandConfigurations"></a>Component Options and Configurations</h3>
+
+<p>The SJMS Component supports the following configuration options:</p>
+
+<div class="confluenceTableSmall"><div class="table-wrap">
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>connectionFactory</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt> </td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>connectionResource</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt> </td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>headerFilterStrategy</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>DefaultJmsKeyFormatStrategy</tt> </td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt
 >keyFormatStrategy</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>DefaultJmsKeyFormatStrategy</tt> </td><td colspan="1" rowspan="1" class="confluenceTd">&#160;</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>maxConnections</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> The maximum number of connections available to endpoints started under this component </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>transactionCommitStrategy</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>DefaultTransactionCommitStrategy()</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageProducer instances. </td></tr></tbody></table>
+</div>
+</div>
 
 <p>Below is an example of how to configure the SjmsComponent with its required ConnectionFactory provider.  It will create a single connection by default and store it using the components internal pooling APIs to ensure that it is able to service Session creation requests in a thread safe manner.</p>
 
@@ -160,7 +192,7 @@ component.setMaxConnections(1);
 </pre>
 </div></div>
 
-<h3><a shape="rect" name="SJMS-Producers"></a>Producers</h3>
+<h3><a shape="rect" name="SJMS-ProducerConfigurationOptions"></a>Producer Configuration Options</h3>
 
 <p>The SjmsProducer Endpoint supports the following properties:</p>
 
@@ -169,16 +201,38 @@ component.setMaxConnections(1);
 </div>
 </div>
 
-<h3><a shape="rect" name="SJMS-Consumers"></a>Consumers</h3>
+<h3><a shape="rect" name="SJMS-ConsumersConfigurationOptions"></a>Consumers Configuration Options</h3>
 
 <p>The SjmsConsumer Endpoint supports the following properties:</p>
 
 <div class="confluenceTableSmall"><div class="table-wrap">
-<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>acknowledgementMode</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>AUTO_ACKNOWLEDGE</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The JMS acknowledgement name, which is one of: <tt>TRANSACTED</tt>, <tt>AUTO_ACKNOWLEDGE</tt> or <tt>DUPS_OK_ACKNOWLEDGE</tt>.  <tt>CLIENT_ACKNOWLEDGE</tt> is not supported at this time. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>consumerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageListener instances. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>durableSubs
 criptionId</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> Required for a durable subscriptions. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>exchangePattern</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>InOnly</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the Consumers message exchange pattern. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>messageSelector</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the message selector. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>synchronous</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets whether the Endpoint will use synchronous or asynchronous processing. </td></tr><tr><td colspa
 n="1" rowspan="1" class="confluenceTd"> <tt>transacted</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>false</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> If the endpoint should use a JMS Session transaction. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>ttl</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>-1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Disabled by default.  Sets the Message time to live header. </td></tr></tbody></table>
+<table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"> Option </th><th colspan="1" rowspan="1" class="confluenceTh"> Default Value </th><th colspan="1" rowspan="1" class="confluenceTh"> Description </th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>acknowledgementMode</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>AUTO_ACKNOWLEDGE</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The JMS acknowledgement name, which is one of: <tt>TRANSACTED</tt>, <tt>AUTO_ACKNOWLEDGE</tt> or <tt>DUPS_OK_ACKNOWLEDGE</tt>.  <tt>CLIENT_ACKNOWLEDGE</tt> is not supported at this time. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>consumerCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Defines the number of MessageListener instances. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>durableSubs
 criptionId</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> Required for a durable subscriptions. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>exchangePattern</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>InOnly</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the Consumers message exchange pattern. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>messageSelector</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>null</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets the message selector. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>synchronous</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>true</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Sets whether the Endpoint will use synchronous or asynchronous processing. </td></tr><tr><td colspa
 n="1" rowspan="1" class="confluenceTd"> <tt>transacted</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>false</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> If the endpoint should use a JMS Session transaction. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>transactionBatchCount</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> The number of exchanges to process before committing a local JMS transaction.  The <tt>transacted</tt> property must also be set to true or this property will be ignored. </td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"> <tt>ttl</tt> </td><td colspan="1" rowspan="1" class="confluenceTd"> <tt>-1</tt>  </td><td colspan="1" rowspan="1" class="confluenceTd"> Disabled by default.  Sets the Message time to live header. </td></tr></tbody></table>
 </div>
 </div>
 
-<h3><a shape="rect" name="SJMS-Examples"></a>Examples</h3>
+<h3><a shape="rect" name="SJMS-UsageNotes"></a>Usage Notes</h3>
+
+<h4><a shape="rect" name="SJMS-MessageHeaderFormat"></a>Message Header Format</h4>
+
+<p>The SJMS Component uses the same header format strategy that is used in the Camel JMS Component. This plugable strategy ensures that messages sent over the wire conform to the JMS Message spec.</p>
+
+<p>For the exchange.in.header the following rules apply for the header keys:</p>
+
+<p>    Keys starting with JMS or JMSX are reserved.<br clear="none">
+    exchange.in.headers keys must be literals and all be valid Java identifiers (do not use dots in the key name).<br clear="none">
+    Camel replaces dots &amp; hyphens and the reverse when when consuming JMS messages:<br clear="none">
+    . is replaced by <em>DOT</em> and the reverse replacement when Camel consumes the message.</p>
+<ul class="alternate" type="square"><li>is replaced by <em>HYPHEN</em> and the reverse replacement when Camel consumes the message.<br clear="none">
+    See also the option jmsKeyFormatStrategy, which allows use of your own custom strategy for formatting keys.</li></ul>
+
+
+<p>For the exchange.in.header, the following rules apply for the header values:</p>
+
+<h4><a shape="rect" name="SJMS-MessageContent"></a>Message Content</h4>
+
+<p>To deliver content over the wire we must ensure that the body of the message that is being delivered adheres to the JMS Message Specification.  Therefore, all that are produced must either be primitives or their counter objects (such as Integer, Long, Character). The types, String, CharSequence, Date, BigDecimal and BigInteger are all converted to their toString() representation. All other types are dropped.</p>
+
+<h3><a shape="rect" name="SJMS-ExampleUsage"></a>Example Usage</h3>
 
 <h4><a shape="rect" name="SJMS-InOnlyProducer%28Default%29"></a>InOnly Producer - (Default)</h4>
 
@@ -237,9 +291,9 @@ from(<span class="code-quote">"direct:st
 
 <p>Currently the only correlation strategy is to use the JMSCorrelationId.  The InOut Consumer uses this strategy as well ensuring that all responses messages to the included JMSReplyTo destination also have the JMSCorrelationId copied from the request as well.</p>
 
-<h3><a shape="rect" name="SJMS-TransactionSupport"></a>Transaction Support <a shape="rect" name="SJMS-transactionCacheLevels"></a></h3>
+<h3><a shape="rect" name="SJMS-TransactionSupport"></a>Transaction Support <a shape="rect" name="SJMS-transactions"></a></h3>
 
-<p>There is currently no support the Camel Transaction Processor nor does it support the Java Transaction API (JTA).  Only internal JMS Session Transactions are supported at this time.</p></div>
+<p>SJMS currently only supports the use of internal JMS Transactions. There is no support for the Camel Transaction Processor or the Java Transaction API (JTA).</p></div>
         </td>
         <td valign="top">
           <div class="navigation">