Skip to main content

8.15

tip

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

Server​

Breaking changes​

  • Update to Apache Fory 0.14.1
  • Upgrade commons-configuration from version 1.x to latest 2.x
  • Bump camelVersion from 4.14.4 to 4.18.0
  • exec-gradle-plugin : Create new dynamic deployment to allow apps to overwrite dependencies
  • deploy-gradle-plugin : Remove legacy tasks; and move docker task to exec-gradle-plugin, see here for details
  • genesis-pal-datapipeline : Enhanced acknowledgement mechanism with different error types, including new SinkUnavailable error
  • genesis-router : Set cookie authentication by default

Features​

  • build-gradle-plugin : Add new gradle task named checkAuthPermissions to check permissions/auth configuration
  • core : Support overriding process level system definition properties using environment variables
  • coreproduct : Enhance python scripts to allow process start flag to be overridden from sysdef or env vars
  • coreproduct : Support compiled GPal definitions
  • deploy-gradle-plugin : Adding a task to create a full zip of server and web with all dependencies
  • genesis-cluster : Add DISABLED ClusterMode option to completely disable primary only checks and cluster health messages
  • genesis-cluster : Add ZeroMQProxyUnicastRelayExcludedTopics system definition option to avoid retransmitting specific update queue topics to other cluster nodes
  • genesis-codegen : Add equals and hashcode methods to entity builder classes
  • genesis-commons : Improve handling in GenesisSet and DbRecord of binary data in ByteArray
  • genesis-config : Transform from String to List, Set and Map in the dependency inject module
  • genesis-criteria : Add WEEK_DAY as a valid option for Expr groovy expressions
  • genesis-db : Improve connection acquisition in native sql layer, and improve coroutine strategy
  • genesis-db : Add updateBy to SyncEntityDb
  • genesis-db : Add entity dictionary on entity db and enhance req/rep metadata in criteria only mode to provide criteriaFields and sortableFields information
  • genesis-db : Add support for Expr.dateTimeIsInRange as part of native SQL querying capabilities
  • genesis-db : Added DbMaxRetryBeforeExit system property to terminate process after failed retries
  • genesis-db : Handle JSON aliased enum valuess in getByCriteria operation
  • genesis-db : Improve criteria validation
  • genesis-db : Relax criteria validation
  • genesis-dbmon : Support displaying byte array fields
  • genesis-environment : Support byte array fields in DumpIt and SendIt
  • genesis-environment : Support views in DumpIt
  • genesis-net : Support advanced TLS configurations, including MTLS
  • genesis-pal : Add criteriaTemplate syntax in data servers and request servers
  • genesis-pal : Enabled named injection in gpal kts scripts
  • genesis-pal : Improve error handling in views, when circular join is detected
  • genesis-pal-consolidator : Add support for minBy and maxBy functions
  • genesis-pal-datapipeline : Improvement for batch pipeline exception handling and transaction support
  • genesis-router : Add sessionCookies configuration to allow undefined max-age cookies
  • genesis-router : Handle bad request correctly
  • Add formatting support for java.time Temporal types
  • Add support for column ordering to match inclusion list
  • Allow passing of arbitrary datasource properties to Hikari using sql.genesis syntax
  • Migrate from sparkjava to Javalin to solve Jetty vulnerability issues in genesis-webmon and genesis-resource-daemon

Performance improvements​

  • genesis-process : Add compilation time package scan support for the following packages: global.genesis.net.messaging, global.genesis.metrics and global.genesis.tracing

