/** * Register explicitly set item listeners and auto-register reader, processor and writer if applicable */ private void registerSkipListeners() { // auto-register reader, processor and writer for (Object itemHandler : new Object[] { getReader(), getWriter(), getProcessor() }) { if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof SkipListener<?, ?>) { @SuppressWarnings("unchecked") SkipListener<? super I, ? super O> skipListener = (SkipListener<? super I, ? super O>) listener; skipListeners.add(skipListener); } } } }
protected void registerAsStreamsAndListeners(ItemReader<? extends I> itemReader, ItemProcessor<? super I, ? extends O> itemProcessor, ItemWriter<? super O> itemWriter) { for (Object itemHandler : new Object[] { itemReader, itemWriter, itemProcessor }) { if (itemHandler instanceof ItemStream) { stream((ItemStream) itemHandler); } if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof StepExecutionListener) { listener((StepExecutionListener) listener); } if (listener instanceof ChunkListener) { listener((ChunkListener) listener); } if (listener instanceof ItemReadListener<?> || listener instanceof ItemProcessListener<?, ?> || listener instanceof ItemWriteListener<?>) { itemListeners.add(listener); } } } }
@Test public void testAnnotationsIsListener() throws Exception { assertTrue(StepListenerFactoryBean.isListener(new Object() { @BeforeStep public void foo(StepExecution execution) { } })); }
@Test public void testMixedIsListener() throws Exception { assertTrue(StepListenerFactoryBean.isListener(new MultipleAfterStep())); }
@Test public void testInterfaceIsListener() throws Exception { assertTrue(StepListenerFactoryBean.isListener(new ThreeStepExecutionListener())); }
@Test public void testProxyWithNoTarget() throws Exception { ProxyFactory factory = new ProxyFactory(); factory.addInterface(DataSource.class); factory.addAdvice(new MethodInterceptor() { @Override public Object invoke(MethodInvocation invocation) throws Throwable { return null; } }); Object proxy = factory.getProxy(); assertFalse(StepListenerFactoryBean.isListener(proxy)); }
@Test public void testProxiedAnnotationsIsListener() throws Exception { Object delegate = new InitializingBean() { @BeforeStep public void foo(StepExecution execution) { } @Override public void afterPropertiesSet() throws Exception { } }; ProxyFactory factory = new ProxyFactory(delegate); Object proxy = factory.getProxy(); assertTrue(StepListenerFactoryBean.isListener(proxy)); ((StepExecutionListener) StepListenerFactoryBean.getListener(proxy)).beforeStep(null); }
/** * Register explicitly set item listeners and auto-register reader, processor and writer if applicable */ private void registerSkipListeners() { // auto-register reader, processor and writer for (Object itemHandler : new Object[] { getReader(), getWriter(), getProcessor() }) { if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof SkipListener<?, ?>) { @SuppressWarnings("unchecked") SkipListener<? super I, ? super O> skipListener = (SkipListener<? super I, ? super O>) listener; skipListeners.add(skipListener); } } } }
/** * Register explicitly set item listeners and auto-register reader, processor and writer if applicable */ private void registerSkipListeners() { // auto-register reader, processor and writer for (Object itemHandler : new Object[] { getReader(), getWriter(), getProcessor() }) { if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof SkipListener<?, ?>) { @SuppressWarnings("unchecked") SkipListener<? super I, ? super O> skipListener = (SkipListener<? super I, ? super O>) listener; skipListeners.add(skipListener); } } } }
/** * Register explicitly set item listeners and auto-register reader, processor and writer if applicable */ private void registerSkipListeners() { // auto-register reader, processor and writer for (Object itemHandler : new Object[] { getReader(), getWriter(), getProcessor() }) { if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof SkipListener<?, ?>) { @SuppressWarnings("unchecked") SkipListener<? super I, ? super O> skipListener = (SkipListener<? super I, ? super O>) listener; skipListeners.add(skipListener); } } } }
protected void registerAsStreamsAndListeners(ItemReader<? extends I> itemReader, ItemProcessor<? super I, ? extends O> itemProcessor, ItemWriter<? super O> itemWriter) { for (Object itemHandler : new Object[] { itemReader, itemWriter, itemProcessor }) { if (itemHandler instanceof ItemStream) { stream((ItemStream) itemHandler); } if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof StepExecutionListener) { listener((StepExecutionListener) listener); } if (listener instanceof ChunkListener) { listener((ChunkListener) listener); } if (listener instanceof ItemReadListener<?> || listener instanceof ItemProcessListener<?, ?> || listener instanceof ItemWriteListener<?>) { itemListeners.add(listener); } } } }
protected void registerAsStreamsAndListeners(ItemReader<? extends I> itemReader, ItemProcessor<? super I, ? extends O> itemProcessor, ItemWriter<? super O> itemWriter) { for (Object itemHandler : new Object[] { itemReader, itemWriter, itemProcessor }) { if (itemHandler instanceof ItemStream) { stream((ItemStream) itemHandler); } if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof StepExecutionListener) { listener((StepExecutionListener) listener); } if (listener instanceof ChunkListener) { listener((ChunkListener) listener); } if (listener instanceof ItemReadListener<?> || listener instanceof ItemProcessListener<?, ?> || listener instanceof ItemWriteListener<?>) { itemListeners.add(listener); } } } }
protected void registerAsStreamsAndListeners(ItemReader<? extends I> itemReader, ItemProcessor<? super I, ? extends O> itemProcessor, ItemWriter<? super O> itemWriter) { for (Object itemHandler : new Object[] { itemReader, itemWriter, itemProcessor }) { if (itemHandler instanceof ItemStream) { stream((ItemStream) itemHandler); } if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof StepExecutionListener) { listener((StepExecutionListener) listener); } if (listener instanceof ChunkListener) { listener((ChunkListener) listener); } if (listener instanceof ItemReadListener<?> || listener instanceof ItemProcessListener<?, ?> || listener instanceof ItemWriteListener<?>) { itemListeners.add(listener); } } } }
/** * Register listeners with step and chunk. */ private void registerStepListeners(TaskletStep step, RepeatOperations chunkOperations) { for (Object itemHandler : new Object[] { getItemReader(), itemWriter, itemProcessor }) { if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof StepExecutionListener) { step.registerStepExecutionListener((StepExecutionListener) listener); } if (listener instanceof ChunkListener) { step.registerChunkListener((ChunkListener) listener); } } } step.setStepExecutionListeners(BatchListenerFactoryHelper.getListeners(listeners, StepExecutionListener.class) .toArray(new StepExecutionListener[] {})); step.setChunkListeners(BatchListenerFactoryHelper.getListeners(listeners, ChunkListener.class).toArray( new ChunkListener[] {})); }
if (StepListenerFactoryBean.isListener(itemHandler)) { StepListener listener = StepListenerFactoryBean.getListener(itemHandler); if (listener instanceof SkipListener<?,?>) {