summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main
diff options
context:
space:
mode:
authorRobert Gemmell <robbie@apache.org>2012-09-02 19:26:05 +0000
committerRobert Gemmell <robbie@apache.org>2012-09-02 19:26:05 +0000
commitb6040139c614c33ca6e41a442465f7517c57f703 (patch)
tree070e6f58de0f98bc8ad213c858a07a997dbe015a /qpid/java/broker/src/main
parent698e26ae1e8414d8945ab91af62e92a615d127b1 (diff)
downloadqpid-python-b6040139c614c33ca6e41a442465f7517c57f703.tar.gz
QPID-4238: escape tags for queue and virtualhost names with dots in them when accessing the XML configuration, works around CommonsConfiguration behaviour with element names containing dots
Applied patch from Jakub Scholz git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1380037 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker/src/main')
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java2
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java4
-rw-r--r--qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java5
3 files changed, 8 insertions, 3 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
index 8f03383777..cb7f8b2931 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/QueueConfiguration.java
@@ -39,7 +39,7 @@ public class QueueConfiguration extends ConfigurationPlugin
_name = name;
CompositeConfiguration mungedConf = new CompositeConfiguration();
- mungedConf.addConfiguration(_vHostConfig.getConfig().subset("queues.queue." + name));
+ mungedConf.addConfiguration(_vHostConfig.getConfig().subset("queues.queue." + escapeTagName(name)));
mungedConf.addConfiguration(_vHostConfig.getConfig().subset("queues"));
setConfiguration("virtualhosts.virtualhost.queues.queue", mungedConf);
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
index 968f29a6e6..99625a22ad 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
@@ -349,7 +349,7 @@ public class ServerConfiguration extends ConfigurationPlugin
String name = (String) hosts.get(j);
// Add the virtual hosts to the server configuration
- VirtualHostConfiguration virtualhost = new VirtualHostConfiguration(name, vhostConfiguration.subset("virtualhost." + name));
+ VirtualHostConfiguration virtualhost = new VirtualHostConfiguration(name, vhostConfiguration.subset("virtualhost." + escapeTagName(name)));
_virtualHosts.put(virtualhost.getName(), virtualhost);
}
}
@@ -506,7 +506,7 @@ public class ServerConfiguration extends ConfigurationPlugin
for (String hostName : _virtualHosts.keySet())
{
VirtualHost vhost = vhostRegistry.getVirtualHost(hostName);
- Configuration vhostConfig = newVhosts.subset("virtualhost." + hostName);
+ Configuration vhostConfig = newVhosts.subset("virtualhost." + escapeTagName(hostName));
vhost.getConfiguration().setConfiguration("virtualhosts.virtualhost", vhostConfig);
vhost.getSecurityManager().configureGlobalPlugins(this);
vhost.getSecurityManager().configureHostPlugins(vhost.getConfiguration());
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
index d08e3bc806..c7f600df8a 100644
--- a/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
+++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/plugins/ConfigurationPlugin.java
@@ -479,6 +479,11 @@ public abstract class ConfigurationPlugin
return super.toString();
}
+ public String escapeTagName(String name)
+ {
+ return name.replaceAll("\\.", "\\.\\.");
+ }
+
protected void setConfig(Configuration config)
{
_config = config;