Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.hiero.base.verification.ContractVerificationClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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;
Expand All @@ -54,6 +55,11 @@ public class HieroAutoConfiguration {

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

private RestClient.Builder restClientBuilder(
final ObjectProvider<RestClient.Builder> restClientBuilderProvider) {
return restClientBuilderProvider.getIfAvailable(RestClient::builder);
}

@Bean
@ApplicationScope
HieroConfig hieroConfig(final HieroProperties properties) {
Expand Down Expand Up @@ -116,7 +122,9 @@ TopicClient topicClient(
name = "mirrorNodeSupported",
havingValue = "true",
matchIfMissing = true)
MirrorNodeClient mirrorNodeClient(final HieroContext hieroContext) {
MirrorNodeClient mirrorNodeClient(
final HieroContext hieroContext,
final ObjectProvider<RestClient.Builder> restClientBuilderProvider) {
final String mirrorNodeEndpoint;
final List<String> mirrorNetwork = hieroContext.getClient().getMirrorNetwork();
if (mirrorNetwork.isEmpty()) {
Expand Down Expand Up @@ -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);
}

Expand Down Expand Up @@ -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<RestClient.Builder> restClientBuilderProvider) {
return new ContractVerificationClientImplementation(
hieroConfig, restClientBuilder(restClientBuilderProvider));
}
}