allow defining explicitly named factories that still use the default uri

Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/883f979b
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/883f979b
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/883f979b

Branch: refs/heads/master
Commit: 883f979bc7d2833d50e2057148dcd48dc64fa7b4
Parents: 7448bbc
Author: Robert Gemmell <rob...@apache.org>
Authored: Fri Jan 30 12:03:06 2015 +0000
Committer: Robert Gemmell <rob...@apache.org>
Committed: Fri Jan 30 12:03:06 2015 +0000

----------------------------------------------------------------------
 .../qpid/jms/jndi/JmsInitialContextFactory.java |  8 +++++--
 .../jms/jndi/JmsInitialContextFactoryTest.java  | 24 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/883f979b/qpid-jms-client/src/main/java/org/apache/qpid/jms/jndi/JmsInitialContextFactory.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/jndi/JmsInitialContextFactory.java
 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/jndi/JmsInitialContextFactory.java
index c878e4c..3620406 100644
--- 
a/qpid-jms-client/src/main/java/org/apache/qpid/jms/jndi/JmsInitialContextFactory.java
+++ 
b/qpid-jms-client/src/main/java/org/apache/qpid/jms/jndi/JmsInitialContextFactory.java
@@ -127,8 +127,12 @@ public class JmsInitialContextFactory implements 
InitialContextFactory {
 
         // Use the default URI if none is defined for this factory in the 
environment
         String uri = defaultRemoteURI;
-        if (environment.containsKey(cfNameKey)) {
-            uri = String.valueOf(environment.get(cfNameKey));
+        Object o = environment.get(cfNameKey);
+        if (o != null) {
+            String value = String.valueOf(o);
+            if (value.trim().length() != 0) {
+                uri = value;
+            }
         }
 
         props.put(JmsConnectionFactory.REMOTE_URI_PROP, uri);

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/883f979b/qpid-jms-client/src/test/java/org/apache/qpid/jms/jndi/JmsInitialContextFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/jndi/JmsInitialContextFactoryTest.java
 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/jndi/JmsInitialContextFactoryTest.java
index bdf7379..6c3a5ae 100644
--- 
a/qpid-jms-client/src/test/java/org/apache/qpid/jms/jndi/JmsInitialContextFactoryTest.java
+++ 
b/qpid-jms-client/src/test/java/org/apache/qpid/jms/jndi/JmsInitialContextFactoryTest.java
@@ -108,6 +108,30 @@ public class JmsInitialContextFactoryTest extends 
QpidJmsTestCase {
     }
 
     @Test
+    public void testConnectionFactoryBindingUsesDefaultURIWhenEmpty() throws 
Exception {
+        doConnectionFactoryBindingUsesDefaultURITestImpl("");
+    }
+
+    @Test
+    public void testConnectionFactoryBindingUsesDefaultURIWhenNull() throws 
Exception {
+        doConnectionFactoryBindingUsesDefaultURITestImpl("");
+    }
+
+    private void doConnectionFactoryBindingUsesDefaultURITestImpl(String 
uriPropertyValue) throws NamingException {
+        String factoryName = "myNewFactory";
+
+        Hashtable<Object, Object> env = new Hashtable<Object, Object>();
+        env.put(JmsInitialContextFactory.CONNECTION_FACTORY_KEY_PREFIX + 
factoryName, uriPropertyValue);
+        Context ctx = createInitialContext(env);
+
+        Object o = ctx.lookup(factoryName);
+
+        assertNotNull("No object returned", o);
+        assertEquals("Unexpected class type for returned object", 
JmsConnectionFactory.class, o.getClass());
+        assertEquals("Unexpected URI for returned factory", 
((JmsConnectionFactory) o).getRemoteURI(), 
JmsInitialContextFactory.DEFAULT_REMOTE_URI);
+    }
+
+    @Test
     public void testQueueBinding() throws Exception {
         String lookupName = "myLookupName";
         String actualName = "myQueueName";


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org
For additional commands, e-mail: commits-h...@qpid.apache.org

Reply via email to