Fixes​

  • codegen-gradle-plugin : Add system definition files to fields-dictionary kts evaluation cache to prevent false positive cache hits
  • codegen-gradle-plugin : Use runtimeClasspath in codegen isolated task execution to ensure correct behaviour
  • core : Process shuts down when a dependant process has shut down
  • coreproduct : Ensure preCompileScripts classpath generation is the same as startProcess
  • coreproduct : Handle boolean start flags in getListOfProcessNames()
  • exec-gradle-plugin : Disable ModuleFileCreator task if dynamic deploy is not used
  • exec-gradle-plugin : Ensure image name is always lowercase
  • genesis-cluster : Avoid instantiating console web endpoints as part of the package scan mechanism for GENESIS_CLUSTER
  • genesis-cluster Fix race condition between Consul service discovery lookup and unicast relay data processing
  • genesis-clustersupport : Ensure Consul TTL health check coroutines run independently to avoid contention problems
  • genesis-clustersupport : Process monitors in STANDBY state should be reported as "failed" checks to Consul
  • genesis-clustersupport : STANDBY health checks need to be excluded from Consul service discovery eligibility
  • genesis-codegen : Always write serialised dictionary on codegen
  • genesis-codegen : Handle sys defs with characters that would be illegal in a kotlin name e.g. .
  • genesis-console : Revert API classes package move
  • genesis-criteria Fix incorrect index interval generation when translating some Expr.dateIs operations
  • genesis-db : Ensure RxJdbcDataSource connection provider releases internal semaphore monitor in case the connection pool throws an exception
  • genesis-db : Ensure basic SQL statement execution consumes all results to guarantee MSQLServer errors are handled correctly in multi line DDL statements
  • genesis-db : Use Dispatchers.IO to handle database queries used in getByCriteria and SqlViewExecutor to avoid deadlocks derived from exhausting the dbCoroutinesContext thread pool
  • genesis-db : Add type checking in getByCriteria operation
  • genesis-db : Correct handling repo modules with suspend methods
  • genesis-db : Correct native sql handling of (non-)nullable methods in proxy classes
  • genesis-db : fix issue in getRangeFromEnd operation when SqlViewsEnabled is true
  • genesis-db : GetRange on a View hangs indefinitely when called within a database transaction
  • genesis-db : Handle genesis table objects using sql native connection
  • genesis-db : Native sql layer, release connection on failure to execute query
  • genesis-db : Passing parameter to view in non-sql mode
  • genesis-db : Remove blocking calls in CriteriaCacheManager.kt
  • genesis-db : Support ResultSet streaming in native SQL and getByCriteria to reduce memory pressure
  • genesis-dbmon : FindCommand should use UniqueIndex Jackson deserialization
  • genesis-dbmon : fix view field handling in search and distinct commands
  • genesis-environment : Application and component installHook failures should not return a 0 exit code
  • genesis-environment : DumpIt should rely on existing dictionary schema for database tables to ensure compatibility instead of deployed dao classes
  • genesis-environment : Ensure audit records are inserted correctly when using SendIt
  • genesis-environment : Ensure field max size schema changes respect each individual table definition and preserve field nullability configuration when applying such changes in SQL Server
  • genesis-environment : Ensure table index renames are applied as part of remap
  • genesis-environment Fix Oracle DDL statements for sequence value increments
  • genesis-environment : Handle autoIncrement/sequence migration correctly in SQL Server/H2 when executing remap for certain field schema migrations
  • genesis-environment : Enable SendIt to handle binary data in LEGACY mode
  • genesis-environment : fix handling of sys def reading with overlapping product names
  • genesis-net : Create request log per process
  • genesis-openapi-gradle : Depend on sourcesJar if task exists
  • genesis-pal-consolidator fix memory profile in cold start
  • genesis-pal-eventhandler : Compiled GPAL event handlers may crash when multiple .kt files exist and global permissions are defined
  • genesis-pal-eventhandler : Remove Kotlin compiler warning in event handlers related to reified type intersections
  • genesis-pal-eventhandler : fix event handler global permission check
  • genesis-pal-requestserver : Include derivedFields for SQL-based criteria-only request reply workflow
  • genesis-resource-daemon : STANDBY processes should be shown as STANDBY instead of DOWN in "mon" when using Consul mode
  • genesis-resource-daemon : Correct health endpoint handling with processes disabled
  • genesis-router : Correct collection handling in web-handler.kts files
  • genesis-router : Re-add injector function
  • gradle : Remove duplicate entries in docker genesis-home
  • product-details-gradle-plugin : Ensure createManifest can run after clean
  • Added concept of scoped pools of clients, to avoid issues with router incorrectly initialising service connections
  • Split delimited cache table indices in XML config file

