diff options
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() |
