summaryrefslogtreecommitdiffstats
path: root/documentapi
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
parent732bc6898196689766e8aa9e671efe38d73fd1a8 (diff)
Generate default-get route for document retrievals
Diffstat (limited to 'documentapi')
-rw-r--r--documentapi/abi-spec.json3
-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
-rw-r--r--documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java3
-rw-r--r--documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java1
5 files changed, 49 insertions, 12 deletions
diff --git a/documentapi/abi-spec.json b/documentapi/abi-spec.json
index e1cdc6747e3..1619d053aa2 100644
--- a/documentapi/abi-spec.json
+++ b/documentapi/abi-spec.json
@@ -1055,6 +1055,9 @@
"public com.yahoo.documentapi.messagebus.MessageBusParams setRouteName(java.lang.String)",
"public com.yahoo.documentapi.messagebus.MessageBusParams setRoute(java.lang.String)",
"public java.lang.String getRoute()",
+ "public com.yahoo.documentapi.messagebus.MessageBusParams setRouteNameForGet(java.lang.String)",
+ "public com.yahoo.documentapi.messagebus.MessageBusParams setRouteForGet(java.lang.String)",
+ "public java.lang.String getRouteForGet()",
"public int getTraceLevel()",
"public com.yahoo.documentapi.messagebus.MessageBusParams setTraceLevel(int)",
"public com.yahoo.messagebus.network.rpc.RPCNetworkParams getRPCNetworkParams()",
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.
*
diff --git a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
index bb84b6f0104..4ba51f3b3d8 100644
--- a/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
+++ b/documentapi/src/test/java/com/yahoo/documentapi/messagebus/test/MessageBusDocumentApiTestCase.java
@@ -25,7 +25,7 @@ import org.junit.Test;
import static org.junit.Assert.assertTrue;
/**
- * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a>
+ * @author Einar M R Rosenvinge
*/
public class MessageBusDocumentApiTestCase extends AbstractDocumentApiTestCase {
@@ -49,6 +49,7 @@ public class MessageBusDocumentApiTestCase extends AbstractDocumentApiTestCase {
params.getRPCNetworkParams().setSlobrokConfigId(slobrokConfigId);
params.setDocumentManagerConfigId("file:src/test/cfg/documentmanager.cfg");
params.setRouteName("Route");
+ params.setRouteNameForGet("Route");
params.setRoutingConfigId("file:src/test/cfg/messagebus.cfg");
params.setTraceLevel(9);
params.setSourceSessionParams(new SourceSessionParams().setThrottlePolicy(null));
diff --git a/documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java b/documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java
index 2b56d9c628d..97d60c3bc4b 100644
--- a/documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java
+++ b/documentapi/src/test/java/com/yahoo/documentapi/test/AbstractDocumentApiTestCase.java
@@ -37,7 +37,6 @@ import static org.junit.Assert.assertTrue;
*
* @author bratseth
*/
-@SuppressWarnings("deprecation")
public abstract class AbstractDocumentApiTestCase {
protected abstract DocumentAccess access();