Dependency changes​

  • Exclude transitive jetty dependencies from Kafka connect-runtime and use common version for commons-codec across GSF
  • Remove sshd dependencies from BOM and deploy-gradle-plugin
  • Use yawk.lz4:lz4-java dependency instead of org.lz4:lz4-java to solve vulnerability problems
  • Bump aeronVersion from 1.48.6 to 1.49.0
  • Bump aeronVersion from 1.49.0 to 1.49.1
  • Bump aeronVersion from 1.49.1 to 1.49.2
  • Bump aeronVersion from 1.49.2 to 1.49.3
  • Bump aeronVersion from 1.49.3 to 1.50.0
  • Bump aeronVersion from 1.50.0 to 1.50.1
  • Bump apachePoi from 5.4.1 to 5.5.0
  • Bump apachePoi from 5.5.0 to 5.5.1
  • Bump at.yawk.lz4:lz4-java from 1.10.2 to 1.10.3
  • Bump byteBuddyVersion from 1.17.7 to 1.17.8
  • Bump byteBuddyVersion from 1.17.8 to 1.18.1
  • Bump byteBuddyVersion from 1.18.1 to 1.18.2
  • Bump byteBuddyVersion from 1.18.2 to 1.18.3
  • Bump byteBuddyVersion from 1.18.3 to 1.18.4
  • Bump byteBuddyVersion from 1.18.4 to 1.18.5
  • Bump camelVersion from 4.10.6 to 4.14.1
  • Bump camelVersion from 4.14.1 to 4.14.4
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.12 to 0.17.16
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.16 to 0.17.17
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.17 to 0.17.18
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.18 to 0.17.19
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.19 to 0.17.20
  • Bump com.avast.gradle:gradle-docker-compose-plugin from 0.17.20 to 0.17.21
  • Bump com.github.ben-manes.caffeine:caffeine from 3.2.2 to 3.2.3
  • Bump com.github.javaparser:javaparser-core from 3.27.1 to 3.28.0
  • Bump com.github.oshi:oshi-core from 6.9.0 to 6.9.1
  • Bump com.github.oshi:oshi-core from 6.9.1 to 6.9.2
  • Bump com.github.oshi:oshi-core from 6.9.2 to 6.9.3
  • Bump com.google.errorprone:error_prone_annotations from 2.41.0 to 2.42.0
  • Bump com.google.errorprone:error_prone_annotations from 2.42.0 to 2.43.0
  • Bump com.google.errorprone:error_prone_annotations from 2.43.0 to 2.44.0
  • Bump com.google.errorprone:error_prone_annotations from 2.44.0 to 2.45.0
  • Bump com.google.errorprone:error_prone_annotations from 2.45.0 to 2.46.0
  • Bump com.google.errorprone:error_prone_annotations from 2.46.0 to 2.47.0
  • Bump com.google.protobuf:protobuf-java from 4.32.1 to 4.33.0
  • Bump com.google.protobuf:protobuf-java from 4.33.0 to 4.33.1
  • Bump com.google.protobuf:protobuf-java from 4.33.1 to 4.33.2
  • Bump com.google.protobuf:protobuf-java from 4.33.2 to 4.33.3
  • Bump com.google.protobuf:protobuf-java from 4.33.3 to 4.33.4
  • Bump com.google.protobuf:protobuf-java from 4.33.4 to 4.33.5
  • Bump com.google.protobuf:protobuf-java from 4.33.5 to 4.34.0
  • Bump com.jfrog.artifactory from 6.0.1 to 6.0.2
  • Bump com.jfrog.artifactory from 6.0.1 to 6.0.2
  • Bump com.jfrog.artifactory from 6.0.2 to 6.0.3
  • Bump com.jfrog.artifactory from 6.0.2 to 6.0.4
  • Bump com.jfrog.artifactory from 6.0.3 to 6.0.4
  • Bump com.microsoft.sqlserver:mssql-jdbc from 12.10.1.jre11 to 13.2.1.jre11
  • Bump com.networknt:json-schema-validator from 1.5.9 to 2.0.0
  • Bump com.networknt:json-schema-validator from 2.0.0 to 2.0.1
  • Bump commons-cli:commons-cli from 1.10.0 to 1.11.0
  • Bump commons-codec:commons-codec from 1.19.0 to 1.20.0
  • Bump commons-codec:commons-codec from 1.20.0 to 1.21.0
  • Bump commons-io:commons-io from 2.20.0 to 2.21.0
  • Bump de.cronn:reflection-util from 2.18.0 to 2.19.1
  • Bump io.github.classgraph:classgraph from 4.8.181 to 4.8.184
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.20.0 to 2.20.1
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.20.1 to 2.21.0
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.21.0 to 2.22.0
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.22.0 to 2.23.0
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.23.0 to 2.24.0
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.24.0 to 2.25.0
  • Bump io.reactivex.rxjava3:rxjava from 3.1.11 to 3.1.12
  • Bump it.unimi.dsi:fastutil-core from 8.5.16 to 8.5.18
  • Bump jnaVersion from 5.17.0 to 5.18.0
  • Bump jnaVersion from 5.18.0 to 5.18.1
  • Bump kafkaClientVersion from 4.1.0 to 4.1.1
  • Bump ktorVersion from 3.2.3 to 3.3.3
  • Bump log4jVersion from 2.25.1 to 2.25.2
  • Bump log4jVersion from 2.25.2 to 2.25.3
  • Bump maven-plugin-api.version from 3.9.11 to 3.9.12
  • Bump micrometerVersion from 1.15.4 to 1.15.5
  • Bump micrometerVersion from 1.15.5 to 1.16.0
  • Bump micrometerVersion from 1.16.0 to 1.16.1
  • Bump micrometerVersion from 1.16.1 to 1.16.2
  • Bump micrometerVersion from 1.16.2 to 1.16.3
  • Bump mockitoVersion from 5.19.0 to 5.20.0
  • Bump mockitoVersion from 5.20.0 to 5.21.0
  • Bump msgpackVersion from 0.9.10 to 0.9.11
  • Bump nettyVersion from 4.2.6.Final to 4.2.7.Final
  • Bump nettyVersion from 4.2.7.Final to 4.2.9.Final
  • Bump nettyVersion from 4.2.9.Final to 4.2.10.Final
  • Bump oracleJdbcVersion from 23.9.0.25.07 to 23.26.1.0.0
  • Bump org.agrona:agrona from 2.2.4 to 2.3.0
  • Bump org.agrona:agrona from 2.3.0 to 2.3.1
  • Bump org.agrona:agrona from 2.3.1 to 2.3.2
  • Bump org.agrona:agrona from 2.3.2 to 2.4.0
  • Bump org.apache.activemq:artemis-jakarta-client from 2.42.0 to 2.43.0
  • Bump org.apache.activemq:artemis-jakarta-client from 2.43.0 to 2.44.0
  • Bump org.apache.activemq:artemis-jakarta-client from 2.44.0 to 2.50.0
  • Bump org.apache.activemq:artemis-jakarta-client from 2.50.0 to 2.51.0
  • Bump org.apache.commons:commons-lang3 from 3.18.0 to 3.19.0
  • Bump org.apache.commons:commons-lang3 from 3.19.0 to 3.20.0
  • Bump org.apache.fory:fory-kotlin from 0.14.1 to 0.15.0
  • Bump org.apache.maven.archetype:archetype-packaging from 3.4.0 to 3.4.1
  • Bump org.apache.maven.plugin-tools:maven-plugin-annotations from 3.15.1 to 3.15.2
  • Bump org.apache.maven.plugins:maven-archetype-plugin from 3.4.0 to 3.4.1
  • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.0 to 3.14.1
  • Bump org.apache.maven.plugins:maven-dependency-plugin from 3.8.1 to 3.9.0
  • Bump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.1 to 3.6.2
  • Bump org.apache.maven.plugins:maven-plugin-plugin from 3.15.1 to 3.15.2
  • Bump org.apache.maven.plugins:maven-release-plugin from 3.1.1 to 3.3.1
  • Bump org.apache.maven.plugins:maven-resources-plugin from 3.3.1 to 3.4.0
  • Bump org.apache.maven:maven-model from 3.9.11 to 3.9.12
  • Bump org.apache.shiro:shiro-core from 2.0.5 to 2.0.6
  • Bump org.apache.shiro:shiro-core from 2.0.6 to 2.1.0
  • Bump org.assertj:assertj-core from 3.27.5 to 3.27.6
  • Bump org.assertj:assertj-core from 3.27.6 to 3.27.7
  • Bump org.checkerframework:checker-qual from 3.51.0 to 3.51.1
  • Bump org.checkerframework:checker-qual from 3.51.1 to 3.52.0
  • Bump org.checkerframework:checker-qual from 3.52.0 to 3.52.1
  • Bump org.checkerframework:checker-qual from 3.52.1 to 3.53.0
  • Bump org.checkerframework:checker-qual from 3.53.0 to 3.53.1
  • Bump org.gradle.test-retry from 1.6.2 to 1.6.4
  • Bump org.gradle:test-retry-gradle-plugin from 1.6.2 to 1.6.4
  • Bump org.jetbrains.dokka:dokka-gradle-plugin from 2.0.0 to 2.1.0
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.1 to 6.0.2
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.1 to 6.0.2
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.2 to 6.0.3
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.2 to 6.0.4
  • Bump org.jfrog.buildinfo:build-info-extractor-gradle from 6.0.3 to 6.0.4
  • Bump org.jlleitschuh.gradle.ktlint from 13.1.0 to 14.0.1
  • Bump org.jlleitschuh.gradle:ktlint-gradle from 13.1.0 to 14.0.1
  • Bump org.kiwiproject:consul-client from 1.6.0 to 1.7.0
  • Bump org.mockito.kotlin:mockito-kotlin from 6.0.0 to 6.1.0
  • Bump org.mockito.kotlin:mockito-kotlin from 6.1.0 to 6.2.0
  • Bump org.mockito.kotlin:mockito-kotlin from 6.2.0 to 6.2.1
  • Bump org.mockito.kotlin:mockito-kotlin from 6.2.1 to 6.2.2
  • Bump org.mockito.kotlin:mockito-kotlin from 6.2.2 to 6.2.3
  • Bump org.objenesis:objenesis from 3.4 to 3.5
  • Bump org.openapitools:openapi-generator from 7.15.0 to 7.16.0
  • Bump org.openapitools:openapi-generator from 7.16.0 to 7.17.0
  • Bump org.openapitools:openapi-generator from 7.17.0 to 7.18.0
  • Bump org.openapitools:openapi-generator from 7.18.0 to 7.19.0
  • Bump org.openapitools:openapi-generator from 7.19.0 to 7.20.0
  • Bump org.postgresql:postgresql from 42.7.8 to 42.7.9
  • Bump org.postgresql:postgresql from 42.7.9 to 42.7.10
  • Bump org.quartz-scheduler:quartz from 2.4.0 to 2.5.1
  • Bump org.quartz-scheduler:quartz from 2.5.1 to 2.5.2
  • Bump owasp-java-html-sanitizer from 20240325.1 to 20260102.1
  • Bump pekkoVersion from 1.2.0 to 1.2.1
  • Bump pekkoVersion from 1.2.1 to 1.3.0
  • Bump pekkoVersion from 1.3.0 to 1.4.0
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.4 to 2.6.5
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.5 to 2.6.6
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.6 to 2.6.7
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.7 to 2.6.8
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 2.6.8 to 3.0.0
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 3.0.0 to 3.1.0
  • Bump software.amazon.jdbc:aws-advanced-jdbc-wrapper from 3.1.0 to 3.2.0
  • Bump testcontainersVersion from 1.21.3 to 1.21.4

Patch releases​

8.15.37​

Features​
  • genesis-resource-daemon : Backport LDAP login mode for the management console
  • genesis-router : Sysdef-overridable router and MCP ports
Fixes​
  • dbmon : Compare against the comparator date in Expr.dateIsAfter

8.15.36​

Features​
  • genesis-pal-consolidator : Add excludedEmitters support
Fixes​
  • criteria : Parse date literals the same way in memory as in SQL
  • genesis-clustersupport : Extend transient-I/O retry to the explicit-pin path

8.15.35​

Features​
  • clustersupport : Consul-backed gFlake NodeId allocation, wiring & reclamation
  • genesis-db : Opt-in cached point reads inside transactions
  • genesis-pal-dataserver : Report lmdb space usage as metrics
Fixes​
  • genesis-clustersupport : Scope ConsulClientProvider as a singleton
  • genesis-db : Report an absent field as null rather than dereferencing it
  • genesis-db : Rethrow InterruptedException during SQLEngine dictionary retrieval
  • genesis-environment : Build FDB indexes from record-aligned ranges instead of stitched fragments
  • genesis-environment : Harden VerifyFDBIndexes and the record-aligned FDB remap scan
  • genesis-environment : Resume an FDB index build after the transaction-size guard stops a batch
  • genesis-pal-dataserver : Guard the lmdb env lifecycle instead of one call site
  • genesis-pal-dataserver : Join lmdb background loops before closing the env
  • genesis-pal-dataserver : Read the lmdb space usage in a read transaction
  • server : Convert DateTime and enum values on every view DbRecord path

