diff options
Diffstat (limited to 'documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java')
-rwxr-xr-x | documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java | 73 |
1 files changed, 39 insertions, 34 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java index 8535fa610dd..7b44a1a4f0d 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java @@ -1,72 +1,54 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.documentapi.messagebus.protocol; -import com.yahoo.messagebus.documentapi.DocumentProtocolPoliciesConfig; -import com.yahoo.vespa.config.content.DistributionConfig; - /** * @author Simon Thoresen Hult - * @author jonmv */ -class RoutingPolicyFactories { - - private RoutingPolicyFactories() { } +public abstract class RoutingPolicyFactories { static class AndPolicyFactory implements RoutingPolicyFactory { public DocumentProtocolRoutingPolicy createPolicy(String param) { return new ANDPolicy(param); } + + + public void destroy() { + } } static class ContentPolicyFactory implements RoutingPolicyFactory { - private final DistributionConfig distributionConfig; - public ContentPolicyFactory(DistributionConfig config) { this.distributionConfig = config; } public DocumentProtocolRoutingPolicy createPolicy(String param) { - return new ContentPolicy(param, distributionConfig); + return new ContentPolicy(param); + } + + public void destroy() { } } static class MessageTypePolicyFactory implements RoutingPolicyFactory { - private final String configId; - private final DocumentProtocolPoliciesConfig config; - public MessageTypePolicyFactory(String configId, DocumentProtocolPoliciesConfig config) { + public MessageTypePolicyFactory(String configId) { this.configId = configId; - this.config = config; } - public DocumentProtocolRoutingPolicy createPolicy(String param) { - if (config != null) { - if (config.cluster(param) == null) - return new ErrorPolicy("No message type config for cluster '" + param + "'"); + return new MessageTypePolicy((param == null || param.isEmpty()) ? configId : param); + } - return new MessageTypePolicy(config.cluster(param)); - } - return new MessageTypePolicy(param == null || param.isEmpty() ? configId : param); + public void destroy() { } } static class DocumentRouteSelectorPolicyFactory implements RoutingPolicyFactory { private final String configId; - private final DocumentProtocolPoliciesConfig config; - public DocumentRouteSelectorPolicyFactory(String configId, DocumentProtocolPoliciesConfig config) { + public DocumentRouteSelectorPolicyFactory(String configId) { this.configId = configId; - this.config = config; } public DocumentProtocolRoutingPolicy createPolicy(String param) { - if (config != null) { - try { - return new DocumentRouteSelectorPolicy(config); - } - catch (IllegalArgumentException e) { - return new ErrorPolicy(e.getMessage()); - } - } - DocumentRouteSelectorPolicy ret = new DocumentRouteSelectorPolicy(param == null || param.isEmpty() ? + DocumentRouteSelectorPolicy ret = new DocumentRouteSelectorPolicy((param == null || param.isEmpty()) ? configId : param); String error = ret.getError(); if (error != null) { @@ -74,6 +56,10 @@ class RoutingPolicyFactories { } return ret; } + + + public void destroy() { + } } static class ExternPolicyFactory implements RoutingPolicyFactory { @@ -85,30 +71,49 @@ class RoutingPolicyFactories { } return ret; } + + + public void destroy() { + } } static class LocalServicePolicyFactory implements RoutingPolicyFactory { public DocumentProtocolRoutingPolicy createPolicy(String param) { return new LocalServicePolicy(param); } + + + public void destroy() { + } } static class RoundRobinPolicyFactory implements RoutingPolicyFactory { public DocumentProtocolRoutingPolicy createPolicy(String param) { return new RoundRobinPolicy(); } + + + public void destroy() { + } } static class LoadBalancerPolicyFactory implements RoutingPolicyFactory { public DocumentProtocolRoutingPolicy createPolicy(String param) { return new LoadBalancerPolicy(param); } + + + public void destroy() { + } } static class SubsetServicePolicyFactory implements RoutingPolicyFactory { public DocumentProtocolRoutingPolicy createPolicy(String param) { return new SubsetServicePolicy(param); } - } + + public void destroy() { + } + } } |