diff options
author | Olli Virtanen <ovirtanen@gmail.com> | 2019-02-01 09:06:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-01 09:06:44 +0100 |
commit | c44117e3b60bfc26cfe64ef0959b4b5fe59ad4e9 (patch) | |
tree | 1c0b468c90353008b48655dc50847b09f563e732 /documentapi | |
parent | ec80e5d452ba45ac3ef8cd3933a7feaac8c7b21c (diff) |
Revert "Revert "Generate default-get route for document retrievals""
Diffstat (limited to 'documentapi')
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(); |