aboutsummaryrefslogtreecommitdiffstats
path: root/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java
diff options
context:
space:
mode:
Diffstat (limited to 'vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java')
-rw-r--r--vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java70
1 files changed, 53 insertions, 17 deletions
diff --git a/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java b/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java
index a6e34055fbd..ceea7d320e9 100644
--- a/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java
+++ b/vespaclient-java/src/main/java/com/yahoo/vespavisit/VdsVisit.java
@@ -24,7 +24,6 @@ import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import java.io.*;
-import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Map;
import java.util.stream.Collectors;
@@ -334,9 +333,15 @@ public class VdsVisit {
.hasArg(false)
.build());
+ options.addOption(Option.builder()
+ .longOpt("jsonl")
+ .desc("Output documents as JSONL (JSON Lines format)")
+ .hasArg(false)
+ .build());
+
options.addOption(Option.builder("x")
.longOpt("xmloutput")
- .desc("Output documents as XML")
+ .desc("Output documents as XML (deprecated)")
.hasArg(false)
.build());
@@ -370,6 +375,7 @@ public class VdsVisit {
private int processTime = 0;
private int fullTimeout = 7 * 24 * 60 * 60 * 1000;
private boolean jsonOutput = true;
+ private boolean jsonLinesOutput = false;
private boolean tensorShortForm = false; // TODO Vespa 9: change default to true
private boolean tensorDirectValues = false; // TODO Vespa 9: change default to true
@@ -437,10 +443,32 @@ public class VdsVisit {
this.processTime = processTime;
}
+ public boolean jsonOutput() {
+ return jsonOutput;
+ }
+
public void setJsonOutput(boolean jsonOutput) {
this.jsonOutput = jsonOutput;
}
+ public boolean jsonLinesOutput() {
+ return jsonLinesOutput;
+ }
+
+ public void setJsonLinesOutput(boolean jsonLinesOutput) {
+ this.jsonLinesOutput = jsonLinesOutput;
+ }
+
+ public StdOutVisitorHandler.OutputFormat stdOutHandlerOutputFormat() {
+ if (jsonLinesOutput) {
+ return StdOutVisitorHandler.OutputFormat.JSONL;
+ } else if (jsonOutput) {
+ return StdOutVisitorHandler.OutputFormat.JSON;
+ } else {
+ return StdOutVisitorHandler.OutputFormat.XML;
+ }
+ }
+
public boolean tensorShortForm() {
return tensorShortForm;
}
@@ -587,11 +615,18 @@ public class VdsVisit {
}
boolean jsonOutput = line.hasOption("jsonoutput");
- boolean xmlOutput = line.hasOption("xmloutput");
- if (jsonOutput && xmlOutput) {
- throw new IllegalArgumentException("Cannot combine both xml and json output");
+ boolean jsonl = line.hasOption("jsonl");
+ boolean xmlOutput = line.hasOption("xmloutput");
+ if ((jsonOutput || jsonl) && xmlOutput) {
+ throw new IllegalArgumentException("Cannot combine both XML and JSON output");
+ } else if (jsonOutput && jsonl) {
+ throw new IllegalArgumentException("Cannot combine both JSON and JSONL output");
+ }
+ if (jsonl) {
+ allParams.setJsonLinesOutput(true);
+ } else {
+ allParams.setJsonOutput(!xmlOutput);
}
- allParams.setJsonOutput(!xmlOutput);
allParams.setVisitorParameters(params);
return allParams;
@@ -747,17 +782,18 @@ public class VdsVisit {
VdsVisitHandler handler;
- handler = new StdOutVisitorHandler(
- params.isPrintIdsOnly(),
- params.isVerbose(),
- params.isVerbose(),
- params.isVerbose(),
- params.getStatisticsParts() != null,
- params.getAbortOnClusterDown(),
- params.getProcessTime(),
- params.jsonOutput,
- params.tensorShortForm,
- params.tensorDirectValues);
+ var handlerParams = new StdOutVisitorHandler.Params();
+ handlerParams.printIds = params.isPrintIdsOnly();
+ handlerParams.indentXml = params.isVerbose();
+ handlerParams.showProgress = params.isVerbose();
+ handlerParams.showStatistics = params.isVerbose();
+ handlerParams.doStatistics = params.getStatisticsParts() != null;
+ handlerParams.abortOnClusterDown = params.getAbortOnClusterDown();
+ handlerParams.processTimeMilliSecs = params.getProcessTime();
+ handlerParams.outputFormat = params.stdOutHandlerOutputFormat();
+ handlerParams.tensorShortForm = params.tensorShortForm();
+ handlerParams.tensorDirectValues = params.tensorDirectValues();
+ handler = new StdOutVisitorHandler(handlerParams);
if (visitorParameters.getResumeFileName() != null) {
handler.setProgressFileName(visitorParameters.getResumeFileName());