8.15.34​

Features​
  • genesis-resource-daemon : Authenticated management API and browser console
Fixes​
  • genesis-environment : Make LogLevel work over WebSocket and from the console
  • genesis-process : Nullable Any-typed fields lose their null option in generated JSON schema

8.15.33​

Breaking changes​
  • genesis-db : Hide vararg overload from entity-DB getAllAsList
Fixes​
  • genesis-criteria : Allow nested binary expressions in evaluator result/rule expressions
  • genesis-db : Backport Bulk upsertAll order/count fix to 8.15.x
  • genesis-db : Expose no-arg getBulk()/count() to GPAL scripts

8.15.32​

Dependency changes​
  • Bump org.jline:jline from 3.30.6 to 4.0.7

8.15.31​

Features​
  • genesis-columnar : SCDB columnar wire encoding for dataserver & request-server
  • genesis-pal-consolidator : Add opt-in eventual-consistency mode (recompute-on-trigger) to fix out-of-order updates under high throughput
Fixes​
  • Install custom Nginx version via dnf

8.15.30​

Fixes​
  • Add genesisType for BigDecimal nullable and non-nullable case
  • Update installed toolsets in docker images

8.15.29​

Features​
  • genesis-pal-datapipeline : add ability for dbBatchQuery source to start polling from latest

8.15.28​

Fixes​
  • clustersupport : route pipeline event sink through MessageService with UNAVAILABLE retry and auto-failover
  • genesis-session : pre-generate Chronicle value flyweight to avoid startup OOM

8.15.27​

Fixes​
  • daemon : Fix minor resource leak in daemon script if an exception occurs

8.15.26​

Fixes​
  • consul : sessionJob starts unconditionally and monitor checks always register as critical
  • consul : shut down replaced client to stop Netty reconnect loop retrying dead node

8.15.25​

Features​
  • genesis-router : Add httpCompression option to router definition

8.15.24​

Fixes​
  • genesis-clustersupport : Backport Consul failover fixes to 8.15.x

8.15.23​

Features​
  • coreproduct : Increase maxSize to 256 for SYSTEM_KEY field
  • genesis-process : Add system definition flag to explicitly disable tracing
Performance improvements​
  • genesis-db : Optimize DataTypeConverter resolution
Fixes​
  • genesis-pal-datapipeline : Ensure buildIndex filter is applied from the first poll when no persistence entry exists
Dependency changes​
  • Mirror Maven Central through JFrog and drop unauthenticated spring-plugins repo

8.15.22​

Fixes​
  • genesis-pal-streamerclient : Revert "Resource-based service discovery for streamer clients with compact process support" due to resource name clashing issues
Dependency Changes​
  • Add JFrog dev-repo to Gradle configs to mitigate Maven Central throttling
  • Point Maven wrapper distributionUrl to Apache archive to mitigate Maven Central throttling
  • Use JFrog dev-repo first for Maven submodules to mitigate Maven Central throttling

8.15.21​

