Skip to content

v7.2.0

Compare
Choose a tag to compare
@efonsell efonsell released this 27 Apr 09:04
· 441 commits to master since this release

Highlights

  • Expedited clean shutdown for workflows that run many consequtive states.
  • Add support for custom logic when nFlow engine thinks the workflow state processing may be stuck.
  • Convert all exceptions to proper error response messages in all nFlow REST API endpoints. Applies to both nflow-rest-api-jax-rs and nflow-rest-api-spring-web.
  • Support for Guice.

Details

  • nflow-engine
    • When shutdown is requested, stop processing workflows immediately after the current state has been executed.
    • Add WorkflowExecutorLister.handlePotentiallyStuck(Duration processingTime) to support custom handling when nFlow engine thinks the workflow state processing may be stuck. If any registered listener implementation returns true from this method, nFlow will interrupt the processing thread. The default implementation returns false.
    • Throw IllegalArgumentException instead of IllegalStateException when trying to update workflow instance state to an invalid value.
    • Throw IllegalArugmentException instead of RuntimeException when trying to insert workflow instance with unknown type or with a state that is not a start state.
    • Make StateVariableTooLongException extend IllegalArgumentException instead of RuntimeException.
    • Fix SQL deadlocks in workflow instance polling for PostgreSQL with skip locked.
    • Add EngineEnvironmentModule and EngineModule for Guice support. Call NflowController.start() and NflowController.stop() to start and stop nFlow engine, as nflow.autostart and nflow.autoinit configuration options are not supported with Guice.
    • MySQL/MariaDB: use compressed table format for archives.
    • PostgreSQL/SQLServer: use partial (not null) indices for parent hierarchy.
    • PostgreSQL: tune fillfactors of tables and indices.
    • PostgreSQL: reorder table column order to minimize space lost on padding. Only affects new tables.
    • Drop (type, external_id, executor_group) unique constraint from nflow_archive_workflow table. Allows archiving workflow instances with same values multiple times. Only one instance is allowed in production table though.
    • Dependency updates:
      • spring 5.2.5
      • jackson 2.10.3
      • javassist 3.27.0
      • jetty 9.4.28
      • cxf 3.3.6
      • metrics 4.1.6
      • netty 0.9.6
      • swagger 1.6.1
      • lang3 3.10
      • mariadb 2.6.0
      • mssql 8.2.2
      • postgresql 42.2.10
      • junit 5.6.2
      • mockito 3.3.3
      • spotbugs 4.0.2
      • hibernate 6.1.4
      • commons-lang3 3.10
  • nflow-rest-api-jax-rs and nflow-rest-api-spring-web
    • Convert IllegalArgumentException to HTTP 400 Bad Request with a valid JSON response body in all endpoints.
    • Convert NflowNotFoundException to HTTP 404 Not Found with a valid JSON response body in all endpoints.
    • Convert all other throwables to HTTP 500 Internal Server Error with a valid JSON response body in all endpoints.
  • nflow-explorer
    • Dependency updates:
      • swagger-ui 2.2.10
      • es5-shim 4.5.14
      • npm 6.14.4
      • autoprefixer 9.7.5
      • grunt 1.1.0
      • grunt-contrib-imagemin 4.0.0