Skip to main content

8.8

Server

Features

  • Added ability to perform record deltas using dbSink by exposing modifiedFields
  • Add dynamicQueryBuilder support
  • Add support for dynamic parameters as well as fix issues related to ENUM and DateTime handling
  • Added support for processing context in data pipeline operators
  • Allow docker build to pre-set SysDef environment variables
  • Add enum references as companion object properties for each enum field for easy access in GPAL scripts
  • Generated Entities: Generate all ENUM values inside enum reference objects for completeness
  • Optimise memory usage BackwardJoinCache for 1-2-1 joins
  • Added support for enabling app level sys def files in integration tests
  • Allows for overriding of test process name
  • Provide better bulk purge support

Performance improvements

  • genesis-environment : Use deleteAll in PurgerScript.purgeDerivedRange

Fixes

  • genesis-environment : Catch and accumulate unsupported formula errors while processing a worksheet
  • Optimize index matching for non-consecutive fields
  • distribution-gradle-plugin : Site specific plugin to not modify binary files stored under data
  • Add sync backwards join cache impl
  • Ensure Index.NonUnique class definition has a fixed serialVersionUID field
  • Ensure cookie based REFRESH_AUTH_TOKEN value is correctly added to EVENT_LOGIN_AUTH payload
  • Fix deserialization incompatibility for Index class
  • Fixed issue where removal of a sequence at the same time as a table rename would cause remap to fail
  • Increase Kotlin Daemon Heap to 5g
  • Ensure number parameters are not passed as string values to where clauses and use correct uppercase underscore translation
  • ResourceDaemon doesn't properly evaluate ClusterMode
  • Align Kotlin daemon heap across composite build
  • DbBulkSubscribe not updating secondary table when backwardsJoin true
  • Ensure DataDumpManager uses different loggers for GenesisMessageDecoder and GenesisMessageEncoder
  • Ensure optimistic concurrency checks work within transactions
  • Ensure script files in site-specific have priority when searching by suffix
  • Exec plugin should take clientName override into account
  • GenesisType json schema property for req reps and data server queries
  • Increase producer hwm for zeromq update layer
  • Option to register root records in back join cache to ensure they exist when child record is registered
  • Replace hardcoded references of GENESIS_CLUSTER to use ServiceDiscovery based on resource name
  • Split kotlin daemon jvm options to separate property
  • Increase zero mq subscriber worker high water mark value to Integer.max_value
  • Generated SysDef should allow safe conversion of types
  • Using app sys def file in integration tests should work for multiple tests

Dependency changes

  • Bump kotlinCoroutinesVersion from 1.7.3 to 1.10.0
  • Bump byteBuddyVersion from 1.15.10 to 1.15.11
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.11 to 0.17.12
  • Bump com.google.guava:guava from 33.3.1-jre to 33.4.0-jre
  • Bump com.google.protobuf:protobuf-java from 4.29.0 to 4.29.1
  • Bump com.google.protobuf:protobuf-java from 4.29.1 to 4.29.2
  • Bump commons-codec:commons-codec from 1.17.1 to 1.17.2
  • Bump debeziumVersion from 3.0.4.Final to 3.0.5.Final
  • Bump debeziumVersion from 3.0.5.Final to 3.0.6.Final
  • Bump kotlinCoroutinesVersion from 1.10.0 to 1.10.1
  • Bump log4jVersion from 2.24.2 to 2.24.3
  • Bump micrometerVersion from 1.14.1 to 1.14.2
  • Bump mockitoVersion from 5.14.2 to 5.15.2
  • Bump nettyVersion from 4.1.115.Final to 4.1.116.Final
  • Bump org.assertj:assertj-core from 3.26.3 to 3.27.0
  • Bump org.java-websocket:Java-WebSocket from 1.5.7 to 1.6.0
  • Bump org.jetbrains.dokka from 1.9.10 to 2.0.0
  • Bump org.jetbrains.dokka:dokka-gradle-plugin from 1.9.10 to 2.0.0
  • Bump org.jline:jline from 3.27.1 to 3.28.0
  • Bump org.kiwiproject:consul-client from 1.4.2 to 1.4.5
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.5.3 to 2.5.4

Patch releases

8.8.28

Features
  • genesis-pal-streamerclient : Add additional logging when moving to error state
