[jboss-svn-commits] JBL Code SVN: r17288 - in labs/jbossesb/trunk/product/rosetta: src/org/jboss/soa/esb/notification/jms and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 17 13:43:23 EST 2007


Author: beve
Date: 2007-12-17 13:43:23 -0500 (Mon, 17 Dec 2007)
New Revision: 17288

Modified:
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java
   labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetter.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
   labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetterUnitTest.java
Log:
Work for JBESB-1414 "Valid JMSMessageID not parsed correctly"


Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java	2007-12-17 16:53:55 UTC (rev 17287)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetter.java	2007-12-17 18:43:23 UTC (rev 17288)
@@ -72,7 +72,12 @@
 		{
 			try
 			{
-				toESBMessage.getHeader().getCall().setMessageID( new URI( fromJMSMessage.getJMSMessageID() ));
+				String messageID = fromJMSMessage.getJMSMessageID();
+				if ( messageID.contains( "<" ) )
+					messageID = messageID.replace( "<", "&lt;" );
+				if ( messageID.contains( ">" ) )
+					messageID = messageID.replace( ">", "&gt;" );
+				toESBMessage.getHeader().getCall().setMessageID( new URI( messageID ));
 			} 
 			catch (URISyntaxException e) 
 			{

Modified: labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetter.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetter.java	2007-12-17 16:53:55 UTC (rev 17287)
+++ labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetter.java	2007-12-17 18:43:23 UTC (rev 17288)
@@ -56,6 +56,7 @@
          * Client JMSX Group Seq.
          */
         private static final String JMSX_GROUP_SEQ = "JMSXGroupSeq" ;
+        
 	/**
      * Set JMS Header fields on the outgoing JMS Message.
      * </p>
@@ -85,14 +86,18 @@
 	        toJMSMessage.setJMSCorrelationID( correlationID.getFragment() );
 		}
 	}
-	
 	private void setJMSMessageID( final org.jboss.soa.esb.message.Message fromESBMessage , final Message toJMSMessage ) throws JMSException 
 	{ 	
 		final URI messageID = fromESBMessage.getHeader().getCall().getMessageID();
 		if ( messageID != null )
 		{
-			log.debug( "Setting outgoing JMSCorreletionID to : " + messageID );
-	        toJMSMessage.setJMSCorrelationID( messageID.toString() );
+			String msgID = messageID.toString();
+			if ( msgID.contains("&lt;") )
+				msgID = msgID.replace( "&lt;", "<" );
+			if ( msgID.contains("&gt;") )
+				msgID = msgID.replace( "&gt;", ">" );
+			log.debug( "Setting outgoing JMSCorreletionID to : " + msgID );
+	        toJMSMessage.setJMSCorrelationID( msgID );
 		}
 	}
 	

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java	2007-12-17 16:53:55 UTC (rev 17287)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java	2007-12-17 18:43:23 UTC (rev 17288)
@@ -128,6 +128,18 @@
 		assertEquals( propertyValue, toESBMessage.getProperties().getProperty( propertyKey )) ;
 	}
 	
+	@Test
+	public void setPropertiesFromJMSMessage_MessageID_xml_tag() throws JMSException
+	{
+		final String expectedMessageID = "ID:<kalle>";
+		final String expectedEncodedMessageID = "ID:&lt;kalle&gt;";
+		fromJMSTextMessage.setJMSMessageID( expectedMessageID );
+		strategy.setPropertiesFromJMSMessage( fromJMSTextMessage , toESBMessage );
+		
+		URI messageID = toESBMessage.getHeader().getCall().getMessageID();
+		assertEquals( expectedEncodedMessageID,  messageID.toString() );
+	}
+	
 	@Before
 	public void setup()
 	{

Modified: labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetterUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetterUnitTest.java	2007-12-17 16:53:55 UTC (rev 17287)
+++ labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/notification/jms/DefaultJMSPropertiesSetterUnitTest.java	2007-12-17 18:43:23 UTC (rev 17288)
@@ -191,6 +191,17 @@
 		assertEquals ( propertyValue, toJMSMessage.getByteProperty( propertyKey ) );
 	}
 	
+	@Test
+	public void setJMSProperties_messageID_encoded() throws JMSException, URISyntaxException
+	{
+		final String expectedMessageID = "ID:<kalle>";
+		final String encodedMessageID = "ID:&lt;kalle&gt;";
+		fromESBMessage.getHeader().getCall().setMessageID( new URI ( encodedMessageID ) );
+		
+		strategy.setJMSProperties( fromESBMessage, toJMSMessage );
+		assertEquals ( expectedMessageID, toJMSMessage.getJMSCorrelationID() );
+	}
+	
 	@Before
 	public void before() throws JMSException
 	{




More information about the jboss-svn-commits mailing list