You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2015/01/30 18:15:24 UTC
[03/13] qpid-jms git commit: add a default URI for use with the
default connection factories
add a default URI for use with the default connection factories
Project: http://git-wip-us.apache.org/repos/asf/qpid-jms/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-jms/commit/683802d3
Tree: http://git-wip-us.apache.org/repos/asf/qpid-jms/tree/683802d3
Diff: http://git-wip-us.apache.org/repos/asf/qpid-jms/diff/683802d3
Branch: refs/heads/master
Commit: 683802d3b449d71d806d0026be0a973e104a3220
Parents: 72a5221
Author: Robert Gemmell <ro...@apache.org>
Authored: Fri Jan 30 10:51:41 2015 +0000
Committer: Robert Gemmell <ro...@apache.org>
Committed: Fri Jan 30 10:51:41 2015 +0000
----------------------------------------------------------------------
.../qpid/jms/jndi/JmsInitialContextFactory.java | 20 ++++++++++++++------
.../jms/jndi/JmsInitialContextFactoryTest.java | 14 ++++++++++++++
2 files changed, 28 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/683802d3/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 4cc450e..479da71 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
@@ -48,9 +48,11 @@ import org.apache.qpid.jms.JmsTopic;
*/
public class JmsInitialContextFactory implements InitialContextFactory {
- private static final String[] DEFAULT_CONNECTION_FACTORY_NAMES = {
+ static final String[] DEFAULT_CONNECTION_FACTORY_NAMES = {
"ConnectionFactory", "QueueConnectionFactory", "TopicConnectionFactory" };
+ static final String DEFAULT_REMOTE_URI = "amqp://localhost:5672";
+
private String connectionFactoryPrefix = "connectionfactory.";
private String queuePrefix = "queue.";
private String topicPrefix = "topic.";
@@ -63,7 +65,7 @@ public class JmsInitialContextFactory implements InitialContextFactory {
environmentCopy.putAll(environment);
Map<String, Object> bindings = new ConcurrentHashMap<String, Object>();
- createConnectionFactories(environmentCopy, bindings);
+ createConnectionFactories(environmentCopy, DEFAULT_REMOTE_URI, bindings);
createQueues(environmentCopy, bindings);
createTopics(environmentCopy, bindings);
@@ -91,13 +93,13 @@ public class JmsInitialContextFactory implements InitialContextFactory {
return createContext(environmentCopy, bindings);
}
- private void createConnectionFactories(Hashtable<Object, Object> environment, Map<String, Object> bindings) throws NamingException {
+ private void createConnectionFactories(Hashtable<Object, Object> environment, String defaultRemoteURI, Map<String, Object> bindings) throws NamingException {
List<String> names = getConnectionFactoryNames(environment);
for (String name : names) {
JmsConnectionFactory factory = null;
try {
- factory = createConnectionFactory(name, environment);
+ factory = createConnectionFactory(name, defaultRemoteURI, environment);
} catch (Exception e) {
throw new NamingException("Invalid ConnectionFactory definition");
}
@@ -113,11 +115,17 @@ public class JmsInitialContextFactory implements InitialContextFactory {
return new ReadOnlyContext(environment, bindings);
}
- protected JmsConnectionFactory createConnectionFactory(String name, Hashtable<Object, Object> environment) throws URISyntaxException {
+ protected JmsConnectionFactory createConnectionFactory(String name, String defaultRemoteURI, Hashtable<Object, Object> environment) throws URISyntaxException {
String cfNameKey = connectionFactoryPrefix + name;
Map<String, String> props = new LinkedHashMap<String, String>();
- props.put(JmsConnectionFactory.REMOTE_URI_PROP, String.valueOf(environment.get(cfNameKey)));
+ // 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));
+ }
+
+ props.put(JmsConnectionFactory.REMOTE_URI_PROP, uri);
//TODO: support gathering up any other per-factory properties from the environment
http://git-wip-us.apache.org/repos/asf/qpid-jms/blob/683802d3/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 9042d74..a4e9618 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
@@ -44,6 +44,20 @@ public class JmsInitialContextFactoryTest extends QpidJmsTestCase {
}
@Test
+ public void testDefaultConnectionFactoriesPresentWithEmptyEnvironment() throws Exception {
+ Hashtable<Object, Object> env = new Hashtable<Object, Object>();
+ 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(), JmsInitialContextFactory.DEFAULT_REMOTE_URI);
+ }
+ }
+
+ @Test
public void testConnectionFactoryBinding() throws Exception {
String factoryName = "myNewFactory";
String uri = "amqp://example.com:1234";
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org