Skip to main content

8.4

tip

This release contains breaking changes. These are listed at the end of this page, along with instructions for migrating from previous releases.

Server

Features

  • Implement context based "filter" support as shared functionality for dataserver/req-rep/auth blocks, including enriched dataserver queries
  • Add support for REST integration in datapipelines
  • Added source for use by event handlers.
  • Deprecate safeWriteTransaction in favour of writeTransaction
  • Added support for camel Idempotent repositories in data pipelines (8.4.2+)

Fixes

  • (deploy-plugin): deploy zip task reference correct file when product name set in settings plugin
  • Dataserver backwardsJoin view does not recover in case of a buffered out-of-order update
  • Generate non-required properties as nullable for paginated requests
  • Improve error message when a system definition property is expected but is not specified
  • Make http response function suspending to fix issues with generated code
  • Remap Oracle Script needs a / between 2 Declare blocks
  • Allow for req rep GET without request param
  • Correctly parse criteria expressions for custom req reps
  • Filter out genesis.testsupport from TestContext package scan
  • Remove unnecessary kotlinx-serialization dependency
  • When using @SysDefOverwrite annotation in tests and scripts use sys def receiver

Dependency changes

  • Bump actions/upload-artifact from 3 to 4 by
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.7 to 0.17.8
  • Bump com.github.oshi:oshi-core from 6.6.2 to 6.6.3
  • Bump com.jfrog.artifactory from 5.2.3 to 5.2.4
  • Bump com.jfrog.artifactory from 5.2.4 to 5.2.5
  • Bump com.microsoft.sqlserver:mssql-jdbc from 12.6.1.jre11 to 12.8.1.jre11
  • Bump com.networknt:json-schema-validator from 1.5.0 to 1.5.1
  • Bump commons-cli:commons-cli from 1.8.0 to 1.9.0
  • Bump debeziumVersion from 2.7.0.Final to 2.7.1.Final
  • Bump io.github.classgraph:classgraph from 4.8.174 to 4.8.175
  • Bump oracleJdbcVersion from 23.4.0.24.05 to 23.5.0.24.07
  • Bump org.apache.commons:commons-compress from 1.26.2 to 1.27.1
  • Bump org.apache.fury:fury-core from 0.6.0 to 0.7.0
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.2.3 to 5.2.4
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 5.2.4 to 5.2.5
  • Bump slf4jVersion from 2.0.13 to 2.0.16
  • Bump sshdVersion from 2.13.1 to 2.13.2

Patch releases

8.4.6

Features
  • genesis-codegen: Add flag to create compact toString method on entities
  • genesis-junit: Add support for dumpit csv and csv.gz files
  • Allow lambdas for withInput expressions to be assigned and reused
  • Optimise memory usage BackwardJoinCache for 1-2-1 joins
  • Configurable update frequency and caching for Db cluster strategy
  • Display current cluster node role in mon
  • Provide better bulk purge support
Performance improvements
  • genesis-environment: Use deleteAll in PurgerScript.purgeDerivedRange
Fixes
  • genesis-pal-dataserver: Handle multiple updates for same record in data server
  • Add sync backwards join cache impl
  • Ensure TRACE level is set correctly for GenesisMessageEncoder and GenesisMessageDecoder when DATADUMP_ON is activated
  • Ensure cookie based REFRESH_AUTH_TOKEN value is correctly added to EVENT_LOGIN_AUTH payload
  • ResourceDaemon doesn't properly evaluate ClusterMode
  • Cluster manager not bound when running GenesisRun and other scripts that user ServiceModule
  • Ensure DataDumpManager uses different loggers for GenesisMessageDecoder and GenesisMessageEncoder
  • Generated rx repos use modified fields for modify operations
  • Increase zero mq subscriber worker high water mark value to Integer.max_value
  • Race condition when processing multiple back join table modifications on different fields at the same time
  • Regression on view generation when empty blocks are used in derived fields
  • Reusable lambdas in views now cope with aliased table arguments