Fixes
  • genesis-pal-dataserver : Fix numerous out of sync update processing issues
  • genesis-pal-dataserver : Improve handling of data server on unrecoverable key errors

8.8.27

Features
  • genesis-pal-streamerclient : Add additional logs to improve troubleshooting

8.8.26

Fixes
  • genesis-pal-dataserver : Ensure an additional QUERY_UPDATE message with MORE_ROWS=false is sent to query subscriptions using the chunkLargeMessages option, if no more rows are available after a DATA_LOGON or MORE_ROWS request (GSF-7356)
  • genesis-pal-requestserver : Fix bug in handling of a _FROM => _TO range

8.8.25

Features
  • genesis-environment : Add PurgersReader.purgeDerivedRangeFlow

8.8.24

Features
  • genesis-environment : Return purged record in PurgersReader.purgeDerivedRecord
Fixes
  • genesis-pal-dataserver : Setting MAX_VIEW = 0 should allow views to grow without boundaries other than Integer.MAX_VALUE

8.8.23

Fixes
  • genesis-pal-dataserver : Fury serializer can now handle payloads greater than 512 bytes correctly
  • genesis-testsupport : Do not register lifecycle manager JVM shutdown hook for tests

8.8.22

Features
  • genesis-dbtest : Option to generate random SQL schema name for tests

8.8.21

Fixes
  • genesis-environment : Fix issue preventing all script.kts file evaluations

8.8.20

Fixes
  • genesis-environment : Revert GenesisInjector changes for PurgeTables and related scripts

8.8.19

Features
  • genesis-gradle : Support site-specific in product details plugin
Fixes
  • distribution-gradle-plugin : Fix incorrect initialisation logic

8.8.18

Fixes
  • genesis-clustersupport : Fall back to db if service discovery cache missing entry

8.8.17

Fixes
  • genesis-environment : Ensure GlobalClasspathAdditions sysdef item is handled correctly as part of startProcess classpath generation

8.8.16

Features
  • genesis-logging : Support configurable log directories and system definition option to disable automatic archiving
Fixes
  • genesis-environment : Ensure environment genesis-generated-sysdef and genesis-generated-fields take priority in classpath generation
  • genesis-environment : preCompileScripts now takes into account the tag and uses multiple modules for classpath generation (if defined) in the tag in processes.xml
  • genesis-logging : Add default log paths to the log4j2-default.xml file if L and RL env variables are not found
  • genesis-logging : Fixed issues where startServer would throw an error and stop if runtime/logs contained a .gz file which was not related to a valid Genesis process

8.8.15

Fixes
  • genesis-gradle : Fixed an issue where the gradle cache was reading system definition items defined with type LONG as INT values. This lead to constant cache misses even when the values were unchanged, which contributed to longer build times.

8.8.14

Fixes
  • genesis-config : Support String input for sys def ProcessDependencyTimeoutSeconds
  • genesis-console : Console endpoints EVENT_START_PROCESS and EVENT_STOP_PROCESS now work as expected. Previously an error was returned in recent versions of the platform.
  • genesis-db : Handle sql getRange operation with continuation
  • genesis-environment : GENESIS_SYSDEF_ environment variable values now take precedence when the system definition item is being read in python scripts
  • genesis-gradle : Also use site specific template files when checking for overridden processes
  • genesis-testsupport : Fix handling of nested classes
  • genesis-pal-streamer : Ensure response to client when more data is available and records in lookup all filtered out
  • genesis-router : Fix package scan definition in processes.xml to only include console router extensions
  • genesis-router : Handle Netty exceptions when creating a TextWebsocketFrame in a graceful manner

8.8.13

Fixes
  • genesis-db : Do not use SQL thread pool for RxDb transactions to avoid deadlock
  • genesis-pal-consolidator : Ensure non-nullable fields without default value can be zeroed out automatically in non-transient cold start operations
  • genesis-pal-dataserver : Fixed an issue where priming progress was incorrectly printing 0 rather than the amount of records it has processed
  • Fixed a test-only edge case in GenesisMessageClient where event message type, correctly registered with EventReply, was expected to return a GenesisSet in a specific test path. This mismatch caused type errors, now resolved by transforming the reply into a GenesisSet where needed

8.8.12

