diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-05-01 23:08:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-01 23:08:57 +0200 |
commit | 872c8cda1d91e79e903f63d790b800273fecd7e1 (patch) | |
tree | 10e2c9cf4613f3c949e27f6cc4cc049151d4ef75 | |
parent | e9ac899b7879d9abfe34c3d7241e367171f0f70d (diff) |
Revert "Handle xml feed without the wrapping <vespafeed> tag"
5 files changed, 10 insertions, 80 deletions
diff --git a/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java b/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java index efbfd4a2167..7bc0cc871ca 100644 --- a/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java +++ b/document/src/main/java/com/yahoo/vespaxmlparser/VespaXMLFeedReader.java @@ -28,13 +28,11 @@ import java.util.Optional; */ public class VespaXMLFeedReader extends VespaXMLReader implements FeedReader { - private final boolean requireVespaFeedTag; /** * Creates a reader that reads from the given file. */ public VespaXMLFeedReader(String fileName, DocumentTypeManager docTypeManager) throws Exception { super(fileName, docTypeManager); - requireVespaFeedTag = true; readInitial(); } @@ -42,18 +40,17 @@ public class VespaXMLFeedReader extends VespaXMLReader implements FeedReader { * Creates a reader that reads from the given stream. */ public VespaXMLFeedReader(InputStream stream, DocumentTypeManager docTypeManager) throws Exception { - this(stream, docTypeManager, true); + super(stream, docTypeManager); + readInitial(); } /** - * Creates a reader that reads from the given stream. + * Creates a reader that uses the given reader to read - this can be used if the vespa feed + * is part of a larger XML document. */ - public VespaXMLFeedReader(InputStream stream, DocumentTypeManager docTypeManager, boolean requireVespaFeedTag) throws Exception { - super(stream, docTypeManager); - this.requireVespaFeedTag = requireVespaFeedTag; - if (requireVespaFeedTag) { - readInitial(); - } + public VespaXMLFeedReader(XMLStreamReader reader, DocumentTypeManager manager) throws Exception { + super(reader, manager); + readInitial(); } /** @@ -134,8 +131,6 @@ public class VespaXMLFeedReader extends VespaXMLReader implements FeedReader { throw newDeserializeException("Missing \"documentid\" attribute for remove operation"); } return new RemoveFeedOperation(documentId, TestAndSetCondition.fromConditionString(condition)); - } else if ("vespafeed".equals(startTag)) { - //Ignore it } else { throw newDeserializeException("Element \"" + startTag + "\" not allowed in this context"); } diff --git a/document/src/test/java/com/yahoo/vespaxmlparser/VespaXMLReaderTestCase.java b/document/src/test/java/com/yahoo/vespaxmlparser/VespaXMLReaderTestCase.java index 167b3d385c5..e33dbfe8898 100755 --- a/document/src/test/java/com/yahoo/vespaxmlparser/VespaXMLReaderTestCase.java +++ b/document/src/test/java/com/yahoo/vespaxmlparser/VespaXMLReaderTestCase.java @@ -821,71 +821,6 @@ public class VespaXMLReaderTestCase { assertEquals("Worker", child.getFieldValue("content").toString()); } - private void verifyTitle(String input, boolean requireFeedTag) throws Exception { - DocumentTypeManager dtm = new DocumentTypeManager(); - - DocumentType type = new DocumentType("foo"); - type.addField(new Field("title", DataType.STRING)); - - dtm.registerDocumentType(type); - - VespaXMLFeedReader parser = new VespaXMLFeedReader(new ByteArrayInputStream(Utf8.toBytes(input)), dtm, requireFeedTag); - List<FeedOperation> ops = parser.readAll(); - - assertEquals(1, ops.size()); - FeedOperation op = ops.get(0); - assertEquals(FeedOperation.Type.DOCUMENT, op.getType()); - assertEquals(1, op.getDocument().getFieldCount()); - assertEquals("xyz", op.getDocument().getFieldValue("title").toString()); - } - - @Test - public void testWithEncodingAndVespaFeedWrapping() throws Exception { - verifyTitle("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + - "<vespafeed>\n" + - " <document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - " </document>\n" + - "</vespafeed>\n", - true); - verifyTitle("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + - "<vespafeed>\n" + - " <document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - " </document>\n" + - "</vespafeed>\n", - false); - - verifyTitle("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + - " <document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - " </document>\n", - false); - - verifyTitle("<document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - "</document>\n", - false); - } - - @Test(expected = DeserializationException.class) - public void testThatMissingFeedTagThrows() throws Exception { - verifyTitle("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + - " <document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - " </document>\n", - true); - } - @Test - public void testThatMissingXmlHeaderWorks() throws Exception { - verifyTitle("<vespafeed>\n" + - " <document documenttype=\"foo\" documentid=\"doc:foo:bar:baz\"> \n" + - " <title>xyz</title>\n" + - " </document>\n" + - "</vespafeed>\n", - true); - } - @Test(expected = DeserializationException.class) public void testBinaryEncodingStrings() throws Exception { DocumentTypeManager dtm = new DocumentTypeManager(); diff --git a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java index 126c4a8fd65..32e883f171a 100644 --- a/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java +++ b/vespa_feed_perf/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java @@ -364,7 +364,7 @@ public class SimpleFeeder implements ReplyHandler { } else if ((b[0] == 'V') && (b[1] == '1')) { return new VespaV1FeedReader(in, docTypeMgr); } else { - return new VespaXMLFeedReader(in, docTypeMgr, false); + return new VespaXMLFeedReader(in, docTypeMgr); } } diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedReaderFactory.java b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedReaderFactory.java index e30ac3919bb..6a3229e86b7 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedReaderFactory.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/vespa/http/server/FeedReaderFactory.java @@ -29,7 +29,7 @@ public class FeedReaderFactory { switch (dataFormat) { case XML_UTF8: try { - return new VespaXMLFeedReader(inputStream, docTypeManager, true); + return new VespaXMLFeedReader(inputStream, docTypeManager); } catch (Exception e) { throw new RuntimeException("Could not create VespaXMLFeedReader", e); } diff --git a/vespaclient-core/src/main/java/com/yahoo/feedapi/XMLFeeder.java b/vespaclient-core/src/main/java/com/yahoo/feedapi/XMLFeeder.java index c5bd8643687..85b714b3b42 100755 --- a/vespaclient-core/src/main/java/com/yahoo/feedapi/XMLFeeder.java +++ b/vespaclient-core/src/main/java/com/yahoo/feedapi/XMLFeeder.java @@ -21,6 +21,6 @@ public class XMLFeeder extends Feeder { @Override protected FeedReader createReader() throws Exception { - return new VespaXMLFeedReader(stream, docMan, false); + return new VespaXMLFeedReader(stream, docMan); } } |