@Override public void onNext(Frame frame) { log.append(new String(frame.getPayload())); super.onNext(frame); }
public static OutputFrame forFrame(Frame frame) { OutputType outputType = OutputType.forStreamType(frame.getStreamType()); if (outputType == null) { return null; } return new OutputFrame(outputType, frame.getPayload()); }
@Override public void onNext(Frame frame) { if (frame != null) { try { switch (frame.getStreamType()) { case STDOUT: case RAW: if (stdout != null) { stdout.write(frame.getPayload()); stdout.flush(); } break; case STDERR: if (stderr != null) { stderr.write(frame.getPayload()); stderr.flush(); } break; default: LOGGER.error("unknown stream type:" + frame.getStreamType()); } } catch (IOException e) { onError(e); } LOGGER.debug(frame.toString()); } } }
@Override public void onNext(Frame item) { LOGGER.debug(item.toString()); } }
@Override public void onNext(Frame frame) { if (frame != null) { OutputFrame outputFrame = OutputFrame.forFrame(frame); if (outputFrame != null) { Consumer<OutputFrame> consumer = consumers.get(outputFrame.getType()); if (consumer == null) { LOGGER.error("got frame with type {}, for which no handler is configured", frame.getStreamType()); } else if (outputFrame.getBytes() != null && outputFrame.getBytes().length > 0) { if (frame.getStreamType() == StreamType.RAW) { processRawFrame(outputFrame, consumer); } else { processOtherFrame(outputFrame, consumer); } } } } }
@Override public void onNext(Frame item) { LOGGER.debug(item.toString()); } }
@Override public void onNext(Frame frame) { if (frame != null) { OutputFrame outputFrame = OutputFrame.forFrame(frame); if (outputFrame != null) { Consumer<OutputFrame> consumer = consumers.get(outputFrame.getType()); if (consumer == null) { LOGGER.error("got frame with type {}, for which no handler is configured", frame.getStreamType()); } else if (outputFrame.getBytes() != null && outputFrame.getBytes().length > 0) { if (frame.getStreamType() == StreamType.RAW) { processRawFrame(outputFrame, consumer); } else { processOtherFrame(outputFrame, consumer); } } } } }
@Override public void onNext(Frame object) { try { this.outputStream.write(object.getPayload()); this.outputStream.flush(); } catch (IOException e) { throw new RuntimeException(e); } } }
public static OutputFrame forFrame(Frame frame) { OutputType outputType = OutputType.forStreamType(frame.getStreamType()); if (outputType == null) { return null; } return new OutputFrame(outputType, frame.getPayload()); }
@Override public void onNext(Frame frame) { if (frame != null) { try { switch (frame.getStreamType()) { case STDOUT: case RAW: if (stdout != null) { stdout.write(frame.getPayload()); stdout.flush(); } break; case STDERR: if (stderr != null) { stderr.write(frame.getPayload()); stderr.flush(); } break; default: LOGGER.error("unknown stream type:" + frame.getStreamType()); } } catch (IOException e) { onError(e); } LOGGER.debug(frame.toString()); } } }
@Override public void accept(BufferedSource source) { try { while (!source.exhausted()) { // See https://docs.docker.com/engine/api/v1.37/#operation/ContainerAttach if(!source.request(HEADER_SIZE)) { return; } StreamType streamType = streamType(source.readByte()); source.skip(3); int payloadSize = source.readInt(); if (streamType != StreamType.RAW) { if (!source.request(payloadSize)) { return; } byte[] payload = source.readByteArray(payloadSize); resultCallback.onNext(new Frame(streamType, payload)); } else { resultCallback.onNext(new Frame(streamType, source.readByteArray())); } } } catch (Exception e) { resultCallback.onError(e); } }
@Override public void onNext(Frame item) { logs.add(item.toString()); } }).awaitCompletion();
@Override public void onNext(Frame frame) { if(collectFrames) collectedFrames.add(frame); log.append(new String(frame.getPayload())); }
@Override public void onNext(Frame frame) { try { switch (frame.getStreamType()) { case RAW: case STDOUT: this.stdOutWriter.write(frame.getPayload()); break; default: this.stdErrWriter.write(frame.getPayload()); break; } } catch (IOException e) { throw new UnexpectedException("Could not read frame", e); } }
@Test public void reconstructBreakedUnicode() throws IOException { String payload = "Тест"; byte[] payloadBytes = payload.getBytes(StandardCharsets.UTF_8); byte[] bytes1 = new byte[(int) (payloadBytes.length * 0.6)]; byte[] bytes2 = new byte[payloadBytes.length - bytes1.length]; System.arraycopy(payloadBytes, 0, bytes1, 0, bytes1.length); System.arraycopy(payloadBytes, bytes1.length, bytes2, 0, bytes2.length); FrameConsumerResultCallback callback = new FrameConsumerResultCallback(); ToStringConsumer consumer = new ToStringConsumer().withRemoveAnsiCodes(false); callback.addConsumer(OutputType.STDOUT, consumer); callback.onNext(new Frame(StreamType.RAW, bytes1)); callback.onNext(new Frame(StreamType.RAW, bytes2)); callback.close(); assertEquals(payload, consumer.toUtf8String()); }
@Override public void onNext(Frame item) { LOGGER.debug(item.toString()); } }
@Override public void onNext(Frame frame) { if(collectFrames) collectedFrames.add(frame); log.append(new String(frame.getPayload())); }
@Override public final void onNext(final Frame object) { final StreamType streamType = object.getStreamType(); final String payload = new String(object.getPayload()); if (StreamType.STDOUT.equals(streamType)) { System.out.print(payload); if (stdOutBuff != null) { stdOutBuff.append(payload); } } else if (StreamType.STDERR.equals(streamType)) { System.err.print(payload); if (stdErrBuff != null) { stdErrBuff.append(payload); } } else { System.err.println("Unexpected stream type: " + object.getStreamType()); } }