diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index a7397b7d..84477ae9 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -12,7 +12,7 @@ jobs:
java_build:
strategy:
matrix:
- java_version: [ 17, 21, 22, 23 ]
+ java_version: [ 17, 21, 25 ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
diff --git a/.gitignore b/.gitignore
index 9dce8548..438f41ff 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,3 +39,5 @@ build/
### .env files contain local environment variables ###
.env
+
+*.log
diff --git a/.mvn/wrapper/maven-wrapper.jar b/.mvn/wrapper/maven-wrapper.jar
index 7967f30d..eebc3c18 100644
Binary files a/.mvn/wrapper/maven-wrapper.jar and b/.mvn/wrapper/maven-wrapper.jar differ
diff --git a/.mvn/wrapper/maven-wrapper.properties b/.mvn/wrapper/maven-wrapper.properties
index 546a64e7..c7c5d3fc 100644
--- a/.mvn/wrapper/maven-wrapper.properties
+++ b/.mvn/wrapper/maven-wrapper.properties
@@ -16,5 +16,5 @@
# under the License.
wrapperVersion=3.3.2
distributionType=only-script
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.zip
-distributionSha256Sum=0d7125e8c91097b36edb990ea5934e6c68b4440eef4ea96510a0f6815e7eeadb
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.12/apache-maven-3.9.12-bin.zip
+distributionSha256Sum=305773a68d6ddfd413df58c82b3f8050e89778e777f3a745c8e5b8cbea4018ef
diff --git a/.sdkmanrc b/.sdkmanrc
index 45ff88fd..c74203c2 100644
--- a/.sdkmanrc
+++ b/.sdkmanrc
@@ -3,4 +3,4 @@
# See https://sdkman.io/usage#config
# A summary is to add the following to ~/.sdkman/etc/config
# sdkman_auto_env=true
-java=17.0.14-tem
\ No newline at end of file
+java=17.0.17-tem
\ No newline at end of file
diff --git a/langchain4j-anthropic-spring-boot-starter/src/main/java/dev/langchain4j/anthropic/spring/ChatModelProperties.java b/langchain4j-anthropic-spring-boot-starter/src/main/java/dev/langchain4j/anthropic/spring/ChatModelProperties.java
index fe8de6f6..91561aca 100644
--- a/langchain4j-anthropic-spring-boot-starter/src/main/java/dev/langchain4j/anthropic/spring/ChatModelProperties.java
+++ b/langchain4j-anthropic-spring-boot-starter/src/main/java/dev/langchain4j/anthropic/spring/ChatModelProperties.java
@@ -6,7 +6,7 @@
import java.util.List;
import java.util.Map;
-class ChatModelProperties {
+public class ChatModelProperties {
String baseUrl;
String apiKey;
diff --git a/langchain4j-elasticsearch-spring-boot-starter/pom.xml b/langchain4j-elasticsearch-spring-boot-starter/pom.xml
index d581605d..00174bd9 100644
--- a/langchain4j-elasticsearch-spring-boot-starter/pom.xml
+++ b/langchain4j-elasticsearch-spring-boot-starter/pom.xml
@@ -101,7 +101,7 @@
commons-io
commons-io
- 2.18.0
+ 2.21.0
test
diff --git a/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/ChatModelProperties.java b/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/ChatModelProperties.java
index 5c205847..3d913253 100644
--- a/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/ChatModelProperties.java
+++ b/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/ChatModelProperties.java
@@ -3,7 +3,7 @@
import java.time.Duration;
import java.util.List;
-class ChatModelProperties {
+public class ChatModelProperties {
private String endpoint;
private String gitHubToken;
diff --git a/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/EmbeddingModelProperties.java b/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/EmbeddingModelProperties.java
index 189f72cf..d1c0fe83 100644
--- a/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/EmbeddingModelProperties.java
+++ b/langchain4j-github-models-spring-boot-starter/src/main/java/dev/langchain4j/model/githubmodels/spring/EmbeddingModelProperties.java
@@ -2,7 +2,7 @@
import java.time.Duration;
-class EmbeddingModelProperties {
+public class EmbeddingModelProperties {
private String endpoint;
private String gitHubToken;
diff --git a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/ChatModelProperties.java b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/ChatModelProperties.java
index 02eeafc0..fdd8beff 100644
--- a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/ChatModelProperties.java
+++ b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/ChatModelProperties.java
@@ -4,7 +4,7 @@
import java.util.List;
import java.util.Map;
-record ChatModelProperties(
+public record ChatModelProperties(
String apiKey,
String baseUrl,
String modelName,
diff --git a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/EmbeddingModelProperties.java b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/EmbeddingModelProperties.java
index d5e3b90c..b6d9ff29 100644
--- a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/EmbeddingModelProperties.java
+++ b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/EmbeddingModelProperties.java
@@ -4,7 +4,7 @@
import java.time.Duration;
-record EmbeddingModelProperties(
+public record EmbeddingModelProperties(
String apiKey,
String modelName,
String titleMetadataKey,
diff --git a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/GeminiFunctionCallingConfig.java b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/GeminiFunctionCallingConfig.java
index 32f6c3b4..a5bc5090 100644
--- a/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/GeminiFunctionCallingConfig.java
+++ b/langchain4j-google-ai-gemini-spring-boot-starter/src/main/java/dev/langchain4j/googleaigemini/spring/GeminiFunctionCallingConfig.java
@@ -4,7 +4,7 @@
import java.util.List;
-record GeminiFunctionCallingConfig(
+public record GeminiFunctionCallingConfig(
GeminiMode geminiMode,
List allowedFunctionNames
) {
diff --git a/langchain4j-http-client-spring-restclient/src/main/java/dev/langchain4j/http/client/spring/restclient/SpringRestClient.java b/langchain4j-http-client-spring-restclient/src/main/java/dev/langchain4j/http/client/spring/restclient/SpringRestClient.java
index d33d1382..df79dba6 100644
--- a/langchain4j-http-client-spring-restclient/src/main/java/dev/langchain4j/http/client/spring/restclient/SpringRestClient.java
+++ b/langchain4j-http-client-spring-restclient/src/main/java/dev/langchain4j/http/client/spring/restclient/SpringRestClient.java
@@ -8,8 +8,8 @@
import dev.langchain4j.http.client.SuccessfulHttpResponse;
import dev.langchain4j.http.client.sse.ServerSentEventListener;
import dev.langchain4j.http.client.sse.ServerSentEventParser;
-import org.springframework.boot.web.client.ClientHttpRequestFactories;
-import org.springframework.boot.web.client.ClientHttpRequestFactorySettings;
+import org.springframework.boot.http.client.ClientHttpRequestFactoryBuilder;
+import org.springframework.boot.http.client.ClientHttpRequestFactorySettings;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.task.AsyncTaskExecutor;
import org.springframework.http.ResponseEntity;
@@ -36,14 +36,14 @@ public SpringRestClient(SpringRestClientBuilder builder) {
RestClient.Builder restClientBuilder = getOrDefault(builder.restClientBuilder(), RestClient::builder);
- ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.DEFAULTS;
+ ClientHttpRequestFactorySettings settings = ClientHttpRequestFactorySettings.defaults();
if (builder.connectTimeout() != null) {
settings = settings.withConnectTimeout(builder.connectTimeout());
}
if (builder.readTimeout() != null) {
settings = settings.withReadTimeout(builder.readTimeout());
}
- ClientHttpRequestFactory clientHttpRequestFactory = ClientHttpRequestFactories.get(settings);
+ ClientHttpRequestFactory clientHttpRequestFactory = ClientHttpRequestFactoryBuilder.detect().build(settings);
this.delegate = restClientBuilder
.requestFactory(clientHttpRequestFactory)
diff --git a/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientIT.java b/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientIT.java
index efcc5418..7b2be513 100644
--- a/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientIT.java
+++ b/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientIT.java
@@ -4,7 +4,7 @@
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.JdkClientHttpRequestFactory;
-import org.springframework.http.client.ReactorNettyClientRequestFactory;
+import org.springframework.http.client.ReactorClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestClient;
@@ -23,7 +23,7 @@ protected List clients() {
.restClientBuilder(RestClient.builder().requestFactory(new HttpComponentsClientHttpRequestFactory()))
.build(),
SpringRestClient.builder()
- .restClientBuilder(RestClient.builder().requestFactory(new ReactorNettyClientRequestFactory()))
+ .restClientBuilder(RestClient.builder().requestFactory(new ReactorClientHttpRequestFactory()))
.build(),
SpringRestClient.builder()
.restClientBuilder(RestClient.builder().requestFactory(new SimpleClientHttpRequestFactory()))
diff --git a/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientTimeoutIT.java b/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientTimeoutIT.java
index ab5ba917..274ab0ab 100644
--- a/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientTimeoutIT.java
+++ b/langchain4j-http-client-spring-restclient/src/test/java/dev/langchain4j/http/client/spring/restclient/SpringRestClientTimeoutIT.java
@@ -4,7 +4,7 @@
import dev.langchain4j.http.client.HttpClientTimeoutIT;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.http.client.JdkClientHttpRequestFactory;
-import org.springframework.http.client.ReactorNettyClientRequestFactory;
+import org.springframework.http.client.ReactorClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestClient;
@@ -26,7 +26,7 @@ protected List clients(Duration readTimeout) {
.readTimeout(readTimeout)
.build(),
SpringRestClient.builder()
- .restClientBuilder(RestClient.builder().requestFactory(new ReactorNettyClientRequestFactory()))
+ .restClientBuilder(RestClient.builder().requestFactory(new ReactorClientHttpRequestFactory()))
.readTimeout(readTimeout)
.build(),
SpringRestClient.builder()
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/AutoConfig.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/AutoConfig.java
index 53efcfdd..e993b6d1 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/AutoConfig.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/AutoConfig.java
@@ -1,7 +1,14 @@
package dev.langchain4j.mistralai.spring;
-import static dev.langchain4j.mistralai.spring.Properties.PREFIX;
-
+import dev.langchain4j.http.client.HttpClientBuilder;
+import dev.langchain4j.http.client.spring.restclient.SpringRestClient;
+import dev.langchain4j.model.chat.listener.ChatModelListener;
+import dev.langchain4j.model.mistralai.MistralAiChatModel;
+import dev.langchain4j.model.mistralai.MistralAiEmbeddingModel;
+import dev.langchain4j.model.mistralai.MistralAiFimModel;
+import dev.langchain4j.model.mistralai.MistralAiModerationModel;
+import dev.langchain4j.model.mistralai.MistralAiStreamingChatModel;
+import dev.langchain4j.model.mistralai.MistralAiStreamingFimModel;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -16,15 +23,7 @@
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.web.client.RestClient;
-import dev.langchain4j.http.client.HttpClientBuilder;
-import dev.langchain4j.http.client.spring.restclient.SpringRestClient;
-import dev.langchain4j.model.chat.listener.ChatModelListener;
-import dev.langchain4j.model.mistralai.MistralAiChatModel;
-import dev.langchain4j.model.mistralai.MistralAiEmbeddingModel;
-import dev.langchain4j.model.mistralai.MistralAiFimModel;
-import dev.langchain4j.model.mistralai.MistralAiModerationModel;
-import dev.langchain4j.model.mistralai.MistralAiStreamingChatModel;
-import dev.langchain4j.model.mistralai.MistralAiStreamingFimModel;
+import static dev.langchain4j.mistralai.spring.Properties.PREFIX;
@AutoConfiguration
@EnableConfigurationProperties(Properties.class)
@@ -55,29 +54,29 @@ MistralAiChatModel mistralAiChatModel(
ChatModelProperties chatModelProperties = properties.getChatModel();
MistralAiChatModel.MistralAiChatModelBuilder builder = MistralAiChatModel.builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(chatModelProperties.getBaseUrl())
- .apiKey(chatModelProperties.getApiKey())
- .modelName(chatModelProperties.getModelName())
- .temperature(chatModelProperties.getTemperature())
- .topP(chatModelProperties.getTopP())
- .maxTokens(chatModelProperties.getMaxTokens())
- .safePrompt(chatModelProperties.getSafePrompt())
- .randomSeed(chatModelProperties.getRandomSeed())
- .responseFormat(chatModelProperties.getResponseFormat())
- .stopSequences(chatModelProperties.getStopSequences())
- .frequencyPenalty(chatModelProperties.getFrequencyPenalty())
- .presencePenalty(chatModelProperties.getPresencePenalty())
- .timeout(chatModelProperties.getTimeout())
- .logRequests(chatModelProperties.getLogRequests())
- .logResponses(chatModelProperties.getLogResponses())
+ .baseUrl(chatModelProperties.baseUrl())
+ .apiKey(chatModelProperties.apiKey())
+ .modelName(chatModelProperties.modelName())
+ .temperature(chatModelProperties.temperature())
+ .topP(chatModelProperties.topP())
+ .maxTokens(chatModelProperties.maxTokens())
+ .safePrompt(chatModelProperties.safePrompt())
+ .randomSeed(chatModelProperties.randomSeed())
+ .responseFormat(chatModelProperties.responseFormat())
+ .stopSequences(chatModelProperties.stopSequences())
+ .frequencyPenalty(chatModelProperties.frequencyPenalty())
+ .presencePenalty(chatModelProperties.presencePenalty())
+ .timeout(chatModelProperties.timeout())
+ .logRequests(chatModelProperties.logRequests())
+ .logResponses(chatModelProperties.logResponses())
.listeners(listeners.orderedStream().toList());
// Conditional parameters to avoid NPE in Mistral AI models
- if (chatModelProperties.getMaxRetries() != null) {
- builder.maxRetries(chatModelProperties.getMaxRetries());
+ if (chatModelProperties.maxRetries() != null) {
+ builder.maxRetries(chatModelProperties.maxRetries());
}
- if (chatModelProperties.getSupportedCapabilities() != null) {
- builder.supportedCapabilities(chatModelProperties.getSupportedCapabilities());
+ if (chatModelProperties.supportedCapabilities() != null) {
+ builder.supportedCapabilities(chatModelProperties.supportedCapabilities());
}
return builder.build();
@@ -102,26 +101,26 @@ MistralAiStreamingChatModel mistralAiStreamingChatModel(
ChatModelProperties chatModelProperties = properties.getStreamingChatModel();
MistralAiStreamingChatModel.MistralAiStreamingChatModelBuilder builder = MistralAiStreamingChatModel.builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(chatModelProperties.getBaseUrl())
- .apiKey(chatModelProperties.getApiKey())
- .modelName(chatModelProperties.getModelName())
- .temperature(chatModelProperties.getTemperature())
- .topP(chatModelProperties.getTopP())
- .maxTokens(chatModelProperties.getMaxTokens())
- .safePrompt(chatModelProperties.getSafePrompt())
- .randomSeed(chatModelProperties.getRandomSeed())
- .responseFormat(chatModelProperties.getResponseFormat())
- .stopSequences(chatModelProperties.getStopSequences())
- .frequencyPenalty(chatModelProperties.getFrequencyPenalty())
- .presencePenalty(chatModelProperties.getPresencePenalty())
- .timeout(chatModelProperties.getTimeout())
- .logRequests(chatModelProperties.getLogRequests())
- .logResponses(chatModelProperties.getLogResponses())
+ .baseUrl(chatModelProperties.baseUrl())
+ .apiKey(chatModelProperties.apiKey())
+ .modelName(chatModelProperties.modelName())
+ .temperature(chatModelProperties.temperature())
+ .topP(chatModelProperties.topP())
+ .maxTokens(chatModelProperties.maxTokens())
+ .safePrompt(chatModelProperties.safePrompt())
+ .randomSeed(chatModelProperties.randomSeed())
+ .responseFormat(chatModelProperties.responseFormat())
+ .stopSequences(chatModelProperties.stopSequences())
+ .frequencyPenalty(chatModelProperties.frequencyPenalty())
+ .presencePenalty(chatModelProperties.presencePenalty())
+ .timeout(chatModelProperties.timeout())
+ .logRequests(chatModelProperties.logRequests())
+ .logResponses(chatModelProperties.logResponses())
.listeners(listeners.orderedStream().toList());
// Conditional parameters to avoid NPE in Mistral AI models
- if (chatModelProperties.getSupportedCapabilities() != null) {
- builder.supportedCapabilities(chatModelProperties.getSupportedCapabilities());
+ if (chatModelProperties.supportedCapabilities() != null) {
+ builder.supportedCapabilities(chatModelProperties.supportedCapabilities());
}
return builder.build();
@@ -169,13 +168,13 @@ MistralAiEmbeddingModel mistralAiEmbeddingModel(
EmbeddingModelProperties embeddingModelProperties = properties.getEmbeddingModel();
return MistralAiEmbeddingModel.builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(embeddingModelProperties.getBaseUrl())
- .apiKey(embeddingModelProperties.getApiKey())
- .modelName(embeddingModelProperties.getModelName())
- .timeout(embeddingModelProperties.getTimeout())
- .logRequests(embeddingModelProperties.getLogRequests())
- .logResponses(embeddingModelProperties.getLogResponses())
- .maxRetries(embeddingModelProperties.getMaxRetries())
+ .baseUrl(embeddingModelProperties.baseUrl())
+ .apiKey(embeddingModelProperties.apiKey())
+ .modelName(embeddingModelProperties.modelName())
+ .timeout(embeddingModelProperties.timeout())
+ .logRequests(embeddingModelProperties.logRequests())
+ .logResponses(embeddingModelProperties.logResponses())
+ .maxRetries(embeddingModelProperties.maxRetries())
.build();
}
@@ -197,19 +196,19 @@ MistralAiFimModel mistralAiFimModel(
FimModelProperties fimModelProperties = properties.getFimModel();
return MistralAiFimModel.builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(fimModelProperties.getBaseUrl())
- .apiKey(fimModelProperties.getApiKey())
- .modelName(fimModelProperties.getModelName())
- .temperature(fimModelProperties.getTemperature())
- .maxTokens(fimModelProperties.getMaxTokens())
- .minTokens(fimModelProperties.getMinTokens())
- .topP(fimModelProperties.getTopP())
- .randomSeed(fimModelProperties.getRandomSeed())
- .stop(fimModelProperties.getStop())
- .timeout(fimModelProperties.getTimeout())
- .logRequests(fimModelProperties.getLogRequests())
- .logResponses(fimModelProperties.getLogResponses())
- .maxRetries(fimModelProperties.getMaxRetries())
+ .baseUrl(fimModelProperties.baseUrl())
+ .apiKey(fimModelProperties.apiKey())
+ .modelName(fimModelProperties.modelName())
+ .temperature(fimModelProperties.temperature())
+ .maxTokens(fimModelProperties.maxTokens())
+ .minTokens(fimModelProperties.minTokens())
+ .topP(fimModelProperties.topP())
+ .randomSeed(fimModelProperties.randomSeed())
+ .stop(fimModelProperties.stop())
+ .timeout(fimModelProperties.timeout())
+ .logRequests(fimModelProperties.logRequests())
+ .logResponses(fimModelProperties.logResponses())
+ .maxRetries(fimModelProperties.maxRetries())
.build();
}
@@ -231,18 +230,18 @@ MistralAiStreamingFimModel mistralAiStreamingFimModel(
FimModelProperties fimModelProperties = properties.getStreamingFimModel();
return MistralAiStreamingFimModel.builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(fimModelProperties.getBaseUrl())
- .apiKey(fimModelProperties.getApiKey())
- .modelName(fimModelProperties.getModelName())
- .temperature(fimModelProperties.getTemperature())
- .maxTokens(fimModelProperties.getMaxTokens())
- .minTokens(fimModelProperties.getMinTokens())
- .topP(fimModelProperties.getTopP())
- .randomSeed(fimModelProperties.getRandomSeed())
- .stop(fimModelProperties.getStop())
- .timeout(fimModelProperties.getTimeout())
- .logRequests(fimModelProperties.getLogRequests())
- .logResponses(fimModelProperties.getLogResponses())
+ .baseUrl(fimModelProperties.baseUrl())
+ .apiKey(fimModelProperties.apiKey())
+ .modelName(fimModelProperties.modelName())
+ .temperature(fimModelProperties.temperature())
+ .maxTokens(fimModelProperties.maxTokens())
+ .minTokens(fimModelProperties.minTokens())
+ .topP(fimModelProperties.topP())
+ .randomSeed(fimModelProperties.randomSeed())
+ .stop(fimModelProperties.stop())
+ .timeout(fimModelProperties.timeout())
+ .logRequests(fimModelProperties.logRequests())
+ .logResponses(fimModelProperties.logResponses())
.build();
}
@@ -288,16 +287,16 @@ MistralAiModerationModel mistralAiModerationModel(
ModerationModelProperties moderationModelProperties = properties.getModerationModel();
MistralAiModerationModel.Builder builder = new MistralAiModerationModel.Builder()
.httpClientBuilder(httpClientBuilder)
- .baseUrl(moderationModelProperties.getBaseUrl())
- .apiKey(moderationModelProperties.getApiKey())
- .modelName(moderationModelProperties.getModelName())
- .timeout(moderationModelProperties.getTimeout())
- .logRequests(moderationModelProperties.getLogRequests())
- .logResponses(moderationModelProperties.getLogResponses());
+ .baseUrl(moderationModelProperties.baseUrl())
+ .apiKey(moderationModelProperties.apiKey())
+ .modelName(moderationModelProperties.modelName())
+ .timeout(moderationModelProperties.timeout())
+ .logRequests(moderationModelProperties.logRequests())
+ .logResponses(moderationModelProperties.logResponses());
// Conditional parameter to avoid NPE in Mistral AI models
- if (moderationModelProperties.getMaxRetries() != null) {
- builder.maxRetries(moderationModelProperties.getMaxRetries());
+ if (moderationModelProperties.maxRetries() != null) {
+ builder.maxRetries(moderationModelProperties.maxRetries());
}
return builder.build();
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ChatModelProperties.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ChatModelProperties.java
index ecccf68a..337103fa 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ChatModelProperties.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ChatModelProperties.java
@@ -7,159 +7,23 @@
import java.util.List;
import java.util.Set;
-class ChatModelProperties {
-
- String baseUrl;
- String apiKey;
- String modelName;
- Double temperature;
- Double topP;
- Integer maxTokens;
- Boolean safePrompt;
- Integer randomSeed;
- ResponseFormat responseFormat;
- List stopSequences;
- Double frequencyPenalty;
- Double presencePenalty;
- Duration timeout;
- Boolean logRequests;
- Boolean logResponses;
- Integer maxRetries;
- Set supportedCapabilities;
-
- public String getBaseUrl() {
- return this.baseUrl;
- }
-
- public String getApiKey() {
- return this.apiKey;
- }
-
- public String getModelName() {
- return this.modelName;
- }
-
- public Double getTemperature() {
- return this.temperature;
- }
-
- public Double getTopP() {
- return this.topP;
- }
-
- public Integer getMaxTokens() {
- return this.maxTokens;
- }
-
- public Boolean getSafePrompt() {
- return this.safePrompt;
- }
-
- public Integer getRandomSeed() {
- return this.randomSeed;
- }
-
- public ResponseFormat getResponseFormat() {
- return this.responseFormat;
- }
-
- public List getStopSequences() {
- return this.stopSequences;
- }
-
- public Double getFrequencyPenalty() {
- return this.frequencyPenalty;
- }
-
- public Double getPresencePenalty() {
- return this.presencePenalty;
- }
-
- public Duration getTimeout() {
- return this.timeout;
- }
-
- public Boolean getLogRequests() {
- return this.logRequests;
- }
-
- public Boolean getLogResponses() {
- return this.logResponses;
- }
-
- public Integer getMaxRetries() {
- return this.maxRetries;
- }
-
- public Set getSupportedCapabilities() {
- return this.supportedCapabilities;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
-
- public void setModelName(String modelName) {
- this.modelName = modelName;
- }
-
- public void setTemperature(Double temperature) {
- this.temperature = temperature;
- }
-
- public void setTopP(Double topP) {
- this.topP = topP;
- }
-
- public void setMaxTokens(Integer maxTokens) {
- this.maxTokens = maxTokens;
- }
-
- public void setSafePrompt(Boolean safePrompt) {
- this.safePrompt = safePrompt;
- }
-
- public void setRandomSeed(Integer randomSeed) {
- this.randomSeed = randomSeed;
- }
-
- public void setResponseFormat(ResponseFormat responseFormat) {
- this.responseFormat = responseFormat;
- }
-
- public void setStopSequences(List stopSequences) {
- this.stopSequences = stopSequences;
- }
-
- public void setFrequencyPenalty(Double frequencyPenalty) {
- this.frequencyPenalty = frequencyPenalty;
- }
-
- public void setPresencePenalty(Double presencePenalty) {
- this.presencePenalty = presencePenalty;
- }
-
- public void setTimeout(Duration timeout) {
- this.timeout = timeout;
- }
-
- public void setLogRequests(Boolean logRequests) {
- this.logRequests = logRequests;
- }
-
- public void setLogResponses(Boolean logResponses) {
- this.logResponses = logResponses;
- }
-
- public void setMaxRetries(Integer maxRetries) {
- this.maxRetries = maxRetries;
- }
-
- public void setSupportedCapabilities(Set supportedCapabilities) {
- this.supportedCapabilities = supportedCapabilities;
- }
+public record ChatModelProperties(
+ String baseUrl,
+ String apiKey,
+ String modelName,
+ Double temperature,
+ Double topP,
+ Integer maxTokens,
+ Boolean safePrompt,
+ Integer randomSeed,
+ ResponseFormat responseFormat,
+ List stopSequences,
+ Double frequencyPenalty,
+ Double presencePenalty,
+ Duration timeout,
+ Boolean logRequests,
+ Boolean logResponses,
+ Integer maxRetries,
+ Set supportedCapabilities
+) {
}
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/EmbeddingModelProperties.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/EmbeddingModelProperties.java
index 5d42dd5e..d71528c2 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/EmbeddingModelProperties.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/EmbeddingModelProperties.java
@@ -2,69 +2,13 @@
import java.time.Duration;
-class EmbeddingModelProperties {
-
- String baseUrl;
- String apiKey;
- String modelName;
- Duration timeout;
- Boolean logRequests;
- Boolean logResponses;
- Integer maxRetries;
-
- public String getBaseUrl() {
- return this.baseUrl;
- }
-
- public String getApiKey() {
- return this.apiKey;
- }
-
- public String getModelName() {
- return this.modelName;
- }
-
- public Duration getTimeout() {
- return this.timeout;
- }
-
- public Boolean getLogRequests() {
- return this.logRequests;
- }
-
- public Boolean getLogResponses() {
- return this.logResponses;
- }
-
- public Integer getMaxRetries() {
- return this.maxRetries;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
-
- public void setModelName(String modelName) {
- this.modelName = modelName;
- }
-
- public void setTimeout(Duration timeout) {
- this.timeout = timeout;
- }
-
- public void setLogRequests(Boolean logRequests) {
- this.logRequests = logRequests;
- }
-
- public void setLogResponses(Boolean logResponses) {
- this.logResponses = logResponses;
- }
-
- public void setMaxRetries(Integer maxRetries) {
- this.maxRetries = maxRetries;
- }
+public record EmbeddingModelProperties(
+ String baseUrl,
+ String apiKey,
+ String modelName,
+ Duration timeout,
+ Boolean logRequests,
+ Boolean logResponses,
+ Integer maxRetries
+) {
}
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/FimModelProperties.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/FimModelProperties.java
index f963f470..0c4bd33f 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/FimModelProperties.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/FimModelProperties.java
@@ -3,123 +3,19 @@
import java.time.Duration;
import java.util.List;
-class FimModelProperties {
-
- String baseUrl;
- String apiKey;
- String modelName;
- Double temperature;
- Integer maxTokens;
- Integer minTokens;
- Double topP;
- Integer randomSeed;
- List stop;
- Duration timeout;
- Boolean logRequests;
- Boolean logResponses;
- Integer maxRetries;
-
- public String getBaseUrl() {
- return this.baseUrl;
- }
-
- public String getApiKey() {
- return this.apiKey;
- }
-
- public String getModelName() {
- return this.modelName;
- }
-
- public Double getTemperature() {
- return this.temperature;
- }
-
- public Integer getMaxTokens() {
- return this.maxTokens;
- }
-
- public Integer getMinTokens() {
- return this.minTokens;
- }
-
- public Double getTopP() {
- return this.topP;
- }
-
- public Integer getRandomSeed() {
- return this.randomSeed;
- }
-
- public List getStop() {
- return this.stop;
- }
-
- public Duration getTimeout() {
- return this.timeout;
- }
-
- public Boolean getLogRequests() {
- return this.logRequests;
- }
-
- public Boolean getLogResponses() {
- return this.logResponses;
- }
-
- public Integer getMaxRetries() {
- return this.maxRetries;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
-
- public void setModelName(String modelName) {
- this.modelName = modelName;
- }
-
- public void setTemperature(Double temperature) {
- this.temperature = temperature;
- }
-
- public void setMaxTokens(Integer maxTokens) {
- this.maxTokens = maxTokens;
- }
-
- public void setMinTokens(Integer minTokens) {
- this.minTokens = minTokens;
- }
-
- public void setTopP(Double topP) {
- this.topP = topP;
- }
-
- public void setRandomSeed(Integer randomSeed) {
- this.randomSeed = randomSeed;
- }
-
- public void setStop(List stop) {
- this.stop = stop;
- }
-
- public void setTimeout(Duration timeout) {
- this.timeout = timeout;
- }
-
- public void setLogRequests(Boolean logRequests) {
- this.logRequests = logRequests;
- }
-
- public void setLogResponses(Boolean logResponses) {
- this.logResponses = logResponses;
- }
-
- public void setMaxRetries(Integer maxRetries) {
- this.maxRetries = maxRetries;
- }
+public record FimModelProperties(
+ String baseUrl,
+ String apiKey,
+ String modelName,
+ Double temperature,
+ Integer maxTokens,
+ Integer minTokens,
+ Double topP,
+ Integer randomSeed,
+ List stop,
+ Duration timeout,
+ Boolean logRequests,
+ Boolean logResponses,
+ Integer maxRetries
+) {
}
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ModerationModelProperties.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ModerationModelProperties.java
index 4feb34e5..f4179d91 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ModerationModelProperties.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/ModerationModelProperties.java
@@ -2,69 +2,13 @@
import java.time.Duration;
-class ModerationModelProperties {
-
- String baseUrl;
- String apiKey;
- String modelName;
- Duration timeout;
- Boolean logRequests;
- Boolean logResponses;
- Integer maxRetries;
-
- public String getBaseUrl() {
- return this.baseUrl;
- }
-
- public String getApiKey() {
- return this.apiKey;
- }
-
- public String getModelName() {
- return this.modelName;
- }
-
- public Duration getTimeout() {
- return this.timeout;
- }
-
- public Boolean getLogRequests() {
- return this.logRequests;
- }
-
- public Boolean getLogResponses() {
- return this.logResponses;
- }
-
- public Integer getMaxRetries() {
- return this.maxRetries;
- }
-
- public void setBaseUrl(String baseUrl) {
- this.baseUrl = baseUrl;
- }
-
- public void setApiKey(String apiKey) {
- this.apiKey = apiKey;
- }
-
- public void setModelName(String modelName) {
- this.modelName = modelName;
- }
-
- public void setTimeout(Duration timeout) {
- this.timeout = timeout;
- }
-
- public void setLogRequests(Boolean logRequests) {
- this.logRequests = logRequests;
- }
-
- public void setLogResponses(Boolean logResponses) {
- this.logResponses = logResponses;
- }
-
- public void setMaxRetries(Integer maxRetries) {
- this.maxRetries = maxRetries;
- }
+public record ModerationModelProperties(
+ String baseUrl,
+ String apiKey,
+ String modelName,
+ Duration timeout,
+ Boolean logRequests,
+ Boolean logResponses,
+ Integer maxRetries
+) {
}
diff --git a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/Properties.java b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/Properties.java
index 2951e174..b913bfe1 100644
--- a/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/Properties.java
+++ b/langchain4j-mistral-ai-spring-boot-starter/src/main/java/dev/langchain4j/mistralai/spring/Properties.java
@@ -9,67 +9,67 @@ public class Properties {
public static final String PREFIX = "langchain4j.mistral-ai";
@NestedConfigurationProperty
- ChatModelProperties chatModel;
+ private ChatModelProperties chatModel;
@NestedConfigurationProperty
- ChatModelProperties streamingChatModel;
+ private ChatModelProperties streamingChatModel;
@NestedConfigurationProperty
- EmbeddingModelProperties embeddingModel;
+ private EmbeddingModelProperties embeddingModel;
@NestedConfigurationProperty
- FimModelProperties fimModel;
+ private FimModelProperties fimModel;
@NestedConfigurationProperty
- FimModelProperties streamingFimModel;
+ private FimModelProperties streamingFimModel;
@NestedConfigurationProperty
- ModerationModelProperties moderationModel;
+ private ModerationModelProperties moderationModel;
public ChatModelProperties getChatModel() {
- return this.chatModel;
- }
-
- public ChatModelProperties getStreamingChatModel() {
- return this.streamingChatModel;
- }
-
- public EmbeddingModelProperties getEmbeddingModel() {
- return this.embeddingModel;
- }
-
- public FimModelProperties getFimModel() {
- return this.fimModel;
- }
-
- public FimModelProperties getStreamingFimModel() {
- return this.streamingFimModel;
- }
-
- public ModerationModelProperties getModerationModel() {
- return this.moderationModel;
+ return chatModel;
}
public void setChatModel(ChatModelProperties chatModel) {
this.chatModel = chatModel;
}
+ public ChatModelProperties getStreamingChatModel() {
+ return streamingChatModel;
+ }
+
public void setStreamingChatModel(ChatModelProperties streamingChatModel) {
this.streamingChatModel = streamingChatModel;
}
+ public EmbeddingModelProperties getEmbeddingModel() {
+ return embeddingModel;
+ }
+
public void setEmbeddingModel(EmbeddingModelProperties embeddingModel) {
this.embeddingModel = embeddingModel;
}
+ public FimModelProperties getFimModel() {
+ return fimModel;
+ }
+
public void setFimModel(FimModelProperties fimModel) {
this.fimModel = fimModel;
}
+ public FimModelProperties getStreamingFimModel() {
+ return streamingFimModel;
+ }
+
public void setStreamingFimModel(FimModelProperties streamingFimModel) {
this.streamingFimModel = streamingFimModel;
}
+ public ModerationModelProperties getModerationModel() {
+ return moderationModel;
+ }
+
public void setModerationModel(ModerationModelProperties moderationModel) {
this.moderationModel = moderationModel;
}
diff --git a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/ChatModelProperties.java b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/ChatModelProperties.java
index 725cc2b2..e964344c 100644
--- a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/ChatModelProperties.java
+++ b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/ChatModelProperties.java
@@ -7,7 +7,7 @@
import java.util.Map;
import java.util.Set;
-class ChatModelProperties {
+public class ChatModelProperties {
String baseUrl;
String modelName;
diff --git a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/EmbeddingModelProperties.java b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/EmbeddingModelProperties.java
index cd1c3087..18c27ff9 100644
--- a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/EmbeddingModelProperties.java
+++ b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/EmbeddingModelProperties.java
@@ -3,7 +3,7 @@
import java.time.Duration;
import java.util.Map;
-class EmbeddingModelProperties {
+public class EmbeddingModelProperties {
String baseUrl;
String modelName;
diff --git a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/LanguageModelProperties.java b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/LanguageModelProperties.java
index be31a5bf..a31d0bd6 100644
--- a/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/LanguageModelProperties.java
+++ b/langchain4j-ollama-spring-boot-starter/src/main/java/dev/langchain4j/ollama/spring/LanguageModelProperties.java
@@ -4,7 +4,7 @@
import java.util.List;
import java.util.Map;
-class LanguageModelProperties {
+public class LanguageModelProperties {
String baseUrl;
String modelName;
diff --git a/langchain4j-spring-boot-tests/pom.xml b/langchain4j-spring-boot-tests/pom.xml
index 7eca7fed..554ea461 100644
--- a/langchain4j-spring-boot-tests/pom.xml
+++ b/langchain4j-spring-boot-tests/pom.xml
@@ -53,7 +53,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.3.1
+ 3.4.0
attach-sources
diff --git a/mvnw b/mvnw
index 5e9618ca..1ddd97b9 100755
--- a/mvnw
+++ b/mvnw
@@ -19,7 +19,7 @@
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
-# Apache Maven Wrapper startup batch script, version 3.3.2
+# Apache Maven Wrapper startup batch script, version 3.3.4
#
# Required ENV vars:
# ------------------
@@ -201,6 +201,14 @@ MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
export MAVEN_PROJECTBASEDIR
log "$MAVEN_PROJECTBASEDIR"
+trim() {
+ # MWRAPPER-139:
+ # Trims trailing and leading whitespace, carriage returns, tabs, and linefeeds.
+ # Needed for removing poorly interpreted newline sequences when running in more
+ # exotic environments such as mingw bash on Windows.
+ printf "%s" "${1}" | tr -d '[:space:]'
+}
+
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
@@ -212,15 +220,13 @@ else
log "Couldn't find $wrapperJarPath, downloading it ..."
if [ -n "$MVNW_REPOURL" ]; then
- wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
else
- wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
fi
while IFS="=" read -r key value; do
- # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
- safeValue=$(echo "$value" | tr -d '\r')
case "$key" in wrapperUrl)
- wrapperUrl="$safeValue"
+ wrapperUrl=$(trim "${value-}")
break
;;
esac
@@ -235,17 +241,17 @@ else
log "Found wget ... using wget"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+ wget ${QUIET:+"$QUIET"} "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
else
- wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+ wget ${QUIET:+"$QUIET"} --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
fi
elif command -v curl >/dev/null; then
log "Found curl ... using curl"
[ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
- curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+ curl ${QUIET:+"$QUIET"} -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
else
- curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+ curl ${QUIET:+"$QUIET"} --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
fi
else
log "Falling back to using Java to download"
@@ -276,7 +282,7 @@ fi
wrapperSha256Sum=""
while IFS="=" read -r key value; do
case "$key" in wrapperSha256Sum)
- wrapperSha256Sum=$value
+ wrapperSha256Sum=$(trim "${value-}")
break
;;
esac
@@ -284,7 +290,7 @@ done <"$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
if [ -n "$wrapperSha256Sum" ]; then
wrapperSha256Result=false
if command -v sha256sum >/dev/null; then
- if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c >/dev/null 2>&1; then
+ if echo "$wrapperSha256Sum $wrapperJarPath" | sha256sum -c - >/dev/null 2>&1; then
wrapperSha256Result=true
fi
elif command -v shasum >/dev/null; then
diff --git a/mvnw.cmd b/mvnw.cmd
index 1204076a..c453424c 100755
--- a/mvnw.cmd
+++ b/mvnw.cmd
@@ -18,7 +18,7 @@
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
-@REM Apache Maven Wrapper startup batch script, version 3.3.2
+@REM Apache Maven Wrapper startup batch script, version 3.3.4
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@@ -119,7 +119,7 @@ SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
@@ -133,7 +133,7 @@ if exist %WRAPPER_JAR% (
)
) else (
if not "%MVNW_REPOURL%" == "" (
- SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar"
+ SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.3.4/maven-wrapper-3.3.4.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
diff --git a/pom.xml b/pom.xml
index eb87790e..8d271f0b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,8 +40,7 @@
17
17
UTF-8
- 3.3.8
- 1.20.4
+ 3.5.9
2.7.0
@@ -66,16 +65,6 @@
import
-
-
- org.testcontainers
- testcontainers-bom
- ${testcontainers.version}
- import
- pom
-
-
org.tinylog
tinylog-impl
@@ -99,13 +88,13 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.2
+ 3.5.4
org.sonatype.central
central-publishing-maven-plugin
- 0.7.0
+ 0.9.0
true
central
@@ -119,7 +108,7 @@
org.apache.maven.plugins
maven-source-plugin
- 3.3.1
+ 3.4.0
attach-sources
@@ -133,7 +122,7 @@
org.apache.maven.plugins
maven-javadoc-plugin
- 3.11.1
+ 3.12.0
attach-javadocs
@@ -147,7 +136,7 @@
org.apache.maven.plugins
maven-failsafe-plugin
- 3.5.2
+ 3.5.4
@@ -161,7 +150,7 @@
io.sundr
sundr-maven-plugin
- 0.200.0
+ 0.230.2
false
@@ -194,7 +183,7 @@
org.codehaus.mojo
flatten-maven-plugin
- 1.7.0
+ 1.7.3
ossrh
@@ -259,7 +248,7 @@
org.apache.maven.plugins
maven-gpg-plugin
- 3.2.7
+ 3.2.8
sign-artifacts