This document lists the new features, enhancements, fixed issues and, removed or deprecated features for Hazelcast Platform 5.4.0 release. The numbers in the square brackets refer to the issues and pull requests in Hazelcast's GitHub repository.
[!CAUTION]
Starting with this release of Hazelcast Platform, the minimum supported Java version is 17.
New Features
EnterpriseUser Code Namespaces: Enable deployment and redeployment of your custom classes. See the User Code Namespaces documentation.
EnterpriseCPMap: Added CPMap as a minimal key-value CP data structure. See CPMap documentation. #25802
EnterpriseThread-Per-Core (TPC): TPC is now generally available. You can enable this feature on the clients and cluster members for improved performance. See the Thread-Per-Core (TPC) documentation.
Breaking Changes
The MergingValue interface within the SPI package now requires the getDeserializedValue() method to be defined within implementations, replacing the getValue() definition. #25942
Moved the MongoDB connector to the extensions module, that is, its classes and related dependencies relocated;
if you are using Maven to install the connector, you must add <classifier>jar-with-dependencies</classifier> to your pom.xml. Also removed the permissions for MongoDB connector. #25744, #25701
Method names used as parameters in SecurityInterceptor checks were reviewed and unified into a single place - class com.hazelcast.security.SecurityInterceptorConstants. Some client messages have the method name changed to reflect their purpose better. Some client messages are newly covered by SecurityInterceptor checks now. #25020
Renamed the service port for Hazelcast clusters deployed in Kubernetes environments to hazelcast.
The previous name, hazelcast-service-port, caused member auto-discovery for embedded deployments to fail. #24834, #24705, #24688
Fixed an issue where Hazelcast was not failing fast when a member is started with a blank public address. This has been fixed by introducing a configuration validation that might break any existing, but invalid, configuration. #24729
Enhancements
SQL/Jet Engine
Removed the beta annotations from the data connection classes. #26000
Replaced the user-defined types (UDTs) feature flag with the cyclic UDT feature flag, to prevent querying such type data. #25977
Added support for loading and storing a single column as the value using the GenericMapStore. #25878
Each Jet engine job was creating a client for connecting to the remote cluster, resulting in an excessive number of clients. This has been fixed by introducing a single data connection, which can be reused for all job instances. #25754, #25731
Added support for resolving fields from Avro schemas in Kafka mappings. #25935
Changed the exception type from CancellationException to CancellationByUserException when the user cancels a job before it is initialized. #25383
Added nested field support for Avro serialization format. #25269
Removed the redundant sort and merge operations in sorted index scans, for the computations where the index order is not needed, for example, aggregations. #25180
Updated the data comparator to improve the performance of sorted index operations. #25196
Added support for partition pruning for the __key filters. #25105
Added support for partitioned edges in Jet engine's partition pruning. #25062
Added a new mechanism to compute the required partitions to be scanned, if attribute partitioning strategy is applied. #25006
Added the condition type to the EXPLAIN PLAN statement outputs for all physical joins. #24899
Added support for nullable types when reading Avro files. #24840
Added the ability to pass parameters for JDBC configuration, such as the fetch size for large tables. #24835
Added support for partition pruning for SQL queries that have trivial filter predicates. #24813
Reflected the change of javax.jms to jakarta.jms in Hazelcast distributions. #24804
Added support for member pruning for Platform jobs to optimize a job's performance by picking up only the members required for the job. #24689
Added the stream() method to the SQL service to return the stream of result rows. #24525
Introduced a new configuration object to control the exact initial partition offsets when consuming records from Kafka via the Jet engine. #21546
Aligned the behavior of hashCode() method of KeyedWindowResult with that of Map.Entry. #697
Boxing of partitionId is now avoided in the getPartitionAssignment() method when the partition pruning is not used. #486
Added the ability to limit the creation of objects through reflection. #296
Added the ability to use reusable processor meta supplier for forceTotalParallelismOne () on random members without permissions. #227
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Bumps com.hazelcast:hazelcast-spring from 5.3.6 to 5.4.0.
Release notes
Sourced from com.hazelcast:hazelcast-spring's releases.
... (truncated)
Commits
3175d2c
Upgrade version to 5.4.07f4448b
Adding RN for 5.4.0 OS RN (#1084)a76e44f
Remove todo from javadoc [5.4.0] (#1081)5718766
Fix NPE from SecurityContext startup order, add tests [5.4.0] (#1070)d6f8ef0
Fix processorOrder doubled when members without local parallelism [HZ-4562] [...27f90d3
Revert exclusion of META-INF/THIRD-PARTY.txt [HZ-4561] (#1048)de5b1f4
Replace mysql license [5.4.0] (#1008)f0f8f07
Fix republishing logic in WanPutBackupOperation [5.4.0] (#1014)62dad91
NLCModeLicenseTest Mockito + Azul fix [HZ-4483] (#943)eee9541
Bump software.amazon.awssdk:bom from 2.24.12 to 2.24.13 (#952)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show