[jboss-cvs] JBoss Messaging SVN: r7541 - in branches/Branch_1_4: src/main/org/jboss/jms/message and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 8 04:24:57 EDT 2009


Author: gaohoward
Date: 2009-07-08 04:24:57 -0400 (Wed, 08 Jul 2009)
New Revision: 7541

Modified:
   branches/Branch_1_4/docs/userguide/en/modules/introduction.xml
   branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java
   branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java
   branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
Log:
JBMESSAGING-1617


Modified: branches/Branch_1_4/docs/userguide/en/modules/introduction.xml
===================================================================
--- branches/Branch_1_4/docs/userguide/en/modules/introduction.xml	2009-07-08 07:31:23 UTC (rev 7540)
+++ branches/Branch_1_4/docs/userguide/en/modules/introduction.xml	2009-07-08 08:24:57 UTC (rev 7541)
@@ -199,4 +199,17 @@
          identical, so they will require some simple adjustments to get them to work with JBoss Messaging. Also, the database data model is completely different, so don't attempt to use JBoss Messaging with a JBoss MQ data schema and vice-versa. 
       </important></para>
   </section>
+
+  <section id="properties">
+    <title>System Properties used by JBoss Messaging</title>
+
+      <section id="properties.supportBytesId">
+        <title>support.bytesId</title>
+
+        <para>This system property controls the default behavior when constructing a JBossMessage object from a foreign message object. If set to true, the JBossMessage constructor
+        will try to extract the native byte[] correlation ID from the foreign message headers. If set to false, it will use the normal string type JMSCorrelationID. If this system property is absent or
+        is given some value other than 'true' and 'false', it will defaults to 'true'.</para>
+      </section>
+  </section>
+
 </chapter>

Modified: branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java	2009-07-08 07:31:23 UTC (rev 7540)
+++ branches/Branch_1_4/src/main/org/jboss/jms/message/JBossMessage.java	2009-07-08 08:24:57 UTC (rev 7541)
@@ -338,22 +338,25 @@
       super(messageID);
 
       setJMSTimestamp(foreign.getJMSTimestamp());
-
-      try
+      
+      if (supportBytesId)
       {
-         byte[] corrIDBytes = foreign.getJMSCorrelationIDAsBytes();
-         setJMSCorrelationIDAsBytes(corrIDBytes);
-      }
-      catch(JMSException e)
-      {
-         // specified as String
-         String corrIDString = foreign.getJMSCorrelationID();
-         if (corrIDString != null)
+         try
          {
-            setJMSCorrelationID(corrIDString);
+            byte[] corrIDBytes = foreign.getJMSCorrelationIDAsBytes();
+            setJMSCorrelationIDAsBytes(corrIDBytes);
          }
+         catch(JMSException e)
+         {
+            // specified as String
+            String corrIDString = foreign.getJMSCorrelationID();
+            if (corrIDString != null)
+            {
+               setJMSCorrelationID(corrIDString);
+            }
+         }
       }
-      catch(UnsupportedOperationException e)
+      else
       {
          //https://jira.jboss.org/jira/browse/JBMESSAGING-1617
          String corrIDString = foreign.getJMSCorrelationID();

Modified: branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java
===================================================================
--- branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java	2009-07-08 07:31:23 UTC (rev 7540)
+++ branches/Branch_1_4/src/main/org/jboss/messaging/core/impl/message/MessageSupport.java	2009-07-08 08:24:57 UTC (rev 7541)
@@ -54,6 +54,14 @@
 	// Constants -----------------------------------------------------
 
 	private static final Logger log = Logger.getLogger(MessageSupport.class);
+	
+	protected static boolean supportBytesId;
+	
+	static
+	{
+      String value = System.getProperty("support.bytesId");
+      supportBytesId = !"false".equals(value);
+	}
 
 	// Attributes ----------------------------------------------------
 
@@ -289,6 +297,11 @@
 	{
 		this.persisted = persisted;
 	}
+	
+	public static void setSupportBytesId(boolean b)
+	{
+	   supportBytesId = b;
+	}
 
 	// Public --------------------------------------------------------
 

Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-07-08 07:31:23 UTC (rev 7540)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/message/MessageHeaderTest.java	2009-07-08 08:24:57 UTC (rev 7541)
@@ -879,9 +879,25 @@
       Message foreignMessage = new SimpleJMSMessage(false);
       foreignMessage.setJMSCorrelationID("ID:test-string-id");
       
-      JBossMessage copy = new JBossMessage(foreignMessage, 0);
+      JBossMessage copy = null;
+      try
+      {
+         copy = new JBossMessage(foreignMessage, 0);
+         fail("Should throw UnsupportedOperationException");
+      }
+      catch (UnsupportedOperationException e)
+      {
+         //ignore
+      }
 
+      JBossMessage.setSupportBytesId(false);
+      foreignMessage = new SimpleJMSMessage(false);
+      foreignMessage.setJMSCorrelationID("ID:test-string-id");
+      
+      copy = new JBossMessage(foreignMessage, 0);
+
       assertEquals(foreignMessage.getJMSCorrelationID(), copy.getJMSCorrelationID());
+      JBossMessage.setSupportBytesId(true);
    }
    
    // Package protected ---------------------------------------------




More information about the jboss-cvs-commits mailing list