What’s New In Quartz Scheduler 2.2

We’d like to express thanks to the community contributors that provided ideas and patches for much of the work contained in this release!

API Changes with 2.2.0 (including some minor backward compatibility breakage)

  • QTZ-292 - Scheduler interface : in the method scheduleJobs , the triggers should be part of a Set instead of a List
  • QTZ-304 - Scheduler#scheduleJobs API change to support generics and avoid cast
  • QTZ-366 - Deleted the long-deprecated CloudscapeDelegate
  • QTZ-212 - Add schedulerStarting() method to SchedulerListener interface
  • QTZ-225 - Make the Scheduler’s ClassLoadHelper available to plugins when they are initialized

  • For those using JDBC JobStore, there is a schema change that requires the addition of a column to the fired_triggers table, you can add such with a SQL statement such as this (with slight variants on data type needed depending upon your database flavor):
    • for oracle: ALTER TABLE QRTZ_FIRED_TRIGGERS ADD COLUMN SCHED_TIME NUMBER(13) NOT NULL;
    • for postgresql: ALTER TABLE QRTZ_FIRED_TRIGGERS ADD COLUMN SCHED_TIME BIGINT NOT NULL;
    • for MySql: ALTER TABLE QRTZ_FIRED_TRIGGERS ADD COLUMN SCHED_TIME BIGINT(13) NOT NULL;
    • etc.

New Features in 2.2.0

  • QTZ-370 - Ability to override default transaction timeout when beginning new UserTransaction
  • QTZ-323 - Ability to override worker thread names (when using SimpleThreadPool)
  • QTZ-79 - Improvements to the out-of-the-box SendMailJob
  • QTZ-121 - Create an EJB Job invoker that supports EJB3
  • QTZ-267 - Add new Scheduler method: scheduleJob(JobDetail job, Set trigger) to schedule multiple triggers for a job all at once.
  • QTZ-272 - Add initialize() to ConnectionProvider interface
  • QTZ-275 - Allow ‘triggerless’ initial storing of non-durable jobs.
  • QTZ-315 - Improvements for Job Recovery Information
  • QTZ-154 - OSGi support

Miscellaneous with 2.2.0

  • The Quartz library is now distributed only as two jar files: one with all Quartz functionality, one with the out-of-the-box jobs (see QTZ-378)

  • Quartz now requires JDK 1.6 or newer (QTZ-286)

  • Performance improvements, including:
    • Improvements to some select statements in JDBC JobStore
  • Some internal SPI/interface refactorings (cleanups) such as on DriverDelegate and its subclasses, the Semaphore class, etc.

  • Various bug fixes, for complete listing see the release notes from Jira: https://jira.terracotta.org/jira/secure/ReleaseNote.jspa?projectId=10282&version=11041