Skip to content

Coherence CE v23.09

Compare
Choose a tag to compare
@pthilagar pthilagar released this 29 Sep 17:36
· 629 commits to main since this release

This is the official Coherence CE v23.09 release.

Requirements:

  • Java 17 or later

New Features in CE 23.09

  • Virtual Threads Support
  • Sorted Views
  • Secured Production Mode
  • COH-28192 Enhanced the "closest" read-locator to allow reads from the current member.
  • COH-28019 Added support for system property coherence.metrics.http.path which can be used to specify the metrics context root path.
  • COH-27708 Added operation on StorageManager MBean to get distributed cache total size.
  • COH-27697 Added NamedMap.isReady() API which allows the caller to determine if a cache is ready to be used. For example, if a distributed cache service is active, but has no storage members, isReady() would return false.
  • COH-25882 Added getClusterDescription, getServiceDescription and getNodeDescription operations to the Cluster, Service and ClusterNode MBeans to retrieve details about a cluster, service and member.
  • COH-25852 Added clearCache and truncateCache operations to StorageManagerMBean

For more information see the Core Improvements documentation.

Breaking changes in CE 23.09

The following lists subset of bugs fixed that are considered "breaking" changes:

  1. COH-28237 Fixed an issue with the generics of MapViewBuilder and ViewBuilder that would prevent the proper use of the map() function. MapViewBuilder and ViewBuilder have had their class-level generics simplified to <K, V> from <K, V_BACK, V_FRONT>. The map() function has been changed to: public <U> ViewBuilder<K, U> map(ValueExtractor<? super V, ? extends U> mapper) Where U represents the type of the extracted value. This change also necessitated similar changes to the generics of NamedMap.view() and NamedCache.view(). These methods have also been simplified to <K, V> from <K, V_BACK, V_FRONT>. NOTE: This is a backwards-incompatible change, but will only have an impact during compilation.

