diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2020-09-16 12:11:44 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2020-09-16 12:11:44 +0200 |
commit | 88c81c7bd65d1f2e00beac6e7f8d607b1f8b9f64 (patch) | |
tree | 27cb20a27ddd710b505952d419983187e58943c0 | |
parent | f6f0e76416325171b4a39585d58af50133fe7372 (diff) |
Accept DocumentPut in AsyncSession
3 files changed, 40 insertions, 8 deletions
diff --git a/documentapi/src/main/java/com/yahoo/documentapi/AsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/AsyncSession.java index c9db5223283..9f4ceaad37f 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/AsyncSession.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/AsyncSession.java @@ -3,6 +3,7 @@ package com.yahoo.documentapi; import com.yahoo.document.Document; import com.yahoo.document.DocumentId; +import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentUpdate; import com.yahoo.documentapi.messagebus.protocol.DocumentProtocol; @@ -44,7 +45,38 @@ public interface AsyncSession extends Session { * @return the synchronous result of this operation */ default Result put(Document document, DocumentProtocol.Priority priority) { - return put(document); + return put(new DocumentPut(document), priority); + } + + /** + * <p>Puts a document, with optional conditions on the operation. This method returns immediately.</p> + * + * <p>If this result is a success, this + * call will cause one or more {@link DocumentResponse} objects to appear within the timeout time of this session. + * The response returned later will either be a success, or contain the document submitted here. + * If it was not a success, this method has no further effects.</p> + * + * @param documentPut the DocumentPut to perform + * @return the synchronous result of this operation + */ + default Result put(DocumentPut documentPut) { + return put(documentPut, DocumentProtocol.Priority.NORMAL_3); + } + + /** + * <p>Puts a document, with optional conditions on the operation. This method returns immediately.</p> + * + * <p>If this result is a success, this + * call will cause one or more {@link DocumentResponse} objects to appear within the timeout time of this session. + * The response returned later will either be a success, or contain the document submitted here. + * If it was not a success, this method has no further effects.</p> + * + * @param documentPut the DocumentPut to perform + * @return the synchronous result of this operation + */ + // TODO Vespa 8: Make this the one to implement. + default Result put(DocumentPut documentPut, DocumentProtocol.Priority priority) { + return put(documentPut.getDocument()); } /** diff --git a/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java b/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java index 00d6bb5ae33..d0316b9fec8 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/local/LocalAsyncSession.java @@ -53,17 +53,17 @@ public class LocalAsyncSession implements AsyncSession { @Override public Result put(Document document) { - return put(document, DocumentProtocol.Priority.NORMAL_3); + return put(new DocumentPut(document), DocumentProtocol.Priority.NORMAL_3); } @Override - public Result put(Document document, DocumentProtocol.Priority pri) { + public Result put(DocumentPut documentPut, DocumentProtocol.Priority pri) { long req = getNextRequestId(); try { - syncSession.put(new DocumentPut(document), pri); + syncSession.put(documentPut, pri); addResponse(new DocumentResponse(req)); } catch (Exception e) { - addResponse(new DocumentResponse(req, document, e.getMessage(), false)); + addResponse(new DocumentResponse(req, documentPut.getDocument(), e.getMessage(), false)); } return new Result(req); } 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 ab39e4c30ff..113b74a3d04 100644 --- a/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java +++ b/documentapi/src/main/java/com/yahoo/documentapi/messagebus/MessageBusAsyncSession.java @@ -92,12 +92,12 @@ public class MessageBusAsyncSession implements MessageBusSession, AsyncSession { @Override public Result put(Document document) { - return put(document, DocumentProtocol.Priority.NORMAL_3); + return put(new DocumentPut(document), DocumentProtocol.Priority.NORMAL_3); } @Override - public Result put(Document document, DocumentProtocol.Priority pri) { - PutDocumentMessage msg = new PutDocumentMessage(new DocumentPut(document)); + public Result put(DocumentPut documentPut, DocumentProtocol.Priority pri) { + PutDocumentMessage msg = new PutDocumentMessage(documentPut); msg.setPriority(pri); return send(msg); } |