diff options
| author | Robert Gemmell <robbie@apache.org> | 2012-09-02 19:26:05 +0000 |
|---|---|---|
| committer | Robert Gemmell <robbie@apache.org> | 2012-09-02 19:26:05 +0000 |
| commit | b6040139c614c33ca6e41a442465f7517c57f703 (patch) | |
| tree | 070e6f58de0f98bc8ad213c858a07a997dbe015a /qpid/java/broker/src/main | |
| parent | 698e26ae1e8414d8945ab91af62e92a615d127b1 (diff) | |
| download | qpid-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')
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; |