Bugs fixed since Coherence CE 23.03

  1. COH-28458 Fixed an issue where JPMS --add-exports java.management/sun.management=com.oracle.coherence was required when using Berkeley Database JE database for storage, enabled by bdb-store-manager, as documented in Section Using Java Modules to Build a Coherence Application.
  2. COH-28400 Fixed an issue in PartitionedCache that could result in multiple metrics-recorded gets against the backing map for a single NearCache.get() call.
  3. COH-28320 Fixed a potential NullPointerException when registering a topic MBean
  4. COH-28319 Bumped the JLine dependency version to 3.23.0.
  5. COH-28300 Added Helidon JEP-290 serialization configuration files to allow Coherence to work with Helidon.
  6. COH-28273 Fixed an issue where the /codeCache management over REST endpoint is no longer supported.
  7. COH-28255 Removed deprecated gRPC session classes from the coherence-java-client module.
  8. COH-28237 Fixed an issue with the generics of MapViewBuilder and ViewBuilder that would prevent the proper use of the map() function. MapViewBuilder and ViewBuilder have had their class-level generics simplified to <K, V> from <K, V_BACK, V_FRONT>. The map() function has been changed to: public <U> ViewBuilder<K, U> map(ValueExtractor<? super V, ? extends U> mapper) where U represents the type of the extracted value. This change also necessitated similar changes to the generics of NamedMap.view() and NamedCache.view(). These methods have also been simplified to <K, V> from <K, V_BACK, V_FRONT>. NOTE: This is a backwards-incompatible change, but will only have an impact during compilation.
  9. COH-28166 Fixed an issue where LifecycleEvent.DISPOSING was not being emitted for the system ($SYS) ConfigurableCacheFactory.
  10. COH-28130 Added an enhancement to allow the client auth mode to be configured for an SSL socket provider. Previously this behavior was fixed to "required" if a trust store was configured. The enhancement allows the mode to be "none", "wanted" or "required".
  11. COH-28065 Fixed an issue where Enums were not automatically discovered when enabling type discovery.
  12. COH-28060 Improved the efficiency of a number of the methods on AsyncNamedMap and AsyncNamedCache by eliminating unnecessary serialization or deserialization wherever possible.
  13. COH-28054 Fixed an issue where calling AsyncNamedCache.put() ignored any expiry value configured for the cache, causing entries to never be expired.
  14. COH-28025 Added service-name as an allowable child element of near-scheme.
  15. COH-28010 Bumped Netty version to 4.1.97.Final.
  16. COH-27984 Fixed an issue that would lead to a leak of a view cache service if the cluster service was restarted.
  17. COH-27983 Fixed an issue where near and local caches incorrectly share the same service name.
  18. COH-27975 Fixed an issue where deserialization of Optional<Object> fails with java.lang.ClassNotFoundException due to the incorrect ClassLoader being used.
  19. COH-27972 Fixed an issue where delayed service join may inadvertently start a DaemonPool even when DaemonPool is disabled.
  20. COH-27963 Added enhancement enabling specifying an ExternalizableLiteSerializer for an ExternalizableLite class using class annotation @ExternalizableType(serializer=ImplOfExternalizableLiteSerializer.class).
  21. COH-27924 Removed optional MVEL support by removing Mvel* classes from Coherence REST.
  22. COH-27922 Fixed a performance issue which can occur when a large number of cache entries expire at approximately the same time.
  23. COH-27859 Fixed an issue where automatic discovery of the Coherence JSON serializer at start-up could fail with Java 17 and above.
  24. COH-27849 Fixed a performance regression during Storage MBean population caused by expensive collection of unique keys across index partitions, by removal of a Content attribute from a default (non-verbose) IndexInfo string representation.
  25. COH-27455 Added <secured-production> element in <cluster-config> to allow user to configure Coherence to run in secured production mode.
  26. COH-27811 Refactored input handling of the Gradle Plugin in order to not cause a dependency issue with the Jandex plugin; also updated examples to use Gradle 8.1.1 as the wrapper.
  27. COH-27812 Fixed an issue where the Coherence gRPC proxy is not usable in clusters running in WebLogic Managed Coherence.
  28. COH-27804 Fixed an issue where JPMS --add-opens java.base/java.util=com.oracle.coherence was required as documented in Section Using Java Modules to Build a Coherence Application.
  29. COH-27803 Fixed an issue where JPMS --add-opens java.base/java.lang.invoke=com.oracle.coherence was required as documented in Section Using Java Modules to Build a Coherence Application. Note that any application package containing distributed lambdas must be opened to module com.oracle.coherence.
  30. COH-27715 Fixed an issue where calling AsyncNamedMap values or entrySet methods with a Filter could fail to return all of the values or entries.
  31. COH-27695 Fixed an issue where disconnected topic subscribers may fail to automatically reconnect to a topic when the subscriber has uncompleted receive requests.
  32. COH-27680 Fixed an issue where the memory used by cache backing map entries is higher than it should be.
  33. COH-27677 Fixed an issue that incorrectly raises an AssertionException when setting the coherence.distributed.threads.min system property when the property is applied to a service using the deprecated thread-count configuration that is configured with a smaller value.
  34. COH-27659 Fixed an issue where undeploying a GAR application may hang due to the underlying cache service being unable to gracefully shut down.
  35. COH-27558 Fixed an issue where recovering snapshots with indices would result in corrupted index contents.
  36. COH-27480 Fixed an issue where a topic publisher may attempt to publish to a channel before confirming that the channel count is correct across all the storage members, which will cause the publish request to fail and close the publisher.
  37. COH-27450 Fixed a performance regression introduced by the Binary.hashCode change.
  38. COH-27405 Fixed an issue where the actual listen port was not being displayed for HTTP listeners which are configured to bind to port 0 (ephemeral).
  39. COH-27390 Enabled configuring lambdas serialization mode in the operational configuration by setting the <cluster-config/lambdas-serialization> element to "static" or "dynamic".
  40. COH-27383 Bumped the integrated version of ASM to 9.5.
  41. COH-27374 Fixed an issue that prevented the serialization/deserialization of lambdas with JDK 21.
  42. COH-27342 Fixed an issue where a Coherence worker thread daemon pool may deadlock if the pool is stopped while a resize task is executing.
  43. COH-25991 Added a new Gradle plugin for POF serialization that instruments classes at build time (similar to the Coherence POF Maven plugin).
  44. COH-27283 Enhanced index support, as part of partitioning indices, to avoid index contents being stored more than necessary.
  45. COH-27337 Additional JMX attributes are now exposed as metrics on the SimpleStrategyMBean.
  46. COH-27321 Fixed an issue with using PersistenceToolsHelper.invokeOperationWithWait() on slower machines, where an "Idle" condition may be falsely evaluated due to checking a persistence MBean attribute too early.
  47. COH-26992 Added system properties coherence.publisher.resend.interval and coherence.publisher.delivery.timeout for setting the packet delivery <resend-milliseconds>" and <timeout-milliseconds>" element values.
  48. COH-26664 Enhanced DefaultServiceFailurePolicy.POLICY_EXIT_PROCESS from halting the process to graceful exit, allowing registered shutdown listeners to run. The process is halted if graceful exit does not complete within coherence.shutdown.timeout duration.
  49. COH-25161 Fixed an issue where a ConfigurableCacheFactorySession would leak an event interceptor if constructed with an instance of ExtensibleConfigurableCacheFactory.
  50. COH-24792 Removed the deprecated class OldCache.
  51. COH-21066 Added an MBean operation and Management over REST endpoint to retrieve the Coherence Cluster configuration.