Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-7627

Quartz/Quartz2 in cluster mode doesn't apply changed trigger settings

    XMLWordPrintableJSON

Details

    • Patch Available
    • Unknown

    Description

      Camel-quartz2 component in clustered mode uses trigger options stored in DB rather (possibly changed) ones from endpoint's URI.

      Desirable behavior is to compare trigger options in DB and endpoint's URI and reschedule quartz job when they changed (like in camel-quartz component).

      Component camel-quartz already have this functionality, but there is no test for it and it works incorrectly with changed SimpleTrigger options.

      I attached a patch with unit tests. Every test prepares DB, than creates application context twice with different trigger options. Both times it retrieves options back, accessing them via trigger (not via endpoint, so that it uses values stored in DB). After that it asserts that retrieved options are indeed different.

      You can ensure, that the tests fail with old versions of org.apache.camel.component.quartz2.QuartzEndpoint#addJobInScheduler or org.apache.camel.component.quartz.QuartzComponent#hasTriggerChanged methods and pass with patched implementation.

      Attachments

        1. 0002-Test-trigger-type-change.patch
          7 kB
          Nikolay Turpitko
        2. 0001-Fix-reshedule-changed-trigger-after-restart.patch
          52 kB
          Nikolay Turpitko

        Activity

          People

            janstey Jonathan Anstey
            Nikolay-Turpitko Nikolay Turpitko
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: