org.springframework.batch.integration.async
Class AsyncItemProcessor<I,O>

java.lang.Object
  extended by org.springframework.batch.integration.async.AsyncItemProcessor<I,O>
Type Parameters:
I - the input object type
O - the output object type (will be wrapped in a Future)
All Implemented Interfaces:
ItemProcessor<I,Future<O>>, InitializingBean

public class AsyncItemProcessor<I,O>
extends Object
implements ItemProcessor<I,Future<O>>, InitializingBean

An ItemProcessor that delegates to a nested processor and in the background. To allow for background processing the return value from the processor is a Future which needs to be unpacked before the item can be used by a client.

Author:
Dave Syer

Constructor Summary
AsyncItemProcessor()
           
 
Method Summary
 void afterPropertiesSet()
          Check mandatory properties (the setDelegate(ItemProcessor)).
 Future<O> process(I item)
          Transform the input by delegating to the provided item processor.
 void setDelegate(ItemProcessor<I,O> delegate)
          The ItemProcessor to use to delegate processing to in a background thread.
 void setTaskExecutor(TaskExecutor taskExecutor)
          The TaskExecutor to use to allow the item processing to proceed in the background.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AsyncItemProcessor

public AsyncItemProcessor()
Method Detail

afterPropertiesSet

public void afterPropertiesSet()
                        throws Exception
Check mandatory properties (the setDelegate(ItemProcessor)).

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
Exception
See Also:
InitializingBean.afterPropertiesSet()

setDelegate

public void setDelegate(ItemProcessor<I,O> delegate)
The ItemProcessor to use to delegate processing to in a background thread.

Parameters:
delegate - the ItemProcessor to use as a delegate

setTaskExecutor

public void setTaskExecutor(TaskExecutor taskExecutor)
The TaskExecutor to use to allow the item processing to proceed in the background. Defaults to a SyncTaskExecutor so no threads are created unless this is overridden.

Parameters:
taskExecutor - a TaskExecutor

process

public Future<O> process(I item)
                  throws Exception
Transform the input by delegating to the provided item processor. The return value is wrapped in a Future so that clients can unpack it later.

Specified by:
process in interface ItemProcessor<I,Future<O>>
Throws:
Exception
See Also:
ItemProcessor.process(Object)


Copyright © 2011. All Rights Reserved.