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