summaryrefslogtreecommitdiffstats
path: root/vespaclient-java
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2024-03-11 14:38:08 +0100
committerHarald Musum <musum@yahooinc.com>2024-03-11 14:38:08 +0100
commit41a5368c200e5417c10d5f9bba9b21e7f18c00e6 (patch)
tree977c82a65cfc1dbef3026a9394eab1c3441a5b11 /vespaclient-java
parent8110c6d8a31620119ab0d255a1ecdfaa7daa06b7 (diff)
Support serializing document remove operation to json format
Diffstat (limited to 'vespaclient-java')
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java35
-rw-r--r--vespaclient-java/src/test/java/com/yahoo/vespa/feed/perf/SimpleFeederTest.java21
2 files changed, 40 insertions, 16 deletions
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java b/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java
index b4ca98f316f..b41bb29376b 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespa/feed/perf/SimpleFeeder.java
@@ -185,21 +185,34 @@ public class SimpleFeeder implements ReplyHandler {
}
}
public void send(FeedOperation op) {
- if (op.getType() == FeedOperation.Type.DOCUMENT) {
- if (!isFirst) {
- try {
- outputStream.write(',');
- outputStream.write('\n');
- } catch (IOException e) {
- failure.set(e);
- }
- } else {
- isFirst = false;
+ switch (op.getType()) {
+ case DOCUMENT -> {
+ addCommaAndNewline();
+ writer.write(op.getDocumentPut().getDocument());
}
- writer.write(op.getDocumentPut().getDocument());
+ case REMOVE -> {
+ addCommaAndNewline();
+ writer.write(op.getDocumentRemove());
+ }
+ default -> { /* TODO: No more operations supported yet */ }
}
numReplies.incrementAndGet();
}
+
+ private void addCommaAndNewline() {
+ if (! isFirst) {
+ try {
+ outputStream.write(',');
+ outputStream.write('\n');
+ } catch (IOException e) {
+ failure.set(e);
+ }
+ }
+ else {
+ isFirst = false;
+ }
+ }
+
public void close() throws Exception {
outputStream.write('\n');
outputStream.write(']');
diff --git a/vespaclient-java/src/test/java/com/yahoo/vespa/feed/perf/SimpleFeederTest.java b/vespaclient-java/src/test/java/com/yahoo/vespa/feed/perf/SimpleFeederTest.java
index 582148e8eaa..28859d0e7c4 100644
--- a/vespaclient-java/src/test/java/com/yahoo/vespa/feed/perf/SimpleFeederTest.java
+++ b/vespaclient-java/src/test/java/com/yahoo/vespa/feed/perf/SimpleFeederTest.java
@@ -87,8 +87,13 @@ public class SimpleFeederTest {
"",
"(.+\n)+" +
"\\s*\\d+,\\s*3,.+\n");
- assertEquals(58, dump.size());
- assertEquals("[\n{\"id\":\"id:simple:simple::0\",\"fields\":{\"my_str\":\"foo\"}}\n]", dump.toString());
+ assertEquals(93, dump.size());
+ assertEquals("""
+ [
+ {"id":"id:simple:simple::0","fields":{"my_str":"foo"}},
+ {"remove":"id:simple:simple::2"}
+ ]""",
+ dump.toString());
}
@Test
@@ -116,8 +121,14 @@ public class SimpleFeederTest {
"",
"(.+\n)+" +
"\\s*\\d+,\\s*3,.+\n");
- assertEquals(115, dump.size());
- assertEquals("[\n{\"id\":\"id:simple:simple::0\",\"fields\":{\"my_str\":\"foo\"}},\n {\"id\":\"id:simple:simple::1\",\"fields\":{\"my_str\":\"bar\"}}\n]", dump.toString());
+ assertEquals(150, dump.size());
+ assertEquals("""
+ [
+ {"id":"id:simple:simple::0","fields":{"my_str":"foo"}},
+ {"id":"id:simple:simple::1","fields":{"my_str":"bar"}},
+ {"remove":"id:simple:simple::2"}
+ ]""",
+ dump.toString());
assertFeed(dump.toString(),
new MessageHandler() {
@Override
@@ -129,7 +140,7 @@ public class SimpleFeederTest {
},
"",
"(.+\n)+" +
- "\\s*\\d+,\\s*2,.+\n");
+ "\\s*\\d+,\\s*3,.+\n");
}
@Test