The Spring Framework

## org.springframework.scheduling.support
Class MethodInvokingRunnable

    java.lang.Object
      org.springframework.util.MethodInvoker
          org.springframework.beans.support.ArgumentConvertingMethodInvoker
              org.springframework.scheduling.support.MethodInvokingRunnable

All Implemented Interfaces:
  Runnable, BeanClassLoaderAware, InitializingBean

Direct Known Subclasses:
  MethodInvokingTimerTaskFactoryBean

    public class MethodInvokingRunnable

extends ArgumentConvertingMethodInvoker
implements Runnable, BeanClassLoaderAware, InitializingBean

Adapter that implements the `Runnable` interface as a configurable method invocation based on Spring's MethodInvoker.

Inherits common configuration properties from `MethodInvoker`.

Useful to generically encapsulate a method invocation as timer task for `java.util.Timer`, in combination with a `DelegatingTimerTask` adapter. Can also be used with JDK 1.5's `java.util.concurrent.Executor` abstraction, which works with plain Runnables.

Extended by Spring's `MethodInvokingTimerTaskFactoryBean` adapter for `java.util.TimerTask`. Note that you can populate a ScheduledTimerTask object with a plain MethodInvokingRunnable instance as well, which will automatically get wrapped with a DelegatingTimerTask.

Since:
  1.2.4
Author:
  Juergen Hoeller
See Also:
  `ScheduledTimerTask.setRunnable(Runnable)`, `Executor.execute(Runnable)`

Field Summary
`protected Log` `logger`

Constructor Summary
`MethodInvokingRunnable()`

Method Summary
`void` `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
`protected String` `getInvocationFailureMessage()` Build a message for an invocation failure exception.
`protected Class` `resolveClassName(String className)` Resolve the given class name into a Class.
`void` `run()`
`void` `setBeanClassLoader(ClassLoader classLoader)` Callback that supplies the bean `class loader` to a bean instance.

Methods inherited from class org.springframework.beans.support.ArgumentConvertingMethodInvoker
`doFindMatchingMethod, findMatchingMethod, getDefaultTypeConverter, getTypeConverter, registerCustomEditor, setTypeConverter`

Methods inherited from class org.springframework.util.MethodInvoker
`getArguments, getPreparedMethod, getTargetClass, getTargetMethod, getTargetObject, getTypeDifferenceWeight, invoke, isPrepared, prepare, setArguments, setStaticMethod, setTargetClass, setTargetMethod, setTargetObject`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### logger

    protected final Log logger

Constructor Detail

### MethodInvokingRunnable

    public MethodInvokingRunnable()

Method Detail

### setBeanClassLoader

    public void setBeanClassLoader(ClassLoader classLoader)

  Description copied from interface: `BeanClassLoaderAware`
  Callback that supplies the bean `class loader` to a bean instance.

  Invoked after the population of normal bean properties but before an initialization callback such as `InitializingBean's` `InitializingBean.afterPropertiesSet()` method or a custom init-method.

  Specified by:
    `setBeanClassLoader` in interface `BeanClassLoaderAware`
  Parameters:
    `classLoader` - the owning class loader; may be `null` in which case a default `ClassLoader` must be used, for example the `ClassLoader` obtained via `ClassUtils.getDefaultClassLoader()`

### resolveClassName

    protected Class resolveClassName(String className)
                              throws ClassNotFoundException

  Description copied from class: `MethodInvoker`
  Resolve the given class name into a Class.

  The default implementations uses `ClassUtils.forName`, using the thread context class loader.

  Overrides:
    `resolveClassName` in class `MethodInvoker`
  Parameters:
    `className` - the class name to resolve
  Returns:
    the resolved Class
  Throws:
    `ClassNotFoundException` - if the class name was invalid

### afterPropertiesSet

    public void afterPropertiesSet()
                            throws ClassNotFoundException,
                                   NoSuchMethodException

  Description copied from interface: `InitializingBean`
  Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

  This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

  Specified by:
    `afterPropertiesSet` in interface `InitializingBean`
  Throws:
    `ClassNotFoundException`
    `NoSuchMethodException`

### run

    public void run()

  Specified by:
    `run` in interface `Runnable`

### getInvocationFailureMessage

    protected String getInvocationFailureMessage()

  Build a message for an invocation failure exception.

  Returns:
    the error message, including the target method name etc

The Spring Framework

Copyright © 2002-2008 The Spring Framework.