/** * Wraps a {@link ItemProcessor} in a {@link ItemProcessorAdapter} if required for consumption * by the rest of the framework. * * @param itemProcessor {@link ItemProcessor} or {@link org.springframework.batch.item.ItemProcessor} implementation * @throws IllegalArgumentException if itemProcessor does not implement either version of ItemProcessor */ @SuppressWarnings("unchecked") public void setStepItemProcessor(Object itemProcessor) { if(itemProcessor instanceof org.springframework.batch.item.ItemProcessor) { super.setItemProcessor((org.springframework.batch.item.ItemProcessor<I, O>) itemProcessor); } else if(itemProcessor instanceof ItemProcessor){ super.setItemProcessor(new ItemProcessorAdapter<>((ItemProcessor) itemProcessor)); } else { throw new IllegalArgumentException("The definition of an item processor must implement either " + "org.springframework.batch.item.ItemProcessor or javax.batch.api.chunk.ItemProcessor"); } }
@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<?>); }
fb.setTaskExecutor(new SyncTaskExecutor()); fb.setItemReader(new DummyItemReader()); fb.setItemProcessor(new PassThroughItemProcessor<>()); fb.setItemWriter(new DummyItemWriter()); fb.setStreams(new ItemStream[] {new FlatFileItemReader<>() });
/** * Wraps a {@link ItemProcessor} in a {@link ItemProcessorAdapter} if required for consumption * by the rest of the framework. * * @param itemProcessor {@link ItemProcessor} or {@link org.springframework.batch.item.ItemProcessor} implementation * @throws IllegalArgumentException if itemProcessor does not implement either version of ItemProcessor */ @SuppressWarnings("unchecked") public void setStepItemProcessor(Object itemProcessor) { if(itemProcessor instanceof org.springframework.batch.item.ItemProcessor) { super.setItemProcessor((org.springframework.batch.item.ItemProcessor<I, O>) itemProcessor); } else if(itemProcessor instanceof ItemProcessor){ super.setItemProcessor(new ItemProcessorAdapter<I, O>((ItemProcessor)itemProcessor)); } else { throw new IllegalArgumentException("The definition of an item processor must implement either " + "org.springframework.batch.item.ItemProcessor or javax.batch.api.chunk.ItemProcessor"); } }
/** * Wraps a {@link ItemProcessor} in a {@link ItemProcessorAdapter} if required for consumption * by the rest of the framework. * * @param itemProcessor {@link ItemProcessor} or {@link org.springframework.batch.item.ItemProcessor} implementation * @throws IllegalArgumentException if itemProcessor does not implement either version of ItemProcessor */ @SuppressWarnings("unchecked") public void setStepItemProcessor(Object itemProcessor) { if(itemProcessor instanceof org.springframework.batch.item.ItemProcessor) { super.setItemProcessor((org.springframework.batch.item.ItemProcessor<I, O>) itemProcessor); } else if(itemProcessor instanceof ItemProcessor){ super.setItemProcessor(new ItemProcessorAdapter<I, O>((ItemProcessor)itemProcessor)); } else { throw new IllegalArgumentException("The definition of an item processor must implement either " + "org.springframework.batch.item.ItemProcessor or javax.batch.api.chunk.ItemProcessor"); } }
/** * Wraps a {@link ItemProcessor} in a {@link ItemProcessorAdapter} if required for consumption * by the rest of the framework. * * @param itemProcessor {@link ItemProcessor} or {@link org.springframework.batch.item.ItemProcessor} implementation * @throws IllegalArgumentException if itemProcessor does not implement either version of ItemProcessor */ @SuppressWarnings("unchecked") public void setStepItemProcessor(Object itemProcessor) { if(itemProcessor instanceof org.springframework.batch.item.ItemProcessor) { super.setItemProcessor((org.springframework.batch.item.ItemProcessor<I, O>) itemProcessor); } else if(itemProcessor instanceof ItemProcessor){ super.setItemProcessor(new ItemProcessorAdapter<I, O>((ItemProcessor)itemProcessor)); } else { throw new IllegalArgumentException("The definition of an item processor must implement either " + "org.springframework.batch.item.ItemProcessor or javax.batch.api.chunk.ItemProcessor"); } }