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.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.