Spring Framework

org.springframework.core.task.support
Class TaskExecutorAdapter

java.lang.Object
  extended by org.springframework.core.task.support.TaskExecutorAdapter
All Implemented Interfaces:
java.util.concurrent.Executor, AsyncTaskExecutor, TaskExecutor

public class TaskExecutorAdapter
extends java.lang.Object
implements AsyncTaskExecutor

Adapter that takes a JDK 1.5 java.util.concurrent.Executor and exposes a Spring TaskExecutor for it. Also detects an extended java.util.concurrent.ExecutorService, adapting the AsyncTaskExecutor interface accordingly.

Since:
3.0
Author:
Juergen Hoeller
See Also:
Executor, ExecutorService, Executors

Field Summary
 
Fields inherited from interface org.springframework.core.task.AsyncTaskExecutor
TIMEOUT_IMMEDIATE, TIMEOUT_INDEFINITE
 
Constructor Summary
TaskExecutorAdapter(java.util.concurrent.Executor concurrentExecutor)
          Create a new TaskExecutorAdapter, using the given JDK 1.5 concurrent executor.
 
Method Summary
 void execute(java.lang.Runnable task)
          Delegates to the specified JDK 1.5 concurrent executor.
 void execute(java.lang.Runnable task, long startTimeout)
          Execute the given task.
<T> java.util.concurrent.Future<T>
submit(java.util.concurrent.Callable<T> task)
          Submit a Callable task for execution, receiving a Future representing that task.
 java.util.concurrent.Future<?> submit(java.lang.Runnable task)
          Submit a Runnable task for execution, receiving a Future representing that task.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TaskExecutorAdapter

public TaskExecutorAdapter(java.util.concurrent.Executor concurrentExecutor)
Create a new TaskExecutorAdapter, using the given JDK 1.5 concurrent executor.

Parameters:
concurrentExecutor - the JDK 1.5 concurrent executor to delegate to
Method Detail

execute

public void execute(java.lang.Runnable task)
Delegates to the specified JDK 1.5 concurrent executor.

Specified by:
execute in interface java.util.concurrent.Executor
Specified by:
execute in interface TaskExecutor
Parameters:
task - the Runnable to execute (never null)
See Also:
Executor.execute(Runnable)

execute

public void execute(java.lang.Runnable task,
                    long startTimeout)
Description copied from interface: AsyncTaskExecutor
Execute the given task.

Specified by:
execute in interface AsyncTaskExecutor
Parameters:
task - the Runnable to execute (never null)
startTimeout - the time duration (milliseconds) within which the task is supposed to start. This is intended as a hint to the executor, allowing for preferred handling of immediate tasks. Typical values are AsyncTaskExecutor.TIMEOUT_IMMEDIATE or AsyncTaskExecutor.TIMEOUT_INDEFINITE (the default as used by TaskExecutor.execute(Runnable)).

submit

public java.util.concurrent.Future<?> submit(java.lang.Runnable task)
Description copied from interface: AsyncTaskExecutor
Submit a Runnable task for execution, receiving a Future representing that task. The Future will return a null result upon completion.

Specified by:
submit in interface AsyncTaskExecutor
Parameters:
task - the Runnable to execute (never null)
Returns:
a Future representing pending completion of the task

submit

public <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
Description copied from interface: AsyncTaskExecutor
Submit a Callable task for execution, receiving a Future representing that task. The Future will return the Callable's result upon completion.

Specified by:
submit in interface AsyncTaskExecutor
Parameters:
task - the Callable to execute (never null)
Returns:
a Future representing pending completion of the task

Spring Framework