diff --git a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParser.java b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParser.java index a2b6cbe9cd..66cf004011 100644 --- a/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParser.java +++ b/spring-integration-adapters/src/main/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParser.java @@ -57,6 +57,9 @@ public class ConsoleTargetParser extends AbstractSingleBeanDefinitionParser { if (StringUtils.hasText(charsetName)) { builder.addConstructorArgValue(charsetName); } + if ("true".equals(element.getAttribute("append-newline"))) { + builder.addPropertyValue("shouldAppendNewLine", Boolean.TRUE); + } } } diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParserTests.java b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParserTests.java index 767646c055..66c82db6fe 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParserTests.java +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/ConsoleTargetParserTests.java @@ -133,4 +133,23 @@ public class ConsoleTargetParserTests { assertEquals("bad", err.toString()); } + @Test + public void testAppendNewLine() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "consoleTargetParserTests.xml", ConsoleTargetParserTests.class); + CharacterStreamTarget target = + (CharacterStreamTarget) context.getBean("newlineTarget"); + DirectFieldAccessor targetAccessor = new DirectFieldAccessor(target); + Writer bufferedWriter = (Writer) targetAccessor.getPropertyValue("writer"); + assertEquals(BufferedWriter.class, bufferedWriter.getClass()); + DirectFieldAccessor bufferedWriterAccessor = new DirectFieldAccessor(bufferedWriter); + Writer writer = (Writer) bufferedWriterAccessor.getPropertyValue("out"); + assertEquals(OutputStreamWriter.class, writer.getClass()); + Charset writerCharset = Charset.forName(((OutputStreamWriter) writer).getEncoding()); + assertEquals(Charset.defaultCharset(), writerCharset); + this.resetStreams(); + target.send(new StringMessage("foo")); + assertEquals("foo\n", out.toString()); + } + } diff --git a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/consoleTargetParserTests.xml b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/consoleTargetParserTests.xml index 58fa0b17a3..4a3e20ebf5 100644 --- a/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/consoleTargetParserTests.xml +++ b/spring-integration-adapters/src/test/java/org/springframework/integration/adapter/stream/config/consoleTargetParserTests.xml @@ -13,4 +13,6 @@ + + \ No newline at end of file