pump = new InputStreamPumper(watch.getOutput(), new SystemOutCallback()); executorService.submit(pump); Future<String> outPumpFuture = executorService.submit(pump, "Done"); pump.close();
.redirectingErrorChannel() .exec(); InputStreamPumper pump = new InputStreamPumper(watch.getOutput(), new SystemOutCallback()))
private void closeExecutor() { if (!executorClosed.compareAndSet(false, true)) { return; } pumper.close(); executorService.shutdownNow(); try { if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { LOGGER.debug("ExecutorService was not cleanly shutdown, after waiting for 10 seconds."); } } catch (Throwable t) { LOGGER.debug("Error shutting down ExecutorService.", t); } }
@Override public void onResponse(Call call, final Response response) throws IOException { if (out instanceof PipedOutputStream && output != null) { output.connect((PipedOutputStream) out); } pumper = new InputStreamPumper(response.body().byteStream(), new io.fabric8.kubernetes.client.Callback<byte[]>(){ @Override public void call(byte[] input) { try { out.write(input); } catch (IOException e) { throw KubernetesClientException.launderThrowable(e); } } }, new Runnable() { @Override public void run() { response.close(); } }); executorService.submit(pumper); started.set(true); queue.add(true); } }
@Override public void close() { pumper.close(); executorService.shutdown(); try { if (!executorService.awaitTermination(10, TimeUnit.SECONDS)) { executorService.shutdownNow(); } } catch (Throwable t) { throw KubernetesClientException.launderThrowable(t); } }
public ExecWebSocketListener(InputStream in, OutputStream out, OutputStream err, PipedOutputStream inputPipe, PipedInputStream outputPipe, PipedInputStream errorPipe, ExecListener listener) { this.listener = listener; this.in = inputStreamOrPipe(in, inputPipe); this.out = outputStreamOrPipe(out, outputPipe); this.err = outputStreamOrPipe(err, errorPipe); this.input = inputPipe; this.output = outputPipe; this.error = errorPipe; this.pumper = new InputStreamPumper(this.in, new Callback<byte[]>() { @Override public void call(byte[] data) { try { send(data); } catch (Exception e) { // } } }); }