Added support for 'append-newline' to the <console-target/> element (INT-214).

This commit is contained in:
Mark Fisher
2008-05-14 14:08:56 +00:00
parent c59004c841
commit 28d2a98d66
3 changed files with 24 additions and 0 deletions

View File

@@ -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);
}
}
}

View File

@@ -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());
}
}

View File

@@ -13,4 +13,6 @@
<console-target id="stderrTarget" error="true"/>
<console-target id="newlineTarget" append-newline="true"/>
</beans:beans>