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