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

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


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

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

Modified: labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-04-20 12:42:10 UTC (rev 26151)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-04-20 14:06:10 UTC (rev 26152)
@@ -544,6 +544,7 @@
                 addr.setAddress(getJmsAddress(uri, name));
 
 				addr.addExtension(DESTINATION_TYPE_TAG, destinationType);
+				addr.addExtension(DESTINATION_NAME_TAG, destinationName);
 				
 				addr.addExtension(SPECIFICATION_VERSION_TAG, protocol);
 
@@ -602,6 +603,11 @@
 
 	public final String getDestinationName()
 	{
+            final String name = getAddr().getExtensionValue(DESTINATION_NAME_TAG);
+            if (name != null)
+            {
+                return name ;
+            }
             try
             {
 		URI uri = new URI(getAddr().getAddress());
@@ -762,16 +768,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_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-04-20 12:42:10 UTC (rev 26151)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-04-20 14:06:10 UTC (rev 26152)
@@ -204,20 +204,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
 		{
@@ -315,6 +315,46 @@
 		assertEquals("Second extension", testExtension2Value, eprProperties.get(testExtension2)) ;
 	}
 	
+	@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 );




More information about the jboss-svn-commits mailing list