Skip to content

Commit 8f3a9af

Browse files
committed
fix(spring): preserve RestClient customizers
1 parent c6d2f45 commit 8f3a9af

2 files changed

Lines changed: 20 additions & 6 deletions

File tree

hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/ContractVerificationClientImplementation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,12 @@ private record VerifyRequest(
3838

3939
private final RestClient restClient;
4040

41-
public ContractVerificationClientImplementation(@NonNull final HieroConfig hieroConfig) {
41+
public ContractVerificationClientImplementation(
42+
@NonNull final HieroConfig hieroConfig, final RestClient.Builder restClientBuilder) {
4243
this.hieroConfig = Objects.requireNonNull(hieroConfig, "hieroConfig must not be null");
4344
objectMapper = new ObjectMapper();
44-
restClient = RestClient.create();
45+
restClient =
46+
Objects.requireNonNull(restClientBuilder, "restClientBuilder must not be null").build();
4547
}
4648

4749
@NonNull

hiero-enterprise-spring/src/main/java/org/hiero/spring/implementation/HieroAutoConfiguration.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.slf4j.Logger;
4040
import org.slf4j.LoggerFactory;
4141
import org.springframework.beans.factory.annotation.Autowired;
42+
import org.springframework.beans.factory.ObjectProvider;
4243
import org.springframework.boot.autoconfigure.AutoConfiguration;
4344
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4445
import org.springframework.boot.context.properties.EnableConfigurationProperties;
@@ -54,6 +55,11 @@ public class HieroAutoConfiguration {
5455

5556
private static final Logger log = LoggerFactory.getLogger(HieroAutoConfiguration.class);
5657

58+
private RestClient.Builder restClientBuilder(
59+
final ObjectProvider<RestClient.Builder> restClientBuilderProvider) {
60+
return restClientBuilderProvider.getIfAvailable(RestClient::builder);
61+
}
62+
5763
@Bean
5864
@ApplicationScope
5965
HieroConfig hieroConfig(final HieroProperties properties) {
@@ -116,7 +122,9 @@ TopicClient topicClient(
116122
name = "mirrorNodeSupported",
117123
havingValue = "true",
118124
matchIfMissing = true)
119-
MirrorNodeClient mirrorNodeClient(final HieroContext hieroContext) {
125+
MirrorNodeClient mirrorNodeClient(
126+
final HieroContext hieroContext,
127+
final ObjectProvider<RestClient.Builder> restClientBuilderProvider) {
120128
final String mirrorNodeEndpoint;
121129
final List<String> mirrorNetwork = hieroContext.getClient().getMirrorNetwork();
122130
if (mirrorNetwork.isEmpty()) {
@@ -148,7 +156,8 @@ MirrorNodeClient mirrorNodeClient(final HieroContext hieroContext) {
148156
throw new IllegalArgumentException(
149157
"Error parsing mirrorNodeEndpoint '" + mirrorNodeEndpoint + "'", e);
150158
}
151-
RestClient.Builder builder = RestClient.builder().baseUrl(baseUri);
159+
RestClient.Builder builder =
160+
restClientBuilder(restClientBuilderProvider).clone().baseUrl(baseUri);
152161
return new MirrorNodeClientImpl(builder);
153162
}
154163

@@ -223,7 +232,10 @@ TopicRepository topicRepository(final MirrorNodeClient mirrorNodeClient) {
223232
}
224233

225234
@Bean
226-
ContractVerificationClient contractVerificationClient(final HieroConfig hieroConfig) {
227-
return new ContractVerificationClientImplementation(hieroConfig);
235+
ContractVerificationClient contractVerificationClient(
236+
final HieroConfig hieroConfig,
237+
final ObjectProvider<RestClient.Builder> restClientBuilderProvider) {
238+
return new ContractVerificationClientImplementation(
239+
hieroConfig, restClientBuilder(restClientBuilderProvider));
228240
}
229241
}

0 commit comments

Comments
 (0)