[jboss-svn-commits] JBL Code SVN: r23986 - 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
Thu Nov 20 09:17:24 EST 2008
Author: kevin.conner at jboss.com
Date: 2008-11-20 09:17:24 -0500 (Thu, 20 Nov 2008)
New Revision: 23986
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 address for replyto: JBESB-2197
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 2008-11-20 14:05:16 UTC (rev 23985)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java 2008-11-20 14:17:24 UTC (rev 23986)
@@ -247,8 +247,10 @@
}
}
}
- if (uri != null)
- setAddr(new PortReference(JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name));
+ if (uri != null) {
+ final String address = getJmsAddress(uri, name) ;
+ setAddr(new PortReference(address));
+ }
}
/**
@@ -505,7 +507,7 @@
if (destinationType.equals(QUEUE_TYPE)
|| destinationType.equals(TOPIC_TYPE))
{
- String uri = Configuration.getJndiServerURL();
+ String uri = null;
String name = null;
PortReference addr = new PortReference();
@@ -526,14 +528,20 @@
addr.addExtension(key.toString(), environment.getProperty(key.toString()));
}
}
-
-
}
+
+ if (uri == null) {
+ uri = addr.getExtensionValue(Context.PROVIDER_URL) ;
+ }
+
+ if (uri == null) {
+ uri = Configuration.getJndiServerURL() ;
+ }
if (name == null)
name = destinationName;
- addr.setAddress(JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name);
+ addr.setAddress(getJmsAddress(uri, name));
addr.addExtension(DESTINATION_TYPE_TAG, destinationType);
@@ -751,6 +759,23 @@
return new JMSEpr(this);
}
+ 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;
+ }
+ }
+ } catch (final URISyntaxException urise) {}
+ return JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name;
+ }
+
public String toString ()
{
return "JMSEpr [ "+super.getAddr().extendedToString()+" ]";
@@ -776,4 +801,4 @@
throw new ExceptionInInitializerError(ex.toString());
}
}
-}
\ No newline at end of file
+}
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 2008-11-20 14:05:16 UTC (rev 23985)
+++ labs/jbossesb/branches/JBESB_4_4_GA_CP/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java 2008-11-20 14:17:24 UTC (rev 23986)
@@ -32,7 +32,7 @@
import junit.framework.JUnit4TestAdapter;
import org.jboss.soa.esb.addressing.eprs.JMSEpr.AcknowledgeMode;
-import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
import org.jboss.soa.esb.couriers.CourierException;
import org.junit.Test;
@@ -43,12 +43,16 @@
*/
public class JMSEprUnitTest
{
+ private String defaultProvider = "default.test" ;
+ private String extensionProvider = "extension.test" ;
+ private String propertyJndi = "jndiurl.test" ;
private String expectedDestination = "/queue/test";
private String expectedConnectionFactory = "ConnectionFactory";
private String expectedDestinationType = JMSEpr.QUEUE_TYPE;
private String expectedSelector = "JMSCorrelationID=1000";
private static final boolean NON_PERSISTENT = false;
private static final boolean PERSISTENT = true;
+ private static final String JNDI_PREFIX = "jnp://" ;
private final Properties nullEnvironment = null;
@@ -188,6 +192,49 @@
}
@Test
+ public void generatedAddresses()
+ {
+ final String jndiServerUrl = System.getProperty(Environment.JNDI_SERVER_URL) ;
+ try
+ {
+ System.setProperty(Environment.JNDI_SERVER_URL, JNDI_PREFIX + defaultProvider) ;
+
+ final String queueName = "queueName" ;
+
+ // 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()) ;
+
+ // 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()) ;
+
+ // 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()) ;
+ }
+ finally
+ {
+ if (jndiServerUrl != null)
+ {
+ System.setProperty(Environment.JNDI_SERVER_URL, jndiServerUrl) ;
+ }
+ else
+ {
+ final Properties properties = System.getProperties() ;
+ properties.remove(Environment.JNDI_SERVER_URL) ;
+ System.setProperties(properties) ;
+ }
+ }
+ }
+
+ @Test
public void acknowledgeEnumTest()
{
AcknowledgeMode ackMode = AcknowledgeMode.getAckMode( null );
More information about the jboss-svn-commits
mailing list