diff --git a/NOTICE b/NOTICE
index 5332cce693c8b1c9d6c82dab31e2b447c2b13e26..f42b510b26214e0baae19e031e69fe7d6c99d806 100644
--- a/NOTICE
+++ b/NOTICE
@@ -16,8 +16,8 @@ The following software have components provided under the terms of this license:
 
 - Apache Commons CLI (from http://commons.apache.org/proper/commons-cli/)
 - Cobertura (from http://cobertura.sourceforge.net)
-- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
-- Plexus Common Utilities (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils)
+- Plexus :: Default Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
+- Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils)
 - oro (from )
 
 ========================================================================
@@ -28,6 +28,7 @@ The following software have components provided under the terms of this license:
 - 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 based accessors helper used by json-smart (from )
+- ASM based accessors helper used by json-smart (from )
 - AWS Java SDK for AWS Amplify (from https://aws.amazon.com/sdkforjava)
 - AWS Java SDK for AWS App Mesh (from https://aws.amazon.com/sdkforjava)
 - AWS Java SDK for AWS AppSync (from https://aws.amazon.com/sdkforjava)
@@ -287,54 +288,59 @@ The following software have components provided under the terms of this license:
 - AWS SDK for Java - Core (from https://aws.amazon.com/sdkforjava)
 - AWS SDK for Java - Models (from https://aws.amazon.com/sdkforjava)
 - Adapter: RxJava (from https://repo1.maven.org/maven2/com/squareup/retrofit2/adapter-rxjava)
-- Apache Ant + JUnit (from https://ant.apache.org/)
-- Apache Ant Core (from https://ant.apache.org/)
-- Apache Ant Launcher (from https://ant.apache.org/)
+- Apache Ant + JUnit (from http://ant.apache.org/)
+- Apache Ant Core (from http://ant.apache.org/)
+- Apache Ant Launcher (from http://ant.apache.org/)
+- Apache Commons BeanUtils (from http://commons.apache.org/proper/commons-beanutils/)
 - Apache Commons CLI (from http://commons.apache.org/proper/commons-cli/)
 - Apache Commons Codec (from https://commons.apache.org/proper/commons-codec/)
 - Apache Commons Collections (from http://commons.apache.org/proper/commons-collections/)
 - Apache Commons IO (from https://commons.apache.org/proper/commons-io/)
 - Apache Commons Lang (from http://commons.apache.org/proper/commons-lang/)
 - Apache Commons Logging (from http://commons.apache.org/proper/commons-logging/)
-- Apache Commons Logging (from http://commons.apache.org/proper/commons-logging/)
-- Apache Commons Validator (from http://commons.apache.org/proper/commons-validator/)
 - Apache Geronimo JMS Spec 2.0 (from http://geronimo.apache.org/maven/${siteId}/${version})
+- Apache HTTP transport v2 for the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-apache-v2)
 - Apache HttpAsyncClient (from http://hc.apache.org/httpcomponents-asyncclient)
+- Apache HttpClient (from http://hc.apache.org/httpcomponents-client)
+- Apache HttpClient Cache (from http://hc.apache.org/httpcomponents-client)
+- Apache HttpCore (from http://hc.apache.org/httpcomponents-core-ga)
 - Apache HttpCore NIO (from http://hc.apache.org/httpcomponents-core-ga)
 - Apache Log4j API (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-api)
 - Apache Log4j Core (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-core)
 - Apache Log4j JUL Adapter (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-jul)
 - Apache Log4j SLF4J Binding (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-slf4j-impl)
 - Apache Log4j to SLF4J Adapter (from https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-to-slf4j)
-- Apache Maven Invoker (from )
 - Apache Maven Reporting Implementation (from https://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting-impl)
+- Apache Maven Wagon :: API (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api)
+- Apache Maven Wagon :: Providers :: File Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file)
+- Apache Maven Wagon :: Providers :: HTTP Shared Library (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-http-shared)
 - Apache Velocity (from http://velocity.apache.org/engine/devel/)
 - AssertJ fluent assertions (from https://repo1.maven.org/maven2/org/assertj/assertj-core)
 - 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)
-- AutoValue Annotations (from https://github.com/google/auto/tree/master/value)
-- AutoValue Processor (from https://github.com/google/auto/tree/master/value)
+- AutoValue Annotations (from https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations)
+- AutoValue Annotations (from https://repo1.maven.org/maven2/com/google/auto/value/auto-value-annotations)
 - Azure Spring Boot Starter for Azure AD Spring Security Integration (from https://github.com/Azure/azure-sdk-for-java)
-- BSON (from http://bsonspec.org)
+- BSON (from https://bsonspec.org)
 - Bean Validation API (from http://beanvalidation.org)
-- BeanUtils (from http://jakarta.apache.org/commons/beanutils/)
 - 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)
 - Brave instrumentation for Reactor Netty HTTP (from https://github.com/reactor/reactor-netty)
 - Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy)
 - Byte Buddy agent (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent)
 - ClassMate (from http://github.com/cowtowncoder/java-classmate)
-- Cloud Storage JSON API v1-rev20210914-1.32.1 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage)
+- Cloud Key Management Service (KMS) API v1-rev20210820-1.32.1 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-cloudkms)
+- Cloud Key Management Service (KMS) API v1-rev20210820-1.32.1 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-cloudkms)
+- Cloud Storage JSON API v1-rev20200814-1.30.10 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage)
+- Cloud Storage JSON API v1-rev20200814-1.30.10 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage)
 - CloudWatch Metrics for AWS Java SDK (from https://aws.amazon.com/sdkforjava)
 - Cobertura (from http://cobertura.sourceforge.net)
 - Collections (from https://repo1.maven.org/maven2/commons-collections/commons-collections)
-- Commons Digester (from http://commons.apache.org/digester/)
 - Commons Lang (from http://commons.apache.org/lang/)
+- Commons Validator (from http://commons.apache.org/validator/)
 - Converter: Jackson (from https://repo1.maven.org/maven2/com/squareup/retrofit2/converter-jackson)
 - Core functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty)
 - Data Mapper for Jackson (from http://jackson.codehaus.org)
-- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
 - Doxia :: APT Module (from http://maven.apache.org/doxia/doxia/doxia-modules/doxia-module-apt/)
 - Doxia :: Core (from http://maven.apache.org/doxia/doxia/doxia-core/)
 - Doxia :: FML Module (from http://maven.apache.org/doxia/doxia/doxia-modules/doxia-module-fml/)
@@ -343,7 +349,7 @@ The following software have components provided under the terms of this license:
 - Doxia :: XHTML Module (from http://maven.apache.org/doxia/doxia/doxia-modules/doxia-module-xhtml/)
 - Doxia Sitetools :: Decoration Model (from http://maven.apache.org/doxia/doxia-sitetools/doxia-decoration-model/)
 - Doxia Sitetools :: Site Renderer (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-site-renderer)
-- Elastic JNA Distribution (from https://github.com/elastic/jna-build)
+- Elastic JNA Distribution (from https://github.com/java-native-access/jna)
 - Expression Language 3.0 (from http://uel.java.net)
 - FindBugs-jsr305 (from http://findbugs.sourceforge.net/)
 - GSON extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-gson)
@@ -353,19 +359,22 @@ The following software have components provided under the terms of this license:
 - 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 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/java-core)
+- Google Cloud Core (from https://github.com/googleapis/java-core)
 - Google Cloud Core HTTP (from https://github.com/googleapis/java-core)
 - Google Cloud Core HTTP (from 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)
-- Google Cloud Core gRPC (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc)
+- Google Cloud Core gRPC (from https://github.com/googleapis/java-core)
+- Google Cloud Core gRPC (from https://github.com/googleapis/java-core)
 - Google Cloud Datastore (from https://github.com/googleapis/java-datastore)
 - Google Cloud Datastore (from https://github.com/googleapis/java-datastore)
 - Google Cloud IAM Service Account Credentials (from https://github.com/googleapis/java-iamcredentials)
-- Google Cloud Key Management Service (KMS) API v1-rev9-1.22.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-cloudkms)
-- Google Cloud Logging (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-logging)
-- Google Cloud Logging (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-logging)
-- Google Cloud Pub/Sub (from https://github.com/googleapis/java-pubsub)
-- Google Cloud Pub/Sub (from https://github.com/googleapis/java-pubsub)
-- Google Cloud Storage (from https://github.com/googleapis/java-storage)
+- Google Cloud IAM Service Account Credentials (from https://github.com/googleapis/java-iamcredentials)
+- Google Cloud Logging (from https://github.com/googleapis/java-logging)
+- Google Cloud Logging (from https://github.com/googleapis/java-logging)
+- Google Cloud Pub/Sub (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-pubsub)
+- Google Cloud Pub/Sub (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-pubsub)
+- Google Cloud Storage (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-storage)
+- Google Cloud Storage (from https://github.com/googleapis/google-cloud-java/tree/master/google-cloud-clients/google-cloud-storage)
+- Google HTTP Client Library for Java (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client)
 - Google HTTP Client Library for Java (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client)
 - Google HTTP Client Library for Java (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client)
 - Google OAuth Client Library for Java (from https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client)
@@ -373,19 +382,16 @@ The following software have components provided under the terms of this license:
 - Gson (from https://repo1.maven.org/maven2/com/google/code/gson/gson)
 - Gson (from https://repo1.maven.org/maven2/com/google/code/gson/gson)
 - Guava InternalFutureFailureAccess and InternalFutures (from https://repo1.maven.org/maven2/com/google/guava/failureaccess)
-- Guava: Google Core Libraries for Java (from https://github.com/google/guava)
-- Guava: Google Core Libraries for Java (from https://github.com/google/guava)
+- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava)
+- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava)
 - HPPC Collections (from https://repo1.maven.org/maven2/com/carrotsearch/hppc)
 - HTTP functionality for the Reactor Netty library (from https://github.com/reactor/reactor-netty)
 - Hibernate Validator Engine (from https://repo1.maven.org/maven2/org/hibernate/validator/hibernate-validator)
-- HttpClient (from http://hc.apache.org/httpcomponents-client)
-- HttpClient Cache (from http://hc.apache.org/httpcomponents-client)
-- HttpCore (from http://hc.apache.org/httpcomponents-core-ga)
 - IBM COS Java SDK for Amazon S3 (from https://github.com/ibm/ibm-cos-sdk-java)
 - IBM COS Java SDK for COS KMS (from https://github.com/ibm/ibm-cos-sdk-java)
 - IBM COS SDK For Java (from https://github.com/ibm/ibm-cos-sdk-java)
 - IBM COS SDK for Java - Core (from https://github.com/ibm/ibm-cos-sdk-java)
-- Identity and Access Management (IAM) API v1-rev284-1.25.0 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
+- Identity and Access Management (IAM) API v1-rev20191010-1.30.3 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-iam)
 - J2ObjC Annotations (from https://github.com/google/j2objc/)
 - J2ObjC Annotations (from https://github.com/google/j2objc/)
 - JBoss Logging 3 (from http://www.jboss.org)
@@ -393,33 +399,34 @@ The following software have components provided under the terms of this license:
 - JDOM (from http://www.jdom.org)
 - JMES Path Query library (from https://aws.amazon.com/sdkforjava)
 - JSON Small and Fast Parser (from https://repo1.maven.org/maven2/net/minidev/json-smart)
+- JSON Small and Fast Parser (from https://repo1.maven.org/maven2/net/minidev/json-smart)
 - JSON Web Token support for the JVM (from https://repo1.maven.org/maven2/io/jsonwebtoken/jjwt)
 - JSON library from Android SDK (from http://developer.android.com/sdk)
 - JSON.simple (from http://code.google.com/p/json-simple/)
-- JSONassert (from https://github.com/skyscreamer/JSONassert)
+- JSONassert (from http://github.com/skyscreamer/yoga)
 - JSR107 API and SPI (from https://github.com/jsr107/jsr107spec)
 - Jackson (from http://jackson.codehaus.org)
 - Jackson (from http://jackson.codehaus.org)
 - Jackson 2 extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2)
 - Jackson 2 extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson2)
 - Jackson dataformat: CBOR (from http://github.com/FasterXML/jackson-dataformats-binary)
-- Jackson dataformat: Smile (from http://github.com/FasterXML/jackson-dataformats-binary)
-- Jackson dataformat: Smile (from http://github.com/FasterXML/jackson-dataformats-binary)
 - Jackson datatype: JSR310 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310)
 - Jackson datatype: JSR310 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jsr310)
 - Jackson datatype: jdk8 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8)
 - Jackson datatype: jdk8 (from https://repo1.maven.org/maven2/com/fasterxml/jackson/datatype/jackson-datatype-jdk8)
 - Jackson extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-jackson)
 - Jackson module: Afterburner (from https://github.com/FasterXML/jackson-modules-base)
-- Jackson module: JAXB Annotations (from https://github.com/FasterXML/jackson-modules-base)
-- Jackson module: JAXB Annotations (from https://github.com/FasterXML/jackson-modules-base)
 - Jackson-annotations (from http://github.com/FasterXML/jackson)
 - Jackson-annotations (from http://github.com/FasterXML/jackson)
-- Jackson-core (from https://github.com/FasterXML/jackson-core)
-- Jackson-dataformat-XML (from http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding)
+- Jackson-core (from http://wiki.fasterxml.com/JacksonHome)
+- Jackson-dataformat-Smile (from http://wiki.fasterxml.com/JacksonForSmile)
+- Jackson-dataformat-Smile (from http://wiki.fasterxml.com/JacksonForSmile)
+- Jackson-dataformat-XML (from https://github.com/FasterXML/jackson-dataformat-xml)
 - Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson)
 - Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson)
-- Jackson-datatype-JODA (from http://wiki.fasterxml.com/JacksonModuleJoda)
+- Jackson-datatype-Joda (from http://wiki.fasterxml.com/JacksonModuleJoda)
+- Jackson-module-JAXB-annotations (from http://wiki.fasterxml.com/JacksonJAXBAnnotations)
+- Jackson-module-JAXB-annotations (from http://wiki.fasterxml.com/JacksonJAXBAnnotations)
 - Jackson-module-parameter-names (from https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names)
 - Jackson-module-parameter-names (from https://repo1.maven.org/maven2/com/fasterxml/jackson/module/jackson-module-parameter-names)
 - Jakarta Bean Validation API (from https://beanvalidation.org)
@@ -431,8 +438,8 @@ The following software have components provided under the terms of this license:
 - Javassist (from http://www.javassist.org/)
 - Javassist (from http://www.javassist.org/)
 - JetBrains Java Annotations (from https://github.com/JetBrains/java-annotations)
-- Jetty Server (from http://jetty.mortbay.org)
-- Jetty Utilities (from http://jetty.mortbay.org)
+- Jetty Server (from https://repo1.maven.org/maven2/org/mortbay/jetty/jetty)
+- Jetty Utilities (from https://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util)
 - Joda-Time (from https://www.joda.org/joda-time/)
 - KeePassJava2 :: All (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2)
 - KeePassJava2 :: DOM (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/KeePassJava2-dom)
@@ -448,8 +455,8 @@ The following software have components provided under the terms of this license:
 - Lucene Grouping (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-grouping)
 - Lucene Highlighter (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-highlighter)
 - Lucene Join (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-join)
-- Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-memory)
 - Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-backward-codecs)
+- Lucene Memory (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-memory)
 - Lucene Miscellaneous (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-misc)
 - Lucene Queries (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-queries)
 - Lucene QueryParsers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-queryparser)
@@ -462,6 +469,8 @@ The following software have components provided under the terms of this license:
 - Maven Artifact Manager (from https://repo1.maven.org/maven2/org/apache/maven/maven-artifact-manager)
 - Maven Core (from https://repo1.maven.org/maven2/org/apache/maven/maven-core)
 - Maven Error Diagnostics (from https://repo1.maven.org/maven2/org/apache/maven/maven-error-diagnostics)
+- Maven Invoker (from https://repo1.maven.org/maven2/org/apache/maven/shared/maven-invoker)
+- Maven Local Settings Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-settings)
 - Maven Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-model)
 - Maven Monitor (from https://repo1.maven.org/maven2/org/apache/maven/maven-monitor)
 - Maven Plugin API (from https://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api)
@@ -472,10 +481,6 @@ The following software have components provided under the terms of this license:
 - Maven Project Builder (from https://repo1.maven.org/maven2/org/apache/maven/maven-project)
 - Maven Reporting API (from https://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting-api)
 - Maven Repository Metadata Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-repository-metadata)
-- Maven Settings (from https://repo1.maven.org/maven2/org/apache/maven/maven-settings)
-- Maven Wagon API (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-provider-api)
-- Maven Wagon File Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-file)
-- Maven Wagon HTTP Shared Library (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-http-shared)
 - Maven Wagon Lightweight HTTP Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-http-lightweight)
 - Maven Wagon SSH Common Library (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-common)
 - Maven Wagon SSH External Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-external)
@@ -489,7 +494,7 @@ The following software have components provided under the terms of this license:
 - Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java)
 - Mockito (from http://www.mockito.org)
 - Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/)
-- MongoDB Driver (from http://www.mongodb.org)
+- MongoDB Java Driver (from http://www.mongodb.org)
 - MongoDB Java Driver Core (from http://www.mongodb.org)
 - Netty/Buffer (from https://repo1.maven.org/maven2/io/netty/netty-buffer)
 - Netty/Buffer (from https://repo1.maven.org/maven2/io/netty/netty-buffer)
@@ -518,16 +523,19 @@ The following software have components provided under the terms of this license:
 - Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt)
 - Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt)
 - Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt)
+- Nimbus JOSE+JWT (from https://bitbucket.org/connect2id/nimbus-jose-jwt)
 - Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags)
 - Nimbus LangTag (from https://bitbucket.org/connect2id/nimbus-language-tags)
-- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor)
+- Non-Blocking Reactive Foundation for the JVM (from https://github.com/reactor/reactor-core)
+- OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - OAuth 2.0 SDK with OpenID Connect extensions (from https://bitbucket.org/connect2id/oauth-2.0-sdk-with-openid-connect-extensions)
 - OAuth2 for Spring Security (from https://repo1.maven.org/maven2/org/springframework/security/oauth/spring-security-oauth2)
 - OAuth2 for Spring Security (from https://repo1.maven.org/maven2/org/springframework/security/oauth/spring-security-oauth2)
 - Objenesis (from http://objenesis.org)
-- OkHttp Logging Interceptor (from https://repo1.maven.org/maven2/com/squareup/okhttp3/logging-interceptor)
+- Okio (from https://github.com/square/okio/)
+- Okio (from https://github.com/square/okio/)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
@@ -537,8 +545,9 @@ The following software have components provided under the terms of this license:
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - OpenCensus (from https://github.com/census-instrumentation/opencensus-java)
 - PWDB :: Database (from https://repo1.maven.org/maven2/org/linguafranca/pwdb/database)
-- Plexus Common Utilities (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils)
-- Plexus Velocity Component (from )
+- Plexus :: Default Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
+- Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils)
+- Plexus Velocity Component (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity)
 - PowerMock (from http://www.powermock.org)
 - PowerMock (from http://www.powermock.org)
 - PowerMock (from http://www.powermock.org)
@@ -546,57 +555,43 @@ The following software have components provided under the terms of this license:
 - PowerMock (from http://www.powermock.org)
 - PowerMock (from http://www.powermock.org)
 - 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 )
+- 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)
+- QpidJMS Client (from https://repo1.maven.org/maven2/org/apache/qpid/qpid-jms-client)
 - RabbitMQ Java Client (from http://www.rabbitmq.com)
 - Reactive Streams Netty driver (from https://github.com/reactor/reactor-netty)
 - Retrofit (from https://repo1.maven.org/maven2/com/squareup/retrofit2/retrofit)
 - Servlet Specification 2.5 API (from http://jetty.mortbay.org)
 - SnakeYAML (from http://www.snakeyaml.org)
 - Spatial4J (from http://www.locationtech.org/projects/locationtech.spatial4j)
-- Spring AMQP Core (from https://projects.spring.io/spring-amqp)
-- Spring AOP (from https://github.com/spring-projects/spring-framework)
-- Spring Beans (from https://github.com/spring-projects/spring-framework)
-- Spring Boot (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot)
-- Spring Boot AMQP Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-amqp)
-- Spring Boot AOP Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-aop)
-- Spring Boot Actuator (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-actuator)
-- Spring Boot Actuator AutoConfigure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-actuator-autoconfigure)
-- Spring Boot Actuator Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-actuator)
-- Spring Boot AutoConfigure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-autoconfigure)
-- Spring Boot Configuration Processor (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-tools/spring-boot-configuration-processor)
-- Spring Boot Jersey Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-jersey)
+- Spring AMQP Core (from https://github.com/spring-projects/spring-amqp)
+- Spring Beans (from https://github.com/SpringSource/spring-framework)
+- Spring Boot (from http://projects.spring.io/spring-boot/)
+- Spring Boot AutoConfigure (from http://projects.spring.io/spring-boot/)
+- Spring Boot Configuration Processor (from http://projects.spring.io/spring-boot/)
 - Spring Boot Json Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-json)
-- Spring Boot Logging Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-logging)
-- Spring Boot Reactor Netty Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-reactor-netty)
-- Spring Boot Security Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-security)
-- Spring Boot Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter)
-- Spring Boot Test (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-test)
-- Spring Boot Test Auto-Configure (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-test-autoconfigure)
-- Spring Boot Test Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-test)
+- Spring Boot Log4j 2 Starter (from https://projects.spring.io/spring-boot/)
+- Spring Boot Logging Starter (from http://projects.spring.io/spring-boot/)
+- Spring Boot Starter (from http://projects.spring.io/spring-boot/)
+- Spring Boot Test (from http://projects.spring.io/spring-boot/)
+- Spring Boot Test Auto-Configure (from http://projects.spring.io/spring-boot/)
+- Spring Boot Test Starter (from http://projects.spring.io/spring-boot/)
 - Spring Boot Tomcat Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-tomcat)
-- Spring Boot Validation Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-validation)
 - Spring Boot Web Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-web)
-- Spring Boot WebFlux Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-webflux)
 - Spring Commons Logging Bridge (from https://github.com/spring-projects/spring-framework)
-- Spring Context (from https://github.com/spring-projects/spring-framework)
-- Spring Core (from https://github.com/spring-projects/spring-framework)
+- Spring Core (from https://github.com/SpringSource/spring-framework)
 - Spring Data Core (from https://repo1.maven.org/maven2/org/springframework/data/spring-data-commons)
 - Spring Data Core (from https://repo1.maven.org/maven2/org/springframework/data/spring-data-commons)
 - Spring Data MongoDB - Core (from https://repo1.maven.org/maven2/org/springframework/data/spring-data-mongodb)
-- Spring Expression Language (SpEL) (from https://github.com/spring-projects/spring-framework)
-- Spring JMS (from https://github.com/spring-projects/spring-framework)
+- Spring Framework: JMS (from http://www.springframework.org)
+- Spring Framework: Web (from http://www.springframework.org)
+- Spring Framework: WebMVC (from http://www.springframework.org)
 - Spring Messaging (from https://github.com/spring-projects/spring-framework)
 - Spring Plugin - Metadata Extension (from https://repo1.maven.org/maven2/org/springframework/plugin/spring-plugin-metadata)
 - Spring Plugin Core (from https://repo1.maven.org/maven2/org/springframework/plugin/spring-plugin-core)
-- Spring RabbitMQ Support (from https://projects.spring.io/spring-amqp)
+- Spring RabbitMQ Support (from https://github.com/spring-projects/spring-amqp)
 - Spring Retry (from https://www.springsource.org)
-- Spring Security JWT Library (from https://github.com/spring-projects/spring-security-oauth)
-- Spring Security JWT Library (from https://github.com/spring-projects/spring-security-oauth)
-- Spring TestContext Framework (from https://github.com/spring-projects/spring-framework)
-- Spring Transaction (from https://github.com/spring-projects/spring-framework)
-- Spring Web (from https://github.com/spring-projects/spring-framework)
-- Spring Web MVC (from https://github.com/spring-projects/spring-framework)
+- Spring Security JWT Library (from http://github.com/spring-projects/spring-security-oauth)
+- Spring Security JWT Library (from http://github.com/spring-projects/spring-security-oauth)
 - Spring WebFlux (from https://github.com/spring-projects/spring-framework)
 - T-Digest (from https://github.com/tdunning/t-digest)
 - Vavr (from http://vavr.io)
@@ -608,10 +603,9 @@ 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)
 - aalto-xml (from )
 - aggs-matrix-stats (from https://github.com/elastic/elasticsearch)
-- asm (from http://asm.ow2.io/)
-- asm (from http://asm.ow2.io/)
+- commons-digester (from https://repo1.maven.org/maven2/commons-digester/commons-digester)
 - compiler (from http://github.com/spullara/mustache.java)
-- core (from https://github.com/elastic/elasticsearch)
+- datastore-v1-proto-client (from https://repo1.maven.org/maven2/com/google/cloud/datastore/datastore-v1-proto-client)
 - datastore-v1-proto-client (from https://repo1.maven.org/maven2/com/google/cloud/datastore/datastore-v1-proto-client)
 - elasticsearch-cli (from https://github.com/elastic/elasticsearch)
 - elasticsearch-core (from https://github.com/elastic/elasticsearch)
@@ -622,7 +616,6 @@ The following software have components provided under the terms of this license:
 - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
 - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations)
 - grpc-google-cloud-pubsub-v1 (from https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-pubsub-v1)
-- grpc-google-cloud-pubsub-v1 (from https://repo1.maven.org/maven2/com/google/api/grpc/grpc-google-cloud-pubsub-v1)
 - io.grpc:grpc-alts (from https://github.com/grpc/grpc-java)
 - io.grpc:grpc-alts (from https://github.com/grpc/grpc-java)
 - io.grpc:grpc-api (from https://github.com/grpc/grpc-java)
@@ -652,7 +645,7 @@ The following software have components provided under the terms of this license:
 - io.grpc:grpc-stub (from https://github.com/grpc/grpc-java)
 - ion-java (from https://github.com/amznlabs/ion-java/)
 - ion-java (from https://github.com/amznlabs/ion-java/)
-- jackson-databind (from http://github.com/FasterXML/jackson)
+- jackson-databind (from http://wiki.fasterxml.com/JacksonHome)
 - java-cloudant (from https://cloudant.com)
 - java-cloudant (from https://cloudant.com)
 - javatuples (from http://www.javatuples.org)
@@ -671,7 +664,7 @@ The following software have components provided under the terms of this license:
 - jersey-spring4 (from https://repo1.maven.org/maven2/org/glassfish/jersey/ext/jersey-spring4)
 - jose4j (from https://bitbucket.org/b_c/jose4j/)
 - lang-mustache (from https://github.com/elastic/elasticsearch)
-- lettuce (from https://github.com/lettuce-io/lettuce-core/wiki)
+- lettuce (from http://github.com/mp911de/lettuce/wiki)
 - mapper-extras (from https://github.com/elastic/elasticsearch)
 - micrometer-core (from https://github.com/micrometer-metrics/micrometer)
 - micrometer-registry-azure-monitor (from https://github.com/micrometer-metrics/micrometer)
@@ -682,10 +675,9 @@ The following software have components provided under the terms of this license:
 - nio-stream-storage (from https://github.com/synchronoss/nio-stream-storage)
 - okhttp (from https://square.github.io/okhttp/)
 - okhttp (from https://square.github.io/okhttp/)
-- okhttp-urlconnection (from https://github.com/square/okhttp)
-- okhttp-urlconnection (from https://github.com/square/okhttp)
-- okio (from https://github.com/square/okio/)
-- okio (from https://github.com/square/okio/)
+- okhttp-logging-interceptor (from https://square.github.io/okhttp/)
+- okhttp-urlconnection (from https://square.github.io/okhttp/)
+- okhttp-urlconnection (from https://square.github.io/okhttp/)
 - org.conscrypt:conscrypt-openjdk-uber (from https://conscrypt.org/)
 - org.xmlunit:xmlunit-core (from http://www.xmlunit.org/)
 - parent-join (from https://github.com/elastic/elasticsearch)
@@ -694,38 +686,56 @@ The following software have components provided under the terms of this license:
 - proto-google-cloud-datastore-v1 (from https://github.com/googleapis/java-datastore/proto-google-cloud-datastore-v1)
 - proto-google-cloud-datastore-v1 (from https://github.com/googleapis/java-datastore/proto-google-cloud-datastore-v1)
 - proto-google-cloud-iamcredentials-v1 (from https://github.com/googleapis/java-iamcredentials/proto-google-cloud-iamcredentials-v1)
-- proto-google-cloud-logging-v2 (from https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-logging-v2)
-- proto-google-cloud-logging-v2 (from https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-logging-v2)
-- proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/java-pubsub/proto-google-cloud-pubsub-v1)
-- proto-google-cloud-pubsub-v1 (from https://github.com/googleapis/java-pubsub/proto-google-cloud-pubsub-v1)
+- proto-google-cloud-iamcredentials-v1 (from https://github.com/googleapis/java-iamcredentials/proto-google-cloud-iamcredentials-v1)
+- proto-google-cloud-logging-v2 (from https://github.com/googleapis/java-logging/proto-google-cloud-logging-v2)
+- proto-google-cloud-logging-v2 (from https://github.com/googleapis/java-logging/proto-google-cloud-logging-v2)
+- proto-google-cloud-pubsub-v1 (from https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-pubsub-v1)
+- proto-google-cloud-pubsub-v1 (from https://repo1.maven.org/maven2/com/google/api/grpc/proto-google-cloud-pubsub-v1)
 - proto-google-common-protos (from https://github.com/googleapis/java-iam/proto-google-common-protos)
 - proto-google-common-protos (from https://github.com/googleapis/java-iam/proto-google-common-protos)
 - proto-google-common-protos (from https://github.com/googleapis/java-iam/proto-google-common-protos)
 - proto-google-iam-v1 (from https://github.com/googleapis/java-iam/proto-google-iam-v1)
+- proto-google-iam-v1 (from https://github.com/googleapis/java-iam/proto-google-iam-v1)
+- proton-j (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j)
 - rank-eval (from https://github.com/elastic/elasticsearch)
+- resilience4j (from https://github.com/resilience4j/resilience4j)
 - resilience4j (from https://resilience4j.readme.io)
+- resilience4j (from https://github.com/resilience4j/resilience4j)
 - resilience4j (from https://resilience4j.readme.io)
+- resilience4j (from https://github.com/resilience4j/resilience4j)
 - resilience4j (from https://resilience4j.readme.io)
-- resilience4j (from https://resilience4j.readme.io)
-- resilience4j (from https://resilience4j.readme.io)
-- resilience4j (from https://resilience4j.readme.io)
-- resilience4j (from https://resilience4j.readme.io)
+- resilience4j (from https://github.com/resilience4j/resilience4j)
 - resilience4j (from https://resilience4j.readme.io)
 - rest (from https://github.com/elastic/elasticsearch)
 - rest-high-level (from https://github.com/elastic/elasticsearch)
 - rxjava (from https://github.com/ReactiveX/RxJava)
+- server (from https://github.com/elastic/elasticsearch)
+- spring-aop (from https://repo1.maven.org/maven2/org/springframework/spring-aop)
+- spring-boot-actuator (from https://spring.io/projects/spring-boot)
+- spring-boot-actuator-autoconfigure (from https://spring.io/projects/spring-boot)
 - spring-boot-dependencies (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-actuator (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-amqp (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-aop (from https://spring.io/projects/spring-boot)
 - spring-boot-starter-data-mongodb (from https://spring.io/projects/spring-boot)
-- spring-boot-starter-log4j2 (from https://spring.io/projects/spring-boot)
-- spring-security-config (from http://spring.io/spring-security)
-- spring-security-core (from http://spring.io/spring-security)
-- spring-security-oauth2-client (from http://spring.io/spring-security)
-- spring-security-oauth2-core (from http://spring.io/spring-security)
-- spring-security-oauth2-jose (from http://spring.io/spring-security)
-- spring-security-oauth2-jose (from http://spring.io/spring-security)
-- spring-security-oauth2-resource-server (from http://spring.io/spring-security)
-- spring-security-test (from http://spring.io/spring-security)
-- spring-security-web (from http://spring.io/spring-security)
+- spring-boot-starter-jersey (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-reactor-netty (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-security (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-validation (from https://spring.io/projects/spring-boot)
+- spring-boot-starter-webflux (from https://spring.io/projects/spring-boot)
+- spring-context (from https://repo1.maven.org/maven2/org/springframework/spring-context)
+- spring-expression (from https://repo1.maven.org/maven2/org/springframework/spring-expression)
+- spring-security-config (from https://spring.io/projects/spring-security)
+- spring-security-core (from https://spring.io/projects/spring-security)
+- spring-security-oauth2-client (from https://spring.io/projects/spring-security)
+- spring-security-oauth2-core (from https://spring.io/projects/spring-security)
+- spring-security-oauth2-jose (from https://spring.io/projects/spring-security)
+- spring-security-oauth2-jose (from https://spring.io/projects/spring-security)
+- spring-security-oauth2-resource-server (from https://spring.io/projects/spring-security)
+- spring-security-test (from https://spring.io/projects/spring-security)
+- spring-security-web (from https://spring.io/projects/spring-security)
+- spring-test (from https://repo1.maven.org/maven2/org/springframework/spring-test)
+- spring-tx (from https://repo1.maven.org/maven2/org/springframework/spring-tx)
 - springfox-core (from https://github.com/springfox/springfox)
 - springfox-schema (from https://github.com/springfox/springfox)
 - springfox-spi (from https://github.com/springfox/springfox)
@@ -734,11 +744,11 @@ The following software have components provided under the terms of this license:
 - springfox-swagger-ui (from https://github.com/springfox/springfox)
 - springfox-swagger2 (from https://github.com/springfox/springfox)
 - swagger-annotations (from https://repo1.maven.org/maven2/io/swagger/swagger-annotations)
-- swagger-jaxrs (from )
+- swagger-jaxrs (from https://repo1.maven.org/maven2/io/swagger/swagger-jaxrs)
 - swagger-models (from https://repo1.maven.org/maven2/io/swagger/swagger-models)
-- tomcat-annotations-api (from https://tomcat.apache.org/)
+- tomcat-annotations-api (from http://tomcat.apache.org/)
 - tomcat-embed-core (from http://tomcat.apache.org/)
-- tomcat-embed-el (from https://tomcat.apache.org/)
+- tomcat-embed-el (from http://tomcat.apache.org/)
 - tomcat-embed-websocket (from https://tomcat.apache.org/)
 - xml-apis (from )
 
@@ -756,11 +766,11 @@ The following software have components provided under the terms of this license:
 - GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java)
 - GAX (Google Api eXtensions) for Java (from https://github.com/googleapis/gax-java)
 - Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
-- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
-- Plexus Common Utilities (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils)
+- Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils)
 - Reflections (from http://github.com/ronmamo/reflections)
 - Stax2 API (from http://github.com/FasterXML/stax2-api)
 - ThreeTen backport (from https://www.threeten.org/threetenbp)
+- ThreeTen backport (from https://www.threeten.org/threetenbp)
 - jersey-ext-bean-validation (from https://repo1.maven.org/maven2/org/glassfish/jersey/ext/jersey-bean-validation)
 - jersey-spring4 (from https://repo1.maven.org/maven2/org/glassfish/jersey/ext/jersey-spring4)
 
@@ -783,6 +793,7 @@ The following software have components provided under the terms of this license:
 - Google Auth Library for Java - Credentials (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-credentials)
 - 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)
+- Google Auth Library for Java - OAuth2 HTTP (from https://repo1.maven.org/maven2/com/google/auth/google-auth-library-oauth2-http)
 - Jakarta Activation API jar (from https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
 - Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api)
 - Lucene Common Analyzers (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-analyzers-common)
@@ -794,7 +805,7 @@ The following software have components provided under the terms of this license:
 - Mockito (from http://www.mockito.org)
 - Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
 - Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
-- Plexus Common Utilities (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils)
+- Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils)
 - Protocol Buffers [Core] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java)
 - Protocol Buffers [Core] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java)
 - Protocol Buffers [Core] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java)
@@ -802,7 +813,8 @@ The following software have components provided under the terms of this license:
 - Protocol Buffers [Util] (from https://repo1.maven.org/maven2/com/google/protobuf/protobuf-java-util)
 - Reflections (from http://github.com/ronmamo/reflections)
 - SnakeYAML (from http://www.snakeyaml.org)
-- Spring Core (from https://github.com/spring-projects/spring-framework)
+- Spring Core (from https://github.com/SpringSource/spring-framework)
+- ThreeTen backport (from https://www.threeten.org/threetenbp)
 - ThreeTen backport (from https://www.threeten.org/threetenbp)
 - asm (from http://asm.ow2.io/)
 - asm (from http://asm.ow2.io/)
@@ -812,7 +824,7 @@ The following software have components provided under the terms of this license:
 - asm-tree (from http://asm.ow2.io/)
 - asm-util (from http://asm.ow2.io/)
 - classworlds (from http://classworlds.codehaus.org/)
-- jaxen (from http://www.cafeconleche.org/jaxen)
+- jaxen (from http://jaxen.codehaus.org/)
 - 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)
 - jersey-core-client (from https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-client)
@@ -887,7 +899,7 @@ The following software have components provided under the terms of this license:
 - JavaBeans Activation Framework (from )
 - JavaBeans(TM) Activation Framework (from http://java.sun.com/javase/technologies/desktop/javabeans/jaf/index.jsp)
 - JavaMail API (from https://repo1.maven.org/maven2/com/sun/mail/javax.mail)
-- OSGi resource locator (from )
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
 - Servlet Specification 2.5 API (from http://jetty.mortbay.org)
 - javax.annotation-api (from http://jcp.org/en/jsr/detail?id=250)
 - jersey-ext-bean-validation (from https://repo1.maven.org/maven2/org/glassfish/jersey/ext/jersey-bean-validation)
@@ -902,26 +914,17 @@ The following software have components provided under the terms of this license:
 - JUnit (from http://junit.org)
 - System Rules (from http://stefanbirkner.github.io/system-rules/)
 
-========================================================================
-DOC
-========================================================================
-The following software have components provided under the terms of this license:
-
-- JDOM (from http://www.jdom.org)
-- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
-- Woodstox (from https://github.com/FasterXML/woodstox)
-
 ========================================================================
 EPL-1.0
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- AspectJ Weaver (from https://www.eclipse.org/aspectj/)
-- Logback Classic Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-classic)
+- AspectJ weaver (from http://www.aspectj.org)
+- Logback Classic Module (from http://logback.qos.ch)
 - Logback Contrib :: JSON :: Classic (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-classic)
 - Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core)
 - Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson)
-- Logback Core Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-core)
+- Logback Core Module (from http://logback.qos.ch)
 - Microsoft Application Insights Java SDK Spring Boot starter (from https://github.com/Microsoft/ApplicationInsights-Java)
 - Microsoft Application Insights Java SDK Web Module (from https://github.com/Microsoft/ApplicationInsights-Java)
 - Microsoft Application Insights Log4j 2 Appender (from https://github.com/Microsoft/ApplicationInsights-Java)
@@ -949,7 +952,7 @@ The following software have components provided under the terms of this license:
 - Java Servlet API (from http://servlet-spec.java.net)
 - JavaBeans Activation Framework (from )
 - Mojo's Maven plugin for Cobertura (from http://mojo.codehaus.org/cobertura-maven-plugin/)
-- OSGi resource locator (from )
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
 - RabbitMQ Java Client (from http://www.rabbitmq.com)
 - Run Level Service (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-runlevel)
 - ServiceLocator Default Implementation (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-locator)
@@ -989,7 +992,7 @@ The following software have components provided under the terms of this license:
 - Java Architecture for XML Binding (from http://jaxb.java.net/)
 - Java Servlet API (from http://servlet-spec.java.net)
 - JavaBeans Activation Framework (from )
-- OSGi resource locator (from )
+- OSGi resource locator (from https://repo1.maven.org/maven2/org/glassfish/hk2/osgi-resource-locator)
 - RabbitMQ Java Client (from http://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)
@@ -1013,24 +1016,9 @@ GPL-3.0-only
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- Project Lombok (from https://projectlombok.org)
+- Project Lombok (from http://projectlombok.org)
 - javax.ws.rs-api (from http://jax-rs-spec.java.net)
 
-========================================================================
-ImageMagick
-========================================================================
-The following software have components provided under the terms of this license:
-
-- Stax2 API (from http://github.com/FasterXML/stax2-api)
-- Woodstox (from https://github.com/FasterXML/woodstox)
-
-========================================================================
-Info-ZIP
-========================================================================
-The following software have components provided under the terms of this license:
-
-- Apache Ant Core (from https://ant.apache.org/)
-
 ========================================================================
 JSON
 ========================================================================
@@ -1045,16 +1033,16 @@ The following software have components provided under the terms of this license:
 
 - Cobertura (from http://cobertura.sourceforge.net)
 - Commons Lang (from http://commons.apache.org/lang/)
-- Elastic JNA Distribution (from https://github.com/elastic/jna-build)
+- Elastic JNA Distribution (from https://github.com/java-native-access/jna)
 - Java Native Access (from https://github.com/java-native-access/jna)
 - Java Native Access Platform (from https://github.com/java-native-access/jna)
 - Javassist (from http://www.javassist.org/)
 - Javassist (from http://www.javassist.org/)
-- Logback Classic Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-classic)
+- Logback Classic Module (from http://logback.qos.ch)
 - Logback Contrib :: JSON :: Classic (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-classic)
 - Logback Contrib :: JSON :: Core (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-json-core)
 - Logback Contrib :: Jackson (from https://repo1.maven.org/maven2/ch/qos/logback/contrib/logback-jackson)
-- Logback Core Module (from https://repo1.maven.org/maven2/ch/qos/logback/logback-core)
+- Logback Core Module (from http://logback.qos.ch)
 - Microsoft Application Insights Java SDK Spring Boot starter (from https://github.com/Microsoft/ApplicationInsights-Java)
 - Microsoft Application Insights Java SDK Web Module (from https://github.com/Microsoft/ApplicationInsights-Java)
 - Microsoft Application Insights Log4j 2 Appender (from https://github.com/Microsoft/ApplicationInsights-Java)
@@ -1096,8 +1084,6 @@ The following software have components provided under the terms of this license:
 - Checker Qual (from https://checkerframework.org)
 - Checker Qual (from https://checkerframework.org)
 - Checker Qual (from https://checkerframework.org)
-- Default Plexus Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
-- Extensions on Apache Proton-J library (from https://github.com/Azure/qpid-proton-j-extensions)
 - JOpt Simple (from http://pholser.github.com/jopt-simple)
 - JUL to SLF4J bridge (from http://www.slf4j.org)
 - Java Client Runtime for AutoRest (from https://github.com/Azure/autorest-clientruntime-for-java)
@@ -1114,7 +1100,6 @@ The following software have components provided under the terms of this license:
 - Microsoft Azure SDK for Service Bus (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure SDK for eventgrid (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure client library for Blob Storage (from https://github.com/Azure/azure-sdk-for-java)
-- Microsoft Azure client library for Identity (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure client library for KeyVault Keys (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure client library for KeyVault Secrets (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure common module for Storage (from https://github.com/Azure/azure-sdk-for-java)
@@ -1124,13 +1109,15 @@ The following software have components provided under the terms of this license:
 - Netty/Codec/HTTP (from https://repo1.maven.org/maven2/io/netty/netty-codec-http)
 - Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common)
 - Netty/Common (from https://repo1.maven.org/maven2/io/netty/netty-common)
+- Plexus :: Default Container (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-container-default)
 - Plexus Default Interactivity Handler (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-interactivity-api)
-- Project Lombok (from https://projectlombok.org)
+- Project Lombok (from http://projectlombok.org)
 - SLF4J API Module (from http://www.slf4j.org)
 - Spongy Castle (from http://rtyley.github.io/spongycastle/)
 - Spring Data for Azure Cosmos DB SQL API (from https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/cosmos/azure-spring-data-cosmos)
 - adal4j (from https://github.com/AzureAD/azure-activedirectory-library-for-java)
-- azure-documentdb (from https://azure.microsoft.com/en-us/services/cosmos-db/)
+- azure-documentdb (from http://azure.microsoft.com/en-us/services/documentdb/)
+- azure-identity (from https://repo1.maven.org/maven2/com/azure/azure-identity)
 - documentdb-bulkexecutor (from http://azure.microsoft.com/en-us/services/documentdb/)
 - java jwt (from https://github.com/auth0/java-jwt)
 - micrometer-core (from https://github.com/micrometer-metrics/micrometer)
@@ -1139,7 +1126,8 @@ The following software have components provided under the terms of this license:
 - mockito-core (from http://mockito.org)
 - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java)
 - msal4j-persistence-extension (from https://github.com/AzureAD/microsoft-authentication-extensions-for-java)
-- spring-security-core (from http://spring.io/spring-security)
+- qpid-proton-j-extensions (from https://github.com/Azure/qpid-proton-j-extensions)
+- spring-security-core (from https://spring.io/projects/spring-security)
 
 ========================================================================
 MPL-1.1
@@ -1181,7 +1169,7 @@ Public-Domain
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- Plexus Common Utilities (from https://repo1.maven.org/maven2/org/codehaus/plexus/plexus-utils)
+- Plexus Common Utilities (from http://plexus.codehaus.org/plexus-utils)
 - Spongy Castle (from http://rtyley.github.io/spongycastle/)
 - jersey-core-common (from https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-common)
 - jersey-core-server (from https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-server)
@@ -1192,7 +1180,7 @@ SAX-PD
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- Apache Ant Core (from https://ant.apache.org/)
+- Apache Ant Core (from http://ant.apache.org/)
 
 ========================================================================
 SPL-1.0
@@ -1210,22 +1198,15 @@ The following software have components provided under the terms of this license:
 
 - Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
 
-========================================================================
-TCL
-========================================================================
-The following software have components provided under the terms of this license:
-
-- HK2 API module (from https://repo1.maven.org/maven2/org/glassfish/hk2/hk2-api)
-
 ========================================================================
 W3C
 ========================================================================
 The following software have components provided under the terms of this license:
 
-- Apache Ant Core (from https://ant.apache.org/)
+- Apache Ant Core (from http://ant.apache.org/)
 - JTidy (from http://jtidy.sourceforge.net)
 - Xerces2-j (from https://xerces.apache.org/xerces2-j/)
-- jaxen (from http://www.cafeconleche.org/jaxen)
+- jaxen (from http://jaxen.codehaus.org/)
 - xml-apis (from )
 
 ========================================================================
@@ -1235,13 +1216,6 @@ The following software have components provided under the terms of this license:
 
 - Reflections (from http://github.com/ronmamo/reflections)
 
-========================================================================
-X11
-========================================================================
-The following software have components provided under the terms of this license:
-
-- Lucene Core (from https://repo1.maven.org/maven2/org/apache/lucene/lucene-core)
-
 ========================================================================
 public-domain
 ========================================================================
@@ -1253,8 +1227,8 @@ The following software have components provided under the terms of this license:
 - Bouncy Castle PKIX, CMS, EAC, TSP, PKCS, OCSP, CMP, and CRMF APIs (from http://www.bouncycastle.org/java.html)
 - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html)
 - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html)
-- Guava: Google Core Libraries for Java (from https://github.com/google/guava)
-- Guava: Google Core Libraries for Java (from https://github.com/google/guava)
+- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava)
+- Guava: Google Core Libraries for Java (from https://repo1.maven.org/maven2/com/google/guava/guava)
 - HdrHistogram (from http://hdrhistogram.github.io/HdrHistogram/)
 - JTidy (from http://jtidy.sourceforge.net)
 - Joda-Time (from https://www.joda.org/joda-time/)
@@ -1263,12 +1237,12 @@ The following software have components provided under the terms of this license:
 - Microsoft Azure SDK for EventGrid Management (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure SDK for SQL API of Azure Cosmos DB Service (from https://github.com/Azure/azure-sdk-for-java)
 - Microsoft Azure client library for Blob Storage (from https://github.com/Azure/azure-sdk-for-java)
-- Project Lombok (from https://projectlombok.org)
+- Project Lombok (from http://projectlombok.org)
 - RabbitMQ Java Client (from http://www.rabbitmq.com)
-- Spring Security JWT Library (from https://github.com/spring-projects/spring-security-oauth)
-- Spring Security JWT Library (from https://github.com/spring-projects/spring-security-oauth)
-- Spring Web (from https://github.com/spring-projects/spring-framework)
-- azure-documentdb (from https://azure.microsoft.com/en-us/services/cosmos-db/)
+- Spring Framework: Web (from http://www.springframework.org)
+- Spring Security JWT Library (from http://github.com/spring-projects/spring-security-oauth)
+- Spring Security JWT Library (from http://github.com/spring-projects/spring-security-oauth)
+- azure-documentdb (from http://azure.microsoft.com/en-us/services/documentdb/)
 - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java)
 - reactive-streams (from http://www.reactive-streams.org/)
 - xml-apis (from )
@@ -1286,12 +1260,11 @@ The following software have components provided under the terms of this license:
 - Checker Qual (from https://checkerframework.org)
 - JSON in Java (from https://github.com/douglascrockford/JSON-java)
 - JTidy (from http://jtidy.sourceforge.net)
-- JUnit (from http://junit.org)
 - Jakarta Activation API jar (from https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api)
 - Jakarta XML Binding API (from https://repo1.maven.org/maven2/jakarta/xml/bind/jakarta.xml.bind-api)
 - Spongy Castle (from http://rtyley.github.io/spongycastle/)
 - System Rules (from http://stefanbirkner.github.io/system-rules/)
-- jaxen (from http://www.cafeconleche.org/jaxen)
+- jaxen (from http://jaxen.codehaus.org/)
 - 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)
 - jersey-core-client (from https://repo1.maven.org/maven2/org/glassfish/jersey/core/jersey-client)
diff --git a/devops/azure/chart/templates/deployment.yaml b/devops/azure/chart/templates/deployment.yaml
index b7baad43d37c4a2d2613da1b2b5f12c56817f663..9b1dad7ab80b934951d01745696577ce3ffd08bd 100644
--- a/devops/azure/chart/templates/deployment.yaml
+++ b/devops/azure/chart/templates/deployment.yaml
@@ -52,8 +52,14 @@ spec:
             cpu: "500m"
         readinessProbe:
           httpGet:
-            path: /api/indexer/v2/swagger-ui.html
-            port: 80
+            path: /actuator/health
+            port: 8081
+        livenessProbe:
+          httpGet:
+            path: /actuator/health
+            port: 8081
+          initialDelaySeconds: 250
+          periodSeconds: 10
         volumeMounts:
         - name: azure-keyvault
           mountPath: "/mnt/azure-keyvault"
diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml
index 2ff7f227edea60a4fe75867c589546d459df2af8..5d22078538a844775b5b495b2f2ddb6c3533ecf9 100644
--- a/indexer-core/pom.xml
+++ b/indexer-core/pom.xml
@@ -16,7 +16,7 @@
 
 	<properties>
 		<commons-beanutils.version>1.9.4</commons-beanutils.version>
-		<osdu.oscorecommon.version>0.11.0-rc4</osdu.oscorecommon.version>
+		<osdu.oscorecommon.version>0.12.0-rc3</osdu.oscorecommon.version>
 	</properties>
 
 	<dependencies>
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCore.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCore.java
index b6323ac4554024cfc82171b8ea74924812498d3d..c34001666b0c993dae73df6d792caa8d93e6067a 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCore.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCore.java
@@ -17,6 +17,8 @@ package org.opengroup.osdu.indexer.error;
 import javax.validation.ValidationException;
 
 import javassist.NotFoundException;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.core.Ordered;
@@ -29,6 +31,8 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler;
 import org.opengroup.osdu.core.common.model.http.AppException;
 
+import java.io.IOException;
+
 @Order(Ordered.HIGHEST_PRECEDENCE - 1)
 @ControllerAdvice
 public class GlobalExceptionMapperCore extends ResponseEntityExceptionHandler {
@@ -59,6 +63,17 @@ public class GlobalExceptionMapperCore extends ResponseEntityExceptionHandler {
                 new AppException(HttpStatus.FORBIDDEN.value(), "Access denied", e.getMessage(), e));
     }
 
+    @ExceptionHandler(IOException.class)
+    public ResponseEntity<Object> handleIOException(IOException e) {
+        if (StringUtils.containsIgnoreCase(ExceptionUtils.getRootCauseMessage(e), "Broken pipe")) {
+            this.logger.warning("Client closed the connection while request still being processed");
+            return null;
+        } else {
+            return this.getErrorResponse(
+                    new AppException(HttpStatus.SERVICE_UNAVAILABLE.value(), "Unknown error", e.getMessage(), e));
+        }
+    }
+
     @ExceptionHandler(Exception.class)
     protected ResponseEntity<Object> handleGeneralException(Exception e) {
         return this.getErrorResponse(
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/FeatureCollection.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/FeatureCollection.java
index 2040e646469ad32cd0dd036f732657f85da7a092..1568a4250e753f336044e2911e8e30b6163487cd 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/FeatureCollection.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/FeatureCollection.java
@@ -14,8 +14,10 @@
 
 package org.opengroup.osdu.indexer.model.geojson;
 
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import lombok.Data;
+import org.opengroup.osdu.indexer.model.geojson.jackson.FeatureCollectionDeserializer;
 import org.opengroup.osdu.indexer.model.geojson.jackson.FeatureCollectionSerializer;
 
 import java.util.ArrayList;
@@ -25,6 +27,7 @@ import java.util.List;
 
 @Data
 @JsonSerialize(using = FeatureCollectionSerializer.class)
+@JsonDeserialize(using = FeatureCollectionDeserializer.class)
 public class FeatureCollection extends GeoJsonObject implements Iterable<Feature> {
 
     private List<Feature> features = new ArrayList<Feature>();
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/Position.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/Position.java
index fa124ee189a132ee0056dc05e8a2ce1bd970adfd..d578de28d0a6d9e8dbb13f30bd4dfaf1a8aa60de 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/Position.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/Position.java
@@ -29,7 +29,6 @@ import java.io.Serializable;
 @Getter
 @NoArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
-@AllArgsConstructor
 @JsonDeserialize(using = PositionDeserializer.class)
 @JsonSerialize(using = PositionSerializer.class)
 public class Position implements Serializable {
@@ -44,6 +43,12 @@ public class Position implements Serializable {
         this.setLatitude(latitude);
     }
 
+    public Position(double longitude, double latitude, double altitude) {
+        this.setLongitude(longitude);
+        this.setLatitude(latitude);
+        this.altitude = altitude;
+    }
+
     public void setLongitude(double longitude) {
         if (Double.isNaN(longitude))
             throw new IllegalArgumentException("latitude must be number");
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionDeserializer.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionDeserializer.java
new file mode 100644
index 0000000000000000000000000000000000000000..dc9504be28c85d915aca6ce40af798aedfe480c6
--- /dev/null
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionDeserializer.java
@@ -0,0 +1,48 @@
+// Copyright © Schlumberger
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package org.opengroup.osdu.indexer.model.geojson.jackson;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.ObjectCodec;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.JsonNode;
+import org.opengroup.osdu.indexer.model.geojson.Feature;
+import org.opengroup.osdu.indexer.model.geojson.FeatureCollection;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+public class FeatureCollectionDeserializer extends JsonDeserializer<FeatureCollection> {
+
+    @Override
+    public FeatureCollection deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
+        FeatureCollection featureCollection = new FeatureCollection();
+        featureCollection.setFeatures(extractFeature(jsonParser));
+        return featureCollection;
+    }
+
+    private List<Feature> extractFeature(JsonParser jsonParser) throws IOException {
+        ObjectCodec codec = jsonParser.getCodec();
+        JsonNode featureCollection = codec.readTree(jsonParser);
+        JsonNode features = featureCollection.get("features");
+        final List<Feature> result = new ArrayList<>();
+        for (JsonNode node : features) {
+            result.add(codec.treeToValue(node, Feature.class));
+        }
+        return result;
+    }
+}
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java
index f5d412a042655bcabed7e0840c61e5f4d8785d7c..dc78521257d6a4d4c87a0207fbc9104879648ff4 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/geojson/jackson/FeatureCollectionSerializer.java
@@ -34,7 +34,6 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio
 
         jsonGenerator.writeArrayFieldStart("geometries");
         for (Feature feature : value.getFeatures()) {
-            jsonGenerator.writeStartObject();
             if (feature.getGeometry() instanceof GeometryCollection) {
                 GeometryCollection geometryCollection = (GeometryCollection) feature.getGeometry();
                 for (GeoJsonObject shape : geometryCollection.getGeometries()) {
@@ -43,7 +42,6 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio
             } else {
                 serializeGeoShape(feature.getGeometry(), jsonGenerator);
             }
-            jsonGenerator.writeEndObject();
         }
         jsonGenerator.writeEndArray();
 
@@ -59,23 +57,35 @@ public class FeatureCollectionSerializer extends JsonSerializer<FeatureCollectio
 
     private void serializeGeoShape(GeoJsonObject geoJsonObject, JsonGenerator jsonGenerator) throws IOException {
         if (geoJsonObject instanceof Point) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "point");
             jsonGenerator.writeObjectField("coordinates", ((Point) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         } else if (geoJsonObject instanceof LineString) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "linestring");
             jsonGenerator.writeObjectField("coordinates", ((LineString) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         } else if (geoJsonObject instanceof Polygon) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "polygon");
             jsonGenerator.writeObjectField("coordinates", ((Polygon) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         } else if (geoJsonObject instanceof MultiPoint) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "multipoint");
             jsonGenerator.writeObjectField("coordinates", ((MultiPoint) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         } else if (geoJsonObject instanceof MultiLineString) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "multilinestring");
             jsonGenerator.writeObjectField("coordinates", ((MultiLineString) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         } else if (geoJsonObject instanceof MultiPolygon) {
+            jsonGenerator.writeStartObject();
             jsonGenerator.writeStringField("type", "multipolygon");
             jsonGenerator.writeObjectField("coordinates", ((MultiPolygon) geoJsonObject).getCoordinates());
+            jsonGenerator.writeEndObject();
         }
     }
 }
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCoreTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCoreTest.java
index aa53ea967f6a2ddfcc7324d46caabdffd82edf5f..992c0a01fea9b1892e20eaaa31b5674028741a85 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCoreTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/error/GlobalExceptionMapperCoreTest.java
@@ -29,8 +29,9 @@ import org.springframework.security.access.AccessDeniedException;
 
 import javax.validation.ValidationException;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import java.io.IOException;
+
+import static org.junit.Assert.*;
 
 @RunWith(PowerMockRunner.class)
 public class GlobalExceptionMapperCoreTest {
@@ -90,4 +91,20 @@ public class GlobalExceptionMapperCoreTest {
         ResponseEntity<Object> response = sut.handleAppException(exception);
         assertEquals(RequestStatus.INVALID_RECORD, response.getStatusCodeValue());
     }
+
+    @Test
+    public void should_returnNullResponse_when_BrokenPipeIOExceptionIsCaptured() {
+        IOException ioException = new IOException("Broken pipe");
+
+        ResponseEntity response = this.sut.handleIOException(ioException);
+        assertNull(response);
+    }
+
+    @Test
+    public void should_returnServiceUnavailable_when_IOExceptionIsCaptured() {
+        IOException ioException = new IOException("Not broken yet");
+
+        ResponseEntity response = this.sut.handleIOException(ioException);
+        assertEquals(HttpStatus.SC_SERVICE_UNAVAILABLE, response.getStatusCodeValue());
+    }
 }
\ No newline at end of file
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/parser/GeoShapeParserTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/parser/GeoShapeParserTest.java
index 2e34f70c96326430f91e867ef4894cf9d9e90bfb..17b19f60270deafaa05d6a1fb58324229d39ad46 100644
--- a/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/parser/GeoShapeParserTest.java
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/util/parser/GeoShapeParserTest.java
@@ -44,122 +44,140 @@ public class GeoShapeParserTest {
     public void should_throwException_provided_emptyGeoJson() {
         String shapeJson = "{}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "shape not included");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "shape not included");
     }
 
     @Test
     public void should_throwException_parseInvalidPoint() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-205.01621,39.57422]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "unable to parse FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "unable to parse FeatureCollection");
     }
 
     @Test
     public void should_throwException_parseInvalidPoint_NaN() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-205.01621,NaN]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "unable to parse FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "unable to parse FeatureCollection");
     }
 
     @Test
     public void should_throwException_parseInvalidPoint_missingLatitude() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-105.01621]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "unable to parse FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "unable to parse FeatureCollection");
     }
 
     @Test
     public void should_throwException_missingMandatoryAttribute() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"mistype\":\"Point\",\"coordinates\":[-205.01621,39.57422]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "must be a valid FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "must be a valid FeatureCollection");
     }
 
     @Test
     public void should_throwException_parseInvalidShape() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"InvalidShape\",\"coordinates\":[-105.01621,39.57422]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "must be a valid FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "must be a valid FeatureCollection");
     }
 
     @Test
     public void should_parseValidPoint() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-105.01621,39.57422]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"point\",\"coordinates\":[-105.01621,39.57422]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidMultiPoint() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"MultiPoint\",\"coordinates\":[[-105.01621,39.57422],[-80.666513,35.053994]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"multipoint\",\"coordinates\":[[-105.01621,39.57422],[-80.666513,35.053994]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidLineString() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"LineString\",\"coordinates\":[[-101.744384,39.32155],[-101.552124,39.330048],[-101.403808,39.330048],[-101.332397,39.364032],[-101.041259,39.368279],[-100.975341,39.304549],[-100.914916,39.245016],[-100.843505,39.164141],[-100.805053,39.104488],[-100.491943,39.100226],[-100.437011,39.095962],[-100.338134,39.095962],[-100.195312,39.027718],[-100.008544,39.010647],[-99.865722,39.00211],[-99.684448,38.972221],[-99.51416,38.929502],[-99.382324,38.920955],[-99.321899,38.895308],[-99.113159,38.869651],[-99.0802,38.85682],[-98.822021,38.85682],[-98.448486,38.848264],[-98.206787,38.848264],[-98.020019,38.878204],[-97.635498,38.873928]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"linestring\",\"coordinates\":[[-101.744384,39.32155],[-101.552124,39.330048],[-101.403808,39.330048],[-101.332397,39.364032],[-101.041259,39.368279],[-100.975341,39.304549],[-100.914916,39.245016],[-100.843505,39.164141],[-100.805053,39.104488],[-100.491943,39.100226],[-100.437011,39.095962],[-100.338134,39.095962],[-100.195312,39.027718],[-100.008544,39.010647],[-99.865722,39.00211],[-99.684448,38.972221],[-99.51416,38.929502],[-99.382324,38.920955],[-99.321899,38.895308],[-99.113159,38.869651],[-99.0802,38.85682],[-98.822021,38.85682],[-98.448486,38.848264],[-98.206787,38.848264],[-98.020019,38.878204],[-97.635498,38.873928]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidMultiLineString() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"MultiLineString\",\"coordinates\":[[[-105.021443,39.578057],[-105.021507,39.577809],[-105.021572,39.577495],[-105.021572,39.577164],[-105.021572,39.577032],[-105.021529,39.576784]],[[-105.019898,39.574997],[-105.019598,39.574898],[-105.019061,39.574782]],[[-105.017173,39.574402],[-105.01698,39.574385],[-105.016636,39.574385],[-105.016508,39.574402],[-105.01595,39.57427]],[[-105.014276,39.573972],[-105.014126,39.574038],[-105.013825,39.57417],[-105.01331,39.574452]]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"multilinestring\",\"coordinates\":[[[-105.021443,39.578057],[-105.021507,39.577809],[-105.021572,39.577495],[-105.021572,39.577164],[-105.021572,39.577032],[-105.021529,39.576784]],[[-105.019898,39.574997],[-105.019598,39.574898],[-105.019061,39.574782]],[[-105.017173,39.574402],[-105.01698,39.574385],[-105.016636,39.574385],[-105.016508,39.574402],[-105.01595,39.57427]],[[-105.014276,39.573972],[-105.014126,39.574038],[-105.013825,39.57417],[-105.01331,39.574452]]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidPolygon() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[100,0],[101,0],[101,1],[100,1],[100,0]]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"polygon\",\"coordinates\":[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_throwException_parseInvalidPolygon_malformedLatitude() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[100,\"afgg\"],[101,0],[101,1],[100,1],[100,0]]]}}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "unable to parse FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "unable to parse FeatureCollection");
     }
 
     @Test
     public void should_parseValidMultiPolygon() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"MultiPolygon\",\"coordinates\":[[[[107,7],[108,7],[108,8],[107,8],[107,7]]],[[[100,0],[101,0],[101,1],[100,1],[100,0]]]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"multipolygon\",\"coordinates\":[[[[107.0,7.0],[108.0,7.0],[108.0,8.0],[107.0,8.0],[107.0,7.0]]],[[[100.0,0.0],[101.0,0.0],[101.0,1.0],[100.0,1.0],[100.0,0.0]]]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidGeometryCollection() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"GeometryCollection\",\"geometries\":[{\"type\":\"Point\",\"coordinates\":[-80.660805,35.049392]},{\"type\":\"Polygon\",\"coordinates\":[[[-80.664582,35.044965],[-80.663874,35.04428],[-80.662586,35.04558],[-80.663444,35.046036],[-80.664582,35.044965]]]},{\"type\":\"LineString\",\"coordinates\":[[-80.662372,35.059509],[-80.662693,35.059263],[-80.662844,35.05893],[-80.66308,35.058332],[-80.663595,35.057753],[-80.663874,35.057401],[-80.66441,35.057033],[-80.664861,35.056787],[-80.665419,35.056506],[-80.665633,35.056312],[-80.666019,35.055891],[-80.666191,35.055452],[-80.666191,35.055171],[-80.666255,35.05489],[-80.666213,35.054222],[-80.666213,35.053924],[-80.665955,35.052905],[-80.665698,35.052044],[-80.665504,35.051482],[-80.665762,35.050481],[-80.66617,35.049725],[-80.666513,35.049286],[-80.666921,35.048531],[-80.667006,35.048215],[-80.667071,35.047775],[-80.667049,35.047389],[-80.666964,35.046985],[-80.666813,35.046353],[-80.666599,35.045966],[-80.666406,35.045615],[-80.665998,35.045193],[-80.665526,35.044877],[-80.664989,35.044543],[-80.664496,35.044174],[-80.663852,35.043876],[-80.663037,35.043717]]}]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"point\",\"coordinates\":[-80.660805,35.049392]},{\"type\":\"polygon\",\"coordinates\":[[[-80.664582,35.044965],[-80.663874,35.04428],[-80.662586,35.04558],[-80.663444,35.046036],[-80.664582,35.044965]]]},{\"type\":\"linestring\",\"coordinates\":[[-80.662372,35.059509],[-80.662693,35.059263],[-80.662844,35.05893],[-80.66308,35.058332],[-80.663595,35.057753],[-80.663874,35.057401],[-80.66441,35.057033],[-80.664861,35.056787],[-80.665419,35.056506],[-80.665633,35.056312],[-80.666019,35.055891],[-80.666191,35.055452],[-80.666191,35.055171],[-80.666255,35.05489],[-80.666213,35.054222],[-80.666213,35.053924],[-80.665955,35.052905],[-80.665698,35.052044],[-80.665504,35.051482],[-80.665762,35.050481],[-80.66617,35.049725],[-80.666513,35.049286],[-80.666921,35.048531],[-80.667006,35.048215],[-80.667071,35.047775],[-80.667049,35.047389],[-80.666964,35.046985],[-80.666813,35.046353],[-80.666599,35.045966],[-80.666406,35.045615],[-80.665998,35.045193],[-80.665526,35.044877],[-80.664989,35.044543],[-80.664496,35.044174],[-80.663852,35.043876],[-80.663037,35.043717]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_parseValidFeatureCollection() {
         String shapeJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[1.9496737127045984,58.41415669686543],[1.8237672363511042,58.42946998193435],[1.8422735102001124,58.471472136376455],[1.9683241046247606,58.45614207250076],[1.9496737127045984,58.41415669686543]]]}}]}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"polygon\",\"coordinates\":[[[1.9496737127045984,58.41415669686543],[1.8237672363511042,58.42946998193435],[1.8422735102001124,58.471472136376455],[1.9683241046247606,58.45614207250076],[1.9496737127045984,58.41415669686543]]]}]}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY);
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
+    }
+
+    @Test
+    public void should_parseValidFeatureCollection_withZCoordinate() {
+        String shapeJson = "{\"type\":\"FeatureCollection\",\"bbox\":null,\"features\":[{\"type\":\"Feature\",\"bbox\":null,\"geometry\":{\"type\":\"Point\",\"bbox\":null,\"coordinates\":[5.7500000010406245,59.000000000399105, 1.0]},\"properties\":{}}],\"properties\":{},\"persistableReferenceCrs\":null,\"persistableReferenceUnitZ\":\"{\\\"scaleOffset\\\":{\\\"scale\\\":1.0,\\\"offset\\\":0.0},\\\"symbol\\\":\\\"m\\\",\\\"baseMeasurement\\\":{\\\"ancestry\\\":\\\"Length\\\",\\\"type\\\":\\\"UM\\\"},\\\"type\\\":\\\"USO\\\"}\"}";
+        String expectedParsedShape = "{\"type\":\"geometrycollection\",\"geometries\":[{\"type\":\"point\",\"coordinates\":[5.7500000010406245,59.000000000399105,1.0]}]}";
+
+        this.validateInput(this.sut::parseGeoJson, shapeJson, expectedParsedShape, Strings.EMPTY);
     }
 
     @Test
     public void should_throwException_parseUnsupportedType_feature() {
         String shapeJson = "{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-80.724878,35.265454],[-80.722646,35.260338],[-80.720329,35.260618],[-80.718698,35.260267],[-80.715093,35.260548],[-80.71681,35.255361],[-80.710887,35.255361],[-80.703248,35.265033],[-80.704793,35.268397],[-80.70857,35.268257],[-80.712518,35.270359],[-80.715179,35.267696],[-80.721359,35.267276],[-80.724878,35.265454]]]},\"properties\":{\"name\":\"Plaza Road Park\"}}";
 
-        this.validateInput(this.sut::parseGeoJson, shapeJson, "must be a valid FeatureCollection");
+        this.validateInput(this.sut::parseGeoJson, shapeJson, Strings.EMPTY, "must be a valid FeatureCollection");
     }
 
-    private void validateInput(Function<Map<String, Object>, Map<String, Object>> parser, String shapeJson, String errorMessage) {
+    private void validateInput(Function<Map<String, Object>, Map<String, Object>> parser, String shapeJson, String expectedParsedShape, String errorMessage) {
         try {
             Type type = new TypeToken<Map<String, Object>>() {}.getType();
             Map<String, Object> shapeObj = new Gson().fromJson(shapeJson, type);
+            Map<String, Object> expectedShape = new Gson().fromJson(expectedParsedShape, type);
 
             Map<String, Object> parsedShape = parser.apply(shapeObj);
             assertNotNull(parsedShape);
             assertTrue(Strings.isNullOrEmpty(errorMessage));
+            assertTrue(parsedShape.equals(expectedShape));
         } catch (IllegalArgumentException e) {
             if (Strings.isNullOrEmpty(errorMessage)) {
                 fail(String.format("error parsing valid geo-json %s", shapeJson));
diff --git a/pom.xml b/pom.xml
index ea8da0746bfa9be8cd8a962910a54555a6013bf5..f549abc9966e2bde2f0c0b1f5634119c0ff12740 100644
--- a/pom.xml
+++ b/pom.xml
@@ -19,7 +19,7 @@
         <java.version>1.8</java.version>
         <springfox-version>2.7.0</springfox-version>
         <spring-cloud.version>Greenwich.SR2</spring-cloud.version>
-        <os-core-common.version>0.11.0-rc4</os-core-common.version>
+        <os-core-common.version>0.12.0-rc3</os-core-common.version>
         <snakeyaml.version>1.26</snakeyaml.version>
         <hibernate-validator.version>6.1.5.Final</hibernate-validator.version>
         <jackson.version>2.11.4</jackson.version>
diff --git a/provider/indexer-azure/pom.xml b/provider/indexer-azure/pom.xml
index e9434c2401aa5564cc4387b485de6b36282cb8d4..c3d7d47e1a34cb7395cebcff5ddfbf8b4f291424 100644
--- a/provider/indexer-azure/pom.xml
+++ b/provider/indexer-azure/pom.xml
@@ -41,7 +41,8 @@
         <nimbus-jose-jwt.version>8.2</nimbus-jose-jwt.version>
         <indexer-core.version>0.12.0-SNAPSHOT</indexer-core.version>
         <spring-security-jwt.version>1.1.1.RELEASE</spring-security-jwt.version>
-        <osdu.corelibazure.version>0.11.0-rc5</osdu.corelibazure.version>
+        <osdu.corelibazure.version>0.12.0-rc10</osdu.corelibazure.version>
+        <osdu.oscorecommon.version>0.12.0-rc3</osdu.oscorecommon.version>
         <reactor-netty.version>0.9.12.RELEASE</reactor-netty.version>
         <java-jwt.version>3.8.1</java-jwt.version>
         <powermock.version>2.0.2</powermock.version>
@@ -78,6 +79,11 @@
                 <type>pom</type>
                 <scope>import</scope>
             </dependency>
+            <dependency>
+                <groupId>org.opengroup.osdu</groupId>
+                <artifactId>os-core-common</artifactId>
+                <version>${osdu.oscorecommon.version}</version>
+            </dependency>
         </dependencies>
     </dependencyManagement>
 
diff --git a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/service/RetryPolicy.java b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/service/RetryPolicy.java
index 40e0d8b2a53172610feadb9ad86b89d02be01521..85aaa1ee191e42ceaf4f3af05cec6b175595fbab 100644
--- a/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/service/RetryPolicy.java
+++ b/provider/indexer-azure/src/main/java/org/opengroup/osdu/indexer/azure/service/RetryPolicy.java
@@ -18,6 +18,7 @@ import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.gson.JsonObject;
 import com.google.gson.JsonParser;
+import io.github.resilience4j.core.IntervalFunction;
 import io.github.resilience4j.retry.RetryConfig;
 import lombok.Data;
 import lombok.extern.java.Log;
@@ -27,7 +28,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.stereotype.Component;
 
-import java.time.Duration;
 import java.util.function.Predicate;
 
 /**
@@ -44,8 +44,8 @@ public class RetryPolicy {
     @Autowired
     private JaxRsDpsLog logger;
 
-    private int attempts = 3;
-    private int waitDuration = 1000;
+    private static int MAX_ATTEMPTS = 5;
+    private static int INITIAL_DELAY = 1000;
     private final String RECORD_NOT_FOUND = "notFound";
 
     /**
@@ -53,8 +53,8 @@ public class RetryPolicy {
      */
     public RetryConfig retryConfig(Predicate<HttpResponse> predicate) {
         return RetryConfig.<HttpResponse>custom()
-                .maxAttempts(attempts)
-                .waitDuration(Duration.ofMillis(waitDuration))
+                .maxAttempts(MAX_ATTEMPTS)
+                .intervalFunction(IntervalFunction.ofExponentialBackoff(INITIAL_DELAY, 2))
                 .retryOnResult(predicate)
                 .build();
     }
diff --git a/provider/indexer-azure/src/main/resources/application.properties b/provider/indexer-azure/src/main/resources/application.properties
index 0d27fa48835d20b515d0fe4a6ecd692a8d922ee6..6f65e89ecc3c8f14aa59007ff610e2bd5c7aa0b0 100644
--- a/provider/indexer-azure/src/main/resources/application.properties
+++ b/provider/indexer-azure/src/main/resources/application.properties
@@ -86,8 +86,11 @@ logging.ignore.servlet.paths=/swagger-ui.html
 # core-lib-azure configuration
 tenantFactoryImpl.required=true
 
-# Disable keyVault for actuator health check
+# Configuration for health checks
+management.server.port=8081
 management.health.azure-key-vault.enabled=false
+management.health.elasticsearch.enabled=false
+
 
 #Redis
 redis.database=${REDIS_DATABASE}
\ No newline at end of file
diff --git a/provider/indexer-gcp/pom.xml b/provider/indexer-gcp/pom.xml
index d66e0332947f702e9b3b75dd1871e1219c64ed1e..e6b372f21d294890affaa60db70b157d935de2eb 100644
--- a/provider/indexer-gcp/pom.xml
+++ b/provider/indexer-gcp/pom.xml
@@ -16,64 +16,27 @@
     <packaging>jar</packaging>
 
     <dependencies>
-        <dependency>
-            <groupId>org.opengroup.osdu.indexer</groupId>
-            <artifactId>indexer-core</artifactId>
-            <version>0.12.0-SNAPSHOT</version>
-        </dependency>
-
         <dependency>
             <groupId>org.opengroup.osdu</groupId>
             <artifactId>core-lib-gcp</artifactId>
-            <version>0.10.0</version>
+            <version>0.12.0-rc3</version>
         </dependency>
-
         <dependency>
-            <groupId>org.opengroup.osdu</groupId>
-            <artifactId>os-core-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>io.grpc</groupId>
-            <artifactId>grpc-core</artifactId>
-            <version>1.38.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.cloud</groupId>
-            <artifactId>google-cloud-datastore</artifactId>
-            <version>1.72.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.cloud</groupId>
-            <artifactId>google-cloud-logging</artifactId>
-            <version>2.3.1</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.apis</groupId>
-            <artifactId>google-api-services-storage</artifactId>
-            <version>v1-rev150-1.25.0</version>
+            <groupId>org.opengroup.osdu.indexer</groupId>
+            <artifactId>indexer-core</artifactId>
+            <version>0.12.0-SNAPSHOT</version>
+            <!-- excluded due to runtime conflict with latest core-lib-gcp transient dependencies -->
             <exclusions>
                 <exclusion>
-                    <groupId>com.google.guava</groupId>
-                    <artifactId>guava-jdk5</artifactId>
+                    <groupId>com.google.api-client</groupId>
+                    <artifactId>google-api-client</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>com.google.http-client</groupId>
+                    <artifactId>google-http-client</artifactId>
                 </exclusion>
             </exclusions>
         </dependency>
-        <dependency>
-            <groupId>com.google.apis</groupId>
-            <artifactId>google-api-services-cloudkms</artifactId>
-            <version>v1-rev81-1.25.0</version>
-        </dependency>
-        <!-- https://mvnrepository.com/artifact/com.google.cloud/google-cloud-pubsub -->
-        <dependency>
-            <groupId>com.google.cloud</groupId>
-            <artifactId>google-cloud-pubsub</artifactId>
-            <version>1.60.0</version>
-        </dependency>
-        <dependency>
-            <groupId>com.google.api-client</groupId>
-            <artifactId>google-api-client</artifactId>
-            <version>1.30.11</version>
-        </dependency>
 
         <dependency>
             <groupId>org.elasticsearch</groupId>
@@ -147,11 +110,6 @@
             <version>1.2.0</version>
             <scope>test</scope>
         </dependency>
-        <dependency>
-            <groupId>com.google.api.grpc</groupId>
-            <artifactId>proto-google-iam-v1</artifactId>
-            <version>0.12.0</version>
-        </dependency>
         <dependency>
             <groupId>ch.qos.logback.contrib</groupId>
             <artifactId>logback-json-classic</artifactId>
diff --git a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java
index 720d21c7256f4bbd838431de4b9e25336587035e..206787c8d06dd825dabf1b165c9c2f52f742a735 100644
--- a/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java
+++ b/provider/indexer-gcp/src/main/java/org/opengroup/osdu/indexer/cache/ElasticCredentialsCache.java
@@ -17,23 +17,30 @@
 
 package org.opengroup.osdu.indexer.cache;
 
+import com.google.gson.Gson;
+import java.io.IOException;
+import java.util.Objects;
+import javax.inject.Inject;
+import org.apache.http.HttpStatus;
 import org.opengroup.osdu.core.common.cache.RedisCache;
+import org.opengroup.osdu.core.common.model.http.AppException;
 import org.opengroup.osdu.core.common.model.search.ClusterSettings;
 import org.opengroup.osdu.core.common.provider.interfaces.IElasticCredentialsCache;
+import org.opengroup.osdu.core.common.provider.interfaces.IKmsClient;
 import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
 import org.springframework.stereotype.Component;
 
-import javax.inject.Inject;
-
 @Component
 public class ElasticCredentialsCache implements IElasticCredentialsCache<String, ClusterSettings>, AutoCloseable {
 
-    private RedisCache<String, ClusterSettings> cache;
+    private IKmsClient kmsClient;
+    private RedisCache<String, String> cache;
 
     @Inject
-    public ElasticCredentialsCache(final IndexerConfigurationProperties properties) {
-        cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
-                properties.getElasticCacheExpiration() * 60, String.class, ClusterSettings.class);
+    public ElasticCredentialsCache(final IndexerConfigurationProperties properties, final IKmsClient kmsClient) {
+        this.cache = new RedisCache<>(properties.getRedisSearchHost(), Integer.parseInt(properties.getRedisSearchPort()),
+            properties.getElasticCacheExpiration() * 60, String.class, String.class);
+        this.kmsClient = kmsClient;
     }
 
     @Override
@@ -43,12 +50,27 @@ public class ElasticCredentialsCache implements IElasticCredentialsCache<String,
 
     @Override
     public void put(String s, ClusterSettings o) {
-        this.cache.put(s,o);
+        try {
+            String jsonSettings = new Gson().toJson(o);
+            String encryptString = kmsClient.encryptString(jsonSettings);
+            this.cache.put(s, encryptString);
+        } catch (IOException e) {
+            throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Internal server error", "Unable to encrypt settings before being cached", e);
+        }
     }
 
     @Override
     public ClusterSettings get(String s) {
-        return this.cache.get(s);
+        try {
+            String encryptedSettings = this.cache.get(s);
+            if (Objects.isNull(encryptedSettings) || encryptedSettings.isEmpty()) {
+                return null;
+            }
+            String jsonSettings = this.kmsClient.decryptString(encryptedSettings);
+            return new Gson().fromJson(jsonSettings, ClusterSettings.class);
+        } catch (IOException e) {
+            throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Internal server error", "Unable to decrypt settings from cache", e);
+        }
     }
 
     @Override
diff --git a/provider/indexer-ibm/pom.xml b/provider/indexer-ibm/pom.xml
index a270931b72639e2bcf278592904a7f726dbe5d0b..84e1fea76ba4b9dec786cc532474e437f5c2dac1 100644
--- a/provider/indexer-ibm/pom.xml
+++ b/provider/indexer-ibm/pom.xml
@@ -31,7 +31,7 @@
     <packaging>jar</packaging>
 	
 	<properties>
-		<os-core-lib-ibm.version>0.9.0</os-core-lib-ibm.version>
+		<os-core-lib-ibm.version>0.12.0-SNAPSHOT</os-core-lib-ibm.version>
 	</properties>
 	
 	<profiles>
diff --git a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/IndexerQueueTaskBuilderIbm.java b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/IndexerQueueTaskBuilderIbm.java
index 2b4e88c68de8b4786c4d80b491ef418dfaf0acbc..a3d7805e6aff3ca5ae2ea90a2a26254458528aff 100644
--- a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/IndexerQueueTaskBuilderIbm.java
+++ b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/util/IndexerQueueTaskBuilderIbm.java
@@ -4,20 +4,33 @@
 package org.opengroup.osdu.indexer.ibm.util;
 
 import static org.opengroup.osdu.core.common.Constants.WORKER_RELATIVE_URL;
+import static org.opengroup.osdu.core.common.model.http.DpsHeaders.AUTHORIZATION;
 
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 import javax.inject.Inject;
 
+import org.apache.http.HttpStatus;
+import org.opengroup.osdu.core.common.model.http.AppException;
 import org.opengroup.osdu.core.common.model.http.DpsHeaders;
+import org.opengroup.osdu.core.common.model.indexer.OperationType;
+import org.opengroup.osdu.core.common.model.indexer.RecordInfo;
+import org.opengroup.osdu.core.common.model.indexer.RecordQueryResponse;
+import org.opengroup.osdu.core.common.model.indexer.RecordReindexRequest;
 import org.opengroup.osdu.core.common.model.search.RecordChangedMessages;
 import org.opengroup.osdu.core.ibm.messagebus.IMessageFactory;
+import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
+import org.opengroup.osdu.indexer.service.StorageService;
 import org.opengroup.osdu.indexer.util.IndexerQueueTaskBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Component;
 
+import com.google.common.base.Strings;
 import com.google.gson.Gson;
 import com.google.gson.JsonSyntaxException;
 
@@ -29,6 +42,15 @@ public class IndexerQueueTaskBuilderIbm extends IndexerQueueTaskBuilder {
 	@Inject
 	IMessageFactory mq;
 	
+    @Inject
+    private StorageService storageService;
+
+    @Inject
+    private RequestInfoImpl requestInfo;
+    
+    @Inject
+    private IndexerConfigurationProperties configurationProperties;
+	
 	private Gson gson;
 	private final static String RETRY_STRING = "retry";
 	private final static String ERROR_CODE = "errorCode";
@@ -49,6 +71,10 @@ public class IndexerQueueTaskBuilderIbm extends IndexerQueueTaskBuilder {
 		createTask(payload, headers);
 	}
 	
+    public void createReIndexTask(String payload, Long countdownMillis, DpsHeaders headers) {
+    	publishAllRecordsToSubscriber(payload, headers);
+    }
+	
 	//used by reindexer api
 	@Override
 	public void createWorkerTask(String payload, Long countdownMillis, DpsHeaders headers) {
@@ -94,4 +120,40 @@ public class IndexerQueueTaskBuilderIbm extends IndexerQueueTaskBuilder {
 		}
 
 	}
+	 private void publishAllRecordsToSubscriber(String payload, DpsHeaders headers) {
+	        Gson gson = new Gson();
+	        RecordReindexRequest recordReindexRequest = gson.fromJson(payload, RecordReindexRequest.class);
+	        final String recordKind = recordReindexRequest.getKind();
+	        RecordQueryResponse recordQueryResponse = null;
+
+	        try {
+	            do {
+	                headers.put(AUTHORIZATION, this.requestInfo.checkOrGetAuthorizationHeader());
+
+	                if (recordQueryResponse != null) {
+	                    recordReindexRequest = RecordReindexRequest.builder().cursor(recordQueryResponse.getCursor()).kind(recordKind).build();
+	                }
+	                recordQueryResponse = this.storageService.getRecordsByKind(recordReindexRequest);
+	                if (recordQueryResponse.getResults() != null && recordQueryResponse.getResults().size() != 0) {
+
+	                    List<RecordInfo> records = recordQueryResponse.getResults().stream()
+	                            .map(record -> RecordInfo.builder().id(record).kind(recordKind).op(OperationType.create.name()).build()).collect(Collectors.toList());
+
+	                    Map<String, String> attributes = new HashMap<>();
+	                    attributes.put(DpsHeaders.ACCOUNT_ID,  headers.getPartitionIdWithFallbackToAccountId());
+	                    attributes.put(DpsHeaders.DATA_PARTITION_ID,  headers.getPartitionIdWithFallbackToAccountId());
+	                    attributes.put(DpsHeaders.CORRELATION_ID, headers.getCorrelationId());
+
+	                    RecordChangedMessages recordChangedMessages = RecordChangedMessages.builder().data(gson.toJson(records)).attributes(attributes).build();
+	                    String recordChangedMessagePayload = gson.toJson(recordChangedMessages);
+	                    createTask(recordChangedMessagePayload, headers);
+	                }
+	            } while (!Strings.isNullOrEmpty(recordQueryResponse.getCursor()) && recordQueryResponse.getResults().size() == configurationProperties.getStorageRecordsBatchSize());
+
+	        } catch (AppException e) {
+	            throw e;
+	        } catch (Exception e) {
+	            throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Unknown error", "An unknown error has occurred.", e);
+	        }
+	    }
 }
\ No newline at end of file
diff --git a/provider/indexer-reference/pom.xml b/provider/indexer-reference/pom.xml
index 08f403e4c3c4f53138969787b3348056f26f16c8..cc4cc2a6a684c31b2fbfc50d8671950ace3817c5 100644
--- a/provider/indexer-reference/pom.xml
+++ b/provider/indexer-reference/pom.xml
@@ -48,7 +48,6 @@
         <dependency>
             <groupId>org.opengroup.osdu</groupId>
             <artifactId>os-core-common</artifactId>
-            <version>0.11.0</version>
         </dependency>
 
         <dependency>
diff --git a/testing/indexer-test-azure/pom.xml b/testing/indexer-test-azure/pom.xml
index e7f45c911a2ef5da6119561b7fa36a83dbe3d530..749427dee82b1f5f54c17504995a2080464ecb24 100644
--- a/testing/indexer-test-azure/pom.xml
+++ b/testing/indexer-test-azure/pom.xml
@@ -36,7 +36,7 @@
         <cucumber.version>1.2.5</cucumber.version>
         <junit.jupiter.version>5.6.0</junit.jupiter.version>
         <elasticsearch.version>7.8.1</elasticsearch.version>
-        <os-core-common.version>0.12.0-rc1</os-core-common.version>
+        <os-core-common.version>0.12.0-rc3</os-core-common.version>
     </properties>
 
     <dependencies>
@@ -70,7 +70,7 @@
         <dependency>
             <groupId>org.opengroup.osdu</groupId>
             <artifactId>core-lib-azure</artifactId>
-            <version>0.11.0-rc4</version>
+            <version>0.12.0-rc10</version>
             <scope>test</scope>
             <exclusions>
                 <exclusion>
diff --git a/testing/indexer-test-gcp/src/test/resources/logback-test.xml b/testing/indexer-test-gcp/src/test/resources/logback-test.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22c6175d45f368b69c4006deb9ebf3ff5084579a
--- /dev/null
+++ b/testing/indexer-test-gcp/src/test/resources/logback-test.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration>
+  <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
+  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+    <encoder>
+      <pattern>%yellow([%thread]) %highlight(| %-5level |) %green(%d) %cyan(| %logger{15} |) %highlight(%msg) %n</pattern>
+      <charset>utf8</charset>
+    </encoder>
+  </appender>
+  <root level="INFO">
+    <appender-ref ref="CONSOLE" />
+  </root>
+</configuration>