summaryrefslogtreecommitdiffstats
path: root/documentapi/src/main
diff options
context:
space:
mode:
authorOlli Virtanen <olli.virtanen@oath.com>2019-01-31 12:46:36 +0100
committerOlli Virtanen <olli.virtanen@oath.com>2019-01-31 12:46:36 +0100
commit8c6fc4640c64c4bb59a0759d4a8e4180f413e90a (patch)
tree1624e4aae3bb6695dd1ba72dd830fe18cbb3eaa4 /documentapi/src/main
parent732bc6898196689766e8aa9e671efe38d73fd1a8 (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.java41
-rwxr-xr-xdocumentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusParams.java13
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.
*