David Handermann created NIFI-12290:
---------------------------------------

             Summary: Move from Quartz to Spring Cron Expression
                 Key: NIFI-12290
                 URL: https://issues.apache.org/jira/browse/NIFI-12290
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Core Framework
            Reporter: David Handermann
            Assignee: David Handermann
             Fix For: 2.latest


The Quartz library supports [cron|https://en.wikipedia.org/wiki/Cron] 
expression parsing to enable framework component scheduling using the Cron 
strategy.

The Quartz library includes several legacy dependencies on HikariCP and C3P0 
which are not necessary for framework operations. The Quartz library also 
relies on {{java.util.Date}} for calculation, as opposed to {{java.time}} 
components.

Spring Framework 5.3 introduced new [Cron Expression 
capabilities|https://spring.io/blog/2020/11/10/new-in-spring-5-3-improved-cron-expressions]
 that provide standard compatibility with [Cron scheduling 
expressions|https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronExpression.html].
 The Spring CronExpression supports standard {{java.time}} classes.

The Spring 
[CronExpression|https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/support/CronExpression.html]
 has two differences from the Quartz implementation:

1. The Year field is not supported
2. The numeric day of the week representation begins with 0 instead of 1

These differences follow the capabilities of the standard Unix crontab, and are 
not commonly used. However, these differences could invalidate custom 
scheduling configurations that used numeric day of the week or year values.

Based on existing NiFI framework use of Spring, Quartz should be replaced with 
Spring Cron Expression parsing.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to