Skip to content

v8.0.0

Compare
Choose a tag to compare
@eputtone eputtone released this 09 Jun 13:08
· 154 commits to master since this release

Highlights

  • Add support for Java 17.
  • Add new user interface nflow-explorer-ng deprecating nflow-explorer see migration instructions
    • 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
  • 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