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

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

    XMLWordPrintableJSON

    Details

    • Patch Info:
      Patch Available
    • Estimated Complexity:
      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. 0001-Fix-reshedule-changed-trigger-after-restart.patch
          52 kB
          Nikolay Turpitko
        2. 0002-Test-trigger-type-change.patch
          7 kB
          Nikolay Turpitko

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved: