diff options
author | Olli Virtanen <olli.virtanen@oath.com> | 2019-01-31 12:46:36 +0100 |
---|---|---|
committer | Olli Virtanen <olli.virtanen@oath.com> | 2019-01-31 12:46:36 +0100 |
commit | 8c6fc4640c64c4bb59a0759d4a8e4180f413e90a (patch) | |
tree | 1624e4aae3bb6695dd1ba72dd830fe18cbb3eaa4 /documentapi/src/main | |
parent | 732bc6898196689766e8aa9e671efe38d73fd1a8 (diff) |
Generate default-get route for document retrievals
Diffstat (limited to 'documentapi/src/main')
-rw-r--r-- | documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java | 41 | ||||
-rwxr-xr-x | documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java | 13 |
2 files changed, 44 insertions, 10 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java index 67b9444e73f..a2bad9c84e1 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java @@ -5,15 +5,34 @@ import com.yahoo.document.Document; import com.yahoo.document.DocumentId; import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentUpdate; -import com.yahoo.documentapi.*; +import com.yahoo.documentapi.AsyncParameters; +import com.yahoo.documentapi.AsyncSession; +import com.yahoo.documentapi.DocumentIdResponse; +import com.yahoo.documentapi.DocumentResponse; +import com.yahoo.documentapi.DocumentUpdateResponse; +import com.yahoo.documentapi.RemoveResponse; +import com.yahoo.documentapi.Response; +import com.yahoo.documentapi.ResponseHandler; import com.yahoo.documentapi.Result; -import com.yahoo.documentapi.messagebus.protocol.*; +import com.yahoo.documentapi.UpdateResponse; +import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; +import com.yahoo.documentapi.messagebus.protocol.GetDocumentMessage; +import com.yahoo.documentapi.messagebus.protocol.GetDocumentReply; +import com.yahoo.documentapi.messagebus.protocol.PutDocumentMessage; +import com.yahoo.documentapi.messagebus.protocol.RemoveDocumentMessage; +import com.yahoo.documentapi.messagebus.protocol.RemoveDocumentReply; +import com.yahoo.documentapi.messagebus.protocol.UpdateDocumentMessage; +import com.yahoo.documentapi.messagebus.protocol.UpdateDocumentReply; import com.yahoo.log.LogLevel; -import com.yahoo.messagebus.*; +import com.yahoo.messagebus.ErrorCode; +import com.yahoo.messagebus.Message; +import com.yahoo.messagebus.MessageBus; +import com.yahoo.messagebus.Reply; +import com.yahoo.messagebus.ReplyHandler; +import com.yahoo.messagebus.SourceSession; +import com.yahoo.messagebus.StaticThrottlePolicy; +import com.yahoo.messagebus.ThrottlePolicy; -import java.lang.Error; -import java.util.Set; -import java.util.HashSet; import java.util.Queue; import java.util.concurrent.BlockingQueue; import java.util.concurrent.LinkedBlockingQueue; @@ -36,6 +55,7 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { private final ThrottlePolicy throttlePolicy; private final SourceSession session; private String route; + private String routeForGet; private int traceLevel; /** @@ -60,6 +80,7 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { MessageBusAsyncSession(AsyncParameters asyncParams, MessageBus bus, MessageBusParams mbusParams, ReplyHandler handler) { route = mbusParams.getRoute(); + routeForGet = mbusParams.getRouteForGet(); traceLevel = mbusParams.getTraceLevel(); throttlePolicy = mbusParams.getSourceSessionParams().getThrottlePolicy(); if (handler == null) { @@ -82,7 +103,7 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { @Override public Result get(DocumentId id) { - return get(id, false, DocumentProtocol.Priority.NORMAL_1); + return get(id, DocumentProtocol.Priority.NORMAL_1); } @Override @@ -134,8 +155,9 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { long reqId = requestId.incrementAndGet(); msg.setContext(reqId); msg.getTrace().setLevel(traceLevel); - if (route != null) { - return toResult(reqId, session.send(msg, route, true)); + String toRoute = (msg.getType() == DocumentProtocol.MESSAGE_GETDOCUMENT ? routeForGet : route); + if (toRoute != null) { + return toResult(reqId, session.send(msg, toRoute, true)); } else { return toResult(reqId, session.send(msg)); } @@ -243,7 +265,6 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { } } - @SuppressWarnings("deprecation") private static Response toSuccess(Reply reply, long reqId) { switch (reply.getType()) { case DocumentProtocol.REPLY_GETDOCUMENT: diff --git a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java index 9acdc12e769..0ad791a3213 100755 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java @@ -14,6 +14,7 @@ public class MessageBusParams extends DocumentAccessParams { private String routingConfigId = null; private String protocolConfigId = null; private String route = "route:default"; + private String routeForGet = "route:default-get"; private int traceLevel = 0; private RPCNetworkParams rpcNetworkParams = new RPCNetworkParams(); private com.yahoo.messagebus.MessageBusParams mbusParams = new com.yahoo.messagebus.MessageBusParams(); @@ -102,6 +103,14 @@ public class MessageBusParams extends DocumentAccessParams { return this; } + public MessageBusParams setRouteNameForGet(String routeName) { + return setRouteForGet("route:" + routeName); + } + public MessageBusParams setRouteForGet(String route) { + this.routeForGet = route; + return this; + } + /** * Returns the route string that all requests will be sent to. * @@ -111,6 +120,10 @@ public class MessageBusParams extends DocumentAccessParams { return route; } + public String getRouteForGet() { + return routeForGet; + } + /** * Returns the trace level to use when sending. * |