diff options
Diffstat (limited to 'documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java')
-rw-r--r-- | documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java index 4226c1e6cac..34124cf48db 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/MessageTypePolicy.java @@ -5,10 +5,13 @@ import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.messagebus.routing.Route; import com.yahoo.messagebus.routing.RoutingContext; import com.yahoo.vespa.config.content.MessagetyperouteselectorpolicyConfig; + import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicReference; +import static java.util.stream.Collectors.toUnmodifiableMap; + /** * @author baldersheim */ @@ -18,6 +21,13 @@ public class MessageTypePolicy implements DocumentProtocolRoutingPolicy, ConfigS private ConfigSubscriber subscriber; private volatile Route defaultRoute; + MessageTypePolicy(DocumentProtocolPoliciesConfig.Cluster config) { + configRef.set(config.route().stream() + .collect(toUnmodifiableMap(route -> route.messageType(), + route -> Route.parse(route.name())))); + defaultRoute = Route.parse(config.defaultRoute()); + } + MessageTypePolicy(String configId) { subscriber = new ConfigSubscriber(); subscriber.subscribe(this, MessagetyperouteselectorpolicyConfig.class, configId); |