This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [com.oracle.coherence.ce:coherence-bom](https://coherence.community/)
([source](https://redirect.github.com/oracle/coherence)) | `24.09` →
`24.09.3` |

|

|
---
> [!WARNING]
> Some dependencies could not be looked up. Check the [Dependency
Dashboard](../issues/2069) for more information.
---
### Release Notes
<details>
<summary>oracle/coherence
(com.oracle.coherence.ce:coherence-bom)</summary>
###
[`v24.09.3`](https://redirect.github.com/oracle/coherence/releases/tag/24.09.3):
Coherence CE v24.09.3
[Compare
Source](https://redirect.github.com/oracle/coherence/compare/24.09.2...24.09.3)
This is patch 3 of the [Coherence CE 24.09
release](https://redirect.github.com/oracle/coherence/releases/tag/24.09).
##### NOTE: The main purpose of this patch is to include Coherence AI
related interfaces to the API Reference documentation.
##### New features in Coherence CE 24.09.3
`COH-31101` Updated the metrics format to conform to the
OpenObservability spec.
##### Bugs fixed since [Coherence CE
24.09.2](https://redirect.github.com/oracle/coherence/releases/tag/24.09.2)
`COH-31723` Fixed an issue where a topics subscriber may return an
incorrect channel count if it is disconnected
`COH-31712` Fixed a configuration issue that prevented processing xml
elements from a foreign namespace within cachestore-scheme when the
federated-loading element was also present.
`COH-31674` Fixed an issue where a topics subscriber may fail to be
properly unsubscribed if the senior cluster member dies.
`COH-31664` Fixed exceptions thrown during fail-over or shutdown of gRPC
client connections.
`COH-31497` Fixed an issue where taking snapshots without suspending the
service could result in thread starvation due to concurrent requests.
`COH-31373` Fixed an issue where doing a rolling upgrade could result in
an IllegalStateException and prevent distributed caches services from
starting.
###
[`v24.09.2`](https://redirect.github.com/oracle/coherence/releases/tag/24.09.2):
Coherence CE v24.09.2
[Compare
Source](https://redirect.github.com/oracle/coherence/compare/24.09.1...24.09.2)
This is patch 2 of the [Coherence CE 24.09
release](https://redirect.github.com/oracle/coherence/releases/tag/24.09).
##### CAUTION: Coherence CE 24.09.1 release had to be corrected and
released as <ins>24.09.2</ins>. Do not pickup ~~24.09.1~~ release.
##### New features in Coherence CE 24.09.2
1. `COH-31646` General refactoring and hardening of the Coherence gRPC
APIs
2. `COH-31464` Fixed timing related issues in the NamedTopic subscriber
API and generally hardened the code base.
3. `COH-31276` Added a size MBean attribute and metric for view caches.
4. `COH-31087` Enhanced proxy log message to include the serializer name
when an exception thrown due to mismatch in serializer type between the
server and client.
5. `COH-31079` Added the ability to run pre-defined reports using
Management over REST API.
6. `COH-30057` Added support for system property
coherence.guardian.log.threaddump.interval which can be set to a time
duration to reduce the frequency that guardian service thread dumps
appear in the server log.
7. `COH-29675` Added a warning message to the Name Service lookup
utility, NSLookup, when lookup of "-name <service>" fails and the
provided service does not match any of the predefined services.
8. `COH-27121` Added a Management MBean operation and a REST endpoint to
reset statistics for MBeans specified by a query string.
##### Bugs fixed since [Coherence CE
24.09](https://redirect.github.com/oracle/coherence/releases/tag/24.09)
1. `COH-31614` Fixed an issue where an IllegalArgumentException could be
thrown when a cache persistence activity due to cache creation or
deletion runs concurrently with taking a snapshot.
2. `COH-31608` Bumped optional dependency, OpenTelemetry, from 1.29.0 to
1.46.0.
3. `COH-31596` Fixed an issue that could prevent OpenTelemetry spans
from being properly linked.
4. `COH-31480` Fixed an issue where RemoveCount on the StorageManager
MBean was not being reset when calling resetStatistics().
5. `COH-31399` Update Helidon Version to 4.1.5, Netty version to
4.1.115.Final, gRPC version to 1.65.1
6. `COH-31385` Fixed an issue in federation where a NullPointerException
may be thrown when a partition is moved while processing journal events
for that partition.
7. `COH-31325` Fixed an issue where the ContinuousQueryCache constructor
did not honor the request for no local cache values when a map listener
was provided. Note: this fix results in a behavior change as the CQC
constructor now infers that the provided listener is a lite listener.
8. `COH-31253` Fixed an issue where internal CacheStore operations can
result in unsolicited commit events.
9. `COH-31210` Fixed an issue where a NullPointerException could be
thrown when using the coherence-mp-config module.
10. `COH-31209` Fixed an issue where overriding the backing map for a
caching scheme using a cache config override throws an exception because
the merging of two scheme elements results in invalid XML.
11. `COH-31208` Fixed an issue where using a cache configuration
override containing cache-mapping for the same cache-name as the parent
cache configuration file results in java.lang.IllegalArgumentException.
12. `COH-31179` Fixed an issue where an IllegalArgumentException could
be thrown when a cache persistence activity runs concurrently with
taking a snapshot.
13. `COH-31178` Fixed an issue where cache map listeners were not
unregistered when a gRPC proxy service was shutdown.
14. `COH-31164` Fixed an issue where using the SimilaritySearch
aggregator from gRPC clients did not work.
15. `COH-31125` Fixed an issue where using the NullFirst argument set to
true in a SafeComparator would not be honored when running queries.
16. `COH-31109` Fixed an issue during a rolling upgrade where a
corrupted message type 87 can occur in a Coherence storage enabled
server running version 12.2.1.4/14.1.1.0 while other storage-enabled
cluster members are version 14.1.1.2206 or higher.
17. `COH-31092` Fixed the issue where SimilaritySearch aggregator
couldn't be executed asynchronously.
18. `COH-31022` Fixed an issue where persistence snapshots could produce
a NullPointerException in some rare circumstances if a rolling upgrade
to remove cache mappings was not correctly done.
19. `COH-30999` Fixed an issue where the getOrDefault() call on a cache
that uses RWBM with cache store does not propagate the call through to
the cache store when the entry does not exist.
20. `COH-30900` Fixed an issue where recovering multiple large caches
with indices from persistence could result in invalid index contents.
21. `COH-30772` Fixed an issue where a write-behind remove might get
stuck when there are outstanding pending write-behind operations on the
entry.
22. `COH-29982` Added backwards and forward compatibility support for
system properties with prefix "com.oracle.common" and
"com.oracle.coherence.common", if system property lookup fails beginning
with one prefix, retry lookup with alternative prefix. This change
accommodates moving package com.oracle.common to
com.oracle.coherence.common in Coherence version 14.1.1.0.
23. `COH-29800` Fixed an issue where backing map manager wasn't
correctly set and initialized when using View Scheme.
###
[`v24.09.1`](https://redirect.github.com/oracle/coherence/compare/24.09...24.09.1)
[Compare
Source](https://redirect.github.com/oracle/coherence/compare/24.09...24.09.1)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/langchain4j/langchain4j).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzMuNiIsInVwZGF0ZWRJblZlciI6IjQzLjE3My42IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
### Summary
Simplified the `addInternal` method by removing unnecessary `HashMap`
initialization and redundant `putAll` call.
The method now directly inserts the chunk into `documentChunks`.
### Details
- Removed temporary `HashMap` creation used only for a single entry.
- Removed redundant `documentChunks.putAll(map)` and second `put()`
call.
- Final implementation calls `createChunk()` once and directly stores
the result in `documentChunks`.
Co-authored-by: Harikrishna <harikrishna.gurram@walmart.com>
- Added unit tests to verify default map name behavior when `name` is
null, empty, or contains only whitespace in `CoherenceChatMemoryStore`.
- Added test case to confirm that a valid custom name is retained.
- Corrected/improved Javadoc comments for better clarity and
consistency.
---------
Co-authored-by: Harikrishna <harikrishna.gurram@walmart.com>
<!--
Thank you so much for your contribution!
Please fill in all the sections below.
Please open the PR as a draft initially. Once it is reviewed and
approved, we will ask you to add documentation and examples.
Please note that PRs with breaking changes or without tests will be
rejected.
Please note that PRs will be reviewed based on the priority of the
issues they address.
We ask for your patience. We are doing our best to review your PR as
quickly as possible.
Please refrain from pinging and asking when it will be reviewed. Thank
you for understanding!
-->
## Issue
<!-- Please specify the ID of the issue this PR is addressing. For
example: "Closes #1234" or "Fixes #1234" -->
Closes #
## Change
<!-- Please describe the changes you made. -->
I noticed that in a lot of files there are duplicated checks for `null`
and not empty or `null` and not blank. Since there exist functions in
`Utils` class which do exactly that, I replaced all custom checks with
calls to such functions.
## General checklist
NB: I purposefully didn't commit formatting changes (i.e., `make lint`
and `make format`) because they'd change many lines in many files, much
more than what I changed in this PR, and that'd make PR difficult to
review. If you think I should do it, I'd gladly commit them.
<!-- Please double-check the following points and mark them like this:
[X] -->
- [x] There are no breaking changes
- [ ] I have added unit and/or integration tests for my change
- [ ] The tests cover both positive and negative cases
- [ ] I have manually run all the unit and integration tests in the
module I have added/changed, and they are all green
- [ ] I have manually run all the unit and integration tests in the
[core](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-core)
and
[main](https://github.com/langchain4j/langchain4j/tree/main/langchain4j)
modules, and they are all green
<!-- Before adding documentation and example(s) (below), please wait
until the PR is reviewed and approved. -->
- [ ] I have added/updated the
[documentation](https://github.com/langchain4j/langchain4j/tree/main/docs/docs)
- [ ] I have added an example in the [examples
repo](https://github.com/langchain4j/langchain4j-examples) (only for
"big" features)
- [ ] I have added/updated [Spring Boot
starter(s)](https://github.com/langchain4j/langchain4j-spring) (if
applicable)
## Checklist for adding new maven module
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added my new module in the root `pom.xml` and
`langchain4j-bom/pom.xml`
## Checklist for adding new embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreIT` that extends
from either `EmbeddingStoreIT` or `EmbeddingStoreWithFilteringIT`
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreRemovalIT` that
extends from `EmbeddingStoreWithRemovalIT`
## Checklist for changing existing embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have manually verified that the
`{NameOfIntegration}EmbeddingStore` works correctly with the data
persisted using the latest released version of LangChain4j
---------
Co-authored-by: Dmytro Liubarskyi <ljubarskij@gmail.com>
## Issue
Cleanup repeating dependencies in pom.xml. Better test assertions and
apidocs/javadoc generation.
## Change
Refactor project structure and remove unused test dependencies.
- Repeating test dependencies like `tinylog`, `awaitility` and others
were removed from various modules and consolidated in the parent module.
This reduction in clutter helps to streamline the testing process.
- A separate `kotlin` profile was created to manage Kotlin-related
configurations and dependencies.
- Upgraded versions of dependencies like `ai-mocks` and `wiremock` were
implemented. Moved to wiremock-standalone (shaded jar) to avoid
potential version conflicts with runtime classes.
- The test changes in `ChatRequestExtensionsTest.kt` partially migrated
from AssertJ to Kotest assertions.
- Updated Dokka plugin configuration
## General checklist
<!-- Please double-check the following points and mark them like this:
[X] -->
- [x] There are no breaking changes
- [ ] I have added unit and/or integration tests for my change
- [ ] The tests cover both positive and negative cases
- [x] I have manually run all the unit and integration tests in the
module I have added/changed, and they are all green
- [ ] I have manually run all the unit and integration tests in the
[core](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-core)
and
[main](https://github.com/langchain4j/langchain4j/tree/main/langchain4j)
modules, and they are all green
<!-- Before adding documentation and example(s) (below), please wait
until the PR is reviewed and approved. -->
- [ ] I have added/updated the
[documentation](https://github.com/langchain4j/langchain4j/tree/main/docs/docs)
- [ ] I have added an example in the [examples
repo](https://github.com/langchain4j/langchain4j-examples) (only for
"big" features)
- [ ] I have added/updated [Spring Boot
starter(s)](https://github.com/langchain4j/langchain4j-spring) (if
applicable)
## Checklist for adding new maven module
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added my new module in the root `pom.xml` and
`langchain4j-bom/pom.xml`
## Checklist for adding new embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreIT` that extends
from either `EmbeddingStoreIT` or `EmbeddingStoreWithFilteringIT`
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreRemovalIT` that
extends from `EmbeddingStoreWithRemovalIT`
## Checklist for changing existing embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have manually verified that the
`{NameOfIntegration}EmbeddingStore` works correctly with the data
persisted using the latest released version of LangChain4j
## Issue
Streamline maven dependencies
Should fix [this
issue](https://github.com/langchain4j/langchain4j/actions/runs/13666001227/job/38207360909?pr=2640#step:5:16630)
```
2025/03/05 00:52:59,050 3922 [INFO ] [main] netty.implementation.NettyUtility - {"az.sdk.message":"The following Netty versions were found on the classpath and have a mismatch with the versions used by azure-core-http-netty. If your application runs without issue this message can be ignored, otherwise please align the Netty versions used in your application. For more information, see https://aka.ms/azsdk/java/dependency/troubleshoot.","azure-netty-version":"4.1.118.Final","azure-netty-native-version":"2.0.70.Final","classpath-netty-version-io.netty:netty-common":"4.1.115.Final","classpath-netty-version-io.netty:netty-handler":"4.1.110.Final","classpath-netty-version-io.netty:netty-handler-proxy":"4.1.110.Final","classpath-netty-version-io.netty:netty-buffer":"4.1.110.Final","classpath-netty-version-io.netty:netty-codec":"4.1.110.Final","classpath-netty-version-io.netty:netty-codec-http":"4.1.110.Final","classpath-netty-version-io.netty:netty-codec-http2":"4.1.110.Final","classpath-netty-version-io.netty:netty-transport-native-unix-common":"4.1.110.Final","classpath-netty-version-io.netty:netty-transport-native-epoll":"4.1.110.Final","classpath-netty-version-io.netty:netty-transport-native-kqueue":"4.1.118.Final","classpath-native-netty-version-io.netty:netty-tcnative-boringssl-static":"2.0.70.Final"}
```
## Change
This pull request includes the following changes to improve project
dependency management:
- Removed unnecessary and redundant Netty dependencies and exclusions.
- Updated and reorganized dependency versions for consistency, including
new BOM imports for Azure SDK, Netty, and Reactor.
- Eliminated AWS SDK v1 dependencies, transitioning to
`software.amazon.awssdk` BOM for better compatibility and reduced
clutter.
- Removed redundant test dependencies like `assertj-core` and `mockito`
across modules, referring to the parent POM.
- Adjusted `kotlinx-coroutines-test` to use JVM-specific artifact and
standardized dependency version variables.
- Refined POM XML formatting for consistency and clarity (`mvn
spotless:apply`)
## General checklist
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] There are no breaking changes
- [ ] I have added unit and/or integration tests for my change
- [ ] The tests cover both positive and negative cases
- [ ] I have manually run all the unit and integration tests in the
module I have added/changed, and they are all green
- [ ] I have manually run all the unit and integration tests in the
[core](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-core)
and
[main](https://github.com/langchain4j/langchain4j/tree/main/langchain4j)
modules, and they are all green
<!-- Before adding documentation and example(s) (below), please wait
until the PR is reviewed and approved. -->
- [ ] I have added/updated the
[documentation](https://github.com/langchain4j/langchain4j/tree/main/docs/docs)
- [ ] I have added an example in the [examples
repo](https://github.com/langchain4j/langchain4j-examples) (only for
"big" features)
- [ ] I have added/updated [Spring Boot
starter(s)](https://github.com/langchain4j/langchain4j-spring) (if
applicable)
## Checklist for adding new maven module
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added my new module in the root `pom.xml` and
`langchain4j-bom/pom.xml`
## Checklist for adding new embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreIT` that extends
from either `EmbeddingStoreIT` or `EmbeddingStoreWithFilteringIT`
- [ ] I have added a `{NameOfIntegration}EmbeddingStoreRemovalIT` that
extends from `EmbeddingStoreWithRemovalIT`
## Checklist for changing existing embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [ ] I have manually verified that the
`{NameOfIntegration}EmbeddingStore` works correctly with the data
persisted using the latest released version of LangChain4j
---------
Co-authored-by: kpavlov <{ID}+{username}@users.noreply.github.com>
Co-authored-by: Dmytro Liubarskyi <ljubarskij@gmail.com>
<!--
Thank you so much for your contribution!
Please fill in all the sections below.
Please open the PR as a draft initially. Once it is reviewed and
approved, we will ask you to add documentation and examples.
Please note that PRs with breaking changes or without tests will be
rejected.
Please note that PRs will be reviewed based on the priority of the
issues they address.
We ask for your patience. We are doing our best to review your PR as
quickly as possible.
Please refrain from pinging and asking when it will be reviewed. Thank
you for understanding!
-->
## Issue
<!-- Please specify the ID of the issue this PR is addressing. For
example: "Closes #1234" or "Fixes #1234" -->
Closes#2622
## Change
<!-- Please describe the changes you made. -->
Changed argument type from `VectorIndexExtractor<DocumentChunk,
Vector<?>>` to `VectorIndexExtractor<DocumentChunk, float[]>`, to match
the type of various index implementations.
## General checklist
<!-- Please double-check the following points and mark them like this:
[X] -->
- [x] There are no breaking changes
- [ ] I have added unit and/or integration tests for my change
- [ ] The tests cover both positive and negative cases
- [x] I have manually run all the unit and integration tests in the
module I have added/changed, and they are all green
- [x] I have manually run all the unit and integration tests in the
[core](https://github.com/langchain4j/langchain4j/tree/main/langchain4j-core)
and
[main](https://github.com/langchain4j/langchain4j/tree/main/langchain4j)
modules, and they are all green
<!-- Before adding documentation and example(s) (below), please wait
until the PR is reviewed and approved. -->
- [ ] I have added/updated the
[documentation](https://github.com/langchain4j/langchain4j/tree/main/docs/docs)
- [ ] I have added an example in the [examples
repo](https://github.com/langchain4j/langchain4j-examples) (only for
"big" features)
- [ ] I have added/updated [Spring Boot
starter(s)](https://github.com/langchain4j/langchain4j-spring) (if
applicable)
## Checklist for changing existing embedding store integration
<!-- Please double-check the following points and mark them like this:
[X] -->
- [x] I have manually verified that the
`{NameOfIntegration}EmbeddingStore` works correctly with the data
persisted using the latest released version of LangChain4j