make the default factory URI configurable

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

Branch: refs/heads/master
Commit: da3beb4f87d3d898841c56b6850e2685051dbf87
Parents: 683802d
Author: Robert Gemmell <rob...@apache.org>
Authored: Fri Jan 30 10:54:48 2015 +0000
Committer: Robert Gemmell <rob...@apache.org>
Committed: Fri Jan 30 10:54:48 2015 +0000

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


http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/da3beb4f/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 479da71..19515a8 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
@@ -51,6 +51,7 @@ public class JmsInitialContextFactory implements 
InitialContextFactory {
     static final String[] DEFAULT_CONNECTION_FACTORY_NAMES = {
         "ConnectionFactory", "QueueConnectionFactory", 
"TopicConnectionFactory" };
 
+    static final String DEFAULT_REMOTE_URI_PROP = "defaultRemoteURI";
     static final String DEFAULT_REMOTE_URI = "amqp://localhost:5672";
 
     private String connectionFactoryPrefix = "connectionfactory.";
@@ -64,8 +65,13 @@ public class JmsInitialContextFactory implements 
InitialContextFactory {
         Hashtable<Object, Object> environmentCopy = new Hashtable<Object, 
Object>();
         environmentCopy.putAll(environment);
 
+        String defaultRemoteURI = DEFAULT_REMOTE_URI;
+        if (environment.containsKey(DEFAULT_REMOTE_URI_PROP)) {
+            defaultRemoteURI = 
String.valueOf(environment.get(DEFAULT_REMOTE_URI_PROP));
+        }
+
         Map<String, Object> bindings = new ConcurrentHashMap<String, Object>();
-        createConnectionFactories(environmentCopy, DEFAULT_REMOTE_URI, 
bindings);
+        createConnectionFactories(environmentCopy, defaultRemoteURI, bindings);
         createQueues(environmentCopy, bindings);
         createTopics(environmentCopy, bindings);
 

http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/da3beb4f/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 a4e9618..5b4e23e 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
@@ -58,6 +58,23 @@ public class JmsInitialContextFactoryTest extends 
QpidJmsTestCase {
     }
 
     @Test
+    public void testDefaultConnectionFactoriesSeeDefaultURIUpdate() throws 
Exception {
+        String updatedDefaultURI = "amqp://example.com:1234";
+
+        Hashtable<Object, Object> env = new Hashtable<Object, Object>();
+        env.put(JmsInitialContextFactory.DEFAULT_REMOTE_URI_PROP, 
updatedDefaultURI);
+        Context ctx = createInitialContext(env);
+
+        for (String factoryName : 
JmsInitialContextFactory.DEFAULT_CONNECTION_FACTORY_NAMES) {
+            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(), updatedDefaultURI);
+        }
+    }
+
+    @Test
     public void testConnectionFactoryBinding() throws Exception {
         String factoryName = "myNewFactory";
         String uri = "amqp://example.com:1234";


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

Reply via email to