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