Example usage for org.springframework.batch.support.transaction ResourcelessTransactionManager ResourcelessTransactionManager

List of usage examples for org.springframework.batch.support.transaction ResourcelessTransactionManager ResourcelessTransactionManager

Introduction

In this page you can find the example usage for org.springframework.batch.support.transaction ResourcelessTransactionManager ResourcelessTransactionManager.

Prototype

ResourcelessTransactionManager

Source Link

Usage

From source file:org.springframework.batch.core.step.tasklet.AsyncTaskletStepTests.java

private void setUp() throws Exception {

    step = new TaskletStep("stepName");

    ResourcelessTransactionManager transactionManager = new ResourcelessTransactionManager();
    step.setTransactionManager(transactionManager);

    RepeatTemplate chunkTemplate = new RepeatTemplate();
    chunkTemplate.setCompletionPolicy(new SimpleCompletionPolicy(2));
    step.setTasklet(new TestingChunkOrientedTasklet<String>(new ListItemReader<String>(items), itemProcessor,
            itemWriter, chunkTemplate));

    jobRepository = new JobRepositorySupport();
    step.setJobRepository(jobRepository);

    TaskExecutorRepeatTemplate template = new TaskExecutorRepeatTemplate();
    template.setThrottleLimit(throttleLimit);
    SimpleAsyncTaskExecutor taskExecutor = new SimpleAsyncTaskExecutor();
    taskExecutor.setConcurrencyLimit(concurrencyLimit);
    template.setTaskExecutor(taskExecutor);
    step.setStepOperations(template);/*  www .ja v  a  2 s.c  o  m*/

    step.registerStream(new ItemStreamSupport() {
        private int count = 0;

        @Override
        public void update(ExecutionContext executionContext) {
            super.update(executionContext);
            executionContext.putInt("counter", count++);
        }
    });

}

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

/**
 * Write list of domain objects and check the output file.
 *//*from w  w  w .ja va2s .  c o  m*/
@SuppressWarnings("resource")
@Test
public void testWrite() throws Exception {
    StopWatch stopWatch = new StopWatch(getClass().getSimpleName());
    stopWatch.start();
    for (int i = 0; i < MAX_WRITE; i++) {
        new TransactionTemplate(new ResourcelessTransactionManager()).execute(new TransactionCallback<Void>() {
            @Override
            public Void doInTransaction(TransactionStatus status) {
                try {
                    writer.write(objects);
                } catch (RuntimeException e) {
                    throw e;
                } catch (Exception e) {
                    throw new IllegalStateException("Exception encountered on write", e);
                }
                return null;
            }
        });
    }
    writer.close();
    stopWatch.stop();
    logger.info("Timing for XML writer: " + stopWatch);
    XMLUnit.setIgnoreWhitespace(true);
    // String content = FileUtils.readFileToString(resource.getFile());
    // System.err.println(content);
    XMLAssert.assertXMLEqual(new FileReader(expected.getFile()), new FileReader(resource.getFile()));

}

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

@Test
public void testTransactionalRestart() throws Exception {
    writer.open(executionContext);/*  ww w  . j a  va 2 s  .c  o  m*/

    PlatformTransactionManager transactionManager = new ResourcelessTransactionManager();

    new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus status) {
            try {
                // write item
                writer.write(items);
            } catch (Exception e) {
                throw new UnexpectedInputException("Could not write data", e);
            }
            // get restart data
            writer.update(executionContext);
            return null;
        }
    });
    writer.close();

    // create new writer from saved restart data and continue writing
    writer = createItemWriter();
    writer.open(executionContext);
    new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus status) {
            try {
                writer.write(items);
            } catch (Exception e) {
                throw new UnexpectedInputException("Could not write data", e);
            }
            // get restart data
            writer.update(executionContext);
            return null;
        }
    });
    writer.close();

    // check the output is concatenation of 'before restart' and 'after
    // restart' writes.
    String outputFile = getOutputFileContent();
    assertEquals(2, StringUtils.countOccurrencesOf(outputFile, TEST_STRING));
    assertTrue(outputFile.contains("<root>" + TEST_STRING + TEST_STRING + "</root>"));
}

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

