aboutsummaryrefslogtreecommitdiffstats
path: root/vespa-feed-client-cli
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-27 15:25:21 +0200
committerBjørn Christian Seime <bjorncs@verizonmedia.com>2021-05-27 15:25:29 +0200
commitc0d5a541c9503c55a9867ff0117c82b056cbf2fb (patch)
treef45d8c71f0f7fcd1f4c43636394e0b7907f9e96f /vespa-feed-client-cli
parent8378dd0703460bb87ec5ad7a966ef830b8714a9d (diff)
Use JsonStreamFeeder to feed documents from CliClient
Diffstat (limited to 'vespa-feed-client-cli')
-rw-r--r--vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
index 27ecada98c3..b94ccdce2da 100644
--- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
+++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java
@@ -3,9 +3,11 @@ package ai.vespa.feed.client;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
+import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
+import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Properties;
@@ -45,7 +47,9 @@ public class CliClient {
systemOut.println(Vespa.VERSION);
return 0;
}
- FeedClient feedClient = createFeedClient(cliArgs);
+ try (InputStream in = createFeedInputStream(cliArgs); JsonStreamFeeder feeder = createJsonFeeder(cliArgs)) {
+ feeder.feed(in);
+ }
return 0;
} catch (CliArguments.CliArgumentsException | IOException e) {
return handleException(e);
@@ -75,6 +79,20 @@ public class CliClient {
return builder.build();
}
+ private static JsonStreamFeeder createJsonFeeder(CliArguments cliArgs) throws CliArguments.CliArgumentsException, IOException {
+ FeedClient feedClient = createFeedClient(cliArgs);
+ JsonStreamFeeder.Builder builder = JsonStreamFeeder.builder(feedClient);
+ cliArgs.timeout().ifPresent(builder::withTimeout);
+ cliArgs.route().ifPresent(builder::withRoute);
+ cliArgs.traceLevel().ifPresent(builder::withTracelevel);
+ return builder.build();
+ }
+
+ private InputStream createFeedInputStream(CliArguments cliArgs) throws CliArguments.CliArgumentsException, IOException {
+ return new BufferedInputStream(
+ cliArgs.readFeedFromStandardInput() ? systemIn : Files.newInputStream(cliArgs.inputFile().get()));
+ }
+
private int handleException(Exception e) { return handleException(e.getMessage(), e); }
private int handleException(String message, Exception exception) {