Example usage for org.springframework.batch.item.xml StaxEventItemWriter write

List of usage examples for org.springframework.batch.item.xml StaxEventItemWriter write

Introduction

In this page you can find the example usage for org.springframework.batch.item.xml StaxEventItemWriter write.

Prototype

@Override
public void write(List<? extends T> items) throws XmlMappingException, IOException 

Source Link

Document

Write the value objects and flush them to the file.

Usage

From source file:org.springframework.batch.item.xml.builder.StaxEventItemWriterBuilderTests.java

@Test(expected = ItemStreamException.class)
public void testOverwriteOutput() throws Exception {
    StaxEventItemWriter<Foo> staxEventItemWriter = new StaxEventItemWriterBuilder<Foo>().name("fooWriter")
            .marshaller(marshaller).resource(this.resource).overwriteOutput(false).build();

    staxEventItemWriter.afterPropertiesSet();

    ExecutionContext executionContext = new ExecutionContext();
    staxEventItemWriter.open(executionContext);

    staxEventItemWriter.write(this.items);

    staxEventItemWriter.update(executionContext);
    staxEventItemWriter.close();/*  ww w  .  j  a va  2  s . com*/

    File output = this.resource.getFile();

    assertTrue(output.exists());

    executionContext = new ExecutionContext();
    staxEventItemWriter.open(executionContext);
}

From source file:org.springframework.batch.item.xml.builder.StaxEventItemWriterBuilderTests.java

@Test
public void testDeleteIfEmpty() throws Exception {
    ExecutionContext executionContext = new ExecutionContext();

    StaxEventItemWriter<Foo> staxEventItemWriter = new StaxEventItemWriterBuilder<Foo>().name("fooWriter")
            .resource(this.resource).marshaller(this.marshaller).shouldDeleteIfEmpty(true).build();

    staxEventItemWriter.afterPropertiesSet();
    staxEventItemWriter.open(executionContext);
    staxEventItemWriter.write(Collections.emptyList());
    staxEventItemWriter.update(executionContext);
    staxEventItemWriter.close();// w w w  . j  a v  a  2s.c  om

    File file = this.resource.getFile();

    assertFalse(file.exists());
}

From source file:org.springframework.batch.item.xml.builder.StaxEventItemWriterBuilderTests.java

@Test
public void testConfiguration() throws Exception {
    Map<String, String> rootElementAttributes = new HashMap<>();
    rootElementAttributes.put("baz", "quix");

    StaxEventItemWriter<Foo> staxEventItemWriter = new StaxEventItemWriterBuilder<Foo>().name("fooWriter")
            .marshaller(marshaller).encoding("UTF-16").footerCallback(writer -> {
                XMLEventFactory factory = XMLEventFactory.newInstance();
                try {
                    writer.add(factory.createEndElement("ns", "http://www.springframework.org/test", "group"));
                } catch (XMLStreamException e) {
                    throw new RuntimeException(e);
                }/*from www. j  a  v  a 2s  .co m*/
            }).headerCallback(writer -> {
                XMLEventFactory factory = XMLEventFactory.newInstance();
                try {
                    writer.add(
                            factory.createStartElement("ns", "http://www.springframework.org/test", "group"));
                } catch (XMLStreamException e) {
                    throw new RuntimeException(e);
                }
            }).resource(this.resource).rootTagName("foobarred").rootElementAttributes(rootElementAttributes)
            .saveState(false).version("1.1").build();

    staxEventItemWriter.afterPropertiesSet();

    ExecutionContext executionContext = new ExecutionContext();
    staxEventItemWriter.open(executionContext);

    staxEventItemWriter.write(this.items);

    staxEventItemWriter.update(executionContext);
    staxEventItemWriter.close();

    assertEquals(FULL_OUTPUT, getOutputFileContent("UTF-16"));
    assertEquals(0, executionContext.size());
}

From source file:org.springframework.batch.item.xml.StaxEventItemWriterTests.java

@Test(expected = WriterNotOpenException.class)
public void testAssertWriterIsInitialized() throws Exception {
    StaxEventItemWriter writer = new StaxEventItemWriter();

    writer.write(Collections.singletonList("foo"));
}