v6.0.0
Highlights
- Add priority to workflow instances
- Use constructor injection instead of field or setter injection in nFlow classes
- Separate workflow definition scanning from
WorkflowDefinitionService
- Remove deprecated
WorkflowInstanceInclude.STARTED
enum value - Remove deprecated
AbstractWorkflowExecutorListener
, useWorkflowExecutorListener
instead - Remove deprecated
WorkflowInstance.setStarted
, useWorkflowInstance.setStartedIfNotSet
instead - Add MariaDB support
- Add Kotlin example using nFlow with Spring Boot, and integrated nFlow Explorer
- Expose wakeup via REST-API
- Update database indices to match workflow instance polling code
- Add new configuration option
nflow.db.disable_batch_updates
Details
nflow-engine
- Add
priority
two byte integer to thenflow_workflow
table. When the dispatcher chooses from many available scheduled workflow instances it primarily (unfairly) picks the workflow instances with the largest priority values, and for workflows with the same priority, the ones with oldestnext_activation
timestamp. Priority defaults to 0 and can also be negative. Default priority value for the new workflow instances can be set per workflow definition (WorkflowSettings.Builder.setDefaultPriority
), and overridden per workflow instance (WorkflowInstance.Builder.setPriority
). Requires database migration, see database update scripts for details. - Separate workflow definition scanning from
WorkflowDefinitionService
by introducingWorkflowDefinitionSpringBeanScanner
andWorkflowDefinitionClassNameScanner
. This allows breaking the circular dependency when a workflow definition usesWorkflowInstanceService
(which depends onWorkflowDefinitionService
, which depended on all workflow definitions). This enabled using constructor injection in all nFlow classes. - Add
disableMariaDbDriver
to default MySQL JDBC URL so that in case there are both MySQL and MariaDB JDBC drivers in the classpath then MariaDB will not steal the MySQL URL. - Add support for
nflow.db.mariadb
profile. - Update database indices to match current workflow instance polling code.
- Create indices for foreign keys in MS SQL database.
- Fix create database scripts to work with empty database.
- Add
nflow.db.disable_batch_updates
(defaultfalse
) configuration parameter to make it possible to force use of multiple updates even if batch updates are supported by the database. - Dependency updates:
- reactor.netty 0.9.1.RELEASE
- jackson 2.10.1
- mysql-connector-java 8.0.18
- mariadb jdbc 2.4.4
- postgresql jdbc 42.2.8
- mssql-jdbc 7.4.1.jre8
- metrics 4.1.1
- junit5 5.5.2
- hikaricp 3.4.1
- jetty 9.4.20.v20190813
- apache-cxf 3.3.4
- slf4j 1.7.29
- spring 5.2.1.RELEASE
- hibernate-validator 6.1.0.Final
- joda-time 2.10.5
- swagger 1.5.24
- mockito 3.1.0
- hamcrest 2.2
- h2 1.4.200
- javassist 3.26.0-GA
- jetty 9.4.21.v20190926
- Add
nflow-explorer
- Dependency updates
- nodejs 10.16.3
- npm 6.11.3
- lodash 4.7.15
- Dependency updates
nflow-examples
- Update Spring Boot examples' dependencies
- Spring Boot 2.1.7.RELEASE
- nFlow 5.7.0
- Gradle 5.5.1
- Update Spring Boot examples' dependencies
- New REST-API endpoint to wake up workflow instance sleeping in specified states:
PUT /nflow/api/v1/workflow-instance/5/wakeup - Improve error logging in WorkflowStateProcessor.
- Replace FindBugs with SpotBugs.
- Drop index from main table that was only used for archiving purposes.