diff --git a/NOTICE b/NOTICE
index 41aa0c80abd97c03d386557f96e77e9e731743fa..e3b1becbb65b4d8470742746d26fd69293e8c6b1 100644
--- a/NOTICE
+++ b/NOTICE
@@ -51,7 +51,6 @@ Apache-2.0
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- AHC/Client (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client)
 - AMQP 1.0 JMS Spring Boot AutoConfiguration (from https://repo1.maven.org/maven2/org/amqphub/spring/amqp-10-jms-spring-boot-autoconfigure)
 - AMQP 1.0 JMS Spring Boot Starter (from https://repo1.maven.org/maven2/org/amqphub/spring/amqp-10-jms-spring-boot-starter)
 - ASM Analysis (from http://asm.ow2.io/)
@@ -361,10 +360,11 @@ The following software have components provided under the terms of this license:
 - Apache Maven Wagon :: Providers :: SSH Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh)
 - Apache Velocity (from http://velocity.apache.org/engine/devel/, http://velocity.apache.org/engine/releases/velocity-1.6.1/, http://velocity.apache.org/engine/releases/velocity-1.6.2/)
 - AssertJ Core (from ${project.organization.url}#${project.artifactId})
+- Asynchronous Http Client (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client)
 - Asynchronous Http Client Netty Utils (from https://repo1.maven.org/maven2/org/asynchttpclient/async-http-client-netty-utils)
 - AutoValue Annotations (from https://github.com/google/auto/tree/master/value, https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations)
 - BSON (from http://bsonspec.org, https://bsonspec.org)
-- BSON Record Codec (from https://www.mongodb.com/)
+- BSON Record Codec (from <https://www.mongodb.com/>, https://www.mongodb.com/)
 - Bean Validation API (from http://beanvalidation.org)
 - Brave (from https://repo1.maven.org/maven2/io/zipkin/brave/brave)
 - Brave Instrumentation: Http Adapters (from https://repo1.maven.org/maven2/io/zipkin/brave/brave-instrumentation-http)
@@ -396,7 +396,7 @@ The following software have components provided under the terms of this license:
 - GSON extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson)
 - Google APIs Client Library for Java (from https://repo1.maven.org/maven2/com/google/api-client/google-api-client)
 - Google App Engine extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-appengine)
-- Google Cloud Core (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core, https://github.com/googleapis/java-core)
+- Google Cloud Core (from https://github.com/googleapis/google-cloud-java, https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core, https://github.com/googleapis/java-core)
 - Google Cloud Core HTTP (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-core-http, https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-http, https://github.com/googleapis/java-core)
 - Google Cloud Core gRPC (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc, https://github.com/googleapis/java-core)
 - Google Cloud Datastore (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-datastore, https://github.com/googleapis/java-datastore)
@@ -455,7 +455,7 @@ The following software have components provided under the terms of this license:
 - Java Native Access (from https://github.com/java-native-access/jna, https://github.com/twall/jna)
 - Java Native Access Platform (from https://github.com/java-native-access/jna)
 - Java UUID Generator (from http://wiki.fasterxml.com/JugHome)
-- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
+- JavaBeans Activation Framework (from <http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp>, http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp, https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
 - Javassist (from http://www.javassist.org/)
 - JetBrains Java Annotations (from https://github.com/JetBrains/java-annotations)
 - Jetty :: Utilities (from http://jetty.mortbay.org, http://www.eclipse.org/jetty, https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-util, https://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util)
@@ -469,10 +469,10 @@ The following software have components provided under the terms of this license:
 - KeePassJava2 :: Simple (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2-simple)
 - Kotlin Stdlib (from https://kotlinlang.org/, https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib)
 - Kotlin Stdlib Common (from https://kotlinlang.org/)
-- Kotlin Stdlib Jdk7 (from https://kotlinlang.org/)
-- Kotlin Stdlib Jdk8 (from https://kotlinlang.org/)
+- Kotlin Stdlib Jdk7 (from <https://kotlinlang.org/>, https://kotlinlang.org/)
+- Kotlin Stdlib Jdk8 (from <https://kotlinlang.org/>, https://kotlinlang.org/)
 - LatencyUtils (from http://latencyutils.github.io/LatencyUtils/)
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
 - Lucene Grouping (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
@@ -545,11 +545,11 @@ The following software have components provided under the terms of this license:
 - Plexus Velocity Component (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity)
 - PostgreSQL JDBC Driver
 - PowerMock (from http://www.powermock.org, https://repo1.maven.org/maven2/org/powermock/powermock-api-mockito)
-- Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient)
-- Prometheus Java Simpleclient Common (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_common)
-- Prometheus Java Span Context Supplier - Common (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_common)
-- Prometheus Java Span Context Supplier - OpenTelemetry (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel)
-- Prometheus Java Span Context Supplier - OpenTelemetry Agent (from https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel_agent)
+- Prometheus Java Simpleclient (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient>, https://repo1.maven.org/maven2/io/prometheus/simpleclient)
+- Prometheus Java Simpleclient Common (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient_common>, https://repo1.maven.org/maven2/io/prometheus/simpleclient_common)
+- Prometheus Java Span Context Supplier - Common (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_common>, https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_common)
+- Prometheus Java Span Context Supplier - OpenTelemetry (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel>, https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel)
+- Prometheus Java Span Context Supplier - OpenTelemetry Agent (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel_agent>, https://repo1.maven.org/maven2/io/prometheus/simpleclient_tracer_otel_agent)
 - Protocol Buffer extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-protobuf)
 - Proton-J (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j)
 - QpidJMS Client (from https://repo1.maven.org/maven2/org/apache/qpid/qpid-jms-client)
@@ -607,7 +607,7 @@ The following software have components provided under the terms of this license:
 - Spring Web (from http://www.springframework.org, https://github.com/spring-projects/spring-framework, https://repo1.maven.org/maven2/org/springframework/spring-web)
 - Spring Web MVC (from https://github.com/spring-projects/spring-framework, https://repo1.maven.org/maven2/org/springframework/spring-webmvc)
 - Spring WebFlux (from https://github.com/spring-projects/spring-framework)
-- Swagger UI (from http://webjars.org)
+- Swagger UI (from <http://webjars.org>, http://webjars.org)
 - Vavr (from http://vavr.io, https://www.vavr.io)
 - Vavr Match (from http://vavr.io)
 - Woodstox (from https://github.com/FasterXML/woodstox)
@@ -616,14 +616,14 @@ The following software have components provided under the terms of this license:
 - Zipkin Reporter: Core (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter)
 - Zipkin v2 (from https://repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin)
 - aalto-xml (from https://github.com/FasterXML/aalto-xml, https://repo1.maven.org/maven2/com/fasterxml/aalto-xml)
-- aggs-matrix-stats (from https://github.com/elastic/elasticsearch.git)
+- aggs-matrix-stats (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - compiler (from http://github.com/spullara/mustache.java)
 - datastore-v1-proto-client (from https://repo1.maven.org/maven2/com/google/cloud/datastore/datastore-v1-proto-client)
 - documentdb-bulkexecutor (from http://azure.microsoft.com/en-us/services/documentdb/)
 - elasticsearch (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git, https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch)
 - elasticsearch-cli (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - elasticsearch-core (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
-- elasticsearch-geo (from https://github.com/elastic/elasticsearch.git)
+- elasticsearch-geo (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - elasticsearch-secure-sm (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - elasticsearch-x-content (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
@@ -650,18 +650,18 @@ The following software have components provided under the terms of this license:
 - jersey-media-json-jackson (from https://repo1.maven.org/maven2/org/glassfish/jersey/media/jersey-media-json-jackson)
 - jose4j (from https://bitbucket.org/b_c/jose4j/)
 - json-path (from http://code.google.com/p/json-path/, https://github.com/jayway/JsonPath)
-- lang-mustache (from https://github.com/elastic/elasticsearch.git)
+- lang-mustache (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - lettuce (from http://github.com/mp911de/lettuce/wiki, https://github.com/lettuce-io/lettuce-core/wiki)
-- mapper-extras (from https://github.com/elastic/elasticsearch.git)
+- mapper-extras (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - micrometer-core (from https://github.com/micrometer-metrics/micrometer)
 - micrometer-registry-azure-monitor (from https://github.com/micrometer-metrics/micrometer)
-- micrometer-registry-prometheus (from https://github.com/micrometer-metrics/micrometer)
+- micrometer-registry-prometheus (from <https://github.com/micrometer-metrics/micrometer>, https://github.com/micrometer-metrics/micrometer)
 - minio (from https://github.com/minio/minio-java)
 - org.apiguardian:apiguardian-api (from https://github.com/apiguardian-team/apiguardian)
 - org.conscrypt:conscrypt-openjdk-uber (from https://conscrypt.org/)
 - org.opentest4j:opentest4j (from https://github.com/ota4j-team/opentest4j)
 - org.xmlunit:xmlunit-core (from http://www.xmlunit.org/, https://www.xmlunit.org/)
-- parent-join (from https://github.com/elastic/elasticsearch.git)
+- parent-join (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - perfmark:perfmark-api (from https://github.com/perfmark/perfmark)
 - proto-google-cloud-datastore-v1 (from https://github.com/googleapis/googleapis, https://github.com/googleapis/java-datastore/proto-google-cloud-datastore-v1)
 - proto-google-cloud-iamcredentials-v1 (from https://github.com/googleapis/google-cloud-java, https://github.com/googleapis/java-iamcredentials/proto-google-cloud-iamcredentials-v1, https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-iamcredentials-v1)
@@ -669,18 +669,17 @@ The following software have components provided under the terms of this license:
 - proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/googleapis, https://github.com/googleapis/java-pubsub/proto-google-cloud-pubsub-v1)
 - proto-google-common-protos (from https://github.com/googleapis/api-client-staging, https://github.com/googleapis/gapic-generator-java, https://github.com/googleapis/googleapis, https://github.com/googleapis/java-iam/proto-google-common-protos)
 - proto-google-iam-v1 (from https://github.com/googleapis/gapic-generator-java, https://github.com/googleapis/googleapis, https://github.com/googleapis/java-iam/proto-google-iam-v1)
-- rank-eval (from https://github.com/elastic/elasticsearch.git)
+- rank-eval (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - resilience4j (from https://github.com/resilience4j/resilience4j, https://resilience4j.readme.io, ttps://resilience4j.readme.io)
-- rest (from https://github.com/elastic/elasticsearch.git)
+- rest (from https://github.com/elastic/elasticsearch, https://github.com/elastic/elasticsearch.git)
 - rest-high-level (from https://github.com/elastic/elasticsearch)
-- spring-security-crypto (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
 - spring-security-oauth2-client (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
 - spring-security-oauth2-core (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
 - spring-security-oauth2-jose (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
 - spring-security-test (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
-- springdoc-openapi-common (from https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-common)
-- springdoc-openapi-ui (from https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-ui)
-- springdoc-openapi-webmvc-core (from https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-webmvc-core)
+- springdoc-openapi-common (from <https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-common>, https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-common)
+- springdoc-openapi-ui (from https://github.com/springdoc/springdoc-openapi, https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-ui)
+- springdoc-openapi-webmvc-core (from <https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-webmvc-core>, https://repo1.maven.org/maven2/org/springdoc/springdoc-openapi-webmvc-core)
 - swagger-annotations (from https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-annotations, https://repo1.maven.org/maven2/io/swagger/swagger-annotations)
 - swagger-core (from https://repo1.maven.org/maven2/io/swagger/core/v3/swagger-core, https://repo1.maven.org/maven2/io/swagger/swagger-core)
 - swagger-jaxrs (from https://repo1.maven.org/maven2/io/swagger/swagger-jaxrs)
@@ -702,15 +701,15 @@ The following software have components provided under the terms of this license:
 - Apache Lucene (module: misc) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-misc)
 - Apache Lucene (module: spatial-extras) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-spatial-extras)
 - Apache Lucene (module: suggest) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-suggest)
-- GAX (Google Api eXtensions) for Java (Core) (from https://repo1.maven.org/maven2/com/google/api/gax)
-- GAX (Google Api eXtensions) for Java (HTTP JSON) (from https://repo1.maven.org/maven2/com/google/api/gax-httpjson)
-- GAX (Google Api eXtensions) for Java (gRPC) (from https://repo1.maven.org/maven2/com/google/api/gax-grpc)
+- GAX (Google Api eXtensions) for Java (Core) (from https://github.com/googleapis, https://github.com/googleapis/gax-java, https://repo1.maven.org/maven2/com/google/api/gax)
+- GAX (Google Api eXtensions) for Java (HTTP JSON) (from <https://repo1.maven.org/maven2/com/google/api/gax-httpjson>, https://repo1.maven.org/maven2/com/google/api/gax-httpjson)
+- GAX (Google Api eXtensions) for Java (gRPC) (from <https://repo1.maven.org/maven2/com/google/api/gax-grpc>, https://repo1.maven.org/maven2/com/google/api/gax-grpc)
 - Hamcrest (from http://hamcrest.org/JavaHamcrest/)
 - Hamcrest Core (from http://hamcrest.org/, http://hamcrest.org/JavaHamcrest/, https://repo1.maven.org/maven2/org/hamcrest/hamcrest-core)
 - JSch (from http://www.jcraft.com/jsch/)
 - Jodd BeanUtil (from http://jodd.org)
 - Jodd Core (from http://jodd.org)
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Lucene Grouping (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
 - Lucene Join (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-join)
@@ -742,9 +741,9 @@ The following software have components provided under the terms of this license:
 - Apache Lucene (module: suggest) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-suggest)
 - AspectJ Weaver (from http://www.aspectj.org, https://www.eclipse.org/aspectj/)
 - Class Model for Hk2 (from https://repo1.maven.org/maven2/org/glassfish/hk2/class-model)
-- GAX (Google Api eXtensions) for Java (Core) (from https://repo1.maven.org/maven2/com/google/api/gax)
-- GAX (Google Api eXtensions) for Java (HTTP JSON) (from https://repo1.maven.org/maven2/com/google/api/gax-httpjson)
-- GAX (Google Api eXtensions) for Java (gRPC) (from https://repo1.maven.org/maven2/com/google/api/gax-grpc)
+- GAX (Google Api eXtensions) for Java (Core) (from https://github.com/googleapis, https://github.com/googleapis/gax-java, https://repo1.maven.org/maven2/com/google/api/gax)
+- GAX (Google Api eXtensions) for Java (HTTP JSON) (from <https://repo1.maven.org/maven2/com/google/api/gax-httpjson>, https://repo1.maven.org/maven2/com/google/api/gax-httpjson)
+- GAX (Google Api eXtensions) for Java (gRPC) (from <https://repo1.maven.org/maven2/com/google/api/gax-grpc>, https://repo1.maven.org/maven2/com/google/api/gax-grpc)
 - Google APIs Client Library for Java (from https://repo1.maven.org/maven2/com/google/api-client/google-api-client)
 - Google Auth Library for Java - Credentials (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials)
 - Google Auth Library for Java - OAuth2 HTTP (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http)
@@ -759,7 +758,7 @@ The following software have components provided under the terms of this license:
 - Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
 - Jakarta RESTful WS API (from https://github.com/eclipse-ee4j/jaxrs-api)
 - Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
 - Lucene Grouping (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
@@ -843,7 +842,7 @@ The following software have components provided under the terms of this license:
 - LatencyUtils (from http://latencyutils.github.io/LatencyUtils/)
 - MongoDB Java Driver (from http://mongodb.org/, http://www.mongodb.org, https://www.mongodb.com/)
 - Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common)
-- Prometheus Java Simpleclient (from https://repo1.maven.org/maven2/io/prometheus/simpleclient)
+- Prometheus Java Simpleclient (from <https://repo1.maven.org/maven2/io/prometheus/simpleclient>, https://repo1.maven.org/maven2/io/prometheus/simpleclient)
 - RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
 - jersey-container-servlet (from https://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet)
 - jersey-container-servlet-core (from https://repo1.maven.org/maven2/org/glassfish/jersey/containers/jersey-container-servlet-core)
@@ -865,8 +864,7 @@ The following software have components provided under the terms of this license:
 - Apache Log4j Core (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core)
 - Jakarta Activation API (from https://github.com/eclipse-ee4j/jaf, https://github.com/jakartaee/jaf-api, https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
 - Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
-- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
-- JavaBeans(TM) Activation Framework (from http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
+- JavaBeans Activation Framework (from <http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp>, http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp, https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
 - Servlet Specification 2.5 API (from http://jetty.mortbay.org, https://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5)
 - javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
 
@@ -879,7 +877,7 @@ The following software have components provided under the terms of this license:
 - HK2 module of HK2 itself (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2)
 - Jakarta Servlet (from https://javaee.github.io/servlet-spec/, https://projects.eclipse.org/projects/ee4j.servlet)
 - Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
-- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
+- JavaBeans Activation Framework (from <http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp>, http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp, https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
 - JavaMail API (from https://repo1.maven.org/maven2/com/sun/mail/javax.mail)
 - Run Level Service (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-runlevel)
 - javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
@@ -979,7 +977,7 @@ The following software have components provided under the terms of this license:
 - Jakarta Annotations API (from https://projects.eclipse.org/projects/ee4j.ca)
 - Jakarta RESTful WS API (from https://github.com/eclipse-ee4j/jaxrs-api)
 - Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
-- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
+- JavaBeans Activation Framework (from <http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp>, http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp, https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
 - RabbitMQ Java Client (from http://www.rabbitmq.com, https://www.rabbitmq.com)
 - ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
 - aopalliance-repackaged (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged)
@@ -1018,7 +1016,7 @@ The following software have components provided under the terms of this license:
 - Jakarta RESTful WS API (from https://github.com/eclipse-ee4j/jaxrs-api)
 - Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
 - Java Architecture for XML Binding (from http://jaxb.java.net/, https://repo1.maven.org/maven2/javax/xml/bind/jaxb-api)
-- JavaBeans Activation Framework (from https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
+- JavaBeans Activation Framework (from <http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp>, http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp, https://repo1.maven.org/maven2/com/sun/activation/javax.activation)
 - OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
 - ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
 - aopalliance-repackaged (from https://repo1.maven.org/maven2/org/glassfish/hk2/external/aopalliance-repackaged)
@@ -1057,7 +1055,7 @@ IPA
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Xerces2-j (from https://repo1.maven.org/maven2/xerces/xercesImpl, https://xerces.apache.org/xerces2-j/)
 
 ========================================================================
@@ -1066,7 +1064,7 @@ ISC
 The following software have components provided under the terms of this license:
 
 - Java Native Access Platform (from https://github.com/java-native-access/jna)
-- spring-security-crypto (from http://spring.io/spring-security, https://spring.io/projects/spring-security, https://spring.io/spring-security)
+- Spring Security - Core (from http://spring.io/spring-security, https://repo1.maven.org/maven2/org/springframework/security/spring-security-core, https://spring.io/projects/spring-security, https://spring.io/spring-security)
 
 ========================================================================
 ImageMagick
@@ -1114,6 +1112,7 @@ The following software have components provided under the terms of this license:
 
 - Elastic JNA Distribution (from https://github.com/java-native-access/jna)
 - Java Native Access (from https://github.com/java-native-access/jna, https://github.com/twall/jna)
+- Java Native Access Platform (from https://github.com/java-native-access/jna)
 - Javassist (from http://www.javassist.org/)
 
 ========================================================================
@@ -1148,7 +1147,7 @@ The following software have components provided under the terms of this license:
 - Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api, https://repo1.maven.org/maven2/org/jboss/spec/javax/xml/bind/jboss-jaxb-api_2.3_spec)
 - Java Client Runtime for AutoRest (from https://github.com/Azure/autorest-clientruntime-for-java)
 - Java JWT (from http://www.jwt.io, https://github.com/auth0/java-jwt)
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
 - Lucene Grouping (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
@@ -1205,7 +1204,7 @@ The following software have components provided under the terms of this license:
 - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java)
 - msal4j-persistence-extension (from https://github.com/AzureAD/microsoft-authentication-extensions-for-java)
 - qpid-proton-j-extensions (from https://github.com/Azure/qpid-proton-j-extensions)
-- webjars-locator-core (from http://webjars.org)
+- webjars-locator-core (from <http://webjars.org>, http://webjars.org)
 
 ========================================================================
 MPL-1.1
@@ -1286,7 +1285,7 @@ The following software have components provided under the terms of this license:
 - Apache Lucene (module: misc) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-misc)
 - Apache Lucene (module: spatial-extras) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-spatial-extras)
 - Apache Lucene (module: suggest) (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-suggest)
-- Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
+- Lucene Common Analyzers (from <https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common>, https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
 - Lucene Grouping (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
 - Lucene Join (from https://lucene.apache.org/, https://repo1.maven.org/maven2/org/apache/lucene/lucene-join)
diff --git a/devops/gc/pipeline/override-stages.yml b/devops/gc/pipeline/override-stages.yml
index 626af5debf7bb58b0efb3e59fb4defdd0c20ff26..e14557ddd5d4093b0d0a8a92a2c9d1214ec4217c 100644
--- a/devops/gc/pipeline/override-stages.yml
+++ b/devops/gc/pipeline/override-stages.yml
@@ -1,8 +1,6 @@
 variables:
   GC_SERVICE: indexer
   GC_VENDOR: gc
-# FIXME remove when all services are migrated to a single helm 
-  GC_ENABLE_HELM_CONFIG: "false"
 
 gc-anthos-test:
   variables:
diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml
index 9274ccd2807f324c7147ce22675e2de0ca0c68c7..8879d001c71555a9a46718fc90c5047eed3d473f 100644
--- a/indexer-core/pom.xml
+++ b/indexer-core/pom.xml
@@ -4,12 +4,12 @@
 	<parent>
 		<groupId>org.opengroup.osdu.indexer</groupId>
 		<artifactId>indexer-service</artifactId>
-		<version>0.19.0-SNAPSHOT</version>
+		<version>0.20.0-SNAPSHOT</version>
 		<relativePath>../pom.xml</relativePath>
 	</parent>
 
 	<artifactId>indexer-core</artifactId>
-	<version>0.19.0-SNAPSHOT</version>
+	<version>0.20.0-SNAPSHOT</version>
 	<name>indexer-core</name>
 	<description>Indexer Service Core</description>
 	<packaging>jar</packaging>
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java
index db5a2f37a19857fd609da3fc3abdc953c5889fd8..bc8d633ac9be3a39336ea79a634709e1f34c2940 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/IndicesServiceImpl.java
@@ -24,6 +24,7 @@ import org.elasticsearch.ElasticsearchException;
 import org.elasticsearch.ElasticsearchStatusException;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
+import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
 import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
 import org.elasticsearch.action.support.master.AcknowledgedResponse;
 import org.elasticsearch.client.Request;
@@ -51,10 +52,7 @@ import org.springframework.web.context.annotation.RequestScope;
 
 import java.io.IOException;
 import java.lang.reflect.Type;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 @Service
 @RequestScope
@@ -107,6 +105,8 @@ public class IndicesServiceImpl implements IndicesService {
             if (indexStatus) {
                 this.indexCache.put(index, true);
                 this.log.info(String.format("Time taken to successfully create new index %s : %d milliseconds", request.index(), stopTime-startTime));
+
+                createIndexAlias(client, index);
             }
 
             return indexStatus;
@@ -303,4 +303,48 @@ public class IndicesServiceImpl implements IndicesService {
             throw exception;
         }
     }
-}
\ No newline at end of file
+
+    private void createIndexAlias(RestHighLevelClient client, String index) {
+        String kind = this.elasticIndexNameResolver.getKindFromIndexName(index);
+        if(!elasticIndexNameResolver.isIndexAliasSupported(kind))
+            return;
+
+        try {
+            List<String> kinds = new ArrayList<>();
+            kinds.add(kind);
+            String kindWithMajorVersion = getKindWithMajorVersion(kind);
+            if(elasticIndexNameResolver.isIndexAliasSupported(kindWithMajorVersion)) {
+                kinds.add(kindWithMajorVersion);
+            }
+            for (String kd : kinds) {
+                index = elasticIndexNameResolver.getIndexNameFromKind(kd);
+                String alias = elasticIndexNameResolver.getIndexAliasFromKind(kd);
+                IndicesAliasesRequest addRequest = new IndicesAliasesRequest();
+                IndicesAliasesRequest.AliasActions aliasActions = new IndicesAliasesRequest.AliasActions(IndicesAliasesRequest.AliasActions.Type.ADD)
+                        .index(index)
+                        .alias(alias);
+                addRequest.addAliasAction(aliasActions);
+                AcknowledgedResponse response = client.indices().updateAliases(addRequest, RequestOptions.DEFAULT);
+                if (response.isAcknowledged()) {
+                    this.log.info(String.format("Alias %s was created for index %s", alias, index));
+                }
+            }
+        }
+        catch(Exception ex) {
+            // Failed to create alias is not the end. It should not affect the status of index creation
+            this.log.error(String.format("Fail to create aliases for index %s", index), ex);
+        }
+    }
+
+    private String getKindWithMajorVersion(String kind) {
+        // If kind is common:welldb:wellbore:1.2.0, then kind with major version is common:welldb:wellbore:1.*.*
+        int idx = kind.lastIndexOf(":");
+        String version = kind.substring(idx+1);
+        if(version.indexOf(".") > 0) {
+            String kindWithoutVersion = kind.substring(0, idx);
+            String majorVersion = version.substring(0, version.indexOf("."));
+            return String.format("%s:%s.*.*", kindWithoutVersion, majorVersion);
+        }
+        return null;
+    }
+}
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java
index 8fb08c6e6ac0be3e3116cec674108af1a6f8231d..7f22b619a9364b308791473adbae5324a0687d9a 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/IndicesServiceTest.java
@@ -24,8 +24,11 @@ import org.apache.http.util.EntityUtils;
 import org.elasticsearch.ElasticsearchStatusException;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthRequest;
 import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
+import org.elasticsearch.action.admin.indices.alias.IndicesAliasesRequest;
 import org.elasticsearch.action.support.master.AcknowledgedResponse;
 import org.elasticsearch.client.*;
+import org.elasticsearch.client.indices.CreateIndexRequest;
+import org.elasticsearch.client.indices.CreateIndexResponse;
 import org.elasticsearch.client.indices.GetIndexRequest;
 import org.elasticsearch.client.indices.GetIndexResponse;
 import org.elasticsearch.rest.RestStatus;
@@ -47,10 +50,12 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import java.io.IOException;
 import java.lang.reflect.Type;
+import java.util.HashMap;
 import java.util.List;
 
 import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.*;
 import static org.mockito.MockitoAnnotations.initMocks;
 
@@ -87,6 +92,52 @@ public class IndicesServiceTest {
         restHighLevelClient = PowerMockito.mock(RestHighLevelClient.class);
     }
 
+    @Test
+    public void create_elasticIndex() throws Exception {
+        String kind = "common:welldb:wellbore:1.2.0";
+        String index = "common-welldb-wellbore-1.2.0";
+        CreateIndexResponse indexResponse = new CreateIndexResponse(true, true, index);
+        AcknowledgedResponse acknowledgedResponse = new AcknowledgedResponse(true);
+
+        when(elasticIndexNameResolver.getKindFromIndexName(any())).thenReturn(kind);
+        when(elasticIndexNameResolver.getIndexNameFromKind(any())).thenReturn(index);
+        when(elasticIndexNameResolver.getIndexAliasFromKind(any())).thenReturn("a12345678");
+        when(elasticIndexNameResolver.isIndexAliasSupported(any())).thenReturn(true);
+        when(restHighLevelClient.indices()).thenReturn(indicesClient);
+        when(indicesClient.create(any(CreateIndexRequest.class), any(RequestOptions.class))).thenReturn(indexResponse);
+        when(indicesClient.updateAliases(any(IndicesAliasesRequest.class), any(RequestOptions.class))).thenReturn(acknowledgedResponse);
+        boolean response = this.sut.createIndex(restHighLevelClient, index, null, "anytype", new HashMap<>());
+        assertTrue(response);
+        when(this.indicesExistCache.get(index)).thenReturn(true);
+        verify(this.indicesClient, times(2)).updateAliases(any(IndicesAliasesRequest.class), any(RequestOptions.class));
+    }
+
+    @Test
+    public void create_elasticIndex_fail() throws Exception {
+        String index = "common-welldb-wellbore-1.2.0";
+        CreateIndexResponse indexResponse = new CreateIndexResponse(false, false, index);
+
+        when(restHighLevelClient.indices()).thenReturn(indicesClient);
+        when(indicesClient.create(any(CreateIndexRequest.class), any(RequestOptions.class))).thenReturn(indexResponse);
+        boolean response = this.sut.createIndex(restHighLevelClient, index, null, "anytype", new HashMap<>());
+        assertFalse(response);
+        verify(this.indicesExistCache, times(0)).put(any(), any());
+        verify(this.indicesClient, times(0)).updateAliases(any(IndicesAliasesRequest.class), any(RequestOptions.class));
+    }
+
+    @Test
+    public void create_existingElasticIndex() throws Exception {
+        String index = "common-welldb-wellbore-1.2.0";
+        ElasticsearchStatusException elasticsearchStatusException = new ElasticsearchStatusException("resource_already_exists_exception", RestStatus.BAD_REQUEST);
+
+        when(restHighLevelClient.indices()).thenReturn(indicesClient);
+        when(indicesClient.create(any(CreateIndexRequest.class), any(RequestOptions.class))).thenThrow(elasticsearchStatusException);
+        boolean response = this.sut.createIndex(restHighLevelClient, index, null, "anytype", new HashMap<>());
+        assertTrue(response);
+        verify(this.indicesExistCache, times(1)).put(any(), any());
+        verify(this.indicesClient, times(0)).updateAliases(any(IndicesAliasesRequest.class), any(RequestOptions.class));
+    }
+
     @Test
     public void delete_existingElasticIndex() throws Exception {
         AcknowledgedResponse indexResponse = new AcknowledgedResponse(true);
@@ -290,4 +341,4 @@ public class IndicesServiceTest {
         verify(this.indicesExistCache, times(1)).get("anyIndex");
         verify(this.indicesExistCache, times(1)).put("anyIndex", true);
     }
-}
\ No newline at end of file
+}
diff --git a/pom.xml b/pom.xml
index 0685f3a46fc0fe062e1ce04dd4d1563798200dd8..394f752d95557991a2b367aea36f1946ad84f796 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-service</artifactId>
     <packaging>pom</packaging>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <description>Indexer Service</description>
 
     <properties>
diff --git a/provider/indexer-aws/pom.xml b/provider/indexer-aws/pom.xml
index bd884df28bfc861d3ab22471213cef8c91e3fece..63a5c3a8817f4026cbf62c21130ac8dc85756704 100644
--- a/provider/indexer-aws/pom.xml
+++ b/provider/indexer-aws/pom.xml
@@ -18,7 +18,7 @@
   <parent>
       <groupId>org.opengroup.osdu.indexer</groupId>
       <artifactId>indexer-service</artifactId>
-      <version>0.19.0-SNAPSHOT</version>
+      <version>0.20.0-SNAPSHOT</version>
       <relativePath>../../pom.xml</relativePath>
   </parent>
 
@@ -26,7 +26,7 @@
   <artifactId>indexer-aws</artifactId>
   <description>Indexer service on AWS</description>
   <packaging>jar</packaging>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
 
   <properties>
       <aws.version>1.11.1018</aws.version>
@@ -66,7 +66,7 @@
     <dependency>
         <groupId>org.opengroup.osdu.indexer</groupId>
         <artifactId>indexer-core</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
     </dependency>
     <dependency>
         <groupId>org.opengroup.osdu.core.aws</groupId>
diff --git a/provider/indexer-azure/pom.xml b/provider/indexer-azure/pom.xml
index 17b34f5f38da56488e0d3a80d5c21fc4920355f6..ce988a0cfc8b8e8f0a532bb14b4aa01dbcc11d86 100644
--- a/provider/indexer-azure/pom.xml
+++ b/provider/indexer-azure/pom.xml
@@ -21,12 +21,12 @@
     <parent>
         <groupId>org.opengroup.osdu.indexer</groupId>
         <artifactId>indexer-service</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <artifactId>indexer-azure</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <name>indexer-azure</name>
     <description>Indexer Service Azure</description>
     <packaging>jar</packaging>
@@ -39,7 +39,7 @@
         <azure.appservice.subscription />
         <log4j.version>2.17.1</log4j.version>
         <nimbus-jose-jwt.version>8.2</nimbus-jose-jwt.version>
-        <indexer-core.version>0.19.0-SNAPSHOT</indexer-core.version>
+        <indexer-core.version>0.20.0-SNAPSHOT</indexer-core.version>
         <spring-security-jwt.version>1.1.1.RELEASE</spring-security-jwt.version>
         <osdu.corelibazure.version>0.19.0-rc8</osdu.corelibazure.version>
         <reactor-netty.version>0.9.12.RELEASE</reactor-netty.version>
diff --git a/provider/indexer-gc/pom.xml b/provider/indexer-gc/pom.xml
index b9e656058533af7c7ae99ca37f6af6b4ff7720b7..48d5ee51792ed554536e3772c4379f31f48898f3 100644
--- a/provider/indexer-gc/pom.xml
+++ b/provider/indexer-gc/pom.xml
@@ -5,12 +5,12 @@
     <parent>
         <groupId>org.opengroup.osdu.indexer</groupId>
         <artifactId>indexer-service</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
     <artifactId>indexer-gc</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <name>indexer-gc</name>
     <description>Indexer Service Google Cloud</description>
     <packaging>jar</packaging>
@@ -28,7 +28,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
             <!-- excluded due to runtime conflict with latest core-lib-gcp transient dependencies -->
             <exclusions>
                 <exclusion>
diff --git a/provider/indexer-gc/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java b/provider/indexer-gc/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java
index bf26b9d587a5d87717cf79ac0b44aa753b6f5891..7db632b473b5e2c83ef93f662163b7c29b944d15 100644
--- a/provider/indexer-gc/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java
+++ b/provider/indexer-gc/src/main/java/org/opengroup/osdu/indexer/provider/gcp/common/cache/CacheConfig.java
@@ -33,47 +33,59 @@ import org.springframework.context.annotation.Configuration;
 public class CacheConfig {
 
     @Bean
-    public ISchemaCache fieldTypeMappingCache(GcpConfigurationProperties appProperties) {
+    public ISchemaCache fieldTypeMappingCache(RedisCache<String, String> schemaCache) {
+        return new SchemaCache(schemaCache);
+    }
+
+    @Bean
+    public RedisCache<String, String> schemaCache(GcpConfigurationProperties appProperties) {
         RedisCacheBuilder<String, String> cacheBuilder = new RedisCacheBuilder<>();
-        RedisCache<String, String> schemaCache = cacheBuilder.buildRedisCache(
-            appProperties.getRedisSearchHost(),
-            Integer.parseInt(appProperties.getRedisSearchPort()),
-            appProperties.getRedisSearchPassword(),
-            appProperties.getRedisSearchExpiration(),
-            appProperties.getRedisSearchWithSsl(),
-            String.class,
-            String.class
+        return cacheBuilder.buildRedisCache(
+                appProperties.getRedisSearchHost(),
+                Integer.parseInt(appProperties.getRedisSearchPort()),
+                appProperties.getRedisSearchPassword(),
+                appProperties.getRedisSearchExpiration(),
+                appProperties.getRedisSearchWithSsl(),
+                String.class,
+                String.class
         );
-        return new SchemaCache(schemaCache);
     }
 
     @Bean
-    public IElasticCredentialsCache<String, ClusterSettings> elasticCredentialsCache(GcpConfigurationProperties gcpAppServiceConfig) {
+    public IElasticCredentialsCache<String, ClusterSettings> elasticCredentialsCache(RedisCache<String, ClusterSettings> elasticCache) {
+        return new ElasticCredentialsCache(elasticCache);
+    }
+
+    @Bean
+    public RedisCache<String, ClusterSettings> elasticCache(GcpConfigurationProperties gcpAppServiceConfig) {
         RedisCacheBuilder<String, ClusterSettings> cacheBuilder = new RedisCacheBuilder<>();
-        RedisCache<String, ClusterSettings> clusterSettingCache = cacheBuilder.buildRedisCache(
-            gcpAppServiceConfig.getRedisSearchHost(),
-            Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
-            gcpAppServiceConfig.getRedisSearchPassword(),
-            gcpAppServiceConfig.getRedisSearchExpiration(),
-            gcpAppServiceConfig.getRedisSearchWithSsl(),
-            String.class,
-            ClusterSettings.class
+        return cacheBuilder.buildRedisCache(
+                gcpAppServiceConfig.getRedisSearchHost(),
+                Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
+                gcpAppServiceConfig.getRedisSearchPassword(),
+                gcpAppServiceConfig.getRedisSearchExpiration(),
+                gcpAppServiceConfig.getRedisSearchWithSsl(),
+                String.class,
+                ClusterSettings.class
         );
-        return new ElasticCredentialsCache(clusterSettingCache);
     }
 
     @Bean
-    public IIndexCache cursorCache(GcpConfigurationProperties gcpAppServiceConfig) {
+    public IIndexCache cursorCache(RedisCache<String, Boolean> redisCache) {
+        return new IndexCache(redisCache);
+    }
+
+    @Bean
+    public RedisCache<String, Boolean> redisCache(GcpConfigurationProperties gcpAppServiceConfig) {
         RedisCacheBuilder<String, Boolean> cacheBuilder = new RedisCacheBuilder<>();
-        RedisCache<String, Boolean> indexCache = cacheBuilder.buildRedisCache(
-            gcpAppServiceConfig.getRedisSearchHost(),
-            Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
-            gcpAppServiceConfig.getRedisSearchPassword(),
-            gcpAppServiceConfig.getRedisSearchExpiration(),
-            gcpAppServiceConfig.getRedisSearchWithSsl(),
-            String.class,
-            Boolean.class
+        return cacheBuilder.buildRedisCache(
+                gcpAppServiceConfig.getRedisSearchHost(),
+                Integer.parseInt(gcpAppServiceConfig.getRedisSearchPort()),
+                gcpAppServiceConfig.getRedisSearchPassword(),
+                gcpAppServiceConfig.getRedisSearchExpiration(),
+                gcpAppServiceConfig.getRedisSearchWithSsl(),
+                String.class,
+                Boolean.class
         );
-        return new IndexCache(indexCache);
     }
 }
diff --git a/provider/indexer-ibm/pom.xml b/provider/indexer-ibm/pom.xml
index b81755bafd6d981e9823227b7115697bb14945fc..787b45c6de6af106eb6b1f4e708b903bbffd5dbc 100644
--- a/provider/indexer-ibm/pom.xml
+++ b/provider/indexer-ibm/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.opengroup.osdu.indexer</groupId>
         <artifactId>indexer-service</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../../pom.xml</relativePath>
     </parent>
 
@@ -57,7 +57,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
             <exclusions>
             	<exclusion>
             		<groupId>io.netty</groupId>
diff --git a/testing/indexer-test-anthos/pom.xml b/testing/indexer-test-anthos/pom.xml
index 988b168471cd5a77d3e9fe55b6cf55163dba3d35..1a521499d7790f7ea1e1df1a51cc8eebe957ff45 100644
--- a/testing/indexer-test-anthos/pom.xml
+++ b/testing/indexer-test-anthos/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>indexer-test</artifactId>
         <groupId>org.opengroup.osdu</groupId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -36,7 +36,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-test-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
         </dependency>
         <dependency>
             <groupId>com.nimbusds</groupId>
diff --git a/testing/indexer-test-aws/pom.xml b/testing/indexer-test-aws/pom.xml
index 06fdb87c3a2de409fef6d5c91116ce082ae90a9c..19bdc68759d3923f93fed0ad09912d37f1af928a 100644
--- a/testing/indexer-test-aws/pom.xml
+++ b/testing/indexer-test-aws/pom.xml
@@ -21,13 +21,13 @@
     <parent>
         <groupId>org.opengroup.osdu</groupId>
         <artifactId>indexer-test</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-test-aws</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <properties>
@@ -44,7 +44,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-test-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
         </dependency>
 
         <!-- AWS specific packages -->
diff --git a/testing/indexer-test-azure/pom.xml b/testing/indexer-test-azure/pom.xml
index b2e7f983a40ae61b79e515c829b93b7488148589..1f441ec059f5a65b4a6cc6764190e068b1cc20c9 100644
--- a/testing/indexer-test-azure/pom.xml
+++ b/testing/indexer-test-azure/pom.xml
@@ -21,13 +21,13 @@
     <parent>
         <groupId>org.opengroup.osdu</groupId>
         <artifactId>indexer-test</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-test-azure</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <properties>
@@ -46,7 +46,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-test-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
             <exclusions>
                 <exclusion>
                     <groupId>org.slf4j</groupId>
diff --git a/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java b/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
index 954f3acb24c7fde5fa13682a17f1eddc3eae7721..07a94a76e2443a0b3358e2169e237949b39054fc 100644
--- a/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
+++ b/testing/indexer-test-azure/src/test/java/org/opengroup/osdu/util/AzureHTTPClient.java
@@ -14,10 +14,15 @@
 
 package org.opengroup.osdu.util;
 
+import com.sun.jersey.api.client.Client;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
 import lombok.ToString;
 import lombok.extern.java.Log;
 
-
+import javax.ws.rs.core.Response;
+import java.net.SocketTimeoutException;
+import java.util.Map;
 @Log
 @ToString
 public class AzureHTTPClient extends HTTPClient {
@@ -35,4 +40,43 @@ public class AzureHTTPClient extends HTTPClient {
         }
         return token;
     }
-}
\ No newline at end of file
+    public ClientResponse send(String httpMethod, String url, String payLoad, Map<String, String> headers, String token) {
+        ClientResponse response;
+        System.out.println("in Azure send method");
+        String correlationId = java.util.UUID.randomUUID().toString();
+        log.info(String.format("Request correlation id: %s", correlationId));
+        headers.put(HEADER_CORRELATION_ID, correlationId);
+        Client client = getClient();
+        client.setReadTimeout(300000);
+        client.setConnectTimeout(300000);
+        log.info(String.format("httpMethod: %s", httpMethod));
+        log.info(String.format("payLoad: %s", payLoad));
+        log.info(String.format("headers: %s", headers));
+        log.info(String.format("URL: %s", url));
+        WebResource webResource = client.resource(url);
+        log.info("waiting on response in azure send");
+        int retryCount = 2;
+        try{
+            response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+            while (retryCount > 0) {
+                if (response.getStatusInfo().getFamily().equals(Response.Status.Family.valueOf("SERVER_ERROR"))) {
+                    log.info(String.format("got resoponse : %s", response.getStatusInfo()));
+                    Thread.sleep(5000);
+                    log.info(String.format("Retrying --- "));
+                    response = this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+                } else
+                    break;
+                retryCount--;
+            }
+            System.out.println("sending response from azure send method");
+            return response;
+        } catch (Exception e) {
+            if (e.getCause() instanceof SocketTimeoutException) {
+                System.out.println("Retrying in case of socket timeout exception");
+                return this.getClientResponse(httpMethod, payLoad, webResource, headers, token);
+            }
+            e.printStackTrace();
+            throw new AssertionError("Error: Send request error", e);
+        }
+    }
+}
diff --git a/testing/indexer-test-core/pom.xml b/testing/indexer-test-core/pom.xml
index 97e2eafc54b79e0ad0490f535df39d15fe18cbdf..b1a4bb19f0985c899b10a85a162cd8b1ce0f6934 100644
--- a/testing/indexer-test-core/pom.xml
+++ b/testing/indexer-test-core/pom.xml
@@ -5,13 +5,13 @@
     <parent>
         <groupId>org.opengroup.osdu</groupId>
         <artifactId>indexer-test</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-test-core</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
 
     <properties>
         <maven.compiler.target>1.8</maven.compiler.target>
diff --git a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
index 3d12744f80e9413308eaeb14cb0f3da0e1d7d235..dde76bb8801939a4d148925d563181fcfde2ff35 100644
--- a/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
+++ b/testing/indexer-test-core/src/main/java/org/opengroup/osdu/util/HTTPClient.java
@@ -24,11 +24,11 @@ public abstract class HTTPClient {
     private static Random random = new Random();
     private final int MAX_ID_SIZE = 50;
 
-    private static final String HEADER_CORRELATION_ID = "correlation-id";
+    protected static final String HEADER_CORRELATION_ID = "correlation-id";
     
     public abstract String getAccessToken();
 
-    private static Client getClient() {
+    protected static Client getClient() {
         TrustManager[] trustAllCerts = new TrustManager[]{new X509TrustManager() {
             @Override
             public X509Certificate[] getAcceptedIssuers() {
@@ -73,7 +73,7 @@ public abstract class HTTPClient {
         return response;
     }
 
-    private ClientResponse getClientResponse(String httpMethod, String requestBody, WebResource webResource, Map<String, String> headers, String token) {
+    protected ClientResponse getClientResponse(String httpMethod, String requestBody, WebResource webResource, Map<String, String> headers, String token) {
         final WebResource.Builder builder = webResource.accept(MediaType.APPLICATION_JSON).type(MediaType.APPLICATION_JSON).header("Authorization", token);
         headers.forEach(builder::header);
         log.info("making request to datalake api");
diff --git a/testing/indexer-test-gc/pom.xml b/testing/indexer-test-gc/pom.xml
index b37d8200a20e535e0d4a75eccc55c7064ca619b7..5873bff29b58b84629d995b20d44ecdaa86eda90 100644
--- a/testing/indexer-test-gc/pom.xml
+++ b/testing/indexer-test-gc/pom.xml
@@ -6,13 +6,13 @@
     <parent>
         <groupId>org.opengroup.osdu</groupId>
         <artifactId>indexer-test</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-test-gc</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <properties>
@@ -37,7 +37,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-test-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
         </dependency>
 
         <!-- Cucumber -->
diff --git a/testing/indexer-test-ibm/pom.xml b/testing/indexer-test-ibm/pom.xml
index 9890d9f4b2b9b660eead2f11f8fb2a5b4e626bdb..a749aeda28ce6bea5d50fdc801e80cccef7936a4 100644
--- a/testing/indexer-test-ibm/pom.xml
+++ b/testing/indexer-test-ibm/pom.xml
@@ -6,13 +6,13 @@
     <parent>
         <groupId>org.opengroup.osdu</groupId>
         <artifactId>indexer-test</artifactId>
-        <version>0.19.0-SNAPSHOT</version>
+        <version>0.20.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
     <groupId>org.opengroup.osdu.indexer</groupId>
     <artifactId>indexer-test-ibm</artifactId>
-    <version>0.19.0-SNAPSHOT</version>
+    <version>0.20.0-SNAPSHOT</version>
     <packaging>jar</packaging>
 
     <properties>
@@ -38,7 +38,7 @@
         <dependency>
             <groupId>org.opengroup.osdu.indexer</groupId>
             <artifactId>indexer-test-core</artifactId>
-            <version>0.19.0-SNAPSHOT</version>
+            <version>0.20.0-SNAPSHOT</version>
         </dependency>
 
         <dependency>
diff --git a/testing/pom.xml b/testing/pom.xml
index 498df3dffccd76a45ef169e96f9c793419c143b8..ddaf9284a1e76083eddc4c097f9768cbef2080b6 100644
--- a/testing/pom.xml
+++ b/testing/pom.xml
@@ -18,7 +18,7 @@
 	<modelVersion>4.0.0</modelVersion>
 	<groupId>org.opengroup.osdu</groupId>
 	<artifactId>indexer-test</artifactId>
-	<version>0.19.0-SNAPSHOT</version>
+	<version>0.20.0-SNAPSHOT</version>
 	<description>Indexer Service Integration Test Root Project</description>
 	<properties>
 		<spring.version>5.3.23</spring.version>