3939import org .slf4j .Logger ;
4040import org .slf4j .LoggerFactory ;
4141import org .springframework .beans .factory .annotation .Autowired ;
42+ import org .springframework .beans .factory .ObjectProvider ;
4243import org .springframework .boot .autoconfigure .AutoConfiguration ;
4344import org .springframework .boot .autoconfigure .condition .ConditionalOnProperty ;
4445import 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