Fixes​
  • genesis-environment : SendIt BigDecimal Precision and Rounding Issues for FDB Migrations
  • genesis-router : preserve MORE_ROWS flag in HTTP dataserver polling response

8.15.20​

Fixes​
  • genesis-dbmon : support -l flag in search/qsearch when criteriaMode is enabled
  • genesis-environment : update DumpTable to use commons-collections4

8.15.19​

Fixes​
  • genesis-dataserver2 : Add back kryo-serializers dataserver2 dependency for backwards compatibility

8.15.18​

Fixes​
  • genesis-dataserver2 : add Joda-Time Kryo serializers to remove kryo-serializers dependency

8.15.17​

Features​
  • genesis-pal-requestserver : expose Request.Details to custom reqrep handlers
Fixes​
  • genesis-config : Replace shiro with javax.crypto and add tests for backwards compatibility

8.15.16​

Fixes​
  • gradle : Allow skipping jars by prefix in classpath file for dynamic deploy

8.15.15​

Fixes​
  • genesis-clustersupport : replay current snapshot on addServiceListener to avoid waitForDependencies hang

8.15.14​

Dependency changes​
  • Bump jackson 2.21.3, log4j 2.25.4, aws-jdbc 3.3.0, debezium 3.5.0, bcprov 1.84, plexus-utils 3.6.1, camel 4.18.2

8.15.13​

Features​
  • coreproduct : Make MANIFEST_SKIP_PREFIXES configurable via env var
  • genesis-db : Configurable IO dispatcher for SyncEntityDb

8.15.12​

Fixes​
  • coreproduct : Skip maven-artifact and plexus-utils MANIFEST refs in getDependenciesForJar

8.15.11​

Breaking changes​
  • genesis-router : Sanitise output strings for XSS attacks
Dependency changes​
  • Make opentelemetry-javaagent compileOnly in genesis-tracing
  • Bump Javalin from 6.7.0 to 7.2.0, Jetty from 11.0.25 to 12.1.8 and MCP SDK from 0.10.0 to 1.1.1
  • Bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.25.0 to 2.27.0(deps): bump io.opentelemetry.javaagent:opentelemetry-javaagent from 2.25.0 to 2.27.0
  • Bump kafkaClientVersion from 4.1.1 to 4.1.2
Features​
  • gradle : Add packagingStrategy property to ExecExtension for app distribution folder structure
Fixes​
  • Exclude plexus-utils from distribution zip

8.15.10​

  • This release was unintentionally published during our deployment process. It contains no new features, bug fixes, or changes from the previous version. Please use the latest patch release for this minor version.

8.15.9​

Fixes​
  • genesis-db : Optimistic concurrency strict upsertAll with new record throws exception when timestamp not provided

8.15.8​

Breaking changes​
  • coreproduct : Remove MigrateDictionaryToGenesis scripts broken by dta dependencies removal in 8.15.0
Fixes​
  • genesis-pal-dataserver : Return defensive copy from MultiRowEntityToRowMap.recordsForEntity to prevent concurrent iteration on live LongHashSet

8.15.7​

Fixes​
  • genesis-eventhandler : Prevent duplicate event handler registration with ClassUtils.getAllInterfaces
  • Avoid exposure of internal details through API and expose them in LOG instead

8.15.6​

Features​
  • genesis-db : Add delimiter-aware ContainsWordsStartingWithIgnoreCase
Fixes​
  • genesis-config : Script cache invalidation targets wrong file in attemptToRecover
  • genesis-eventhandler : Interface resolution misses inherited interfaces causing type lookup failures
  • genesis-pal-dataserver : Check range filter in processOutOfSyncUpdate to remove out-of-range records

8.15.5​

Fixes​
  • genesis-db : Translate SQL select aliases correctly in SqlStatementTranslator
  • genesis-db : Reset oracle sequence values and continue setsequence batch on row errors

8.15.4​

Features​
  • docker : Optimise generated Dockerfile build
Performance improvements​
  • genesis-pal-dataserver : Batch enrichment DB lookups to reduce N round-trips to 1
  • genesis-pal-dataserver : Parallelize client fan-out in DataserverUpdateProcessor
  • genesis-pal-dataserver : Replace runBlocking with non-blocking dispatch in ConnectionManager
Fixes​
  • genesis-commons : DST-safe week boundary in dateTimeIsInRange tests
  • genesis-criteria : dateTimeIsInRange throws exception when ran at midnight for TimeRange HOUR and TimeContext previous
  • genesis-pal-dataserver : Fix intermittent async DataServer test failures caused by timestamp collisions, thread-safety race and stale ClientIndex overwrites
  • genesis-pal-dataserver : Fix auth update silent data loss and batch emissions
  • genesis-pal-dataserver : Fix enriched row state not cleaned up on row deletion
  • remap : Add FDB transaction limit checks whilst performing batch write operations to prevent blocker failures whislt executing remap

8.15.3​

