This is an automated email from the ASF dual-hosted git repository.
mosermw pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 786784ef62 NIFI-12290 Migrated from Quartz to Spring for Cron
Expressions
786784ef62 is described below
commit 786784ef62188b2b018ee262c2e8a750fb507789
Author: exceptionfactory <[email protected]>
AuthorDate: Sat Oct 28 18:42:46 2023 -0500
NIFI-12290 Migrated from Quartz to Spring for Cron Expressions
- Removed support for Year field in Cron Expressions
- Changed numeric Day of Week field from starting with 1 to starting with 0
- Removed Quartz and C3P0 from Notice files
This closes #7951
Signed-off-by: Mike Moser <[email protected]>
---
minifi/minifi-assembly/NOTICE | 22 ----
minifi/minifi-c2/minifi-c2-assembly/NOTICE | 21 ----
.../src/main/resources/META-INF/NOTICE | 21 ----
.../src/main/resources/META-INF/NOTICE | 21 ----
.../minifi-toolkit/minifi-toolkit-assembly/NOTICE | 21 ----
nifi-assembly/NOTICE | 21 ----
nifi-dependency-check-maven/suppressions.xml | 5 -
nifi-docs/src/main/asciidoc/user-guide.adoc | 9 +-
.../nifi-kafka-connector-assembly/NOTICE | 9 --
.../src/main/resources/META-INF/NOTICE | 21 ----
.../nifi-framework-components/pom.xml | 4 +-
.../nifi/controller/StandardProcessorNode.java | 4 +-
.../org/apache/nifi/controller/FlowController.java | 6 +-
.../scheduling/AbstractSchedulingAgent.java | 2 +-
...hedulingAgent.java => CronSchedulingAgent.java} | 58 ++++++-----
.../scheduling/CronSchedulingAgentTest.java | 114 +++++++++++++++++++++
.../controller/scheduling/DummyScheduleState.java | 26 -----
.../nifi-framework/nifi-web/nifi-web-api/pom.xml | 5 -
.../nifi/web/dao/impl/StandardProcessorDAO.java | 9 +-
.../web/dao/impl/StandardReportingTaskDAO.java | 9 +-
.../src/main/resources/META-INF/NOTICE | 21 ----
.../src/main/resources/META-INF/NOTICE | 21 ----
nifi-nar-bundles/nifi-framework-bundle/pom.xml | 5 -
.../src/main/resources/META-INF/NOTICE | 21 ----
nifi-stateless/nifi-stateless-assembly/NOTICE | 8 --
.../src/main/resources/META-INF/NOTICE | 9 --
26 files changed, 164 insertions(+), 329 deletions(-)
diff --git a/minifi/minifi-assembly/NOTICE b/minifi/minifi-assembly/NOTICE
index 82b55b88d9..e37359ea7c 100644
--- a/minifi/minifi-assembly/NOTICE
+++ b/minifi/minifi-assembly/NOTICE
@@ -589,28 +589,6 @@ The following binary components are provided under the
Apache Software License v
Curator Recipes
Copyright 2011-2014 The Apache Software Foundation
-
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software
AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates
and/or their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at https://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- https://softwareag.com/licenses and/or in the root installation
directory of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
************************
Common Development and Distribution License 1.1
************************
diff --git a/minifi/minifi-c2/minifi-c2-assembly/NOTICE
b/minifi/minifi-c2/minifi-c2-assembly/NOTICE
index 8dbf0ee4be..ca826d00b0 100644
--- a/minifi/minifi-c2/minifi-c2-assembly/NOTICE
+++ b/minifi/minifi-c2/minifi-c2-assembly/NOTICE
@@ -160,27 +160,6 @@ The following binary components are provided under the
Apache Software License v
Spring Framework 5
Copyright (c) 2002-2021 Pivotal, Inc.
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software
AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates
and/or their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at https://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- https://softwareag.com/licenses and/or in the root installation
directory of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Apache Commons IO
The following NOTICE information applies:
Apache Commons IO
diff --git
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/src/main/resources/META-INF/NOTICE
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/src/main/resources/META-INF/NOTICE
index 4bf7e7e3b7..977bf13588 100644
---
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/src/main/resources/META-INF/NOTICE
+++
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework-nar/src/main/resources/META-INF/NOTICE
@@ -109,27 +109,6 @@ The following binary components are provided under the
Apache Software License v
The following NOTICE information applies:
Copyright 2011 JsonPath authors
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software AG
USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or
their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned herein
may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation directory
of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Jackson JSON processor
The following NOTICE information applies:
# Jackson JSON processor
diff --git
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-server/src/main/resources/META-INF/NOTICE
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-server/src/main/resources/META-INF/NOTICE
index a38c57ba46..e64fc8c3d2 100644
---
a/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-server/src/main/resources/META-INF/NOTICE
+++
b/minifi/minifi-nar-bundles/minifi-framework-bundle/minifi-framework/minifi-server/src/main/resources/META-INF/NOTICE
@@ -111,27 +111,6 @@ The following binary components are provided under the
Apache Software License v
The following NOTICE information applies:
Copyright 2011 JsonPath authors
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software AG
USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or
their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned herein
may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation directory
of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Jackson JSON processor
The following NOTICE information applies:
# Jackson JSON processor
diff --git a/minifi/minifi-toolkit/minifi-toolkit-assembly/NOTICE
b/minifi/minifi-toolkit/minifi-toolkit-assembly/NOTICE
index 8afb777918..89181f7c06 100644
--- a/minifi/minifi-toolkit/minifi-toolkit-assembly/NOTICE
+++ b/minifi/minifi-toolkit/minifi-toolkit-assembly/NOTICE
@@ -109,27 +109,6 @@ The following binary components are provided under the
Apache Software License v
Spring Framework 5
Copyright (c) 2002-2021 Pivotal, Inc.
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software
AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates
and/or their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at https://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- https://softwareag.com/licenses and/or in the root installation
directory of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Apache Commons IO
The following NOTICE information applies:
Apache Commons IO
diff --git a/nifi-assembly/NOTICE b/nifi-assembly/NOTICE
index be10b2e9cf..c85be06b05 100644
--- a/nifi-assembly/NOTICE
+++ b/nifi-assembly/NOTICE
@@ -295,27 +295,6 @@ The following binary components are provided under the
Apache Software License v
The Apache Tika Plugin includes developed at
The Apache Software Foundation (http://www.apache.org/).
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software
AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates
and/or their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation
directory of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) JCommander
The following NOTICE information applies:
JCommander Copyright Notices
diff --git a/nifi-dependency-check-maven/suppressions.xml
b/nifi-dependency-check-maven/suppressions.xml
index 4aabb50d94..97ceaf1c8a 100644
--- a/nifi-dependency-check-maven/suppressions.xml
+++ b/nifi-dependency-check-maven/suppressions.xml
@@ -194,11 +194,6 @@
<packageUrl
regex="true">^pkg:maven/org\.apache\.solr/solr\-solrj@.*$</packageUrl>
<cve>CVE-2023-44487</cve>
</suppress>
- <suppress>
- <notes>Quartz maintainers dispute CVE-2023-39017 because it requires
code injection from external users</notes>
- <packageUrl
regex="true">^pkg:maven/org\.quartz\-scheduler/quartz@.*$</packageUrl>
- <cve>CVE-2023-39017</cve>
- </suppress>
<suppress>
<notes>Avro project vulnerabilities do not apply to Parquet
Avro</notes>
<packageUrl
regex="true">^pkg:maven/org\.apache\.parquet/parquet\-avro@.*$</packageUrl>
diff --git a/nifi-docs/src/main/asciidoc/user-guide.adoc
b/nifi-docs/src/main/asciidoc/user-guide.adoc
index d46f999b98..bc5cc447d7 100644
--- a/nifi-docs/src/main/asciidoc/user-guide.adoc
+++ b/nifi-docs/src/main/asciidoc/user-guide.adoc
@@ -577,10 +577,8 @@ The first configuration option is the Scheduling Strategy.
There are three possi
|1-12 or JAN-DEC
|Day of Week
-|1-7 or SUN-SAT
+|0-7 or SUN-SAT (0 or 7 is Sunday)
-|Year (optional)
-|empty, 1970-2099
|===
You typically specify values one of the following ways:
@@ -598,11 +596,8 @@ example, 1L indicates the last Sunday of the month.
For example:
-* The string `0 0 13 * * ?` indicates that you want to schedule the processor
to run at 1:00 PM every day.
+* The string `0 0 13 * * *` indicates that you want to schedule the processor
to run at 1:00 PM every day.
* The string `0 20 14 ? * MON-FRI` indicates that you want to schedule the
processor to run at 2:20 PM every Monday through Friday.
-* The string `0 15 10 ? * 6L 2011-2017` indicates that you want to schedule
the processor to run at 10:15 AM, on the last Friday of every month, between
2011 and 2017.
-
-For additional information and examples, see the
link:https://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/tutorial-lesson-06.html[cron
triggers tutorial] in the
link:https://www.quartz-scheduler.org/documentation/[Quartz Documentation^].
===== Concurrent Tasks
Next, the Scheduling tab provides a configuration option named 'Concurrent
Tasks'. This controls how many threads the Processor
diff --git
a/nifi-external/nifi-kafka-connect/nifi-kafka-connector-assembly/NOTICE
b/nifi-external/nifi-kafka-connect/nifi-kafka-connector-assembly/NOTICE
index e0fe281b12..3a0c14ec89 100644
--- a/nifi-external/nifi-kafka-connect/nifi-kafka-connector-assembly/NOTICE
+++ b/nifi-external/nifi-kafka-connect/nifi-kafka-connector-assembly/NOTICE
@@ -136,12 +136,3 @@ The following binary components are provided under the
Common Development and Di
(CDDL 1.1) (GPL2 w/ CPE) jersey-media-multipart
(org.glassfish.jersey.media:jersey-media-multipart:jar:2.26 -
https://jersey.github.io/)
(CDDL 1.1) (GPL2 w/ CPE) MIME Streaming Extension
(org.jvnet.mimepull:mimepull:jar:1.9.3 - http://mimepull.java.net)
(CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle
(org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 -
http://glassfish.org/osgi-resource-locator)
-
-
-************************
-Eclipse Public License 1.0
-************************
-
-The following binary components are provided under the Eclipse Public License
1.0. See project link for details.
-
- (EPL 1.0)(LGPL 2.1) c3p0 (com.mchange:c3p0:jar:0.9.5.4 -
https://github.com/swaldman/c3p0)
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE
index 7fd5e92920..b84361b3c1 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework-nar/src/main/resources/META-INF/NOTICE
@@ -124,27 +124,6 @@ The following binary components are provided under the
Apache Software License v
The following NOTICE information applies:
Copyright 2011 JsonPath authors
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software AG
USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or
their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned herein
may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation directory
of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Jackson JSON processor
The following NOTICE information applies:
# Jackson JSON processor
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/pom.xml
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/pom.xml
index e113cdcf09..81a223b467 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/pom.xml
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/pom.xml
@@ -66,8 +66,8 @@
<artifactId>nifi-web-utils</artifactId>
</dependency>
<dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>org.apache.nifi</groupId>
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
index aa9db36158..3781655bf3 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-components/src/main/java/org/apache/nifi/controller/StandardProcessorNode.java
@@ -88,7 +88,7 @@ import org.apache.nifi.util.FormatUtils;
import org.apache.nifi.util.ReflectionUtils;
import org.apache.nifi.util.ThreadUtils;
import org.apache.nifi.util.file.classloader.ClassLoaderUtils;
-import org.quartz.CronExpression;
+import org.springframework.scheduling.support.CronExpression;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -1155,7 +1155,7 @@ public class StandardProcessorNode extends ProcessorNode
implements Connectable
switch (schedulingStrategy) {
case CRON_DRIVEN: {
try {
- new CronExpression(evaluatedSchedulingPeriod);
+ CronExpression.parse(evaluatedSchedulingPeriod);
} catch (final Exception e) {
results.add(new ValidationResult.Builder()
.subject(RUN_SCHEDULE)
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
index e811a0f711..53ad12c56c 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/FlowController.java
@@ -103,7 +103,7 @@ import
org.apache.nifi.controller.repository.claim.StandardContentClaim;
import
org.apache.nifi.controller.repository.claim.StandardResourceClaimManager;
import org.apache.nifi.controller.repository.io.LimitedInputStream;
import org.apache.nifi.controller.scheduling.LifecycleStateManager;
-import org.apache.nifi.controller.scheduling.QuartzSchedulingAgent;
+import org.apache.nifi.controller.scheduling.CronSchedulingAgent;
import org.apache.nifi.controller.scheduling.RepositoryContextFactory;
import org.apache.nifi.controller.scheduling.StandardLifecycleStateManager;
import org.apache.nifi.controller.scheduling.StandardProcessScheduler;
@@ -594,10 +594,10 @@ public class FlowController implements
ReportingTaskProvider, FlowAnalysisRulePr
flowAnalyzer.initialize(controllerServiceProvider);
}
- final QuartzSchedulingAgent quartzSchedulingAgent = new
QuartzSchedulingAgent(this, timerDrivenEngineRef.get(),
repositoryContextFactory);
+ final CronSchedulingAgent cronSchedulingAgent = new
CronSchedulingAgent(this, timerDrivenEngineRef.get(), repositoryContextFactory);
final TimerDrivenSchedulingAgent timerDrivenAgent = new
TimerDrivenSchedulingAgent(this, timerDrivenEngineRef.get(),
repositoryContextFactory, this.nifiProperties);
processScheduler.setSchedulingAgent(SchedulingStrategy.TIMER_DRIVEN,
timerDrivenAgent);
- processScheduler.setSchedulingAgent(SchedulingStrategy.CRON_DRIVEN,
quartzSchedulingAgent);
+ processScheduler.setSchedulingAgent(SchedulingStrategy.CRON_DRIVEN,
cronSchedulingAgent);
startConnectablesAfterInitialization = new HashSet<>();
startRemoteGroupPortsAfterInitialization = new HashSet<>();
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/AbstractSchedulingAgent.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/AbstractSchedulingAgent.java
index fa7c20865f..2b051121e0 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/AbstractSchedulingAgent.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/AbstractSchedulingAgent.java
@@ -32,7 +32,7 @@ import java.util.concurrent.Future;
* invoked.
*
* @see TimerDrivenSchedulingAgent
- * @see QuartzSchedulingAgent
+ * @see CronSchedulingAgent
*/
abstract class AbstractSchedulingAgent implements SchedulingAgent {
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/CronSchedulingAgent.java
similarity index 77%
rename from
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java
rename to
nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/CronSchedulingAgent.java
index beabd265e0..f44f1b813c 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/QuartzSchedulingAgent.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/main/java/org/apache/nifi/controller/scheduling/CronSchedulingAgent.java
@@ -23,25 +23,25 @@ import org.apache.nifi.controller.tasks.ConnectableTask;
import org.apache.nifi.controller.tasks.ReportingTaskWrapper;
import org.apache.nifi.engine.FlowEngine;
import org.apache.nifi.processor.exception.ProcessException;
-import org.quartz.CronExpression;
+import org.springframework.scheduling.support.CronExpression;
-import java.util.Date;
+import java.time.OffsetDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
-public class QuartzSchedulingAgent extends AbstractTimeBasedSchedulingAgent {
- private final Map<Object, Map<Integer, ScheduledFuture<?>>> quartzFutures
= new HashMap<>();
+public class CronSchedulingAgent extends AbstractTimeBasedSchedulingAgent {
+ private final Map<Object, Map<Integer, ScheduledFuture<?>>>
scheduledFutures = new HashMap<>();
- public QuartzSchedulingAgent(final FlowController flowController, final
FlowEngine flowEngine, final RepositoryContextFactory contextFactory) {
+ public CronSchedulingAgent(final FlowController flowController, final
FlowEngine flowEngine, final RepositoryContextFactory contextFactory) {
super(flowEngine, flowController, contextFactory);
}
@Override
public void shutdown() {
- quartzFutures.values().forEach(map -> map.values().forEach(future -> {
+ scheduledFutures.values().forEach(map -> map.values().forEach(future
-> {
if (!future.isCancelled()) {
// stop scheduling to run and interrupt currently running
tasks.
future.cancel(true);
@@ -52,7 +52,7 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
@Override
public void doSchedule(final ReportingTaskNode taskNode, final
LifecycleState scheduleState) {
- final Map<Integer, ScheduledFuture<?>> componentFuturesMap =
quartzFutures.computeIfAbsent(taskNode, k -> new HashMap<>());
+ final Map<Integer, ScheduledFuture<?>> componentFuturesMap =
scheduledFutures.computeIfAbsent(taskNode, k -> new HashMap<>());
if (!componentFuturesMap.values().isEmpty()) {
throw new IllegalStateException("Cannot schedule " +
taskNode.getReportingTask().getIdentifier() + " because it is already scheduled
to run");
}
@@ -60,19 +60,19 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
final String cronSchedule = taskNode.getSchedulingPeriod();
final CronExpression cronExpression;
try {
- cronExpression = new CronExpression(cronSchedule);
+ cronExpression = CronExpression.parse(cronSchedule);
} catch (final Exception pe) {
- throw new IllegalStateException("Cannot schedule Reporting Task "
+ taskNode.getReportingTask().getIdentifier() + " to run because its scheduling
period is not valid");
+ throw new IllegalStateException("Cannot schedule Reporting Task "
+ taskNode.getReportingTask().getIdentifier() + " to run because its scheduling
period is not valid", pe);
}
final ReportingTaskWrapper taskWrapper = new
ReportingTaskWrapper(taskNode, scheduleState,
flowController.getExtensionManager());
- final Date initialDate = cronExpression.getTimeAfter(new Date());
- final long initialDelay = initialDate.getTime() -
System.currentTimeMillis();
+ final OffsetDateTime initialDate = getInitialDate(cronExpression);
+ final long initialDelay = getInitialDelay(initialDate);
final Runnable command = new Runnable() {
- private Date nextSchedule = initialDate;
+ private OffsetDateTime nextSchedule = initialDate;
@Override
public void run() {
@@ -98,7 +98,7 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
@Override
public synchronized void doSchedule(final Connectable connectable, final
LifecycleState scheduleState) {
- final Map<Integer, ScheduledFuture<?>> componentFuturesMap =
quartzFutures.computeIfAbsent(connectable, k -> new HashMap<>());
+ final Map<Integer, ScheduledFuture<?>> componentFuturesMap =
scheduledFutures.computeIfAbsent(connectable, k -> new HashMap<>());
if (!componentFuturesMap.values().isEmpty()) {
throw new IllegalStateException("Cannot schedule " + connectable +
" because it is already scheduled to run");
}
@@ -107,9 +107,9 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
final CronExpression cronExpression;
try {
- cronExpression = new CronExpression(cronSchedule);
+ cronExpression = CronExpression.parse(cronSchedule);
} catch (final Exception pe) {
- throw new IllegalStateException("Cannot schedule " + connectable +
" to run because its scheduling period is not valid");
+ throw new IllegalStateException("Cannot schedule " + connectable +
" to run because its scheduling period is not valid", pe);
}
for (int i = 0; i < connectable.getMaxConcurrentTasks(); i++) {
@@ -117,12 +117,12 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
final AtomicInteger taskNumber = new AtomicInteger(i);
- final Date initialDate = cronExpression.getTimeAfter(new Date());
- final long initialDelay = initialDate.getTime() -
System.currentTimeMillis();
+ final OffsetDateTime initialDate = getInitialDate(cronExpression);
+ final long initialDelay = getInitialDelay(initialDate);
final Runnable command = new Runnable() {
- private Date nextSchedule = initialDate;
+ private OffsetDateTime nextSchedule = initialDate;
@Override
public void run() {
@@ -163,7 +163,7 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
}
private void unschedule(final Object scheduled, final LifecycleState
scheduleState) {
- quartzFutures.remove(scheduled);
+ scheduledFutures.remove(scheduled);
scheduleState.getFutures().forEach(future -> {
if (!future.isCancelled()) {
// stop scheduling to run but do not interrupt currently
running tasks.
@@ -183,15 +183,25 @@ public class QuartzSchedulingAgent extends
AbstractTimeBasedSchedulingAgent {
public void setMaxThreadCount(final int maxThreads) {
}
- private static Date getNextSchedule(final Date currentSchedule, final
CronExpression cronExpression) {
+ private OffsetDateTime getInitialDate(final CronExpression cronExpression)
{
+ final OffsetDateTime now = OffsetDateTime.now();
+ final OffsetDateTime initialDate = cronExpression.next(now);
+ return initialDate == null ? now : initialDate;
+ }
+
+ private long getInitialDelay(final OffsetDateTime initialDate) {
+ return initialDate.toInstant().toEpochMilli() -
System.currentTimeMillis();
+ }
+
+ private static OffsetDateTime getNextSchedule(final OffsetDateTime
currentSchedule, final CronExpression cronExpression) {
// Since the clock has not a millisecond precision, we have to check
that we
// schedule the next time after the time this was supposed to run,
otherwise
// we might end up with running the same task twice
- final Date now = new Date();
- return cronExpression.getTimeAfter(now.after(currentSchedule) ? now :
currentSchedule);
+ final OffsetDateTime now = OffsetDateTime.now();
+ return cronExpression.next(now.isAfter(currentSchedule) ? now :
currentSchedule);
}
- private static long getDelay(Date nextSchedule) {
- return Math.max(nextSchedule.getTime() - System.currentTimeMillis(),
0L);
+ private static long getDelay(final OffsetDateTime nextSchedule) {
+ return Math.max(nextSchedule.toInstant().toEpochMilli() -
System.currentTimeMillis(), 0L);
}
}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/CronSchedulingAgentTest.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/CronSchedulingAgentTest.java
new file mode 100644
index 0000000000..5f0fef1ace
--- /dev/null
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/CronSchedulingAgentTest.java
@@ -0,0 +1,114 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.nifi.controller.scheduling;
+
+import org.apache.nifi.components.state.StateManager;
+import org.apache.nifi.components.state.StateManagerProvider;
+import org.apache.nifi.connectable.Connectable;
+import org.apache.nifi.controller.FlowController;
+import org.apache.nifi.controller.ReportingTaskNode;
+import org.apache.nifi.engine.FlowEngine;
+import org.apache.nifi.reporting.ReportingTask;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.Mock;
+import org.mockito.junit.jupiter.MockitoExtension;
+
+import java.util.UUID;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+class CronSchedulingAgentTest {
+
+ private static final String DEFAULT_CRON_EXPRESSION = "* * * * * ?";
+
+ private static final String INVALID_CRON_EXPRESSION = "* * * * * * 2023";
+
+ private static final int CONCURRENT_TASKS = 1;
+
+ @Mock
+ private FlowController flowController;
+
+ @Mock
+ private FlowEngine flowEngine;
+
+ @Mock
+ private RepositoryContextFactory repositoryContextFactory;
+
+ @Mock
+ private Connectable connectable;
+
+ @Mock
+ private ReportingTaskNode reportingTaskNode;
+
+ @Mock
+ private ReportingTask reportingTask;
+
+ @Mock
+ private StateManagerProvider stateManagerProvider;
+
+ @Mock
+ private StateManager stateManager;
+
+ private CronSchedulingAgent schedulingAgent;
+
+ @BeforeEach
+ void setSchedulingAgent() {
+ schedulingAgent = new CronSchedulingAgent(flowController, flowEngine,
repositoryContextFactory);
+ }
+
+ @Test
+ void testDoScheduleConnectable() {
+ final String componentId = UUID.randomUUID().toString();
+ final LifecycleState lifecycleState = new LifecycleState(componentId);
+
+
when(connectable.evaluateParameters(eq(DEFAULT_CRON_EXPRESSION))).thenReturn(DEFAULT_CRON_EXPRESSION);
+
when(connectable.getSchedulingPeriod()).thenReturn(DEFAULT_CRON_EXPRESSION);
+ when(connectable.getMaxConcurrentTasks()).thenReturn(CONCURRENT_TASKS);
+ when(connectable.getIdentifier()).thenReturn(componentId);
+
when(flowController.getStateManagerProvider()).thenReturn(stateManagerProvider);
+
when(stateManagerProvider.getStateManager(eq(componentId))).thenReturn(stateManager);
+
+ schedulingAgent.doSchedule(connectable, lifecycleState);
+ }
+
+ @Test
+ void testDoScheduleReportingTaskNode() {
+ final String componentId = UUID.randomUUID().toString();
+ final LifecycleState lifecycleState = new LifecycleState(componentId);
+
+
when(reportingTaskNode.getSchedulingPeriod()).thenReturn(DEFAULT_CRON_EXPRESSION);
+
+ schedulingAgent.doSchedule(reportingTaskNode, lifecycleState);
+ }
+
+ @Test
+ void testDoScheduleReportingTaskNodeCronExpressionInvalid() {
+ final String componentId = UUID.randomUUID().toString();
+ final LifecycleState lifecycleState = new LifecycleState(componentId);
+
+
when(reportingTaskNode.getSchedulingPeriod()).thenReturn(INVALID_CRON_EXPRESSION);
+ when(reportingTaskNode.getReportingTask()).thenReturn(reportingTask);
+ when(reportingTask.getIdentifier()).thenReturn(componentId);
+
+ assertThrows(IllegalStateException.class, () ->
schedulingAgent.doSchedule(reportingTaskNode, lifecycleState));
+ }
+}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/DummyScheduleState.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/DummyScheduleState.java
deleted file mode 100644
index 91980b7f20..0000000000
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-framework-core/src/test/java/org/apache/nifi/controller/scheduling/DummyScheduleState.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.nifi.controller.scheduling;
-
-public class DummyScheduleState extends LifecycleState {
-
- public DummyScheduleState(boolean isScheduled) {
- super("Dummy Component");
- setScheduled(isScheduled);
- }
-
-}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
index 957282749c..998bca8faa 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/pom.xml
@@ -267,11 +267,6 @@
<artifactId>swagger-annotations</artifactId>
<scope>provided</scope>
</dependency>
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
- <scope>provided</scope>
- </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
index 6c31172292..c4198fe282 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardProcessorDAO.java
@@ -55,10 +55,9 @@ import org.apache.nifi.web.api.dto.ProcessorConfigDTO;
import org.apache.nifi.web.api.dto.ProcessorDTO;
import org.apache.nifi.web.dao.ComponentStateDAO;
import org.apache.nifi.web.dao.ProcessorDAO;
-import org.quartz.CronExpression;
+import org.springframework.scheduling.support.CronExpression;
import java.net.URL;
-import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
@@ -313,11 +312,9 @@ public class StandardProcessorDAO extends ComponentDAO
implements ProcessorDAO {
break;
case CRON_DRIVEN:
try {
- new CronExpression(evaluatedSchedulingPeriod);
- } catch (final ParseException pe) {
- throw new
IllegalArgumentException(String.format("Scheduling Period '%s' is not a valid
cron expression: %s", schedulingPeriod, pe.getMessage()));
+ CronExpression.parse(evaluatedSchedulingPeriod);
} catch (final Exception e) {
- throw new IllegalArgumentException("Scheduling Period
is not a valid cron expression: " + schedulingPeriod);
+ throw new
IllegalArgumentException(String.format("Scheduling Period '%s' is not a valid
cron expression: %s", schedulingPeriod, e.getMessage()));
}
break;
}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java
index 1de941b52e..6ccdb847be 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/dao/impl/StandardReportingTaskDAO.java
@@ -49,10 +49,9 @@ import
org.apache.nifi.web.api.dto.ConfigVerificationResultDTO;
import org.apache.nifi.web.api.dto.ReportingTaskDTO;
import org.apache.nifi.web.dao.ComponentStateDAO;
import org.apache.nifi.web.dao.ReportingTaskDAO;
-import org.quartz.CronExpression;
+import org.springframework.scheduling.support.CronExpression;
import java.net.URL;
-import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -227,11 +226,9 @@ public class StandardReportingTaskDAO extends ComponentDAO
implements ReportingT
break;
case CRON_DRIVEN:
try {
- new
CronExpression(reportingTaskDTO.getSchedulingPeriod());
- } catch (final ParseException pe) {
- throw new
IllegalArgumentException(String.format("Scheduling Period '%s' is not a valid
cron expression: %s", reportingTaskDTO.getSchedulingPeriod(), pe.getMessage()));
+
CronExpression.parse(reportingTaskDTO.getSchedulingPeriod());
} catch (final Exception e) {
- throw new IllegalArgumentException("Scheduling Period
is not a valid cron expression: " + reportingTaskDTO.getSchedulingPeriod());
+ throw new
IllegalArgumentException(String.format("Scheduling Period '%s' is not a valid
cron expression: %s", reportingTaskDTO.getSchedulingPeriod(), e.getMessage()));
}
break;
}
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-headless-server-nar/src/main/resources/META-INF/NOTICE
b/nifi-nar-bundles/nifi-framework-bundle/nifi-headless-server-nar/src/main/resources/META-INF/NOTICE
index 00782b4486..e80bf161e5 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-headless-server-nar/src/main/resources/META-INF/NOTICE
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-headless-server-nar/src/main/resources/META-INF/NOTICE
@@ -111,27 +111,6 @@ The following binary components are provided under the
Apache Software License v
The following NOTICE information applies:
Copyright 2011 JsonPath authors
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software AG
USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or
their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned herein
may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation directory
of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Jackson JSON processor
The following NOTICE information applies:
# Jackson JSON processor
diff --git
a/nifi-nar-bundles/nifi-framework-bundle/nifi-server-nar/src/main/resources/META-INF/NOTICE
b/nifi-nar-bundles/nifi-framework-bundle/nifi-server-nar/src/main/resources/META-INF/NOTICE
index 19b472df35..51ea8a7a12 100644
---
a/nifi-nar-bundles/nifi-framework-bundle/nifi-server-nar/src/main/resources/META-INF/NOTICE
+++
b/nifi-nar-bundles/nifi-framework-bundle/nifi-server-nar/src/main/resources/META-INF/NOTICE
@@ -111,27 +111,6 @@ The following binary components are provided under the
Apache Software License v
The following NOTICE information applies:
Copyright 2011 JsonPath authors
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software AG
USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates and/or
their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned herein
may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation directory
of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) Jackson JSON processor
The following NOTICE information applies:
# Jackson JSON processor
diff --git a/nifi-nar-bundles/nifi-framework-bundle/pom.xml
b/nifi-nar-bundles/nifi-framework-bundle/pom.xml
index 6f29f7117b..3bcb44e461 100644
--- a/nifi-nar-bundles/nifi-framework-bundle/pom.xml
+++ b/nifi-nar-bundles/nifi-framework-bundle/pom.xml
@@ -255,11 +255,6 @@
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
- <version>2.3.2</version>
- </dependency>
<!-- open id connect - override transitive dependency version
ranges -->
<dependency>
diff --git
a/nifi-nar-bundles/nifi-media-bundle/nifi-media-nar/src/main/resources/META-INF/NOTICE
b/nifi-nar-bundles/nifi-media-bundle/nifi-media-nar/src/main/resources/META-INF/NOTICE
index fe2b8c3429..5ad70bcfba 100644
---
a/nifi-nar-bundles/nifi-media-bundle/nifi-media-nar/src/main/resources/META-INF/NOTICE
+++
b/nifi-nar-bundles/nifi-media-bundle/nifi-media-nar/src/main/resources/META-INF/NOTICE
@@ -265,27 +265,6 @@ The following binary components are provided under the
Apache Software License v
Copyright 2004 Sun Microsystems, Inc.
Copyright 2011 The ROME Team
- (ASLv2) Quartz
- The following NOTICE information applies:
- Copyright Declaration:
- Copyright © 2003-2016 Software AG, Darmstadt, Germany and/or Software
AG USA Inc., Reston, VA, USA, and/or its subsidiaries and/or its affiliates
and/or their licensors.
-
- Trademark and Patent declaration
- The name Software AG and all Software AG product names are either
trademarks or registered trademarks of Software AG and/or Software AG USA Inc.
and/or its subsidiaries and/or its affiliates
- and/or their licensors. Other company and product names mentioned
herein may be trademarks of their respective owners.
-
- Detailed information on trademarks and patents owned by Software AG
and/or its subsidiaries is located at http://softwareag.com/licenses.
-
- Third Party declaration
- This software may include portions of third-party products. For
third-party copyright notices, license terms, additional rights or
restrictions, please refer to "License Texts, Copyright
- Notices and Disclaimers of Third Party Products". For certain specific
third-party license restrictions, please refer to section E of the Legal
Notices available under "License Terms and
- Conditions for Use of Software AG Products / Copyright and Trademark
Notices of Software AG Products". These documents are part of the product
documentation, located at
- http://softwareag.com/licenses and/or in the root installation
directory of the licensed product(s).
-
- Confidentiality Disclaimer:
- Use, reproduction, transfer, publication or disclosure is prohibited
except as specifically provided for in your License Agreement with Software AG.
- Contact GitHub API Training Shop Blog About
-
(ASLv2) JCommander
The following NOTICE information applies:
JCommander Copyright Notices
diff --git a/nifi-stateless/nifi-stateless-assembly/NOTICE
b/nifi-stateless/nifi-stateless-assembly/NOTICE
index 225cf11e19..98747baddd 100644
--- a/nifi-stateless/nifi-stateless-assembly/NOTICE
+++ b/nifi-stateless/nifi-stateless-assembly/NOTICE
@@ -149,11 +149,3 @@ The following binary components are provided under the
Eclipse Distribution Lice
(EDL 1.0) JAXB (JSR 222) Reference Implementation
(org.glassfish.jaxb:jaxb-runtime:jar:2.3.5)
(EDL 1.0) Istack Common Utility Code Runtime
(com.sun.istack:istack-commons-runtime:jar:3.0.12)
(EDL 1.0) TXW2 Runtime (org.glassfish.jaxb:txw2:jar:2.3.5)
-
-************************
-Eclipse Public License 1.0
-************************
-
-The following binary components are provided under the Eclipse Public License
1.0. See project link for details.
-
- (EPL 1.0)(LGPL 2.1) c3p0 (com.mchange:c3p0:jar:0.9.5.4 -
https://github.com/swaldman/c3p0)
diff --git
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-nar/src/main/resources/META-INF/NOTICE
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-nar/src/main/resources/META-INF/NOTICE
index d2f230e478..7505de5546 100644
---
a/nifi-stateless/nifi-stateless-bundle/nifi-stateless-nar/src/main/resources/META-INF/NOTICE
+++
b/nifi-stateless/nifi-stateless-bundle/nifi-stateless-nar/src/main/resources/META-INF/NOTICE
@@ -136,12 +136,3 @@ The following binary components are provided under the
Common Development and Di
(CDDL 1.1) (GPL2 w/ CPE) jersey-media-multipart
(org.glassfish.jersey.media:jersey-media-multipart:jar:2.26 -
https://jersey.github.io/)
(CDDL 1.1) (GPL2 w/ CPE) MIME Streaming Extension
(org.jvnet.mimepull:mimepull:jar:1.9.3 - http://mimepull.java.net)
(CDDL 1.1) (GPL2 w/ CPE) OSGi resource locator bundle
(org.glassfish.hk2:osgi-resource-locator:jar:1.0.1 -
http://glassfish.org/osgi-resource-locator)
-
-
-************************
-Eclipse Public License 1.0
-************************
-
-The following binary components are provided under the Eclipse Public License
1.0. See project link for details.
-
- (EPL 1.0)(LGPL 2.1) c3p0 (com.mchange:c3p0:jar:0.9.5.4 -
https://github.com/swaldman/c3p0)