diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java index 69250486aeb..91dae748775 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/AdaptableJobFactory.java @@ -31,6 +31,7 @@ import org.springframework.util.ReflectionUtils; * objects as well as standard Quartz {@link org.quartz.Job} instances. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @since 2.0 diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java index c5336d18ee3..5a29248d56e 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/CronTriggerBean.java @@ -107,7 +107,9 @@ public class CronTriggerBean extends CronTrigger * by the TriggerListener implementation. * @see SchedulerFactoryBean#setTriggerListeners * @see org.quartz.TriggerListener#getName + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setTriggerListenerNames(String... names) { for (String name : names) { addTriggerListener(name); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java index 8e89856daba..f0d7762225c 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/JobDetailBean.java @@ -82,7 +82,7 @@ public class JobDetailBean extends JobDetail * to adapt the given job class to the Quartz Job interface. */ @Override - public Class getJobClass() { + public Class getJobClass() { return (this.actualJobClass != null ? this.actualJobClass : super.getJobClass()); } @@ -97,7 +97,7 @@ public class JobDetailBean extends JobDetail * (for example Spring-managed beans) * @see SchedulerFactoryBean#setSchedulerContextAsMap */ - public void setJobDataAsMap(Map jobDataAsMap) { + public void setJobDataAsMap(Map jobDataAsMap) { getJobDataMap().putAll(jobDataAsMap); } @@ -108,7 +108,9 @@ public class JobDetailBean extends JobDetail * by the JobListener implementation. * @see SchedulerFactoryBean#setJobListeners * @see org.quartz.JobListener#getName + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setJobListenerNames(String... names) { for (String name : names) { addJobListener(name); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java index 1c89384ffd6..2bf9d504dc4 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java @@ -68,6 +68,7 @@ import org.springframework.util.ReflectionUtils; * where you want a persistent job to delegate to a specific service method. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @author Alef Arendsen @@ -171,7 +172,9 @@ public class MethodInvokingJobDetailFactoryBean extends ArgumentConvertingMethod * by the JobListener implementation. * @see SchedulerFactoryBean#setJobListeners * @see org.quartz.JobListener#getName + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setJobListenerNames(String... names) { this.jobListenerNames = names; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java index d75b6f431f2..20e7db5cae4 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java @@ -53,6 +53,7 @@ import org.springframework.util.ReflectionUtils; * {@link SchedulerAccessorBean} classes. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @since 2.5.6 @@ -64,6 +65,7 @@ public abstract class SchedulerAccessor implements ResourceLoaderAware { private static Class triggerKeyClass; static { + // Quartz 2.0 job/trigger key available? try { jobKeyClass = Class.forName("org.quartz.JobKey"); triggerKeyClass = Class.forName("org.quartz.TriggerKey"); @@ -102,6 +104,13 @@ public abstract class SchedulerAccessor implements ResourceLoaderAware { protected ResourceLoader resourceLoader; + public SchedulerAccessor() { + if (jobKeyClass == null && logger.isInfoEnabled()) { + logger.info("Spring's Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+"); + } + } + + /** * Set whether any jobs defined on this SchedulerFactoryBean should overwrite * existing job definitions. Default is "false", to not overwrite already @@ -202,7 +211,9 @@ public abstract class SchedulerAccessor implements ResourceLoaderAware { * manually register a Matcher against the Quartz ListenerManager instead. * @see org.quartz.JobListener#getName * @see JobDetailBean#setJobListenerNames + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setJobListeners(JobListener... jobListeners) { this.jobListeners = jobListeners; } @@ -224,7 +235,9 @@ public abstract class SchedulerAccessor implements ResourceLoaderAware { * @see org.quartz.TriggerListener#getName * @see CronTriggerBean#setTriggerListenerNames * @see SimpleTriggerBean#setTriggerListenerNames + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setTriggerListeners(TriggerListener... triggerListeners) { this.triggerListeners = triggerListeners; } diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java index 59f328736f3..5bb0a6553c9 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessorBean.java @@ -30,6 +30,7 @@ import org.springframework.beans.factory.ListableBeanFactory; * triggers and listeners on a given {@link org.quartz.Scheduler} instance. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @since 2.5.6 diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java index 33c0200ab80..6ba38dcaf98 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerFactoryBean.java @@ -76,6 +76,7 @@ import org.springframework.util.CollectionUtils; * Alternatively, you may add transactional advice for the Scheduler itself. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @since 18.02.2004 @@ -454,10 +455,8 @@ public class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe this.resourceLoader = this.applicationContext; } - // Create SchedulerFactory instance. - SchedulerFactory schedulerFactory = (SchedulerFactory) - BeanUtils.instantiateClass(this.schedulerFactoryClass); - + // Create SchedulerFactory instance... + SchedulerFactory schedulerFactory = BeanUtils.instantiateClass(this.schedulerFactoryClass); initSchedulerFactory(schedulerFactory); if (this.resourceLoader != null) { @@ -520,9 +519,7 @@ public class SchedulerFactoryBean extends SchedulerAccessor implements FactoryBe * Load and/or apply Quartz properties to the given SchedulerFactory. * @param schedulerFactory the SchedulerFactory to initialize */ - private void initSchedulerFactory(SchedulerFactory schedulerFactory) - throws SchedulerException, IOException { - + private void initSchedulerFactory(SchedulerFactory schedulerFactory) throws SchedulerException, IOException { if (!(schedulerFactory instanceof StdSchedulerFactory)) { if (this.configLocation != null || this.quartzProperties != null || this.taskExecutor != null || this.dataSource != null) { diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java index d7d432d05ba..089243186b6 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SimpleTriggerBean.java @@ -112,7 +112,9 @@ public class SimpleTriggerBean extends SimpleTrigger * by the TriggerListener implementation. * @see SchedulerFactoryBean#setTriggerListeners * @see org.quartz.TriggerListener#getName + * @deprecated as of Spring 4.0, since it only works on Quartz 1.x */ + @Deprecated public void setTriggerListenerNames(String... names) { for (String name : names) { addTriggerListener(name); diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java index 37673147b90..7cba4564968 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SpringBeanJobFactory.java @@ -38,6 +38,7 @@ import org.springframework.util.ReflectionUtils; * is by default simply ignored. This is analogous to QuartzJobBean's behavior. * *

Compatible with Quartz 1.8 as well as Quartz 2.0-2.2, as of Spring 4.0. + * Note: Quartz 1.x support is deprecated - please upgrade to Quartz 2.0+. * * @author Juergen Hoeller * @since 2.0