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

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

Introduction

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

Prototype

private void open(long position) 

Source Link

Document

Helper method for opening output source at given file position

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  av  a  2s  .  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();/*from  w w  w  .ja  v  a2  s  .com*/

    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 ww w. j a v a 2 s.c om*/
            }).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());
}