From 05e6bdd96762356a5cdcdb6bc2a72bb88064dc74 Mon Sep 17 00:00:00 2001 From: Alejandro <26930485+alejandroGM0@users.noreply.github.com> Date: Mon, 27 Apr 2026 17:45:47 +0200 Subject: [PATCH 1/2] fix(spring): preserve RestClient customizers Signed-off-by: Alejandro <26930485+alejandroGM0@users.noreply.github.com> --- ...tractVerificationClientImplementation.java | 6 ++++-- .../HieroAutoConfiguration.java | 20 +++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/ContractVerificationClientImplementation.java b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/ContractVerificationClientImplementation.java index 6278b849..32e94c14 100644 --- a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/ContractVerificationClientImplementation.java +++ b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/ContractVerificationClientImplementation.java @@ -38,10 +38,12 @@ private record VerifyRequest( private final RestClient restClient; - public ContractVerificationClientImplementation(@NonNull final HieroConfig hieroConfig) { + public ContractVerificationClientImplementation( + @NonNull final HieroConfig hieroConfig, final RestClient.Builder restClientBuilder) { this.hieroConfig = Objects.requireNonNull(hieroConfig, "hieroConfig must not be null"); objectMapper = new ObjectMapper(); - restClient = RestClient.create(); + restClient = + Objects.requireNonNull(restClientBuilder, "restClientBuilder must not be null").build(); } @NonNull diff --git a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java index e000cfb5..faedad1f 100644 --- a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java +++ b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java @@ -39,6 +39,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.ObjectProvider; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; @@ -54,6 +55,11 @@ public class HieroAutoConfiguration { private static final Logger log = LoggerFactory.getLogger(HieroAutoConfiguration.class); + private RestClient.Builder restClientBuilder( + final ObjectProvider restClientBuilderProvider) { + return restClientBuilderProvider.getIfAvailable(RestClient::builder); + } + @Bean @ApplicationScope HieroConfig hieroConfig(final HieroProperties properties) { @@ -116,7 +122,9 @@ TopicClient topicClient( name = "mirrorNodeSupported", havingValue = "true", matchIfMissing = true) - MirrorNodeClient mirrorNodeClient(final HieroContext hieroContext) { + MirrorNodeClient mirrorNodeClient( + final HieroContext hieroContext, + final ObjectProvider restClientBuilderProvider) { final String mirrorNodeEndpoint; final List mirrorNetwork = hieroContext.getClient().getMirrorNetwork(); if (mirrorNetwork.isEmpty()) { @@ -148,7 +156,8 @@ MirrorNodeClient mirrorNodeClient(final HieroContext hieroContext) { throw new IllegalArgumentException( "Error parsing mirrorNodeEndpoint '" + mirrorNodeEndpoint + "'", e); } - RestClient.Builder builder = RestClient.builder().baseUrl(baseUri); + RestClient.Builder builder = + restClientBuilder(restClientBuilderProvider).clone().baseUrl(baseUri); return new MirrorNodeClientImpl(builder); } @@ -223,7 +232,10 @@ TopicRepository topicRepository(final MirrorNodeClient mirrorNodeClient) { } @Bean - ContractVerificationClient contractVerificationClient(final HieroConfig hieroConfig) { - return new ContractVerificationClientImplementation(hieroConfig); + ContractVerificationClient contractVerificationClient( + final HieroConfig hieroConfig, + final ObjectProvider restClientBuilderProvider) { + return new ContractVerificationClientImplementation( + hieroConfig, restClientBuilder(restClientBuilderProvider)); } } From 7b3d38fa1b1772a66430f45772637a0e81d5caa2 Mon Sep 17 00:00:00 2001 From: Alejandro <26930485+alejandroGM0@users.noreply.github.com> Date: Tue, 28 Apr 2026 18:16:01 +0200 Subject: [PATCH 2/2] style(spring): apply Spotless formatting Signed-off-by: Alejandro <26930485+alejandroGM0@users.noreply.github.com> --- .../org/hiero/spring/implementation/HieroAutoConfiguration.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java index faedad1f..710387f8 100644 --- a/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java +++ b/hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java @@ -38,8 +38,8 @@ import org.hiero.base.verification.ContractVerificationClient; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties;