@Bean public ListItemReader<Integer> itemReader() { return new ListItemReader<>(Arrays.asList(1, 2, 3, 4, 5, 6)); }
@Bean public ListItemReader<Person> itemReader() { Person person1 = new Person(1, "foo"); Person person2 = new Person(2, ""); return new ListItemReader<>(Arrays.asList(person1, person2)); }
@Override protected void doOpen() throws Exception { reader = new ListItemReader<>(Arrays.asList("a", "b", "c", "d", "e", "f")); }
private ItemReader<String> getReader(String[] args) { return new ListItemReader<>(Arrays.asList(args)); }
private ItemReader<String> getReader(String[] args) { return new ListItemReader<>(Arrays.asList(args)); }
private ItemReader<String> getReader(String[] args) { return new ListItemReader<>(Arrays.asList(args)); }
@Bean @JobScope public ItemReader<String> jobScopedItemReader(@Value("#{jobExecutionContext['input.data']}") String data) { return new ListItemReader<>(Arrays.asList(data.split(","))); }
@Override protected void setUp() throws Exception { super.setUp(); reader = new ListItemReader<>(TransactionAwareProxyFactory.createTransactionalList(Arrays.asList("a", "b", "c"))); }
@Bean @StepScope public ItemReader<String> stepScopedItemReader(@Value("#{stepExecutionContext['input.data']}") String data) { return new ListItemReader<>(Arrays.asList(data.split(","))); }
public void testChangeList() throws Exception { List<String> list = new ArrayList<>(Arrays.asList(new String[]{"a", "b", "c"})); reader = new ListItemReader<>(list); assertEquals("a", reader.read()); list.clear(); assertEquals(0, list.size()); assertEquals("b", reader.read()); } }
@Test public void testProvide() throws Exception { provider = new FaultTolerantChunkProvider<>(new ListItemReader<>(Arrays.asList("foo", "bar")), new RepeatTemplate()); Chunk<String> chunk = provider.provide(contribution); assertNotNull(chunk); assertEquals(2, chunk.getItems().size()); }
@Test public void testProvide() throws Exception { provider = new SimpleChunkProvider<>(new ListItemReader<>(Arrays.asList("foo", "bar")), new RepeatTemplate()); Chunk<String> chunk = provider.provide(contribution); assertNotNull(chunk); assertEquals(2, chunk.getItems().size()); }
private SimpleStepFactoryBean<String, String> getStepFactory(String... args) throws Exception { SimpleStepFactoryBean<String, String> factory = new SimpleStepFactoryBean<>(); List<String> items = new ArrayList<>(); items.addAll(Arrays.asList(args)); reader = new ListItemReader<>(items); factory.setItemReader(reader); factory.setItemWriter(writer); factory.setJobRepository(repository); factory.setTransactionManager(new ResourcelessTransactionManager()); factory.setBeanName("stepName"); return factory; }
@Test public void testProvideWithOverflow() throws Exception { provider = new SimpleChunkProvider<String>(new ListItemReader<>(Arrays.asList("foo", "bar")), new RepeatTemplate()) { @Override protected String read(StepContribution contribution, Chunk<String> chunk) throws SkipOverflowException, Exception { chunk.skip(new RuntimeException("Planned")); throw new SkipOverflowException("Overflow"); } }; Chunk<String> chunk = null; chunk = provider.provide(contribution); assertNotNull(chunk); assertEquals(0, chunk.getItems().size()); assertEquals(1, chunk.getErrors().size()); }
@Override protected void setUp() throws Exception { factory.setBeanName("RepeatOperationsStep"); factory.setItemReader(new ListItemReader<>(new ArrayList<>())); factory.setItemWriter(new EmptyItemWriter<>()); factory.setJobRepository(new JobRepositorySupport()); factory.setTransactionManager(new ResourcelessTransactionManager()); }
@Test public void testVanillaIteration() throws Exception { factory.setItemReader(new ListItemReader<>(Arrays.asList(StringUtils .commaDelimitedListToStringArray("1,2,3,4,5,6")))); Step step = factory.getObject(); StepExecution stepExecution = getStepExecution(step); step.execute(stepExecution); waitForResults(6, 10); assertEquals(6, TestItemWriter.count); assertEquals(6, stepExecution.getReadCount()); }
@Before public void setUp() { ItemReader<Integer> itemReader = new ListItemReader<>(createItems()); ItemProcessor<Integer, Integer> itemProcessor = item -> item > 20 ? null : item; ItemWriter<Integer> itemWriter = chunk -> { if (chunk.contains(1)) { throw new IllegalArgumentException(); } }; skipPolicy = new SkipIllegalArgumentExceptionSkipPolicy(); stepBuilder = new StepBuilderFactory(jobRepository, transactionManager).get("step") .<Integer, Integer>chunk(CHUNK_SIZE) .reader(itemReader) .processor(itemProcessor) .writer(itemWriter) .faultTolerant(); }
public void testStepOperationsWithoutChunkListener() throws Exception { factory.setItemReader(new ListItemReader<>(new ArrayList<>())); factory.setItemWriter(new EmptyItemWriter<>()); factory.setJobRepository(new JobRepositorySupport()); factory.setTransactionManager(new ResourcelessTransactionManager()); factory.setStepOperations(new RepeatOperations() { @Override public RepeatStatus iterate(RepeatCallback callback) { list = new ArrayList<>(); list.add("foo"); return RepeatStatus.FINISHED; } }); Step step = factory.getObject(); step.execute(new StepExecution(step.getName(), jobExecution)); assertEquals(1, list.size()); }
@Test public void testSkipInWriterTransactionalReader() throws Exception { writer.setFailures("4"); ItemReader<String> reader = new ListItemReader<>(TransactionAwareProxyFactory.createTransactionalList(Arrays.asList("1", "2", "3", "4", "5"))); factory.setItemReader(reader); factory.setCommitInterval(30); factory.setSkipLimit(10); factory.setIsReaderTransactionalQueue(true); Step step = factory.getObject(); step.execute(stepExecution); assertEquals(BatchStatus.COMPLETED, stepExecution.getStatus()); assertEquals("[]", writer.getCommitted().toString()); assertEquals("[1, 2, 3, 4]", writer.getWritten().toString()); assertEquals("[1, 2, 3, 4, 5, 1, 2, 3, 4, 5]", processor.getProcessed().toString()); }
/** * Test method to validate builder creates a * {@link org.springframework.batch.item.support.SingleItemPeekableItemReader#peek()} * with expected peek and read behavior. */ @Test public void testPeek() throws Exception { SingleItemPeekableItemReader<String> reader = new SingleItemPeekableItemReaderBuilder<String>() .delegate( new ListItemReader<>(Arrays.asList("a", "b"))) .build(); assertEquals("a", reader.peek()); assertEquals("a", reader.read()); assertEquals("b", reader.read()); assertEquals(null, reader.peek()); assertEquals(null, reader.read()); }