diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-07-18 14:01:19 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-07-18 14:01:19 +0000 |
| commit | d1edef4b29bbdda8e1027b893367ab00d58bb2cd (patch) | |
| tree | 5232f586d07bfb1ac9b918f02a18219fe0ab205b /qpid/java/broker-core | |
| parent | c860c96b46d0d9dbab87dddeff00ca8a26259d89 (diff) | |
| download | qpid-python-d1edef4b29bbdda8e1027b893367ab00d58bb2cd.tar.gz | |
QPID-5903 : [Java Broker] allow character escaping for JSON in configured object attribute interpolation
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1611657 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/broker-core')
| -rw-r--r-- | qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java index baf20da486..41578272f7 100644 --- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java +++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java @@ -1361,6 +1361,7 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im Map<String,String> inheritedContext = new HashMap<String, String>(); generateInheritedContext(object.getModel(), object, inheritedContext); return Strings.expand(value, false, + JSON_SUBSTITUTION_RESOLVER, getOwnAttributeResolver(object), new Strings.MapResolver(inheritedContext), Strings.JAVA_SYS_PROPS_RESOLVER, @@ -1395,6 +1396,16 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im } + private static final Strings.Resolver JSON_SUBSTITUTION_RESOLVER = + Strings.createSubstitutionResolver("json:", + new LinkedHashMap<String, String>() + { + { + put("\\","\\\\"); + put("\"","\\\""); + } + }); + private static class OwnAttributeResolver implements Strings.Resolver { private static final Module _module; @@ -1432,7 +1443,7 @@ public abstract class AbstractConfiguredObject<X extends ConfiguredObject<X>> im } @Override - public String resolve(final String variable) + public String resolve(final String variable, final Strings.Resolver resolver) { boolean clearStack = false; Set<String> currentStack = _stack.get(); |