Performance improvements​
  • genesis-pal-execution : Reduce memory footprint of backward join cache by optimising backward joins implementation and add special case for Identity branches
Fixes​
  • exec-gradle-plugin : Ensure AppDistZip and AppDistTarGz files are compatible with gradle config cache
  • exec-gradle-plugin : Replace stock processes with site-specific processes per groupId instead of merging
  • genesis-db : Correct threading in jms update queue implementation
  • genesis-environment : Improve remap handling in complex situations

8.15.2​

Features​
  • genesis-db : Add transactional support for SqlDatabaseConnection, integration with our standard database APIs, and opt-in system definition property for automatic table/column naming convention translation
  • Add AppDistTarGz task that mirrors AppDistZip; but create a tar.gz file
Fixes​

  • gradle : Change default docker url back to genesis which is used in docker image name

8.15.1​

Fixes​
  • genesis-cluster : Consul TTL healcheck pings should only start after successful service registration
  • genesis-clustersupport : Make consul health checks use elapsed time scheduling rather than fixed time scheduling and simplify primaryOnly health checks
  • genesis-clustersupport : Fix race condition in consul health point registration
  • genesis-environment : Improve GetNextSequenceNumbers/GetNextAutoIncrementNumbers handling for empty tables and UUID-style IDs

Client​

Features​

  • foundation-layout : Adding reset to default functionality
  • foundation-header : Highlight current selected route
  • Light mode optimisation
  • foundation-ui : Polishing resizable modal behavior
  • foundation-ui : Adding initial dimensions properties
  • grid-pro : Upgrade AG Grid from v29.2.0 to v34.2.0 with compatibility layer
  • Foundation UI Component Optimisation
  • foundation-ui : Support extended design tokens from json file
  • foundation-entity-management : Add foundation-filters
  • Refactor ability to set status bar label
  • grid-pro : Add row-count status bar for infinite scroll
  • Upgrade vite to 7.2.2
  • Foundation header styling and configuration options
  • grid-pro : ReqRep polling support for SSMR
  • Handle generic event_nack during login
  • foundation-header : Adding control panel to delete saved configs
  • foundation-ui : Rapid Modal and Dialog Optimisation
  • foundation-forms : Support default approval message configuration
  • foundation-forms : Automatic approval message workflow support
  • grid-pro : Handle values and criteria for setFilter
  • foundation-entity-management : Ability to set error notification config
  • rapid-grid-pro : Grid34 unified theme
  • foundation-layout : Add support for factories for usage in frameworks such as React
  • Runtime design tokens and support controlling layout tab and grid row and header heights
  • foundation-comms : Add support for >= and <= in criteriaFiltersToFields
  • foundation-forms : Add UI schema config to conditionally hide array list delete button
  • foundation-comms : Add HTTP error handling and session refresh for 401 errors
  • grid-pro : Upgrade ag-grid to v35
  • grid-pro : Enable multi column filter for string and enum fields
  • notify-pbc : Alert center redesign
  • grid-pro : Separate filters generation for ssrm
  • grid-pro : Consider null as blank on filter
  • foundation-comms : Add metadata caching to HTTP connect
  • foundation-comms : Add caching for getAvailableResources
  • grid-pro : Add RowSelectionModule support
  • datasource : Add SORTABLE_FIELDS and CRITERIA_FIELDS metadata support
  • foundation-ui : Support sub-one hour and multi-hour scheduling
  • foundation-ui : Scheduler support interval and selected hours
  • Add optgroup component and use it to categorise date filter rules
  • eslint-stylelint-builder : Upgrade to eslint 9 and support concurrency
  • Improve expression builder and row filters UX
  • Add noop utility to prevent tree-shaking of custom elements
  • foundation-header : Add nested nav permissions and layout item indicators
  • foundation-ui : Add new design tokens for form elements

