[jboss-svn-commits] JBL Code SVN: r26151 - in labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta: tests/src/org/jboss/soa/esb/addressing/eprs and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Apr 20 08:42:10 EDT 2009


Author: kevin.conner at jboss.com
Date: 2009-04-20 08:42:10 -0400 (Mon, 20 Apr 2009)
New Revision: 26151

Modified:
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java
   labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
Log:
Fix JMSEpr handling of queue name: JBESB-2505

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-04-20 11:50:42 UTC (rev 26150)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-04-20 12:42:10 UTC (rev 26151)
@@ -516,6 +516,7 @@
                 addr.setAddress(getJmsAddress(uri, name));
 
 				addr.addExtension(DESTINATION_TYPE_TAG, destinationType);
+				addr.addExtension(DESTINATION_NAME_TAG, destinationName);
 				
 				addr.addExtension(SPECIFICATION_VERSION_TAG, protocol);
 
@@ -580,6 +581,11 @@
 
 	public final String getDestinationName() throws URISyntaxException
 	{
+		final String name = getAddr().getExtensionValue(DESTINATION_NAME_TAG);
+		if (name != null)
+		{
+			return name ;
+		}
 		URI uri = new URI(getAddr().getAddress());
 
 		return uri.getPath().substring(1);
@@ -701,16 +707,8 @@
 	private String getJmsAddress(final String uri, final String name)
 	{
 		try {
-			final URI uriVal = new URI(uri) ;
-			final String host = uriVal.getHost() ;
-			if (host != null) {
-				final int port = uriVal.getPort() ;
-				if (port > 0) {
-					return JMS_PROTOCOL + PROTOCOL_SEPARATOR + host + ":" + port + "/" + name;
-				} else {
-					return JMS_PROTOCOL + PROTOCOL_SEPARATOR + host + "/" + name;
-				}
-			}
+			final URI result = new URI(JMS_PROTOCOL, uri, name) ;
+			return result.toString() ;
 		} catch (final URISyntaxException urise) {}
 		return JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name;
 	}

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-04-20 11:50:42 UTC (rev 26150)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-04-20 12:42:10 UTC (rev 26151)
@@ -206,20 +206,20 @@
 			// should default address to system property
 			final JMSEpr firstEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
 				queueName, "connection", null, null, true, null, null, null, true) ;
-			assertEquals("System JNDI_SERVER_URL", "jms://" + defaultProvider + "/" + queueName, firstEpr.getAddr().getAddress()) ;
+			assertEquals("System JNDI_SERVER_URL", "jms:" + JNDI_PREFIX + defaultProvider + "#" + queueName, firstEpr.getAddr().getAddress()) ;
 			
 			// should use Provider URL extension
 			final Properties environment = new Properties() ;
 			environment.setProperty(Context.PROVIDER_URL, JNDI_PREFIX + extensionProvider) ;
 			final JMSEpr secondEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
 				queueName, "connection", environment, null, true, null, null, null, true) ;
-			assertEquals("Extension Context.PROVIDER_URL", "jms://" + extensionProvider + "/" + queueName, secondEpr.getAddr().getAddress()) ;
+			assertEquals("Extension Context.PROVIDER_URL", "jms:" + JNDI_PREFIX + extensionProvider + "#" + queueName, secondEpr.getAddr().getAddress()) ;
 			
 			// should use jndi-URL property
 			environment.setProperty(JNDI_URL_TAG, JNDI_PREFIX + propertyJndi) ;
 			final JMSEpr thirdEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
 				queueName, "connection", environment, null, true, null, null, null, true) ;
-			assertEquals("Extension Context.PROVIDER_URL", "jms://" + propertyJndi + "/" + queueName, thirdEpr.getAddr().getAddress()) ;
+			assertEquals("Extension Context.PROVIDER_URL", "jms:" + JNDI_PREFIX + propertyJndi + "#" + queueName, thirdEpr.getAddr().getAddress()) ;
 		}
 		finally
 		{
@@ -281,6 +281,46 @@
 		assertEquals( transacted, jmsEpr.getTransacted() );
 	}
 	
+	@Test
+	public void testDefaultURIConfig()
+		throws URISyntaxException
+	{
+		testEPRConfig(JMSEpr.QUEUE_TYPE, "queue/destinationName",
+			"ConnectionFactory", "jnp://localhost:1099", 
+			"org.jnp.interfaces.NamingContextFactory",
+			"org.jboss.naming:org.jnp.interfaces") ;
+	}
+	
+	@Test
+	public void testNonStandardURIConfig()
+		throws URISyntaxException
+	{
+		testEPRConfig(JMSEpr.QUEUE_TYPE, "abc/def/ghi",
+			"ConnectionFactory", "scheme://host:port/config#123456?abc=def",
+			"MyNonStandardContextFactory", "MyPkgInterfaces") ;
+	}
+	
+	private void testEPRConfig(final String destinationType, final String destinationName,
+			final String connectionFactory, final String jndiURL, final String contextFactory,
+			final String pkgPrefix)
+		throws URISyntaxException
+	{
+		final Properties env = new Properties() ;
+		env.put(Context.PROVIDER_URL, jndiURL) ;
+		env.put(Context.INITIAL_CONTEXT_FACTORY, contextFactory) ;
+		env.put(Context.URL_PKG_PREFIXES, pkgPrefix) ;
+		
+		final JMSEpr jmsEpr = new JMSEpr(destinationType, destinationName, connectionFactory, env, null) ;
+		assertEquals("destinationType", destinationType, jmsEpr.getDestinationType()) ;
+		assertEquals("destinationName", destinationName, jmsEpr.getDestinationName()) ;
+		assertEquals("connectionFactory", connectionFactory, jmsEpr.getConnectionFactory()) ;
+		
+		final Properties jmsEprEnv = jmsEpr.getJndiEnvironment() ;
+		assertEquals(Context.PROVIDER_URL, jndiURL, jmsEprEnv.getProperty(Context.PROVIDER_URL)) ;
+		assertEquals(Context.INITIAL_CONTEXT_FACTORY, contextFactory, jmsEprEnv.getProperty(Context.INITIAL_CONTEXT_FACTORY)) ;
+		assertEquals(Context.URL_PKG_PREFIXES, pkgPrefix, jmsEprEnv.getProperty(Context.URL_PKG_PREFIXES)) ;
+	}
+	
 	private void assertDefaults(final String destination, final String connectionFactory, final String destinationType)
 	{
 		assertEquals( expectedDestination, destination );

Modified: labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java	2009-04-20 11:50:42 UTC (rev 26150)
+++ labs/jbossesb/branches/JBESB_4_2_1_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/DefaultESBPropertiesSetterUnitTest.java	2009-04-20 12:42:10 UTC (rev 26151)
@@ -96,7 +96,7 @@
 		
 		final EPR replyToEPR = toESBMessage.getHeader().getCall().getReplyTo();
 		
-		assertEquals( "jms://localhost/testDest", replyToEPR.getAddr().getAddress() );
+		assertEquals( "jms:localhost#testDest", replyToEPR.getAddr().getAddress() );
 		
 		final String connectionFactory = replyToEPR.getAddr().getExtensionValue( JMSEpr.CONNECTION_FACTORY_TAG );
 		assertEquals ( "ConnectionFactory", connectionFactory );




More information about the jboss-svn-commits mailing list