## org.springframework.core.task.support
Class TaskExecutorAdapter

    java.lang.Object
      org.springframework.core.task.support.TaskExecutorAdapter

All Implemented Interfaces:
  Executor, AsyncTaskExecutor, TaskExecutor

    public class TaskExecutorAdapter

extends 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(Executor concurrentExecutor)` Create a new TaskExecutorAdapter, using the given JDK 1.5 concurrent executor.

Method Summary
`void` `execute(Runnable task)` Delegates to the specified JDK 1.5 concurrent executor.
`void` `execute(Runnable task, long startTimeout)` Execute the given `task`.

`

`<T> Future<T>`

`

`submit(Callable<T> task)`
Submit a Callable task for execution, receiving a Future representing that task.

`Future<?>` `submit(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(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(Runnable task)

  Delegates to the specified JDK 1.5 concurrent executor.

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

### execute

    public void execute(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 Future<?> submit(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> Future<T> submit(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