diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-27 15:25:21 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-27 15:25:29 +0200 |
commit | c0d5a541c9503c55a9867ff0117c82b056cbf2fb (patch) | |
tree | f45d8c71f0f7fcd1f4c43636394e0b7907f9e96f /vespa-feed-client-cli | |
parent | 8378dd0703460bb87ec5ad7a966ef830b8714a9d (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.java | 20 |
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) { |