Example usage for org.springframework.batch.core.step.item SkippableException SkippableException

List of usage examples for org.springframework.batch.core.step.item SkippableException SkippableException

Introduction

In this page you can find the example usage for org.springframework.batch.core.step.item SkippableException SkippableException.

Prototype

public SkippableException(String message) 

Source Link

Usage

From source file:org.springframework.batch.core.step.item.FaultTolerantStepFactoryBeanRollbackTests.java

@Test
public void testNonDefaultRollbackRules() throws Exception {
    TransactionAttributeEditor editor = new TransactionAttributeEditor();
    editor.setAsText("+RuntimeException,+SkippableException");
    RuleBasedTransactionAttribute attr = (RuleBasedTransactionAttribute) editor.getValue();
    attr.getRollbackRules().add(new RollbackRuleAttribute(Exception.class));
    assertTrue(attr.rollbackOn(new Exception("")));
    assertFalse(attr.rollbackOn(new RuntimeException("")));
    assertFalse(attr.rollbackOn(new SkippableException("")));
}

From source file:org.springframework.batch.core.step.item.FaultTolerantStepFactoryBeanTests.java

@Test
public void testAutoRegisterItemListeners() throws Exception {
    reader.setFailures("2");

    final List<Integer> listenerCalls = new ArrayList<Integer>();

    class TestItemListenerWriter
            implements ItemWriter<String>, ItemReadListener<String>, ItemWriteListener<String>,
            ItemProcessListener<String, String>, SkipListener<String, String>, ChunkListener {
        @Override//from w ww . jav a2s. c o  m
        public void write(List<? extends String> items) throws Exception {
            if (items.contains("4")) {
                throw new SkippableException("skippable");
            }
        }

        @Override
        public void afterRead(String item) {
            listenerCalls.add(1);
        }

        @Override
        public void beforeRead() {
        }

        @Override
        public void onReadError(Exception ex) {
        }

        @Override
        public void afterWrite(List<? extends String> items) {
            listenerCalls.add(2);
        }

        @Override
        public void beforeWrite(List<? extends String> items) {
        }

        @Override
        public void onWriteError(Exception exception, List<? extends String> items) {
        }

        @Override
        public void afterProcess(String item, String result) {
            listenerCalls.add(3);
        }

        @Override
        public void beforeProcess(String item) {
        }

        @Override
        public void onProcessError(String item, Exception e) {
        }

        @Override
        public void afterChunk(ChunkContext context) {
            listenerCalls.add(4);
        }

        @Override
        public void beforeChunk(ChunkContext context) {
        }

        @Override
        public void onSkipInProcess(String item, Throwable t) {
        }

        @Override
        public void onSkipInRead(Throwable t) {
            listenerCalls.add(6);
        }

        @Override
        public void onSkipInWrite(String item, Throwable t) {
            listenerCalls.add(5);
        }

        @Override
        public void afterChunkError(ChunkContext context) {
        }
    }

    factory.setItemWriter(new TestItemListenerWriter());

    Step step = factory.getObject();
    step.execute(stepExecution);

    assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus());
    for (int i = 1; i <= 6; i++) {
        assertTrue("didn't call listener " + i, listenerCalls.contains(i));
    }
}