diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-10-05 11:07:36 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-05 11:07:36 +0200 |
commit | 387b5bdf178e84d0a8adf4b8f443045807fa2439 (patch) | |
tree | f9d02b8eec8143fe2567c20059c6468f361e8255 /document | |
parent | c6fbed88b5c65d40daf3af4eea31c9b22c2b61e5 (diff) | |
parent | f20fd185d7eb0aa6611967a02c678e56a0e137f4 (diff) |
Merge pull request #14685 from vespa-engine/jonmv/doc-v1-async-call-completions-handlers-earlier
Jonmv/doc v1 async call completions handlers earlier
Diffstat (limited to 'document')
8 files changed, 31 insertions, 35 deletions
diff --git a/document/src/main/java/com/yahoo/document/json/DocumentOperationType.java b/document/src/main/java/com/yahoo/document/json/DocumentOperationType.java new file mode 100644 index 00000000000..6d53e1948c9 --- /dev/null +++ b/document/src/main/java/com/yahoo/document/json/DocumentOperationType.java @@ -0,0 +1,9 @@ +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.document.json; + +/** + * @author Haakon Dybdahl + */ +public enum DocumentOperationType { + PUT, UPDATE, REMOVE +} diff --git a/document/src/main/java/com/yahoo/document/json/JsonReader.java b/document/src/main/java/com/yahoo/document/json/JsonReader.java index 3e011fc858f..3162056db66 100644 --- a/document/src/main/java/com/yahoo/document/json/JsonReader.java +++ b/document/src/main/java/com/yahoo/document/json/JsonReader.java @@ -60,7 +60,7 @@ public class JsonReader { * @param docIdString document ID. * @return the document */ - public DocumentOperation readSingleDocument(DocumentParser.SupportedOperation operationType, String docIdString) { + public DocumentOperation readSingleDocument(DocumentOperationType operationType, String docIdString) { DocumentId docId = new DocumentId(docIdString); DocumentParseInfo documentParseInfo; try { diff --git a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java b/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java index b57b55c9d73..67508c61b23 100644 --- a/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java +++ b/document/src/main/java/com/yahoo/document/json/SingleDocumentParser.java @@ -6,7 +6,6 @@ import com.yahoo.document.DocumentOperation; import com.yahoo.document.DocumentPut; import com.yahoo.document.DocumentTypeManager; import com.yahoo.document.DocumentUpdate; -import com.yahoo.document.json.document.DocumentParser; import com.yahoo.vespaxmlparser.DocumentFeedOperation; import com.yahoo.vespaxmlparser.DocumentUpdateFeedOperation; import com.yahoo.vespaxmlparser.FeedOperation; @@ -29,22 +28,22 @@ public class SingleDocumentParser { } public FeedOperation parsePut(InputStream inputStream, String docId) { - return parse(inputStream, docId, DocumentParser.SupportedOperation.PUT); + return parse(inputStream, docId, DocumentOperationType.PUT); } public FeedOperation parseUpdate(InputStream inputStream, String docId) { - return parse(inputStream, docId, DocumentParser.SupportedOperation.UPDATE); + return parse(inputStream, docId, DocumentOperationType.UPDATE); } - private FeedOperation parse(InputStream inputStream, String docId, DocumentParser.SupportedOperation supportedOperation) { + private FeedOperation parse(InputStream inputStream, String docId, DocumentOperationType documentOperationType) { JsonReader reader = new JsonReader(docMan, inputStream, jsonFactory); - DocumentOperation documentOperation = reader.readSingleDocument(supportedOperation, docId); + DocumentOperation documentOperation = reader.readSingleDocument(documentOperationType, docId); try { inputStream.close(); } catch (IOException e) { throw new IllegalStateException(e); } - if (supportedOperation == DocumentParser.SupportedOperation.PUT) { + if (documentOperationType == DocumentOperationType.PUT) { return new DocumentFeedOperation(((DocumentPut) documentOperation).getDocument(), documentOperation.getCondition()); } else { return new DocumentUpdateFeedOperation((DocumentUpdate) documentOperation, documentOperation.getCondition()); diff --git a/document/src/main/java/com/yahoo/document/json/document/DocumentParser.java b/document/src/main/java/com/yahoo/document/json/document/DocumentParser.java index 3fc2c941b99..a8fdb186bd7 100644 --- a/document/src/main/java/com/yahoo/document/json/document/DocumentParser.java +++ b/document/src/main/java/com/yahoo/document/json/document/DocumentParser.java @@ -4,6 +4,7 @@ package com.yahoo.document.json.document; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonToken; import com.yahoo.document.DocumentId; +import com.yahoo.document.json.DocumentOperationType; import com.yahoo.document.json.readers.DocumentParseInfo; import java.io.IOException; @@ -12,13 +13,10 @@ import java.util.Optional; /** * Parses a document operation. * - * @author dybis + * @author Haakon Dybdahl */ public class DocumentParser { - public enum SupportedOperation { - PUT, UPDATE, REMOVE - } private static final String UPDATE = "update"; private static final String PUT = "put"; private static final String ID = "id"; @@ -134,15 +132,15 @@ public class DocumentParser { } } - private static SupportedOperation operationNameToOperationType(String operationName) { + private static DocumentOperationType operationNameToOperationType(String operationName) { switch (operationName) { case PUT: case ID: - return SupportedOperation.PUT; + return DocumentOperationType.PUT; case REMOVE: - return SupportedOperation.REMOVE; + return DocumentOperationType.REMOVE; case UPDATE: - return SupportedOperation.UPDATE; + return DocumentOperationType.UPDATE; default: throw new IllegalArgumentException( "Got " + operationName + " as document operation, only \"put\", " + diff --git a/document/src/main/java/com/yahoo/document/json/document/package-info.java b/document/src/main/java/com/yahoo/document/json/document/package-info.java deleted file mode 100644 index df4c12216af..00000000000 --- a/document/src/main/java/com/yahoo/document/json/document/package-info.java +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2020 Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -/** - * Infrastructure for building Vespa documents and feed operations from JSON. - */ -@ExportPackage -package com.yahoo.document.json.document; - -import com.yahoo.osgi.annotation.ExportPackage; diff --git a/document/src/main/java/com/yahoo/document/json/readers/DocumentParseInfo.java b/document/src/main/java/com/yahoo/document/json/readers/DocumentParseInfo.java index da7f18b1a7e..878324d0d1e 100644 --- a/document/src/main/java/com/yahoo/document/json/readers/DocumentParseInfo.java +++ b/document/src/main/java/com/yahoo/document/json/readers/DocumentParseInfo.java @@ -2,8 +2,8 @@ package com.yahoo.document.json.readers; import com.yahoo.document.DocumentId; +import com.yahoo.document.json.DocumentOperationType; import com.yahoo.document.json.TokenBuffer; -import com.yahoo.document.json.document.DocumentParser; import java.util.Optional; @@ -11,6 +11,6 @@ public class DocumentParseInfo { public DocumentId documentId; public Optional<Boolean> create = Optional.empty(); public Optional<String> condition = Optional.empty(); - public DocumentParser.SupportedOperation operationType = null; + public DocumentOperationType operationType = null; public TokenBuffer fieldsBuffer = new TokenBuffer(); } diff --git a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java index 57946741335..4e8fa427e7d 100644 --- a/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java +++ b/document/src/test/java/com/yahoo/document/json/DocumentUpdateJsonSerializerTest.java @@ -14,7 +14,6 @@ import com.yahoo.document.ReferenceDataType; import com.yahoo.document.StructDataType; import com.yahoo.document.TensorDataType; import com.yahoo.document.WeightedSetDataType; -import com.yahoo.document.json.document.DocumentParser; import com.yahoo.document.serialization.DocumentDeserializerFactory; import com.yahoo.document.serialization.DocumentSerializer; import com.yahoo.document.serialization.DocumentSerializerFactory; @@ -97,7 +96,7 @@ public class DocumentUpdateJsonSerializerTest { private static DocumentUpdate jsonToDocumentUpdate(String jsonDoc, String docId) { final InputStream rawDoc = new ByteArrayInputStream(Utf8.toBytes(jsonDoc)); JsonReader reader = new JsonReader(types, rawDoc, parserFactory); - return (DocumentUpdate) reader.readSingleDocument(DocumentParser.SupportedOperation.UPDATE, docId); + return (DocumentUpdate) reader.readSingleDocument(DocumentOperationType.UPDATE, docId); } private static String documentUpdateToJson(DocumentUpdate update) { diff --git a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java index 522176d7504..7fc43656d55 100644 --- a/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java +++ b/document/src/test/java/com/yahoo/document/json/JsonReaderTestCase.java @@ -31,7 +31,6 @@ import com.yahoo.document.datatypes.StringFieldValue; import com.yahoo.document.datatypes.Struct; import com.yahoo.document.datatypes.TensorFieldValue; import com.yahoo.document.datatypes.WeightedSet; -import com.yahoo.document.json.document.DocumentParser; import com.yahoo.document.json.readers.DocumentParseInfo; import com.yahoo.document.json.readers.VespaJsonDocumentReader; import com.yahoo.document.serialization.DocumentSerializer; @@ -214,7 +213,7 @@ public class JsonReaderTestCase { " 'nalle': 'bamse'", " }", "}")); - DocumentPut put = (DocumentPut) r.readSingleDocument(DocumentParser.SupportedOperation.PUT, + DocumentPut put = (DocumentPut) r.readSingleDocument(DocumentOperationType.PUT, "id:unittest:smoke::doc1"); smokeTestDoc(put.getDocument()); } @@ -225,7 +224,7 @@ public class JsonReaderTestCase { " 'fields': {", " 'something': {", " 'assign': 'orOther' }}}")); - DocumentUpdate doc = (DocumentUpdate) r.readSingleDocument(DocumentParser.SupportedOperation.UPDATE, "id:unittest:smoke::whee"); + DocumentUpdate doc = (DocumentUpdate) r.readSingleDocument(DocumentOperationType.UPDATE, "id:unittest:smoke::whee"); FieldUpdate f = doc.getFieldUpdate("something"); assertEquals(1, f.size()); assertTrue(f.getValueUpdate(0) instanceof AssignValueUpdate); @@ -237,7 +236,7 @@ public class JsonReaderTestCase { " 'fields': {", " 'int1': {", " 'assign': null }}}")); - DocumentUpdate doc = (DocumentUpdate) r.readSingleDocument(DocumentParser.SupportedOperation.UPDATE, "id:unittest:smoke::whee"); + DocumentUpdate doc = (DocumentUpdate) r.readSingleDocument(DocumentOperationType.UPDATE, "id:unittest:smoke::whee"); FieldUpdate f = doc.getFieldUpdate("int1"); assertEquals(1, f.size()); assertTrue(f.getValueUpdate(0) instanceof ClearValueUpdate); @@ -1216,8 +1215,8 @@ public class JsonReaderTestCase { " 'tensorfield': null", " }", "}")); - DocumentPut put = (DocumentPut) r.readSingleDocument(DocumentParser.SupportedOperation.PUT, - "id:unittest:testnull::doc1"); + DocumentPut put = (DocumentPut) r.readSingleDocument(DocumentOperationType.PUT, + "id:unittest:testnull::doc1"); Document doc = put.getDocument(); assertFieldValueNull(doc, "intfield"); assertFieldValueNull(doc, "stringfield"); @@ -1234,7 +1233,7 @@ public class JsonReaderTestCase { " 'arrayfield': [ null ]", " }", "}")); - r.readSingleDocument(DocumentParser.SupportedOperation.PUT, "id:unittest:testnull::doc1"); + r.readSingleDocument(DocumentOperationType.PUT, "id:unittest:testnull::doc1"); fail(); } @@ -1465,7 +1464,7 @@ public class JsonReaderTestCase { " 'fields': {", " 'something': {", " 'modify': {} }}}")); - reader.readSingleDocument(DocumentParser.SupportedOperation.UPDATE, "id:unittest:smoke::doc1"); + reader.readSingleDocument(DocumentOperationType.UPDATE, "id:unittest:smoke::doc1"); fail("Expected exception"); } catch (IllegalArgumentException e) { |