private static CharacterStreamWritingMessageHandler createTargetForStream(OutputStream stream, String charsetName) { if (charsetName == null) { return new CharacterStreamWritingMessageHandler(new OutputStreamWriter(stream)); } try { return new CharacterStreamWritingMessageHandler(new OutputStreamWriter(stream, charsetName)); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("unsupported encoding: " + charsetName, e); } }
/** * Factory method that creates a target for stdout (System.out) with the * default charset encoding. * * @return A stdout handler with the default charset. */ public static CharacterStreamWritingMessageHandler stdout() { return stdout(null); }
/** * Factory method that creates a target for stderr (System.err) with the * specified charset encoding. * * @param charsetName The charset name. * @return A stderr handler. */ public static CharacterStreamWritingMessageHandler stderr(String charsetName) { return createTargetForStream(System.err, charsetName); }
/** * Factory method that creates a target for stderr (System.err) with the * default charset encoding. * * @return A stderr handler with the default charset. */ public static CharacterStreamWritingMessageHandler stderr() { return stderr(null); }
@Test public void maxMessagesPerTaskExceedsMessageCountWithAppendedNewLines() { endpoint.setTrigger(trigger); endpoint.setMaxMessagesPerPoll(10); endpoint.setReceiveTimeout(0); handler.setShouldAppendNewLine(true); channel.send(new GenericMessage<String>("foo"), 0); channel.send(new GenericMessage<String>("bar"), 0); endpoint.start(); trigger.await(); endpoint.stop(); String newLine = System.getProperty("line.separator"); assertEquals("foo" + newLine + "bar" + newLine, writer.toString()); }
@Test public void singleString() { handler.handleMessage(new GenericMessage<String>("foo")); assertEquals("foo", writer.toString()); }
/** * Factory method that creates a target for stderr (System.err) with the * default charset encoding. * * @return A stderr handler with the default charset. */ public static CharacterStreamWritingMessageHandler stderr() { return stderr(null); }
@Test public void twoStringsWithNewLines() { handler.setShouldAppendNewLine(true); endpoint.setTrigger(trigger); endpoint.setMaxMessagesPerPoll(1); channel.send(new GenericMessage<String>("foo"), 0); channel.send(new GenericMessage<String>("bar"), 0); endpoint.start(); trigger.await(); endpoint.stop(); String newLine = System.getProperty("line.separator"); assertEquals("foo" + newLine, writer.toString()); trigger.reset(); endpoint.start(); trigger.await(); endpoint.stop(); assertEquals("foo" + newLine + "bar" + newLine, writer.toString()); }
/** * Factory method that creates a target for stdout (System.out) with the * default charset encoding. * * @return A stdout handler with the default charset. */ public static CharacterStreamWritingMessageHandler stdout() { return stdout(null); }
@Before public void initialize() { writer = new StringWriter(); handler = new CharacterStreamWritingMessageHandler(writer); this.channel = new QueueChannel(10); trigger.reset(); this.endpoint = new PollingConsumer(channel, handler); scheduler = new ThreadPoolTaskScheduler(); this.endpoint.setTaskScheduler(scheduler); scheduler.afterPropertiesSet(); trigger.reset(); endpoint.setTrigger(trigger); endpoint.setBeanFactory(mock(BeanFactory.class)); }
/** * Factory method that creates a target for stdout (System.out) with the * specified charset encoding. * * @param charsetName The charset name. * @return A stdout handler. */ public static CharacterStreamWritingMessageHandler stdout(String charsetName) { return createTargetForStream(System.out, charsetName); }
@Test public void twoNonStringObjectWithNewLines() { handler.setShouldAppendNewLine(true); endpoint.setReceiveTimeout(0); endpoint.setMaxMessagesPerPoll(2); endpoint.setTrigger(trigger); TestObject testObject1 = new TestObject("foo"); TestObject testObject2 = new TestObject("bar"); channel.send(new GenericMessage<TestObject>(testObject1), 0); channel.send(new GenericMessage<TestObject>(testObject2), 0); endpoint.start(); trigger.await(); endpoint.stop(); String newLine = System.getProperty("line.separator"); assertEquals("foo" + newLine + "bar" + newLine, writer.toString()); }
@Bean @ServiceActivator(inputChannel = "events") public CharacterStreamWritingMessageHandler logger() { return CharacterStreamWritingMessageHandler.stdout(); }
private static CharacterStreamWritingMessageHandler createTargetForStream(OutputStream stream, String charsetName) { if (charsetName == null) { return new CharacterStreamWritingMessageHandler(new OutputStreamWriter(stream)); } try { return new CharacterStreamWritingMessageHandler(new OutputStreamWriter(stream, charsetName)); } catch (UnsupportedEncodingException e) { throw new IllegalArgumentException("unsupported encoding: " + charsetName, e); } }
/** * Factory method that creates a target for stderr (System.err) with the * specified charset encoding. * * @param charsetName The charset name. * @return A stderr handler. */ public static CharacterStreamWritingMessageHandler stderr(String charsetName) { return createTargetForStream(System.err, charsetName); }
/** * Factory method that creates a target for stdout (System.out) with the * specified charset encoding. * * @param charsetName The charset name. * @return A stdout handler. */ public static CharacterStreamWritingMessageHandler stdout(String charsetName) { return createTargetForStream(System.out, charsetName); }