Fixes
  • genesis-db : Fixed an issue with upsertAll in SQL layer where it was unable to handle records where the primary key was not populated but is an autoIncrement or sequenced field
  • genesis-testsupport : Detect annotations on super classes
  • genesis-pal-dataserver : String overflow handling logic is now applied correctly when priming
  • settings-gradle-plugin-common : Add script dependencies on script-config module if present

8.8.11

Features
  • genesis-pal-dataserver : Improve priming progress updates in log file
Fixes
  • genesis-db : UpsertAll now handles insert operations with auto generated indexed sequence values correctly in batch mode
  • genesis-pal-dataserver : Revert publishUpdatesWhilePriming to previous behaviour when it was ignored, due to issue when enabled
  • genesis-pal-requestserver : Range requests using FROM/TO are now evaluated correctly

8.8.10

Features
  • Add support for GENESIS_HOME in templt.xml files
  • Improve coroutine exception handling
Fixes
  • Use GenesisInjector for all script configurations

8.8.9

Features
  • genesis-pal-dataserver : Add maxBytesPerCharacter configuration item to improve handling of UTF-8 characters in indices
Fixes
  • genesis-pal-dataserver : Avoid unnecessary LMDB range read in certain scenarios
  • genesis-pal-dataserver : Ensure string UTF-8 byte size is taken into account when truncating strings as part of index handling
  • genesis-dataserver2 : Fixed a race condition when a modify event matching the where clause quickly follows a non-matching insert event.
Experimental features
  • genesis-pal-dataserver : Added an alternate update handler - a new way of processing table/view updates that relies on the database as a source of truth more often, potentially introducing more database load.

8.8.8

Fixes
  • Do not refresh updates that have moved in or out of range
  • Better log error message when SysDef evaluation fails
  • Fix support for views in DbMon

8.8.7

Fixes
  • Disabling processRestart when flag is TRUE and not FALSE

8.8.6

Fixes
  • Tests should apply SysDefOverwrite when a process config file is provided

8.8.5

Fixes
  • dataserver: ensure we use LMDB as source of truth when the oldRecord information in the table update is not available
  • db: when db cache inserts are enabled, write inserts to the cache if existing cache entry value is null
  • Disabling processRestart for docker images and including encrypting sysdefs

8.8.4

Features
  • genesis-testsupport : Create compatible DumpIt interface
  • genesis-testsupport : Improve loading of test data
Fixes
  • Using app sys def file in integration tests should work for multiple tests

8.8.3

Fixes
  • Generated SysDef should allow safe conversion of types

8.8.2

Features
  • genesis-codegen: Add flag to create compact toString method on entities
  • genesis-junit: Add support for dumpit csv and csv.gz files
  • Display current cluster node role in mon
Fixes
  • ClasspathGenerator to attempt to resolve module name without a full match
  • Generated rx repos use modified fields for modify operations
  • Race condition when processing multiple back join table modifications on different fields at the same time
  • Reusable lambdas in views now cope with aliased table arguments

8.8.1

Features
  • Enhance criteria expression capabilities by allowing direct comparisons between DateTime objects against Long and String types.
Fixes
  • Ensure TRACE level is set correctly for GenesisMessageEncoder and GenesisMessageDecoder when DATADUMP_ON is activated.
  • TypeAwareCriteriaEvaluator in Dataserver now works with query-enriched fields.
  • Ensure TypeAwareCriteriaEvaluator usage in Dataserver and req/rep handles all common date/datetime formats.
  • Process bbg messages with nested structures correctly.

Client

Features

  • Set position + fix styling on select renderer
  • Add parts and dynamic attrs to multiselect option
  • Add onchange callback to boolean renderer
  • Add onchange callback to number renderer
  • Added free text support in options-datasource
  • Ability to use multi-select renderer with data 
  • Emitting grid instance from tabulator

Fixes

  • Add missing types exports from packages
  • Add css part onto multiselect list
  • Address multiselect type re-export
  • Address columnDefinitions getting lost
  • Update client-app to GSF 8.7 & genesisStart to 0.1.6
  • Rename auth store events to avoid clashing with consuming app
  • Address datasource handleInserts when multiple criteria changes
  • Use foundation-router for logout
  • Added GENERATED property in Message type in foundation-comms
  • Add conditional path generation in generateNavigationPath
  • Proxy for file server endpoints