private void testTransactionalRestartWithMultiByteCharacter(String encoding) throws Exception {
    writer.setEncoding(encoding);/*from   w ww. j a  va2 s. c  o m*/
    writer.open(executionContext);

    PlatformTransactionManager transactionManager = new ResourcelessTransactionManager();

    new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus status) {
            try {
                // write item
                writer.write(itemsMultiByte);
            } catch (Exception e) {
                throw new UnexpectedInputException("Could not write data", e);
            }
            // get restart data
            writer.update(executionContext);
            return null;
        }
    });
    writer.close();

    // create new writer from saved restart data and continue writing
    writer = createItemWriter();
    writer.setEncoding(encoding);
    writer.open(executionContext);
    new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus status) {
            try {
                writer.write(itemsMultiByte);
            } catch (Exception e) {
                throw new UnexpectedInputException("Could not write data", e);
            }
            // get restart data
            writer.update(executionContext);
            return null;
        }
    });
    writer.close();

    // check the output is concatenation of 'before restart' and 'after
    // restart' writes.
    String outputFile = getOutputFileContent(encoding);
    assertEquals(2, StringUtils.countOccurrencesOf(outputFile, TEST_STRING_MULTI_BYTE));
    assertTrue(outputFile.contains("<root>" + TEST_STRING_MULTI_BYTE + TEST_STRING_MULTI_BYTE + "</root>"));
}

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

@Test
public void testTransactionalRestartFailOnFirstWrite() throws Exception {

    PlatformTransactionManager transactionManager = new ResourcelessTransactionManager();

    writer.open(executionContext);//  ww w  . ja va2s  .  c  o m
    try {
        new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
            @Override
            public Void doInTransaction(TransactionStatus status) {
                try {
                    writer.write(items);
                } catch (Exception e) {
                    throw new IllegalStateException("Could not write data", e);
                }
                throw new UnexpectedInputException("Could not write data");
            }
        });
    } catch (UnexpectedInputException e) {
        // expected
    }
    writer.close();
    String outputFile = getOutputFileContent();
    assertEquals("<root></root>", outputFile);

    // create new writer from saved restart data and continue writing
    writer = createItemWriter();
    new TransactionTemplate(transactionManager).execute(new TransactionCallback<Void>() {
        @Override
        public Void doInTransaction(TransactionStatus status) {
            writer.open(executionContext);
            try {
                writer.write(items);
            } catch (Exception e) {
                throw new UnexpectedInputException("Could not write data", e);
            }
            // get restart data
            writer.update(executionContext);
            return null;
        }
    });
    writer.close();

    // check the output is concatenation of 'before restart' and 'after
    // restart' writes.
    outputFile = getOutputFileContent();
    assertEquals(1, StringUtils.countOccurrencesOf(outputFile, TEST_STRING));
    assertTrue(outputFile.contains("<root>" + TEST_STRING + "</root>"));
    assertEquals("<root><StaxEventItemWriter-testString/></root>", outputFile);
}

From source file:org.springframework.cloud.task.configuration.DefaultTaskConfigurer.java

@Override
public PlatformTransactionManager getTransactionManager() {
    if (this.transactionManager == null) {
        if (isDataSourceAvailable()) {
            try {
                Class.forName("javax.persistence.EntityManager");
                if (this.context != null && this.context.getBeanNamesForType(EntityManager.class).length > 0) {
                    logger.debug("EntityManager was found, using JpaTransactionManager");
                    this.transactionManager = new JpaTransactionManager();
                }/*from w  w  w. jav a  2s .c  o m*/
            } catch (ClassNotFoundException ignore) {
                logger.debug("No EntityManager was found, using DataSourceTransactionManager");
            } finally {
                if (this.transactionManager == null) {
                    this.transactionManager = new DataSourceTransactionManager(this.dataSource);
                }
            }
        } else {
            logger.debug("No DataSource was found, using ResourcelessTransactionManager");
            this.transactionManager = new ResourcelessTransactionManager();
        }
    }

    return this.transactionManager;
}