summaryrefslogtreecommitdiffstats
path: root/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java
diff options
context:
space:
mode:
Diffstat (limited to 'documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java')
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/RoutingPolicyFactories.java73
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() {
+ }
+ }
}