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