8.8
Server
Features
- Added ability to perform record deltas using dbSink by exposing
modifiedFields - Add
dynamicQueryBuildersupport - 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
BackwardJoinCachefor 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_TOKENvalue is correctly added toEVENT_LOGIN_AUTHpayload - 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
whereclauses and use correct uppercase underscore translation - ResourceDaemon doesn't properly evaluate
ClusterMode - Align Kotlin daemon heap across composite build
DbBulkSubscribenot updating secondary table whenbackwardsJointrue- Ensure
DataDumpManageruses different loggers forGenesisMessageDecoderandGenesisMessageEncoder - Ensure optimistic concurrency checks work within transactions
- Ensure script files in site-specific have priority when searching by suffix
- Exec plugin should take
clientNameoverride 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
ServiceDiscoverybased 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.31
Fixes
genesis-eventhandler: Split different Event Handler APIs into separate implementations to avoid potential coroutine issues when using runBlocking
8.8.30
Features
core: Support running groovy and GPAL scripts in the same process to aid migration to GPALgenesis-pal-dataserver: Improve data server duplicate key error message and logging around start up
Fixes
genesis-dbmon: Fix bug in DbMon handling of search command when using FoundationDB as the database engine
8.8.29
Features
genesis-environment: Add PurgersReader.purgeAllDerivedRecordsFlow and PurgersReader.purgeAllDerivedRangesFlow
Fixes
genesis-db: Ensure BulkJoinProcessor listeners close all channels as expected when timeout errors happengenesis-pal-dataserver: Ensure insert updates are evaluated using dataserver where clause
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 issuesgenesis-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 additionalQUERY_UPDATEmessage withMORE_ROWS=falseis sent to query subscriptions using thechunkLargeMessagesoption, if no more rows are available after aDATA_LOGONorMORE_ROWSrequest (GSF-7356)genesis-pal-requestserver: Fix bug in handling of a_FROM=>_TOrange
8.8.25
Features
genesis-environment: AddPurgersReader.purgeDerivedRangeFlow
8.8.24
Features
genesis-environment: Return purged record inPurgersReader.purgeDerivedRecord
Fixes
genesis-pal-dataserver: SettingMAX_VIEW = 0should allow views to grow without boundaries other thanInteger.MAX_VALUE
8.8.23
Fixes
genesis-pal-dataserver: Fury serializer can now handle payloads greater than 512 bytes correctlygenesis-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: RevertGenesisInjectorchanges forPurgeTablesand 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: EnsureGlobalClasspathAdditionssysdef item is handled correctly as part ofstartProcessclasspath 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 generationgenesis-environment:preCompileScriptsnow takes into account the tag and uses multiple modules for classpath generation (if defined) in the tag in processes.xmlgenesis-logging: Add default log paths to the log4j2-default.xml file if L and RL env variables are not foundgenesis-logging: Fixed issues wherestartServerwould throw an error and stop ifruntime/logscontained a.gzfile 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 typeLONGasINTvalues. This lead to constant cache misses even when the values were unchanged, which contributed to longer build times.
8.8.14
Fixes
genesis-config: SupportStringinput for sys def ProcessDependencyTimeoutSecondsgenesis-console: Console endpointsEVENT_START_PROCESSandEVENT_STOP_PROCESSnow work as expected. Previously an error was returned in recent versions of the platform.genesis-db: Handle sql getRange operation with continuationgenesis-environment:GENESIS_SYSDEF_environment variable values now take precedence when the system definition item is being read in python scriptsgenesis-gradle: Also use site specific template files when checking for overridden processesgenesis-testsupport: Fix handling of nested classesgenesis-pal-streamer: Ensure response to client when more data is available and records in lookup all filtered outgenesis-router: Fix package scan definition in processes.xml to only include console router extensionsgenesis-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 deadlockgenesis-pal-consolidator: Ensure non-nullable fields without default value can be zeroed out automatically in non-transient cold start operationsgenesis-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
GenesisMessageClientwhere 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 withupsertAllin SQL layer where it was unable to handle records where the primary key was not populated but is an autoIncrement or sequenced fieldgenesis-testsupport: Detect annotations on super classesgenesis-pal-dataserver:Stringoverflow handling logic is now applied correctly when primingsettings-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 modegenesis-pal-dataserver: RevertpublishUpdatesWhilePrimingto previous behaviour when it was ignored, due to issue when enabledgenesis-pal-requestserver: Range requests using FROM/TO are now evaluated correctly
8.8.10
Features
- Add support for
GENESIS_HOMEintemplt.xmlfiles - Improve coroutine exception handling
Fixes
- Use
GenesisInjectorfor all script configurations
8.8.9
Features
genesis-pal-dataserver: AddmaxBytesPerCharacterconfiguration item to improve handling of UTF-8 characters in indices
Fixes
genesis-pal-dataserver: Avoid unnecessary LMDB range read in certain scenariosgenesis-pal-dataserver: Ensure string UTF-8 byte size is taken into account when truncating strings as part of index handlinggenesis-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
SysDefevaluation fails - Fix support for views in
DbMon
8.8.7
Fixes
- Disabling
processRestartwhen flag is TRUE and not FALSE
8.8.6
Fixes
- Tests should apply
SysDefOverwritewhen a process config file is provided
8.8.5
Fixes
- dataserver: ensure we use LMDB as source of truth when the
oldRecordinformation 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
processRestartfor docker images and including encrypting sysdefs
8.8.4
Features
genesis-testsupport: Create compatibleDumpItinterfacegenesis-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
toStringmethod on entities - genesis-junit: Add support for dumpit csv and csv.gz files
- Display current cluster node role in
mon
Fixes
ClasspathGeneratorto 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
DateTimeobjects againstLongandStringtypes.
Fixes
- Ensure
TRACElevel is set correctly forGenesisMessageEncoderandGenesisMessageDecoderwhenDATADUMP_ONis activated. TypeAwareCriteriaEvaluatorin Dataserver now works with query-enriched fields.- Ensure
TypeAwareCriteriaEvaluatorusage 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