/*
* Copyright 2002-2009 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.scheduling.timer;
import java.util.TimerTask;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.scheduling.support.MethodInvokingRunnable;
/**
* {@link FactoryBean} that exposes a {@link TimerTask} object which
* delegates job execution to a specified (static or non-static) method.
* Avoids the need to implement a one-line TimerTask that just invokes
* an existing business method.
*
* <p>Derives from {@link MethodInvokingRunnable} to share common properties
* and behavior, effectively providing a TimerTask adapter for it.
*
* @author Juergen Hoeller
* @since 19.02.2004
* @see DelegatingTimerTask
* @see ScheduledTimerTask#setTimerTask
* @see ScheduledTimerTask#setRunnable
* @see org.springframework.scheduling.support.MethodInvokingRunnable
* @see org.springframework.beans.factory.config.MethodInvokingFactoryBean
* @deprecated as of Spring 3.0, in favor of the <code>scheduling.concurrent</code>
* package which is based on Java 5's <code>java.util.concurrent.ExecutorService</code>
*/
@Deprecated
public class MethodInvokingTimerTaskFactoryBean extends MethodInvokingRunnable implements FactoryBean<TimerTask> {
private TimerTask timerTask;
@Override
public void afterPropertiesSet() throws ClassNotFoundException, NoSuchMethodException {
super.afterPropertiesSet();
this.timerTask = new DelegatingTimerTask(this);
}
public TimerTask getObject() {
return this.timerTask;
}
public Class<TimerTask> getObjectType() {
return TimerTask.class;
}
public boolean isSingleton() {
return true;
}
}
|