[ANN] nFlow 8.0.0 released

33 views
Skip to first unread message

nflow-users

unread,
Jun 9, 2022, 3:23:38 PM6/9/22
to nflow-users
Hello all,

nFlow 8.0.0 was released on June 9, 2022.

https://github.com/NitorCreations/nflow/releases/tag/8.0.0

**Highlights**

- Add support for Java 17.
- Add new user interface `nflow-explorer-ng` deprecating `nflow-explorer` see [migration instructions](https://github.com/NitorCreations/nflow/wiki/Migration-from-Explorer-to-Explorer-NG)
  - implemented using modern Javascript libraries (e.g. ReactJS instead of AngularJS)
  - only minor changes changes to functionality (e.g. create workflow instance added, much improved workflow instance search, removed radiator graph)
- BREAKING CHANGE: Remove support for Java 8.
- `nflow-engine`
  - BREAKING CHANGE: Replace old `WorkflowDefinition` and `AbstractWorkflowDefinition` with a new `WorkflowDefinition`.
  - BREAKING CHANGE: Remove deprecated `WorkflowState.isRetryAllowed`, set exception analyzer for workflow definition instead (if needed).
  - BREAKING CHANGE: Change transition delay fields data types in `WorkflowSettings` and remove unused `immediateTransitionDelay` setting.
- `nflow-rest-api`
  - BREAKING CHANGE: Remove `ListWorkflowDefinitionResponse.TransitionDelays.immediate` field, it is not used by nFlow anymore.
  - Deprecate `include` query parameter (fetch / list workflow instances).
  - Add `includes` query parameter (fetch / list workflow instances).
  - Enable maintenance (archiving and deleting old workflow instances) by default.
  - Enable workflow instance history clean-up (deleting old actions and state variables) by default.
  - Add support to query also archived workflow instances.
  - Define `maven.compiler.release = 11`

**Details**

- Add support for Java 17, keep support for Java 11 and remove support for Java 8.
  - Supported Java and database engine combinations are documented in SUPPORT_MATRIX.
- Minimum supported Maven version for building is 3.6.
- `nflow-engine`
  - All workflow definitions should now extend the new `WorkflowDefinition` class.
    - Workflow state type does not need to be defined as a generic type parameter anymore. The states can now be any classes that implement `WorkflowState`.
    - It is not recommended to define the workflow states as an enum anymore. This makes extending workflows definition classes and reusing states across different workflows easier.
    - You can define the states as instances of `io.nflow.engine.workflow.curated.State` or anything else that implements the required `WorkflowState` interface.
    - The workflow definitions must now register all possible states as described in `io.nflow.engine.workflow.definition.WorkflowDefinition`.
  - `WorkflowState.isRetryAllowed` was removed. If it was overridden, you can use `new WorkflowSettings.Builder().setExceptionAnalyzer(...)` to change the behavior. The default behavior was not changed.
  - `WorkflowSettings`
    - Change `WorkflowSettings.Builder.setShortTransitionDelay`, `WorkflowSettings.Builder.setMinErrorTransitionDelay` and `WorkflowSettings.Builder.setMaxErrorTransitionDelay` parameter type from `int` to `org.joda.time.Duration`.
    - Remove `WorkflowSettings.Builder.setImmediateTransitionDelay` method.
    - Change `WorkflowSettings.shortTransitionDelay`, `WorkflowSettings.minErrorTransitionDelay` and `WorkflowSettings.maxErrorTransitionDelay` field type from `int` to `long`.
    - Remove `WorkflowSettings.immediateTransitionDelay` field. It is not used by nFlow.
  - Maintenance workflow instance is added to nFlow database by default in startup. Instances that have been in final state longer than 45 days are archived. Archived instances that have been in final state longer than one year are deleted. Maintenance is run every night. Use `nflow.maintenance` configuration options to change the defaults before startup, or update the maintenance workflow instance state variables after the instance has been created.
  - Workflow instance actions and state variables that are older than 45 days are automatically cleaned up occasionally when the instance is processed. Use workflow settings to change the default time period (`setHistoryDeletableAfter`) and condition (`setDeleteHistoryCondition`) of the clean-up.
  - Add support to query also archived workflow instances when not enough non-archived matches are found.
  - Add `WorkflowInstance.Builder.setState(WorkflowState)` convenience method.
  - Detect state methods with duplicate @StateVar names
  - Allow simple generics objects in Mutable state variables
  - Support instantiating Collection,List and Map interfaces to empty in state variables
  - Dependency updates
    - logback-classic update to version 1.2.11
      - <http://mailman.qos.ch/pipermail/announce/2021/000164.html>
      - <https://jira.qos.ch/browse/LOGBACK-1591>
    - apache cxf 3.5.2
    - commons.lang3 3.12.0
    - guice 5.1.0
    - hibernate validator 6.2.3
    - hikaricp 5.0.1
    - jackson 2.13.3
    - jackson-databind 2.13.3
    - javassist 3.29.0
    - jodatime 2.10.14
    - slf4j 1.7.36
    - spring 5.3.18
- `nflow-rest-api`
  - BREAKING CHANGE: Remove `ListWorkflowDefinitionResponse.TransitionDelays.immediate` field, it is not used by nFlow.
  - Deprecate `include` query parameter (fetch / list workflow instances) that supported multiple values provided as comma separated string, i.e. like `include=actions,childWorkflows`.
  - Add `includes` query parameter (fetch / list workflow instances) that supports multiple query parameters, i.e. like `include=actions&include=childWorkflows`.
  - Add `queryArchive` query parameter. If set to `true`, also archived workflow instances are searched when not enough non-archived matches are found. Default value is false.
  - Dependency updates
    - swagger 2.2.0
    - jersey 2.35
- `nflow-jetty`
  - Dependency updates
    - jetty 10.0.9
    - reflections 0.10.2
- `nflow-netty`
  - Dependency updates
    - reactor-core 3.4.18
    - reactor-netty 1.0.19
- `nflow-metrics`
  - Dependency updates
    - metrics 4.2.9
- `nflow-explorer`
  - Query and show also archived workflow instances when not enough non-archived matches are found. Querying and showing archived instances can be disabled in `config.js`.
  - Dependency updates
    - nodejs 16.15.1
    - npm 8.11.0
    - lodash 4.17.21
    - momentjs 2.29.1
    - removed IE browser support
- `nflow-tests`
  - Dependency updates
    - h2 2.1.212
      - Note: If you have persisted any h2 databases you must take a backup and restore. Also the nFlow h2 schema changed to work with 2.x release of h2.
    - mssql 10.2.1
    - mysql 8.0.29
    - mariadb 3.0.5
    - postgresql 42.3.6
Reply all
Reply to author
Forward
0 new messages