8.4.5

  • Data Server indices on DOUBLE fields are now correctly sorted correctly in LMDB
  • Remove explicit toString call on ClusterMessage debug line

8.4.4

  • Disable copyDependencies task in genesis-openapi-codegen and improve publish-plugin-config configuration to ensure no plugin modules ever run copyDependencies task

8.4.3

  • Fixed an issue in Remap for Oracle DB where foreign keys would be violated for auto increment columns

8.4.2

  • Ensure only generated jars are added to process classpath when using WriteClasspathToManifest

8.4.1

  • Ensure groovy compilation exceptions are handled
  • Fail preCompileScripts gradle task by default and add option to disable failing on error
  • Fixed multiple components dependencies pointing at beta version

Client

Features

  • foundation-fdc3 : Marking types as deprecated, fix channel broadcast payload
  • foundation-fdc3 : Bumping fdc3 package version

Fixes

  • foundation-ui : Port resetCombobox function from genesis-create
  • foundation-forms : Check if oneOf exist for genesisType in date renderer
  • foundation-forms : Smart forms correct errors placement
  • foundation-forms : Pass jsonSchema to arrayList renderer if uiSchema is provided
  • foundation-entity-management : Show entityLabel on notification description
  • foundation-entity-management : ChangeCase for search-bar if headerName isn't provided
  • Change SLACK_CHANNEL on CI workflows
  • Add new circular.yml workflow script + circular dep fixes

Noteworthy changes

New filter syntax

where blocks replaced with the new filter syntax

This new feature is consistent across our different modules, such as authorisation, Data Server, REQUEST SERVER, etc.

The new filter clause replaces the old where clause functionality. The old where clause is now deprecated. Use filter from now on.

Warn on truncated keys

This change prevents the Data Server from going into an error state when string index fields are truncated or when rows are ignored. This now triggers a WARNING, and the Data Server continues to function.

Before the change, if a STRING field in a target table or view was greater in size than that defined by the Data Server index definition, the Data Server would go into ERROR state. From that point onward, it would not serve any more requests, essentially rejecting all messages.

Any Data Server definition that has indices that include STRING type fields could be affected - if these fields could potentially end up truncated by a string overflow.

In most cases, you do not need to take action. This is a simple change in behaviour.

You only need to take action if your Data Server has been configured to respond to an ERROR state caused by truncated string index fields or ignored rows. This is not a likely design scenario, but if this is the case for your application, you need to create new code to replicate this behaviour.

Breaking changes

Updated GenesisHTTPClient

This now allows invocations from different contexts.

Are you affected?

If you are using the http client directly, some methods are now marked as internal. You could receive a compilation error if you refer to a function that is now internal.

info

Medium fix

Use only the methods exposed as public in the interface (get, put, post, delete).

Read the pages on GenesisHTTPClient for full information.

DbOperation updates

DbOperation class has changed packages as part of a refactor

Are you affected?

You need to take action if:

  • you use the Data Pipelines component in your application
  • you have any compiler errors when you build your app after the upgrade with cannot find Symbol DbOperation.
tip

Simple fix

  1. Search your imports for all instances of global.genesis.datapipeline.pal.sink.
  2. Replace with global.genesis.pipeline.api.db.

rxSources updates

Made rxSources non-functional interfaces, standardised http source syntax and added utilities The unused RxSink interface is not a functional interface anymore; it is now a regular interface.

Are you affected?

Only applications that use the RxSink interface in the Data Pipeline are affected.

tip

Simple fix

Any new implementations of Data Pipeline must only use the standard http web calls. Check the revised reference documentation for Data Pipeline for full details.

onOperationError type safety

Added type safe onOperationError handling to data pipelines Error handling for Data Pipeline has been redesigned.

Are you affected?

If your application uses Data Pipelines and are using error handlers in them, you are affected.

info

Medium fix Change your error handling based on the new handlers.