Fixes​

  • foundation-forms : Pass response in submit-success
  • Handle time filter properly
  • Magic number warnings and set to errors for consistancy
  • foundation-forms : Include nested elements in validateFn
  • build-kit : Handling of optional seed params
  • foundation-ui : Regression with modal styling and layout
  • grid-pro : Merge existing grid options and column definitions
  • Vulnerability with tmp module
  • grid-pro : Update selected row background color
  • Esbuild, tsm, playwright vulnerabilities
  • foundation-ui : Fixed some PBC Reporting issues
  • Move ag-grid-community as a peer dependency
  • foundation-forms : Handle datetime/number filter by default + styling
  • foundation-forms : Correct jsonSchema for filters in req-rep
  • foundation-comms : Remove unnecessary kv storage availability check
  • Add z-index and position css variables to dialog
  • foundation-ui : Fixing dialog type consistency in attributes/styes
  • grid-pro : Enhance datasource metadata and grid initialization
  • grid-pro : Correct criteria reset in SSMR
  • grid-pro : Update originalCriteriaMatch and apply filters
  • foundation-ui : Use CRITERIA_MATCH for reqRep for options-datasource
  • foundation-header : Circular dep * fix
  • grid-pro : Refactor event handlers and organize imports
  • foundation-ui : Fixing z index in tabs
  • grid-pro : Hide loading overlay after rowData change
  • foundation-entity-management : Refresh customEvent form data after update
  • grid-pro : Restore event handlers
  • grid-pro : * fix race condition in datasource reconnection test
  • vite-builder : Conditionally define library entry and formats based on development mode
  • foundation-forms : Set autocomplete to off for text/number renderer
  • foundation-ui : Add default design tokens values for missing json values
  • foundation-forms : Adding margin left to array list delete button
  • foundation-ui : Change the default design tokens to a ts file
  • foundation-entity-management : Export list custom element
  • foundation-layout : Defend against bad configurtion causing runtime errors
  • foundation-entity-management : Tweak lifecycle to handle layout events
  • foundation-comms : Export HttpConnectConfig types for HTTP polling configuration
  • grid-pro : Separate filters generation for ssrm
  • foundation-comms : Support REQUEST_SERVER messages in HTTP mode
  • foundation-comms : Support per-resource polling intervals via POLLING_INTERVAL_MAP
  • foundation-ui : Rule expression builder to convert to ms epoch matching server
  • grid-pro : Clear row data before destroying grid to prevent memory leak
  • foundation-entity-management : Clear error column field after success submit
  • foundation-ui : Replace hardcoded light gray text color in multiselect
  • grid-pro : Correct filters for blanks
  • grid-pro : Correct filters for notBlanks
  • eslint-config : fix regressions and add module-level linting
  • grid-pro : Prevent memory leaks by cleaning up observers and subscriptions
  • foundation-ui : Emit file-selected event from file-upload
  • grid-pro : Respect explicit filterParams values in agSetColumnFilter
  • foundation-redux : Expose redux store for react integration
  • grid-pro : Export missing datasource types
  • Temporarily disable slack github action
  • Disable linting check in pre-release job
  • Update e2e.yml remove slack notifications
  • Fix package depdendency and module resolution for base install
  • layout-preview-react : Init module for testing
  • layout-preview-react : Implement pr comments from previous pr
  • client-app : Add custom user PBC component example
  • client-app : Fix whitespace in auth routes comments
  • Remove foundation-console and console-app packages
  • Enable slack notifications
  • Remove test step from prerelease workflow
  • Add gemini reviewer

Breaking changes guidance​

Apache Fury renamed to Fory​

As explained here, Apache Fury has been renamed to Apache Fory. This means the packages names and class names have been migrated, as well as maven artifacts. If you are using Apache Fory in your codebase, you will need to upgrade to version 0.14.1 and adapt to the new changes. Additionally, the SerializationType.FURY option dataserver configuration has been deprecated and replaced by SerializationType.FORY instead.

Apache Commons Configuration migration from v1 to v2​

The remaining use of Apache Commons Configuration v1.x instances in the genesis server implementation have been upgraded to Apache Commons Configuration v2 to solve vulnerability problems. This also means the genesis platform does not provide a transitive dependency on Apache Commons Lang v1 anymore, as it was only part of the platform due to being a transitive dependency of Commons Config v1. If your application is using Apache Commons Config v1 or Apache Commons Lang v1 imports/classes, they will need to be migrated to Commons Config v2 and Commons Lang 3 respectively. The most common scenario for migration is to replace old Commons Lang imports for new Commons Lang 3 imports. For example: import org.apache.commons.lang.StringUtils can be replaced by import org.apache.commons.lang3.StringUtils withouy any additional changes.

Apache Camel upgrade from 4.14.x LTS to 4.18.x LTS​

The Apache Camel base version used by genesis has now been upgraded to use the 4.18.x LTS version. Please review the Apache Camel upgrade guide for any potential compatibility issues.

Deploy plugin changes​

The deploy plugin contained tasks that were designed to deploy genesis applications locally, to wsl and over ssh. With the Genesis IntelliJ plugin and Genesis Start, these have become redundant and have been removed. This plugin also provides install tasks, that were initially designed to install genesis locally, but that are currently used to generate deployable artifacts. For more information on how to generate deployable artifacts going forward, please see here

Enhanced acknowledgement mechanism with different error types​

This change was made to facilitate sinks signalling to sources that errors are transient, and that the pipeline should try to reprocess the element, however some behaviour changes were made to error handling. Namely, the onUncaughtError handler is now invoked whenever an exception is thrown from a pipeline operation that does not have an operation level error handler attached, but it does not necessarily mean the pipeline has already shut down. If the onUncaughtError handler is invoked and does not throw an exception, the error is assumed to have been handled and the pipeline will continue processing elements. If the pipeline should shut down, this error handler should now either rethrow the error or throw an error of its own. Furthermore, the pipeline monitor status will be set to WARNING automatically if an error is thrown and no uncaught handler is specified, it does not need to be done manually.