/** * Wraps a {@link ItemWriter} in a {@link ItemWriterAdapter} if required for consumption * by the rest of the framework. * * @param itemWriter {@link ItemWriter} or {@link org.springframework.batch.item.ItemWriter} implementation * @throws IllegalArgumentException if itemWriter does not implement either version of ItemWriter */ @SuppressWarnings("unchecked") public void setStepItemWriter(Object itemWriter) { if(itemWriter instanceof org.springframework.batch.item.ItemWriter) { super.setItemWriter((org.springframework.batch.item.ItemWriter<O>) itemWriter); } else if(itemWriter instanceof ItemWriter){ super.setItemWriter(new ItemWriterAdapter<>((ItemWriter) itemWriter)); } else { throw new IllegalArgumentException("The definition of an item writer must implement either " + "org.springframework.batch.item.ItemWriter or javax.batch.api.chunk.ItemWriter"); } }
fb.setTaskExecutor(new SyncTaskExecutor()); fb.setItemReader(new DummyItemReader()); fb.setItemWriter(new DummyItemWriter()); fb.setStreams(new ItemStream[] {new FlatFileItemReader<>() }); fb.setCacheCapacity(5);
@Test public void testSimpleStep() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setHasChunkElement(true); fb.setBeanName("step1"); fb.setAllowStartIfComplete(true); fb.setJobRepository(new JobRepositorySupport()); fb.setStartLimit(5); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setListeners(new StepListener[] { new StepExecutionListenerSupport() }); fb.setIsolation(Isolation.DEFAULT); fb.setTransactionTimeout(-1); fb.setPropagation(Propagation.REQUIRED); fb.setChunkCompletionPolicy(new DummyCompletionPolicy()); fb.setTaskExecutor(new SyncTaskExecutor()); fb.setItemReader(new DummyItemReader()); fb.setItemProcessor(new PassThroughItemProcessor<>()); fb.setItemWriter(new DummyItemWriter()); fb.setStreams(new ItemStream[] {new FlatFileItemReader<>() }); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof ChunkOrientedTasklet<?>); }
@Test(expected = IllegalStateException.class) public void testSimpleStepAll() throws Exception { StepParserStepFactoryBean<Object, Object> fb = new StepParserStepFactoryBean<>(); fb.setBeanName("step1"); fb.setAllowStartIfComplete(true); fb.setJobRepository(new JobRepositorySupport()); fb.setStartLimit(5); fb.setTransactionManager(new ResourcelessTransactionManager()); fb.setListeners(new StepListener[] { new StepExecutionListenerSupport() }); fb.setIsolation(Isolation.DEFAULT); fb.setTransactionTimeout(-1); fb.setPropagation(Propagation.REQUIRED); fb.setChunkCompletionPolicy(new DummyCompletionPolicy()); fb.setCommitInterval(5); fb.setTaskExecutor(new SyncTaskExecutor()); fb.setItemReader(new DummyItemReader()); fb.setItemWriter(new DummyItemWriter()); fb.setStreams(new ItemStream[] {new FlatFileItemReader<>() }); fb.setHasChunkElement(true); Object step = fb.getObject(); assertTrue(step instanceof TaskletStep); Object tasklet = ReflectionTestUtils.getField(step, "tasklet"); assertTrue(tasklet instanceof ChunkOrientedTasklet<?>); }
fb.setItemReader(new DummyItemReader()); fb.setItemProcessor(new PassThroughItemProcessor<>()); fb.setItemWriter(new DummyItemWriter()); fb.setStreams(new ItemStream[] {new FlatFileItemReader<>() }); fb.setCacheCapacity(5);
/** * Wraps a {@link ItemWriter} in a {@link ItemWriterAdapter} if required for consumption * by the rest of the framework. * * @param itemWriter {@link ItemWriter} or {@link org.springframework.batch.item.ItemWriter} implementation * @throws IllegalArgumentException if itemWriter does not implement either version of ItemWriter */ @SuppressWarnings("unchecked") public void setStepItemWriter(Object itemWriter) { if(itemWriter instanceof org.springframework.batch.item.ItemWriter) { super.setItemWriter((org.springframework.batch.item.ItemWriter<O>) itemWriter); } else if(itemWriter instanceof ItemWriter){ super.setItemWriter(new ItemWriterAdapter<O>((ItemWriter) itemWriter)); } else { throw new IllegalArgumentException("The definition of an item writer must implement either " + "org.springframework.batch.item.ItemWriter or javax.batch.api.chunk.ItemWriter"); } }
/** * Wraps a {@link ItemWriter} in a {@link ItemWriterAdapter} if required for consumption * by the rest of the framework. * * @param itemWriter {@link ItemWriter} or {@link org.springframework.batch.item.ItemWriter} implementation * @throws IllegalArgumentException if itemWriter does not implement either version of ItemWriter */ @SuppressWarnings("unchecked") public void setStepItemWriter(Object itemWriter) { if(itemWriter instanceof org.springframework.batch.item.ItemWriter) { super.setItemWriter((org.springframework.batch.item.ItemWriter<O>) itemWriter); } else if(itemWriter instanceof ItemWriter){ super.setItemWriter(new ItemWriterAdapter<O>((ItemWriter) itemWriter)); } else { throw new IllegalArgumentException("The definition of an item writer must implement either " + "org.springframework.batch.item.ItemWriter or javax.batch.api.chunk.ItemWriter"); } }
/** * Wraps a {@link ItemWriter} in a {@link ItemWriterAdapter} if required for consumption * by the rest of the framework. * * @param itemWriter {@link ItemWriter} or {@link org.springframework.batch.item.ItemWriter} implementation * @throws IllegalArgumentException if itemWriter does not implement either version of ItemWriter */ @SuppressWarnings("unchecked") public void setStepItemWriter(Object itemWriter) { if(itemWriter instanceof org.springframework.batch.item.ItemWriter) { super.setItemWriter((org.springframework.batch.item.ItemWriter<O>) itemWriter); } else if(itemWriter instanceof ItemWriter){ super.setItemWriter(new ItemWriterAdapter<O>((ItemWriter) itemWriter)); } else { throw new IllegalArgumentException("The definition of an item writer must implement either " + "org.springframework.batch.item.ItemWriter or javax.batch.api.chunk.ItemWriter"); } }