8.15
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 dependenciesdeploy-gradle-plugin: Remove legacy tasks; and move docker task toexec-gradle-plugin, see here for detailsgenesis-pal-datapipeline: Enhanced acknowledgement mechanism with different error types, including new SinkUnavailable errorgenesis-router: Set cookie authentication by default
Features
build-gradle-plugin: Add new gradle task namedcheckAuthPermissionsto check permissions/auth configurationcore: Support overriding process level system definition properties using environment variablescoreproduct: Enhance python scripts to allow process start flag to be overridden from sysdef or env varscoreproduct: Support compiled GPal definitionsdeploy-gradle-plugin: Adding a task to create a full zip of server and web with all dependenciesgenesis-cluster: AddDISABLEDClusterMode option to completely disable primary only checks and cluster health messagesgenesis-cluster: AddZeroMQProxyUnicastRelayExcludedTopicssystem definition option to avoid retransmitting specific update queue topics to other cluster nodesgenesis-codegen: Add equals and hashcode methods to entity builder classesgenesis-commons: Improve handling inGenesisSetandDbRecordof binary data inByteArraygenesis-config: Transform fromStringtoList,SetandMapin the dependency inject modulegenesis-criteria: Add WEEK_DAY as a valid option for Expr groovy expressionsgenesis-db: Improve connection acquisition in native sql layer, and improve coroutine strategygenesis-db: AddupdateByto SyncEntityDbgenesis-db: Add entity dictionary on entity db and enhance req/rep metadata in criteria only mode to provide criteriaFields and sortableFields informationgenesis-db: Add support forExpr.dateTimeIsInRangeas part of native SQL querying capabilitiesgenesis-db: AddedDbMaxRetryBeforeExitsystem property to terminate process after failed retriesgenesis-db: Handle JSON aliased enum valuess ingetByCriteriaoperationgenesis-db: Improve criteria validationgenesis-db: Relax criteria validationgenesis-dbmon: Support displaying byte array fieldsgenesis-environment: Support byte array fields inDumpItandSendItgenesis-environment: Support views inDumpItgenesis-net: Support advanced TLS configurations, including MTLSgenesis-pal: AddcriteriaTemplatesyntax in data servers and request serversgenesis-pal: Enabled named injection in gpal kts scriptsgenesis-pal: Improve error handling in views, when circular join is detectedgenesis-pal-consolidator: Add support for minBy and maxBy functionsgenesis-pal-datapipeline: Improvement for batch pipeline exception handling and transaction supportgenesis-router: Add sessionCookies configuration to allow undefined max-age cookiesgenesis-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.genesissyntax - 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.metricsandglobal.genesis.tracing
Fixes
codegen-gradle-plugin: Add system definition files to fields-dictionary kts evaluation cache to prevent false positive cache hitscodegen-gradle-plugin: UseruntimeClasspathin codegen isolated task execution to ensure correct behaviourcore: Process shuts down when a dependant process has shut downcoreproduct: Ensure preCompileScripts classpath generation is the same as startProcesscoreproduct: Handle boolean start flags in getListOfProcessNames()exec-gradle-plugin: Disable ModuleFileCreator task if dynamic deploy is not usedexec-gradle-plugin: Ensure image name is always lowercasegenesis-cluster: Avoid instantiating console web endpoints as part of the package scan mechanism for GENESIS_CLUSTERgenesis-clusterFix race condition between Consul service discovery lookup and unicast relay data processinggenesis-clustersupport: Ensure Consul TTL health check coroutines run independently to avoid contention problemsgenesis-clustersupport: Process monitors in STANDBY state should be reported as "failed" checks to Consulgenesis-clustersupport: STANDBY health checks need to be excluded from Consul service discovery eligibilitygenesis-codegen: Always write serialised dictionary on codegengenesis-codegen: Handle sys defs with characters that would be illegal in a kotlin name e.g..genesis-console: Revert API classes package movegenesis-criteriaFix incorrect index interval generation when translating someExpr.dateIsoperationsgenesis-db: Ensure RxJdbcDataSource connection provider releases internal semaphore monitor in case the connection pool throws an exceptiongenesis-db: Ensure basic SQL statement execution consumes all results to guarantee MSQLServer errors are handled correctly in multi line DDL statementsgenesis-db: UseDispatchers.IOto handle database queries used ingetByCriteriaandSqlViewExecutorto avoid deadlocks derived from exhausting thedbCoroutinesContextthread poolgenesis-db: Add type checking ingetByCriteriaoperationgenesis-db: Correct handling repo modules with suspend methodsgenesis-db: Correct native sql handling of (non-)nullable methods in proxy classesgenesis-db: fix issue ingetRangeFromEndoperation whenSqlViewsEnabledis truegenesis-db: GetRange on a View hangs indefinitely when called within a database transactiongenesis-db: Handle genesis table objects using sql native connectiongenesis-db: Native sql layer, release connection on failure to execute querygenesis-db: Passing parameter to view in non-sql modegenesis-db: Remove blocking calls in CriteriaCacheManager.ktgenesis-db: Support ResultSet streaming in native SQL and getByCriteria to reduce memory pressuregenesis-dbmon: FindCommand should use UniqueIndex Jackson deserializationgenesis-dbmon: fix view field handling in search and distinct commandsgenesis-environment: Application and componentinstallHookfailures should not return a0exit codegenesis-environment: DumpIt should rely on existing dictionary schema for database tables to ensure compatibility instead of deployed dao classesgenesis-environment: Ensure audit records are inserted correctly when using SendItgenesis-environment: Ensure field max size schema changes respect each individual table definition and preserve field nullability configuration when applying such changes in SQL Servergenesis-environment: Ensure table index renames are applied as part of remapgenesis-environmentFix Oracle DDL statements for sequence value incrementsgenesis-environment: Handle autoIncrement/sequence migration correctly in SQL Server/H2 when executing remap for certain field schema migrationsgenesis-environment: EnableSendItto handle binary data inLEGACYmodegenesis-environment: fix handling of sys def reading with overlapping product namesgenesis-net: Create request log per processgenesis-openapi-gradle: Depend onsourcesJarif task existsgenesis-pal-consolidatorfix memory profile in cold startgenesis-pal-eventhandler: Compiled GPAL event handlers may crash when multiple .kt files exist and global permissions are definedgenesis-pal-eventhandler: Remove Kotlin compiler warning in event handlers related to reified type intersectionsgenesis-pal-eventhandler: fix event handler global permission checkgenesis-pal-requestserver: Include derivedFields for SQL-based criteria-only request reply workflowgenesis-resource-daemon: STANDBY processes should be shown as STANDBY instead of DOWN in "mon" when using Consul modegenesis-resource-daemon: Correct health endpoint handling with processes disabledgenesis-router: Correct collection handling inweb-handler.ktsfilesgenesis-router: Re-add injector functiongradle: Remove duplicate entries in docker genesis-homeproduct-details-gradle-plugin: EnsurecreateManifestcan 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 consolegenesis-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 SQLgenesis-clustersupport: Extend transient-I/O retry to the explicit-pin path
8.15.35
Features
clustersupport: Consul-backed gFlake NodeId allocation, wiring & reclamationgenesis-db: Opt-in cached point reads inside transactionsgenesis-pal-dataserver: Report lmdb space usage as metrics
Fixes
genesis-clustersupport: Scope ConsulClientProvider as a singletongenesis-db: Report an absent field as null rather than dereferencing itgenesis-db: Rethrow InterruptedException during SQLEngine dictionary retrievalgenesis-environment: Build FDB indexes from record-aligned ranges instead of stitched fragmentsgenesis-environment: Harden VerifyFDBIndexes and the record-aligned FDB remap scangenesis-environment: Resume an FDB index build after the transaction-size guard stops a batchgenesis-pal-dataserver: Guard the lmdb env lifecycle instead of one call sitegenesis-pal-dataserver: Join lmdb background loops before closing the envgenesis-pal-dataserver: Read the lmdb space usage in a read transactionserver: 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 consolegenesis-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 expressionsgenesis-db: Backport Bulk upsertAll order/count fix to 8.15.xgenesis-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-servergenesis-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-failovergenesis-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 criticalconsul: 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 fieldgenesis-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 Migrationsgenesis-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 enabledgenesis-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 vargenesis-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 attemptToRecovergenesis-eventhandler: Interface resolution misses inherited interfaces causing type lookup failuresgenesis-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 SqlStatementTranslatorgenesis-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 1genesis-pal-dataserver: Parallelize client fan-out in DataserverUpdateProcessorgenesis-pal-dataserver: Replace runBlocking with non-blocking dispatch in ConnectionManager
Fixes
genesis-commons: DST-safe week boundary in dateTimeIsInRange testsgenesis-criteria:dateTimeIsInRangethrows exception when ran at midnight for TimeRange HOUR and TimeContext previousgenesis-pal-dataserver: Fix intermittent async DataServer test failures caused by timestamp collisions, thread-safety race and stale ClientIndex overwritesgenesis-pal-dataserver: Fix auth update silent data loss and batch emissionsgenesis-pal-dataserver: Fix enriched row state not cleaned up on row deletionremap: 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 cacheexec-gradle-plugin: Replace stock processes with site-specific processes per groupId instead of merginggenesis-db: Correct threading in jms update queue implementationgenesis-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 registrationgenesis-clustersupport: Make consul health checks use elapsed time scheduling rather than fixed time scheduling and simplify primaryOnly health checksgenesis-clustersupport: Fix race condition in consul health point registrationgenesis-environment: Improve GetNextSequenceNumbers/GetNextAutoIncrementNumbers handling for empty tables and UUID-style IDs
Client
Features
foundation-layout: Adding reset to default functionalityfoundation-header: Highlight current selected route- Light mode optimisation
foundation-ui: Polishing resizable modal behaviorfoundation-ui: Adding initial dimensions propertiesgrid-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 filefoundation-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 configsfoundation-ui: Rapid Modal and Dialog Optimisationfoundation-forms: Support default approval message configurationfoundation-forms: Automatic approval message workflow supportgrid-pro: Handle values and criteria for setFilterfoundation-entity-management: Ability to set error notification configrapid-grid-pro: Grid34 unified themefoundation-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 criteriaFiltersToFieldsfoundation-forms: Add UI schema config to conditionally hide array list delete buttonfoundation-comms: Add HTTP error handling and session refresh for 401 errorsgrid-pro: Upgrade ag-grid to v35grid-pro: Enable multi column filter for string and enum fieldsnotify-pbc: Alert center redesigngrid-pro: Separate filters generation for ssrmgrid-pro: Consider null as blank on filterfoundation-comms: Add metadata caching to HTTP connectfoundation-comms: Add caching for getAvailableResourcesgrid-pro: Add RowSelectionModule supportdatasource: Add SORTABLE_FIELDS and CRITERIA_FIELDS metadata supportfoundation-ui: Support sub-one hour and multi-hour schedulingfoundation-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 indicatorsfoundation-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 validateFnbuild-kit: Handling of optional seed paramsfoundation-ui: Regression with modal styling and layoutgrid-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 + stylingfoundation-forms: Correct jsonSchema for filters in req-repfoundation-comms: Remove unnecessary kv storage availability check- Add z-index and position css variables to dialog
foundation-ui: Fixing dialog type consistency in attributes/styesgrid-pro: Enhance datasource metadata and grid initializationgrid-pro: Correct criteria reset in SSMRgrid-pro: Update originalCriteriaMatch and apply filtersfoundation-ui: Use CRITERIA_MATCH for reqRep for options-datasourcefoundation-header: Circular dep * fixgrid-pro: Refactor event handlers and organize importsfoundation-ui: Fixing z index in tabsgrid-pro: Hide loading overlay after rowData changefoundation-entity-management: Refresh customEvent form data after updategrid-pro: Restore event handlersgrid-pro: * fix race condition in datasource reconnection testvite-builder: Conditionally define library entry and formats based on development modefoundation-forms: Set autocomplete to off for text/number rendererfoundation-ui: Add default design tokens values for missing json valuesfoundation-forms: Adding margin left to array list delete buttonfoundation-ui: Change the default design tokens to a ts filefoundation-entity-management: Export list custom elementfoundation-layout: Defend against bad configurtion causing runtime errorsfoundation-entity-management: Tweak lifecycle to handle layout eventsfoundation-comms: Export HttpConnectConfig types for HTTP polling configurationgrid-pro: Separate filters generation for ssrmfoundation-comms: Support REQUEST_SERVER messages in HTTP modefoundation-comms: Support per-resource polling intervals via POLLING_INTERVAL_MAPfoundation-ui: Rule expression builder to convert to ms epoch matching servergrid-pro: Clear row data before destroying grid to prevent memory leakfoundation-entity-management: Clear error column field after success submitfoundation-ui: Replace hardcoded light gray text color in multiselectgrid-pro: Correct filters for blanksgrid-pro: Correct filters for notBlankseslint-config: fix regressions and add module-level lintinggrid-pro: Prevent memory leaks by cleaning up observers and subscriptionsfoundation-ui: Emit file-selected event from file-uploadgrid-pro: Respect explicit filterParams values in agSetColumnFilterfoundation-redux: Expose redux store for react integrationgrid-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 testinglayout-preview-react: Implement pr comments from previous prclient-app: Add custom user PBC component exampleclient-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.