Example usage for org.springframework.batch.item.xml.builder StaxEventItemWriterBuilder StaxEventItemWriterBuilder

List of usage examples for org.springframework.batch.item.xml.builder StaxEventItemWriterBuilder StaxEventItemWriterBuilder

Introduction

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

Prototype

StaxEventItemWriterBuilder

Source Link

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();//w w  w  .  j  a va  2  s .co m

    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();//  ww w  .j a va  2 s.co m

    File file = this.resource.getFile();

    assertFalse(file.exists());
}

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

@Test
public void testTransactional() {

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

    ExecutionContext executionContext = new ExecutionContext();

    staxEventItemWriter.open(executionContext);

    Object writer = ReflectionTestUtils.getField(staxEventItemWriter, "bufferedWriter");

    assertTrue(writer instanceof TransactionAwareBufferedWriter);

    assertTrue((Boolean) ReflectionTestUtils.getField(writer, "forceSync"));
}

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 w ww .  ja v a  2 s. 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.builder.StaxEventItemWriterBuilderTests.java

@Test(expected = IllegalArgumentException.class)
public void testMissingMarshallerValidation() {
    new StaxEventItemWriterBuilder<Foo>().name("fooWriter").build();
}

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

@Test(expected = IllegalArgumentException.class)
public void testMissingNameValidation() {
    new StaxEventItemWriterBuilder<Foo>().marshaller(new Jaxb2Marshaller()).build();
}