3434import org .apache .hc .client5 .http .impl .nio .PoolingAsyncClientConnectionManager ;
3535import org .apache .hc .client5 .http .impl .nio .PoolingAsyncClientConnectionManagerBuilder ;
3636import org .apache .hc .client5 .http .ssl .ClientTlsStrategyBuilder ;
37+ import org .apache .hc .core5 .http .EntityDetails ;
3738import org .apache .hc .core5 .http .HttpHost ;
39+ import org .apache .hc .core5 .http .HttpRequest ;
3840import org .apache .hc .core5 .http .nio .ssl .TlsStrategy ;
41+ import org .apache .hc .core5 .http .protocol .HttpContext ;
3942import org .apache .hc .core5 .util .Timeout ;
4043import org .folio .search .configuration .opensearch .RestClientBuilderCustomizer ;
4144import org .folio .search .configuration .properties .OpensearchProperties ;
4447import org .opensearch .client .RestHighLevelClient ;
4548import org .springframework .beans .factory .ObjectProvider ;
4649import org .springframework .boot .autoconfigure .condition .ConditionalOnClass ;
47- import org .springframework .boot .autoconfigure .condition .ConditionalOnMissingBean ;
4850import org .springframework .boot .context .properties .PropertyMapper ;
4951import org .springframework .context .annotation .Bean ;
5052import org .springframework .context .annotation .Configuration ;
@@ -59,7 +61,6 @@ RestClientBuilderCustomizer defaultRestClientBuilderCustomizer(OpensearchPropert
5961 }
6062
6163 @ Bean
62- @ ConditionalOnMissingBean (RestClientBuilder .class )
6364 RestClientBuilder opensearchRestClientBuilder (ObjectProvider <RestClientBuilderCustomizer > builderCustomizers ,
6465 OpensearchProperties properties ) {
6566 HttpHost [] hosts = properties .getUris ().stream ().map (this ::createHttpHost ).toArray (HttpHost []::new );
@@ -128,6 +129,14 @@ static class DefaultRestClientBuilderCustomizer implements RestClientBuilderCust
128129 public void customize (HttpAsyncClientBuilder builder ) {
129130 builder .setDefaultCredentialsProvider (new PropertiesCredentialsProvider (this .properties ));
130131 builder .setConnectionManager (getPoolingAsyncClientConnectionManager ());
132+
133+ builder .addRequestInterceptorFirst ((HttpRequest request , EntityDetails entityDetails , HttpContext context ) -> {
134+ var uri = request .getRequestUri ();
135+ if (uri .contains ("cluster_manager_timeout" )) {
136+ var newUri = uri .replaceAll ("[&?]?cluster_manager_timeout=[^&]*" , "" );
137+ request .setPath (newUri );
138+ }
139+ });
131140 }
132141
133142 @ Override
0 commit comments