Added support for 'append-newline' to the <console-target/> element (INT-214).
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -13,4 +13,6 @@
|
||||
|
||||
<console-target id="stderrTarget" error="true"/>
|
||||
|
||||
<console-target id="newlineTarget" append-newline="true"/>
|
||||
|
||||
</beans:beans>
|
||||
Reference in New Issue
Block a user