[hornetq-commits] JBoss hornetq SVN: r9184 - in trunk: tests/src/org/hornetq/tests/integration/jms/bridge and 1 other directory.

do-not-reply at jboss.org do-not-reply at jboss.org
Thu Apr 29 10:06:38 EDT 2010


Author: timfox
Date: 2010-04-29 10:06:37 -0400 (Thu, 29 Apr 2010)
New Revision: 9184

Modified:
   trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
   trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-377

Modified: trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java	2010-04-28 23:13:26 UTC (rev 9183)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java	2010-04-29 14:06:37 UTC (rev 9184)
@@ -52,6 +52,7 @@
 import org.hornetq.jms.bridge.JMSBridge;
 import org.hornetq.jms.bridge.JMSBridgeControl;
 import org.hornetq.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.client.HornetQMessage;
 import org.hornetq.jms.client.HornetQSession;
 
 /**
@@ -110,7 +111,7 @@
    private volatile boolean addMessageIDInHeader;
 
    private boolean started;
-   
+
    private boolean stopping = false;
 
    private final LinkedList<Message> messages;
@@ -142,7 +143,7 @@
    private BatchTimeChecker timeChecker;
 
    private ExecutorService executor;
-   
+
    private long batchExpiryTime;
 
    private boolean paused;
@@ -310,7 +311,7 @@
    public synchronized void start() throws Exception
    {
       stopping = false;
-      
+
       if (started)
       {
          JMSBridgeImpl.log.warn("Attempt to start, but is already started");
@@ -327,7 +328,7 @@
       {
          executor = createExecutor();
       }
-      
+
       checkParams();
 
       TransactionManager tm = getTm();
@@ -395,7 +396,7 @@
    public synchronized void stop() throws Exception
    {
       stopping = true;
-      
+
       if (JMSBridgeImpl.trace)
       {
          JMSBridgeImpl.log.trace("Stopping " + this);
@@ -409,8 +410,8 @@
       }
 
       boolean ok = executor.awaitTermination(60, TimeUnit.SECONDS);
-      
-      if(!ok)
+
+      if (!ok)
       {
          throw new Exception("fail to stop JMS Bridge");
       }
@@ -1235,7 +1236,7 @@
          {
             log.trace("Failed to connect bridge", e);
          }
-         
+
          cleanup();
 
          return false;
@@ -1665,7 +1666,17 @@
 
             String propName = (String)entry.getKey();
 
-            msg.setObjectProperty(propName, entry.getValue());
+            Object val = entry.getValue();
+
+            if (val instanceof byte[] == false)
+            {
+               //Can't set byte[] array props through the JMS API - if we're bridging a HornetQ message it might have such props
+               msg.setObjectProperty(propName, entry.getValue());
+            }
+            else if (msg instanceof HornetQMessage)
+            {
+               ((HornetQMessage)msg).getCoreMessage().putBytesProperty(propName, (byte[])val);
+            }
          }
       }
    }

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java	2010-04-28 23:13:26 UTC (rev 9183)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java	2010-04-29 14:06:37 UTC (rev 9184)
@@ -35,6 +35,7 @@
 import org.hornetq.core.logging.Logger;
 import org.hornetq.jms.bridge.QualityOfServiceMode;
 import org.hornetq.jms.bridge.impl.JMSBridgeImpl;
+import org.hornetq.jms.client.HornetQMessage;
 
 /**
  * A JMSBridgeTest
@@ -1005,10 +1006,20 @@
          {
             TextMessage tm = sessSource.createTextMessage("message" + i);
 
-            // We add some headers to make sure they get passed through ok
+            // We add some properties to make sure they get passed through ok
             tm.setStringProperty("wib", "uhuh");
             tm.setBooleanProperty("cheese", true);
             tm.setIntProperty("Sausages", 23);
+            tm.setByteProperty("bacon", (byte)12);
+            tm.setDoubleProperty("toast", 17261762.12121d);
+            tm.setFloatProperty("orange", 1212.1212f);
+            tm.setLongProperty("blurg", 817217827l);
+            tm.setShortProperty("stst", (short)26363);
+            
+            //Set some JMS headers too
+            
+            //And also set a core props
+            ((HornetQMessage)tm).getCoreMessage().putBytesProperty("bytes", new byte[] { 1, 2, 3});
 
             // We add some JMSX ones too
 
@@ -1040,6 +1051,13 @@
             Assert.assertEquals("uhuh", tm.getStringProperty("wib"));
             Assert.assertTrue(tm.getBooleanProperty("cheese"));
             Assert.assertEquals(23, tm.getIntProperty("Sausages"));
+            assertEquals((byte)12, tm.getByteProperty("bacon"));
+            assertEquals(17261762.12121d, tm.getDoubleProperty("toast"));
+            assertEquals(1212.1212f, tm.getFloatProperty("orange"));
+            assertEquals(817217827l, tm.getLongProperty("blurg"));
+            assertEquals((short)26363, tm.getShortProperty("stst"));
+            
+            assertEqualsByteArrays(new byte[] { 1,2, 3}, ((HornetQMessage)tm).getCoreMessage().getBytesProperty("bytes"));
 
             Assert.assertEquals("mygroup543", tm.getStringProperty("JMSXGroupID"));
 
@@ -1085,6 +1103,13 @@
                Assert.assertEquals("uhuh", tm.getStringProperty("wib"));
                Assert.assertTrue(tm.getBooleanProperty("cheese"));
                Assert.assertEquals(23, tm.getIntProperty("Sausages"));
+               assertEquals((byte)12, tm.getByteProperty("bacon"));
+               assertEquals(17261762.12121d, tm.getDoubleProperty("toast"));
+               assertEquals(1212.1212f, tm.getFloatProperty("orange"));
+               assertEquals(817217827l, tm.getLongProperty("blurg"));
+               assertEquals((short)26363, tm.getShortProperty("stst"));
+               
+               assertEqualsByteArrays(new byte[] { 1,2, 3}, ((HornetQMessage)tm).getCoreMessage().getBytesProperty("bytes"));
 
                Assert.assertEquals("mygroup543", tm.getStringProperty("JMSXGroupID"));
 
@@ -1994,6 +2019,8 @@
    {
       return newTransactionManager();
    }
+   
+   
 
    // Inner classes -------------------------------------------------------------------
 



More information about the hornetq-commits mailing list