diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2015-03-02 00:45:45 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2015-03-02 00:45:45 +0000 |
| commit | 2bb28f477ab2ff92d6fe6c7a5694449638f94661 (patch) | |
| tree | 951c458de0b1e87ead062aa72e37e47cf08d6238 /qpid/java/bdbstore/src | |
| parent | f56230eaa511dbfa02759b1b1e4e85769cd80aae (diff) | |
| download | qpid-python-2bb28f477ab2ff92d6fe6c7a5694449638f94661.tar.gz | |
QPID-6425 : [Java Broker] Allow for local and global name equivalence on virtual hosts
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1663189 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src')
| -rw-r--r-- | qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java index dac8d01e72..205ff57fab 100644 --- a/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java +++ b/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHostImpl.java @@ -90,6 +90,8 @@ public class BDBHAReplicaVirtualHostImpl extends AbstractConfiguredObject<BDBHAR @ManagedAttributeField private List<String> _disabledConnectionValidators; + @ManagedAttributeField + private List<String> _globalAddressDomains; @ManagedObjectFactoryConstructor public BDBHAReplicaVirtualHostImpl(final Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode) @@ -482,6 +484,29 @@ public class BDBHAReplicaVirtualHostImpl extends AbstractConfiguredObject<BDBHAR return _disabledConnectionValidators; } + @Override + public List<String> getGlobalAddressDomains() + { + return _globalAddressDomains; + } + + @Override + public String getLocalAddress(final String routingAddress) + { + String localAddress = routingAddress; + if(getGlobalAddressDomains() != null) + { + for(String domain : getGlobalAddressDomains()) + { + if(localAddress.length() > routingAddress.length() - domain.length() && routingAddress.startsWith(domain + "/")) + { + localAddress = routingAddress.substring(domain.length()); + } + } + } + return localAddress; + } + private void throwUnsupportedForReplica() { throw new IllegalStateException("The virtual host state of " + getState() |
