diff --git a/NOTICE b/NOTICE index f42b510b26214e0baae19e031e69fe7d6c99d806..6367281abcc8275e2f5e619733c59c3bfaf5140d 100644 --- a/NOTICE +++ b/NOTICE @@ -289,19 +289,17 @@ The following software have components provided under the terms of this license: - 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 http://ant.apache.org/) -- Apache Ant Core (from http://ant.apache.org/) -- Apache Ant Launcher (from http://ant.apache.org/) +- Apache Ant Core (from https://ant.apache.org/) +- Apache Ant Launcher (from https://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 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) @@ -310,10 +308,12 @@ The following software have components provided under the terms of this license: - 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 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 Maven Wagon :: Providers :: SSH Common Library (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-common) +- Apache Maven Wagon :: Providers :: SSH External Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh-external) +- Apache Maven Wagon :: Providers :: SSH Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh) - Apache Velocity (from http://velocity.apache.org/engine/devel/) - 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) @@ -327,29 +327,32 @@ The following software have components provided under the terms of this license: - 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) +- Byte Buddy Java agent (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy-agent) - ClassMate (from http://github.com/cowtowncoder/java-classmate) - 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) +- Cloud Storage JSON API v1-rev20210918-1.32.1 (from https://repo1.maven.org/maven2/com/google/apis/google-api-services-storage) +- Cloud Storage JSON API v1-rev20210918-1.32.1 (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 IO (from http://commons.apache.org/io/) - 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) -- 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/) +- Digester (from https://repo1.maven.org/maven2/commons-digester/commons-digester) +- Doxia :: APT Module (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-apt) +- Doxia :: Core (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-core) +- Doxia :: FML Module (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-fml) - Doxia :: Sink API (from http://maven.apache.org/doxia/doxia/doxia-sink-api/) -- Doxia :: XDoc Module (from http://maven.apache.org/doxia/doxia/doxia-modules/doxia-module-xdoc/) -- 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) +- Doxia :: XDoc Module (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-xdoc) +- Doxia :: XHTML Module (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-xhtml) +- Doxia Sitetools :: Decoration Model (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-decoration-model) +- Doxia Sitetools :: Site Renderer Component (from https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-site-renderer) - Elastic JNA Distribution (from https://github.com/java-native-access/jna) +- Elasticsearch: Core (from https://repo1.maven.org/maven2/org/elasticsearch/elasticsearch) - 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) @@ -362,31 +365,32 @@ The following software have components provided under the terms of this license: - 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/java-core) -- Google Cloud Core gRPC (from https://github.com/googleapis/java-core) +- Google Cloud Core gRPC (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc) +- Google Cloud Core gRPC (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-core-grpc) - 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 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 Cloud Logging (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-logging) +- Google Cloud Logging (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-logging) +- Google Cloud Pub/Sub (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-pubsub) +- Google Cloud Pub/Sub (from https://github.com/GoogleCloudPlatform/google-cloud-java/tree/master/google-cloud-clients/google-cloud-pubsub) +- Google Cloud Storage (from https://github.com/googleapis/java-storage) +- Google Cloud Storage (from https://github.com/googleapis/java-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) - Google OAuth Client Library for Java (from https://repo1.maven.org/maven2/com/google/oauth-client/google-oauth-client) -- Gson (from https://repo1.maven.org/maven2/com/google/code/gson/gson) -- Gson (from https://repo1.maven.org/maven2/com/google/code/gson/gson) +- Gson (from http://code.google.com/p/google-gson/) +- Gson (from http://code.google.com/p/google-gson/) - Guava InternalFutureFailureAccess and InternalFutures (from https://repo1.maven.org/maven2/com/google/guava/failureaccess) - 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) - 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) @@ -418,12 +422,12 @@ The following software have components provided under the terms of this license: - Jackson module: Afterburner (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 http://wiki.fasterxml.com/JacksonHome) +- Jackson-core (from https://github.com/FasterXML/jackson) - 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-dataformat-XML (from http://wiki.fasterxml.com/JacksonExtensionXmlDataBinding) +- Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson-dataformats-text) +- Jackson-dataformat-YAML (from https://github.com/FasterXML/jackson-dataformats-text) - 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) @@ -438,8 +442,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 https://repo1.maven.org/maven2/org/mortbay/jetty/jetty) -- Jetty Utilities (from https://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util) +- Jetty Server (from http://jetty.mortbay.org) +- Jetty Utilities (from http://jetty.mortbay.org) - 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) @@ -455,8 +459,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-backward-codecs) - 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 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) @@ -470,7 +474,6 @@ The following software have components provided under the terms of this license: - 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) @@ -480,11 +483,10 @@ The following software have components provided under the terms of this license: - Maven Profile Model (from https://repo1.maven.org/maven2/org/apache/maven/maven-profile) - 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 Reporting Implementation (from https://repo1.maven.org/maven2/org/apache/maven/reporting/maven-reporting-impl) - 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 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) -- Maven Wagon SSH Provider (from https://repo1.maven.org/maven2/org/apache/maven/wagon/wagon-ssh) - Metrics Core (from https://repo1.maven.org/maven2/io/dropwizard/metrics/metrics-core) - 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) @@ -534,6 +536,7 @@ The following software have components provided under the terms of this license: - 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) @@ -556,6 +559,7 @@ The following software have components provided under the terms of this license: - 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) - Protocol Buffer extensions to the Google HTTP Client Library for Java. (from https://repo1.maven.org/maven2/com/google/http-client/google-http-client-protobuf) +- Proton-J (from https://repo1.maven.org/maven2/org/apache/qpid/proton-j) - QpidJMS Client (from https://repo1.maven.org/maven2/org/apache/qpid/qpid-jms-client) - RabbitMQ Java Client (from http://www.rabbitmq.com) - Reactive Streams Netty driver (from https://github.com/reactor/reactor-netty) @@ -563,35 +567,45 @@ The following software have components provided under the terms of this license: - 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://github.com/spring-projects/spring-amqp) -- Spring Beans (from https://github.com/SpringSource/spring-framework) +- 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 http://projects.spring.io/spring-boot/) +- Spring Boot AMQP Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot AOP Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Actuator (from http://projects.spring.io/spring-boot/) +- Spring Boot Actuator Starter (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 Log4j 2 Starter (from https://projects.spring.io/spring-boot/) +- Spring Boot Jersey Starter (from http://projects.spring.io/spring-boot/) - Spring Boot Logging Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Security 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 Web Starter (from https://projects.spring.io/spring-boot/#/spring-boot-parent/spring-boot-starters/spring-boot-starter-web) +- Spring Boot Tomcat Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Validation Starter (from http://projects.spring.io/spring-boot/) +- Spring Boot Web Starter (from http://projects.spring.io/spring-boot/) - Spring Commons Logging Bridge (from https://github.com/spring-projects/spring-framework) -- Spring Core (from https://github.com/SpringSource/spring-framework) +- Spring Context (from https://github.com/spring-projects/spring-framework) +- Spring Core (from https://github.com/spring-projects/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 Framework: JMS (from http://www.springframework.org) -- Spring Framework: Web (from http://www.springframework.org) -- Spring Framework: WebMVC (from http://www.springframework.org) +- Spring Expression Language (SpEL) (from https://github.com/spring-projects/spring-framework) +- Spring JMS (from https://github.com/spring-projects/spring-framework) - 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://github.com/spring-projects/spring-amqp) -- Spring Retry (from https://www.springsource.org) +- Spring RabbitMQ Support (from https://projects.spring.io/spring-amqp) +- Spring Retry (from http://www.springsource.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) +- 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 WebFlux (from https://github.com/spring-projects/spring-framework) - T-Digest (from https://github.com/tdunning/t-digest) - Vavr (from http://vavr.io) @@ -601,17 +615,14 @@ The following software have components provided under the terms of this license: - Zipkin Core Library (from https://repo1.maven.org/maven2/io/zipkin/zipkin2/zipkin) - Zipkin Reporter Brave (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter-brave) - Zipkin Reporter: Core (from https://repo1.maven.org/maven2/io/zipkin/reporter2/zipkin-reporter) -- aalto-xml (from ) +- aalto-xml (from https://repo1.maven.org/maven2/com/fasterxml/aalto-xml) - aggs-matrix-stats (from https://github.com/elastic/elasticsearch) -- commons-digester (from https://repo1.maven.org/maven2/commons-digester/commons-digester) +- cli (from https://github.com/elastic/elasticsearch) - 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) - elasticsearch-geo (from https://github.com/elastic/elasticsearch) -- elasticsearch-secure-sm (from https://github.com/elastic/elasticsearch) -- elasticsearch-x-content (from https://github.com/elastic/elasticsearch) - 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) - error-prone annotations (from https://repo1.maven.org/maven2/com/google/errorprone/error_prone_annotations) @@ -645,7 +656,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://wiki.fasterxml.com/JacksonHome) +- jackson-databind (from http://github.com/FasterXML/jackson) - java-cloudant (from https://cloudant.com) - java-cloudant (from https://cloudant.com) - javatuples (from http://www.javatuples.org) @@ -668,18 +679,17 @@ The following software have components provided under the terms of this license: - 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) -- mockito-core (from http://mockito.org) -- mockito-core (from http://mockito.org) -- mockito-core (from http://mockito.org) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) - nio-multipart-parser (from ) - 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-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/) +- org.xmlunit:xmlunit-core (from https://www.xmlunit.org/) - parent-join (from https://github.com/elastic/elasticsearch) - perfmark:perfmark-api (from https://github.com/perfmark/perfmark) - project ':json-path' (from https://github.com/jayway/JsonPath) @@ -687,8 +697,8 @@ 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-iamcredentials-v1 (from https://github.com/googleapis/java-iamcredentials/proto-google-cloud-iamcredentials-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-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://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) @@ -696,46 +706,35 @@ The following software have components provided under the terms of this license: - 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://github.com/resilience4j/resilience4j) - resilience4j (from https://github.com/resilience4j/resilience4j) - resilience4j (from https://resilience4j.readme.io) +- resilience4j (from https://github.com/resilience4j/resilience4j) +- resilience4j (from https://github.com/resilience4j/resilience4j) - 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) +- secure-sm (from https://github.com/elastic/elasticsearch) - 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-jersey (from https://spring.io/projects/spring-boot) +- spring-boot-starter-json (from https://spring.io/projects/spring-boot) +- spring-boot-starter-log4j2 (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) +- spring-security-config (from http://spring.io/spring-security) +- spring-security-core (from http://spring.io/spring-security) +- spring-security-oauth2-client (from https://spring.io/spring-security) +- spring-security-oauth2-core (from https://spring.io/spring-security) +- spring-security-oauth2-jose (from https://spring.io/spring-security) +- spring-security-oauth2-jose (from https://spring.io/spring-security) +- spring-security-oauth2-resource-server (from https://spring.io/spring-security) +- spring-security-test (from http://spring.io/spring-security) +- spring-security-web (from http://spring.io/spring-security) - springfox-core (from https://github.com/springfox/springfox) - springfox-schema (from https://github.com/springfox/springfox) - springfox-spi (from https://github.com/springfox/springfox) @@ -749,7 +748,8 @@ The following software have components provided under the terms of this license: - tomcat-annotations-api (from http://tomcat.apache.org/) - tomcat-embed-core (from http://tomcat.apache.org/) - tomcat-embed-el (from http://tomcat.apache.org/) -- tomcat-embed-websocket (from https://tomcat.apache.org/) +- tomcat-embed-websocket (from http://tomcat.apache.org/) +- x-content (from https://github.com/elastic/elasticsearch) - xml-apis (from ) ======================================================================== @@ -813,7 +813,7 @@ 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/SpringSource/spring-framework) +- Spring Core (from https://github.com/spring-projects/spring-framework) - ThreeTen backport (from https://www.threeten.org/threetenbp) - ThreeTen backport (from https://www.threeten.org/threetenbp) - asm (from http://asm.ow2.io/) @@ -839,7 +839,6 @@ CC-BY-2.5 ======================================================================== The following software have components provided under the terms of this license: -- Checker Qual (from https://checkerframework.org) - FindBugs-jsr305 (from http://findbugs.sourceforge.net/) - MongoDB Java Driver Core (from http://www.mongodb.org) @@ -1084,6 +1083,7 @@ 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) +- 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) @@ -1119,15 +1119,14 @@ The following software have components provided under the terms of this license: - 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) +- java jwt (from http://www.jwt.io) - micrometer-core (from https://github.com/micrometer-metrics/micrometer) -- mockito-core (from http://mockito.org) -- mockito-core (from http://mockito.org) -- mockito-core (from http://mockito.org) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) +- mockito-core (from https://github.com/mockito/mockito) - msal4j (from https://github.com/AzureAD/microsoft-authentication-library-for-java) - msal4j-persistence-extension (from https://github.com/AzureAD/microsoft-authentication-extensions-for-java) -- qpid-proton-j-extensions (from https://github.com/Azure/qpid-proton-j-extensions) -- spring-security-core (from https://spring.io/projects/spring-security) +- spring-security-core (from http://spring.io/spring-security) ======================================================================== MPL-1.1 @@ -1180,15 +1179,13 @@ SAX-PD ======================================================================== The following software have components provided under the terms of this license: -- Apache Ant Core (from http://ant.apache.org/) +- Apache Ant Core (from https://ant.apache.org/) ======================================================================== SPL-1.0 ======================================================================== The following software have components provided under the terms of this license: -- Checker Qual (from https://checkerframework.org) -- Checker Qual (from https://checkerframework.org) - Servlet Specification 2.5 API (from http://jetty.mortbay.org) ======================================================================== @@ -1203,7 +1200,7 @@ W3C ======================================================================== The following software have components provided under the terms of this license: -- Apache Ant Core (from http://ant.apache.org/) +- Apache Ant Core (from https://ant.apache.org/) - JTidy (from http://jtidy.sourceforge.net) - Xerces2-j (from https://xerces.apache.org/xerces2-j/) - jaxen (from http://jaxen.codehaus.org/) @@ -1239,9 +1236,9 @@ The following software have components provided under the terms of this license: - Microsoft Azure client library for Blob Storage (from https://github.com/Azure/azure-sdk-for-java) - Project Lombok (from http://projectlombok.org) - RabbitMQ Java Client (from http://www.rabbitmq.com) -- 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) +- Spring Web (from https://github.com/spring-projects/spring-framework) - 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/) @@ -1258,6 +1255,7 @@ The following software have components provided under the terms of this license: - Bouncy Castle Provider (from http://www.bouncycastle.org/java.html) - Byte Buddy (without dependencies) (from https://repo1.maven.org/maven2/net/bytebuddy/byte-buddy) - Checker Qual (from https://checkerframework.org) +- Checker Qual (from https://checkerframework.org) - JSON in Java (from https://github.com/douglascrockford/JSON-java) - JTidy (from http://jtidy.sourceforge.net) - Jakarta Activation API jar (from https://repo1.maven.org/maven2/jakarta/activation/jakarta.activation-api) diff --git a/devops/azure/chart/values.yaml b/devops/azure/chart/values.yaml index dc84d481047a2dfec6747ae517b86a32c9d6534f..4e5d19dd9cd46f64151d4971451fa4446a76e90b 100644 --- a/devops/azure/chart/values.yaml +++ b/devops/azure/chart/values.yaml @@ -22,4 +22,4 @@ image: branch: master tag: latest -istioDnsHost: "" \ No newline at end of file +istioDnsHost: "contoso.com" \ No newline at end of file diff --git a/devops/gcp/configmap/templates/indexer-variables.yml b/devops/gcp/configmap/templates/indexer-variables.yml index b8783e11cfbb696a29dde2986eeea63f567def96..3db35220adcd84c70c91f585bce3cd4f33963833 100644 --- a/devops/gcp/configmap/templates/indexer-variables.yml +++ b/devops/gcp/configmap/templates/indexer-variables.yml @@ -26,4 +26,3 @@ data: CRS_API: "{{ .Values.data.crs_api }}" PARTITION_API: "{{ .Values.data.partition_api }}" GOOGLE_AUDIENCES: "{{ .Values.data.google_audiences }}" - INDEXER_QUE_SERVICE_MAIL: "{{ .Values.data.indexer_que_service_mail }}" diff --git a/devops/gcp/configmap/values.yaml b/devops/gcp/configmap/values.yaml index 7b772e1be182900263adfbb60152063af4f01b40..a423c75f0818b2e638467c912ba3f83a4c509d37 100644 --- a/devops/gcp/configmap/values.yaml +++ b/devops/gcp/configmap/values.yaml @@ -23,7 +23,6 @@ data: crs_api: "" partition_api: "http://partition/api/partition/v1/" google_audiences: "" - indexer_que_service_mail: "" conf: diff --git a/docs/tutorial/IndexerService.md b/docs/tutorial/IndexerService.md index 9966f7cbbfc0a23fcc0fac4bc326431f23801b2f..350af65429f6e8a8c82f1888e1e37c13e2c2e227 100644 --- a/docs/tutorial/IndexerService.md +++ b/docs/tutorial/IndexerService.md @@ -2,6 +2,8 @@ ### Table of contents <a name="TOC"></a> - [Indexer service](#indexer-service) +- [Introduction](#introduction) +- [Indexer API access](#indexer-api-access) - [Get indexing status <a name="get-indexing-status"></a>](#get-indexing-status) - [Reindex <a name="reindex"></a>](#reindex) - [Schema Service adoption <a name="schema-service-adoption"></a>](#schema-service-adoption) @@ -9,12 +11,12 @@ - [Version info endpoint](#version-info-endpoint) -##Introduction <a name="introduction"></a> +## Introduction <a name="introduction"></a> The Indexer API provides a mechanism for indexing documents that contain structured or unstructured data. Documents and indices are saved in a separate persistent store optimized for search operations. The indexer API can index any number of documents. The indexer is indexes attributes defined in the schema. Schema can be created at the time of record ingestion in Data Ecosystem via Storage Service. The Indexer service also adds number of Data Ecosystem meta attributes such as id, kind, parent, acl, namespace, type, version, legaltags, index to each record at the time of indexing. -##Indexer API access <a name="indexer-api-access"></a> +## Indexer API access <a name="indexer-api-access"></a> * Required roles @@ -220,4 +222,4 @@ properties: - `version.info.buildPropertiesPath` - `version.info.gitPropertiesPath` -[Back to table of contents](#TOC) \ No newline at end of file +[Back to table of contents](#TOC) diff --git a/indexer-core/pom.xml b/indexer-core/pom.xml index 5d22078538a844775b5b495b2f2ddb6c3533ecf9..522981203d69035d1bd98baad6f9971b0304145c 100644 --- a/indexer-core/pom.xml +++ b/indexer-core/pom.xml @@ -4,19 +4,19 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <artifactId>indexer-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <name>indexer-core</name> <description>Indexer Service Core</description> <packaging>jar</packaging> <properties> <commons-beanutils.version>1.9.4</commons-beanutils.version> - <osdu.oscorecommon.version>0.12.0-rc3</osdu.oscorecommon.version> + <osdu.oscorecommon.version>0.13.0-rc3</osdu.oscorecommon.version> </properties> <dependencies> diff --git a/pom.xml b/pom.xml index f549abc9966e2bde2f0c0b1f5634119c0ff12740..00e593ecb097f0167a2be4e2df0fd0e99a6d2c15 100644 --- a/pom.xml +++ b/pom.xml @@ -12,14 +12,14 @@ <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> <packaging>pom</packaging> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <description>Indexer Service</description> <properties> <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.12.0-rc3</os-core-common.version> + <os-core-common.version>0.13.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> @@ -29,6 +29,7 @@ <netty.version>4.1.51.Final</netty.version> <reactor-netty.version>0.8.20.RELEASE</reactor-netty.version> <woodstox-core.version>6.2.3</woodstox-core.version> + <log4j2.version>2.16.0</log4j2.version> <!-- <maven.compiler.target>1.8</maven.compiler.target>--> <!-- <maven.compiler.source>1.8</maven.compiler.source>--> <!-- <maven.war.plugin>2.6</maven.war.plugin>--> @@ -49,6 +50,16 @@ <dependencyManagement> <dependencies> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-to-slf4j</artifactId> + <version>${log4j2.version}</version> + </dependency> + <dependency> + <groupId>org.apache.logging.log4j</groupId> + <artifactId>log4j-api</artifactId> + <version>${log4j2.version}</version> + </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-bom</artifactId> diff --git a/provider/indexer-aws/pom.xml b/provider/indexer-aws/pom.xml index be91f1465609178305cd9454c18993772bd205df..b2846acdda3cd71eb784fcc37bc3e585654e6540 100644 --- a/provider/indexer-aws/pom.xml +++ b/provider/indexer-aws/pom.xml @@ -18,7 +18,7 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -26,7 +26,7 @@ <artifactId>indexer-aws</artifactId> <description>Indexer service on AWS</description> <packaging>jar</packaging> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <properties> <aws.version>1.11.1018</aws.version> @@ -42,12 +42,12 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.opengroup.osdu.core.aws</groupId> <artifactId>os-core-lib-aws</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-rc2</version> </dependency> <!-- AWS managed packages --> diff --git a/provider/indexer-azure/pom.xml b/provider/indexer-azure/pom.xml index c3d7d47e1a34cb7395cebcff5ddfbf8b4f291424..52c0483d91e2f457f71d905bc98b637bda3cd2a1 100644 --- a/provider/indexer-azure/pom.xml +++ b/provider/indexer-azure/pom.xml @@ -21,12 +21,12 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> <artifactId>indexer-azure</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <name>indexer-azure</name> <description>Indexer Service Azure</description> <packaging>jar</packaging> @@ -39,10 +39,10 @@ <azure.appservice.subscription /> <log4j.version>2.11.2</log4j.version> <nimbus-jose-jwt.version>8.2</nimbus-jose-jwt.version> - <indexer-core.version>0.12.0-SNAPSHOT</indexer-core.version> + <indexer-core.version>0.13.0-SNAPSHOT</indexer-core.version> <spring-security-jwt.version>1.1.1.RELEASE</spring-security-jwt.version> - <osdu.corelibazure.version>0.12.0-rc10</osdu.corelibazure.version> - <osdu.oscorecommon.version>0.12.0-rc3</osdu.oscorecommon.version> + <osdu.corelibazure.version>0.13.0-rc5</osdu.corelibazure.version> + <osdu.oscorecommon.version>0.13.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> diff --git a/provider/indexer-gcp/cloudbuild/Dockerfile.cloudbuild b/provider/indexer-gcp/cloudbuild/Dockerfile.cloudbuild index 65a9b4197c4d29aaa0aae6c8dd8d6abd7d6c2dac..a0ff9348ea3a81c12eb4379e5bad31c246fa1e71 100644 --- a/provider/indexer-gcp/cloudbuild/Dockerfile.cloudbuild +++ b/provider/indexer-gcp/cloudbuild/Dockerfile.cloudbuild @@ -9,5 +9,5 @@ ENV PORT $PORT # Copy the jar to the production image from the builder stage. COPY provider/indexer-${PROVIDER_NAME}/target/indexer-${PROVIDER_NAME}-*-spring-boot.jar indexer-${PROVIDER_NAME}.jar # Run the web service on container startup. -CMD java -Djava.security.egd=indexer:/dev/./urandom -Dserver.port=${PORT} -jar /app/indexer-${PROVIDER_NAME}.jar +CMD java -Djava.security.egd=indexer:/dev/./urandom -Dserver.port=${PORT} -Dlog4j.formatMsgNoLookups=true -jar /app/indexer-${PROVIDER_NAME}.jar diff --git a/provider/indexer-gcp/pom.xml b/provider/indexer-gcp/pom.xml index e6b372f21d294890affaa60db70b157d935de2eb..75dd488bbe94e765a93965249694dc23976687a8 100644 --- a/provider/indexer-gcp/pom.xml +++ b/provider/indexer-gcp/pom.xml @@ -5,12 +5,12 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> <artifactId>indexer-gcp</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <name>indexer-gcp</name> <description>Indexer Service GCP App Engine</description> <packaging>jar</packaging> @@ -19,12 +19,12 @@ <dependency> <groupId>org.opengroup.osdu</groupId> <artifactId>core-lib-gcp</artifactId> - <version>0.12.0-rc3</version> + <version>0.13.0-rc3</version> </dependency> <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <!-- excluded due to runtime conflict with latest core-lib-gcp transient dependencies --> <exclusions> <exclusion> diff --git a/provider/indexer-ibm/pom.xml b/provider/indexer-ibm/pom.xml index 84e1fea76ba4b9dec786cc532474e437f5c2dac1..88eb53debcd4b1073cd5b5483a68d338e7286b1e 100644 --- a/provider/indexer-ibm/pom.xml +++ b/provider/indexer-ibm/pom.xml @@ -21,7 +21,7 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> @@ -31,7 +31,7 @@ <packaging>jar</packaging> <properties> - <os-core-lib-ibm.version>0.12.0-SNAPSHOT</os-core-lib-ibm.version> + <os-core-lib-ibm.version>0.13.0-rc4</os-core-lib-ibm.version> </properties> <profiles> @@ -53,7 +53,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/security/SecurityConfig.java b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/security/SecurityConfig.java index d0737cfecfcb767083f8ade4939234f6bfc8da5c..9b306f757bef4a5b48a8ef7f359d8dce280fbab1 100644 --- a/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/security/SecurityConfig.java +++ b/provider/indexer-ibm/src/main/java/org/opengroup/osdu/indexer/ibm/security/SecurityConfig.java @@ -15,20 +15,20 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http - .csrf().disable() - .authorizeRequests() - .antMatchers("/", "/index.html", - "/liveness_check", - "/readiness_check", - "/index-worker", "/_dps/task-handlers", "/_dps/task-handlers/**", - "/reindex", - "/v2/api-docs", - "/swagger-resources/**", - "/configuration/security", - "/swagger", - "/info", - "/swagger-ui.html", - "/webjars/**").permitAll() - .anyRequest().anonymous(); + .csrf().disable(); + // .authorizeRequests() + // .antMatchers("/", "/index.html", + // "/liveness_check", + // "/readiness_check", + // "/index-worker", "/_dps/task-handlers", "/_dps/task-handlers/**", + // "/reindex", + // "/v2/api-docs", + // "/swagger-resources/**", + // "/configuration/security", + // "/swagger", + // "/info", + // "/swagger-ui.html", + // "/webjars/**").permitAll() + // .anyRequest().anonymous(); } } diff --git a/provider/indexer-reference/pom.xml b/provider/indexer-reference/pom.xml index cc4cc2a6a684c31b2fbfc50d8671950ace3817c5..0a0e1d0964271cc66be97fbf0c528956036e818a 100644 --- a/provider/indexer-reference/pom.xml +++ b/provider/indexer-reference/pom.xml @@ -22,12 +22,12 @@ <parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-service</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../../pom.xml</relativePath> </parent> <artifactId>indexer-reference</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <name>indexer-reference</name> <description>Indexer Service GCP Anthos</description> <packaging>jar</packaging> @@ -36,7 +36,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java index 6a3b330aad0dcc5a7ba09687a82e0c5e1f53548c..e1c79251f4bc404ab8c822b430ce864e8b563a0b 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/DatastoreCredentialCache.java @@ -1,16 +1,19 @@ -// Copyright 2017-2019, 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. +/* + * Copyright 2021 Google LLC + * Copyright 2021 EPAM Systems, Inc + * + * 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 + * + * https://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.cache; diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java index 9a2a02d753dfbbe506a10bab3ecb2d6083876bef..fc00eb6ed72d5d82924a95286b33ab39a935165a 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/cache/JwtCache.java @@ -29,7 +29,7 @@ public class JwtCache implements IJwtCache<String, IdToken>, AutoCloseable { RedisCache<String, IdToken> cache; // google service account id_token can be requested only for 1 hr - private final static int EXPIRED_AFTER = 59; + private static final int EXPIRED_AFTER = 59; public JwtCache(IndexerConfigurationProperties indexerConfigurationProperties) { cache = new RedisCache<>(indexerConfigurationProperties.getRedisSearchHost(), diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/EntitlementsConfigProperties.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/EntitlementsConfigProperties.java index 1ba4425a4f2f09ff361c00cbcf4ec554811daf34..9a1cea7a8111613ca1aff589f596b39c5e63f3cb 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/EntitlementsConfigProperties.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/EntitlementsConfigProperties.java @@ -28,5 +28,5 @@ import org.springframework.context.annotation.Configuration; @Setter public class EntitlementsConfigProperties { - private String AuthorizeApi; + private String authorizeApi; } diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/IndexerReferenceConfigProperties.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/IndexerReferenceConfigProperties.java new file mode 100644 index 0000000000000000000000000000000000000000..4256d3726a174111ec9454fdf23e862066befed4 --- /dev/null +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/config/IndexerReferenceConfigProperties.java @@ -0,0 +1,33 @@ +/* + * Copyright 2021 Google LLC + * Copyright 2021 EPAM Systems, Inc + * + * 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 + * + * https://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.config; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +@Configuration +@ConfigurationProperties +@Getter +@Setter +public class IndexerReferenceConfigProperties { + + private String elasticSettingsId; + +} diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoService.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoService.java index 095c346f0f30ce28d1a4a603babc318fd61a792c..46c1b707826a938d951bdf8f4628b04674e399b5 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoService.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/di/TenantInfoService.java @@ -1,3 +1,20 @@ +/* + * Copyright 2021 Google LLC + * Copyright 2021 EPAM Systems, Inc + * + * 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 + * + * https://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.di; import java.util.ArrayList; diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingSchema.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingSchema.java new file mode 100644 index 0000000000000000000000000000000000000000..b18abdb494c8fd18118e44b2ce8f674496ac9ede --- /dev/null +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingSchema.java @@ -0,0 +1,42 @@ +/* + * Copyright 2021 Google LLC + * Copyright 2021 EPAM Systems, Inc + * + * 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 + * + * https://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; + +import javax.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ElasticSettingSchema { + + @NotEmpty + private String host; + + @NotEmpty + private String port; + + @NotEmpty + private String usernameAndPassword; + + @NotEmpty + private boolean isHttps; + +} diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingsDoc.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingsDoc.java new file mode 100644 index 0000000000000000000000000000000000000000..153f5513e912b09d1b2770a3d661ef362452407b --- /dev/null +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/model/ElasticSettingsDoc.java @@ -0,0 +1,38 @@ +/* + * Copyright 2021 Google LLC + * Copyright 2021 EPAM Systems, Inc + * + * 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 + * + * https://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; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ElasticSettingsDoc { + + @Id + private String id; + private ElasticSettingSchema settingSchema; + + public void setId(String id) { + this.id = id; + } + +} diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryMongoDB.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryMongoDB.java index 1c4d4fba54520a6fe22fc1d32c129dda80309432..cbbfe46ec103f9532c8e1fd41899352568b8a701 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryMongoDB.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/ElasticRepositoryMongoDB.java @@ -17,71 +17,89 @@ package org.opengroup.osdu.indexer.persistence; -import com.mongodb.client.FindIterable; +import static com.mongodb.client.model.Filters.eq; +import static com.mongodb.util.JSON.serialize; + +import com.google.gson.Gson; import com.mongodb.client.MongoCollection; import java.util.Objects; +import lombok.RequiredArgsConstructor; import org.apache.http.HttpStatus; import org.bson.Document; import org.opengroup.osdu.core.common.model.http.AppException; import org.opengroup.osdu.core.common.model.search.ClusterSettings; import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.core.common.provider.interfaces.IElasticRepository; +import org.opengroup.osdu.core.common.search.Preconditions; +import org.opengroup.osdu.indexer.config.IndexerReferenceConfigProperties; +import org.opengroup.osdu.indexer.model.ElasticSettingsDoc; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component +@RequiredArgsConstructor public class ElasticRepositoryMongoDB implements IElasticRepository { private static final Logger LOG = LoggerFactory.getLogger(ElasticRepositoryMongoDB.class); - private static final String SCHEMA_DATABASE = "local"; - private static final String SEARCH_SETTINGS = "SearchSettings"; - private static final String HOST = "host"; - private static final String PORT = "port"; - private static final String XPACK_RESTCLIENT_CONFIGURATION = "configuration"; + private static final String ELASTIC_SETTINGS_DATABASE = "local"; + private static final String ELASTIC_SETTINGS_COLLECTION = "SearchSettings"; - private final MongoDdmsClient mongoClient; + private static final String MISSING_TENANT_INFO_REASON = "TenantInfo is null"; + private static final String MISSING_TENANT_INFO_MESSAGE = "TenantInfo is missing."; + private static final String SETTINGS_FETCH_ERROR_REASON = "Cluster setting fetch error"; + private static final String SETTINGS_FETCH_ERROR_MESSAGE = "An error has occurred fetching cluster settings from the database."; - @Autowired - public ElasticRepositoryMongoDB(MongoDdmsClient mongoClient) { - this.mongoClient = mongoClient; - } + private final MongoDdmsClient mongoClient; + private final IndexerReferenceConfigProperties configProperties; @Override public ClusterSettings getElasticClusterSettings(TenantInfo tenantInfo) { - MongoCollection<Document> mongoCollection = mongoClient - .getMongoCollection(SCHEMA_DATABASE, SEARCH_SETTINGS); - - FindIterable<Document> results = mongoCollection.find(); - if (Objects.isNull(results) && Objects.isNull(results.first())) { - LOG.error(String.format("Collection \'%s\' is empty.", results)); - throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Cluster setting fetch error", - "An error has occurred fetching cluster settings from the database."); + if (Objects.isNull(tenantInfo)) { + throw new AppException(HttpStatus.SC_NOT_FOUND, MISSING_TENANT_INFO_REASON, + MISSING_TENANT_INFO_MESSAGE); } - Document document = results.first(); + String settingId = tenantInfo.getName().concat("-") + .concat(this.configProperties.getElasticSettingsId()); - String encryptedConfiguration = document.get(XPACK_RESTCLIENT_CONFIGURATION).toString(); - String encryptedHost = document.get(HOST).toString(); - String encryptedPort = document.get(PORT).toString(); + MongoCollection<Document> collection = this.mongoClient.getMongoCollection( + ELASTIC_SETTINGS_DATABASE, ELASTIC_SETTINGS_COLLECTION); + Document record = collection.find(eq("_id", settingId)).first(); + + if (Objects.isNull(record)) { + LOG.error(String.format("\'%s\' credentials not found in database.", settingId)); + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, SETTINGS_FETCH_ERROR_REASON, + SETTINGS_FETCH_ERROR_MESSAGE); + } + + ElasticSettingsDoc elasticSettingsDoc = new Gson().fromJson(serialize(record), + ElasticSettingsDoc.class); try { + String encryptedUsernameAndPassword = elasticSettingsDoc.getSettingSchema() + .getUsernameAndPassword(); + String encryptedHost = elasticSettingsDoc.getSettingSchema().getHost(); + String encryptedPortString = elasticSettingsDoc.getSettingSchema().getPort(); - String host = encryptedHost;//this.kmsClient.decryptString(encryptedHost); - String portString = encryptedPort;//this.kmsClient.decryptString(encryptedPort); - String usernameAndPassword = encryptedConfiguration;//this.kmsClient.decryptString(encryptedConfiguration); + String usernameAndPassword = encryptedUsernameAndPassword; //this.kmsClient.decryptString(encryptedHost); + String host = encryptedHost; //this.kmsClient.decryptString(encryptedHost); + String portString = encryptedPortString; //this.kmsClient.decryptString(encryptedHost); + + Preconditions.checkNotNullOrEmpty(usernameAndPassword, "configuration cannot be null"); + Preconditions.checkNotNullOrEmpty(host, "host cannot be null"); + Preconditions.checkNotNullOrEmpty(portString, "port cannot be null"); int port = Integer.parseInt(portString); - ClusterSettings clusterSettings = new ClusterSettings(host, port, usernameAndPassword); - clusterSettings.setHttps(false); - return clusterSettings; + boolean isHttps = elasticSettingsDoc.getSettingSchema().isHttps(); + return new ClusterSettings(host, port, usernameAndPassword, isHttps, isHttps); } catch (Exception e) { - throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Cluster setting fetch error", - "An error has occurred fetching cluster settings from the database.", e); + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, SETTINGS_FETCH_ERROR_REASON, + SETTINGS_FETCH_ERROR_MESSAGE, e); } } + } diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/MongoDdmsClient.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/MongoDdmsClient.java index 6cb02a3a7fbfb36d6a2ada3f3b3906a1116aaaa4..8caba4bfdc77db033a245c07fba031ae095d7fbb 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/MongoDdmsClient.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/persistence/MongoDdmsClient.java @@ -19,7 +19,6 @@ package org.opengroup.osdu.indexer.persistence; import com.mongodb.client.MongoCollection; import org.bson.Document; -import org.opengroup.osdu.core.common.model.tenant.TenantInfo; import org.opengroup.osdu.indexer.util.MongoClientHandler; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java index 8f72ac9ec6878d86d9e21bb7e7c789aef72cc142..5fc2d11920d2e2b39bf43a2fcde771f21fa90517 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/service/IndexerServiceImpl.java @@ -17,6 +17,7 @@ package org.opengroup.osdu.indexer.service; +import com.google.common.base.Strings; import com.google.gson.Gson; import java.io.IOException; import java.util.ArrayList; @@ -75,6 +76,8 @@ public class IndexerServiceImpl implements IndexerService { .asList(RestStatus.TOO_MANY_REQUESTS, RestStatus.BAD_GATEWAY, RestStatus.SERVICE_UNAVAILABLE)); + public static final String ELASTIC_ERROR_REASON = "Elastic error"; + private final Gson gson = new Gson(); @Inject @@ -111,7 +114,7 @@ public class IndexerServiceImpl implements IndexerService { List<RecordInfo> recordInfos) throws Exception { // this should not happen - if (recordInfos.size() == 0) { + if (recordInfos.isEmpty()) { return null; } @@ -121,7 +124,7 @@ public class IndexerServiceImpl implements IndexerService { // get auth header with service account Authorization this.headers = this.requestInfo.getHeaders(); String authorization = message.getAttributes().get("authorization"); - headers.put("authorization", authorization); + this.headers.put("authorization", authorization); // initialize status for all messages. this.jobStatus.initialize(recordInfos); @@ -152,7 +155,7 @@ public class IndexerServiceImpl implements IndexerService { } // process failed records - if (retryRecordIds.size() > 0) { + if (!retryRecordIds.isEmpty()) { retryAndEnqueueFailedRecords(recordInfos, retryRecordIds, message); } } catch (IOException e) { @@ -375,6 +378,14 @@ public class IndexerServiceImpl implements IndexerService { if (recordStatus.getIndexProgress().getStatusCode() == 0) { recordStatus.getIndexProgress().setStatusCode(HttpStatus.SC_OK); } + document.setCreateUser(storageRecord.getCreateUser()); + document.setCreateTime(storageRecord.getCreateTime()); + if (!Strings.isNullOrEmpty(storageRecord.getModifyUser())) { + document.setModifyUser(storageRecord.getModifyUser()); + } + if (!Strings.isNullOrEmpty(storageRecord.getModifyTime())) { + document.setModifyTime(storageRecord.getModifyTime()); + } document.setIndexProgress(recordStatus.getIndexProgress()); if (storageRecord.getAncestry() != null) { document.setAncestry(storageRecord.getAncestry()); @@ -413,15 +424,16 @@ public class IndexerServiceImpl implements IndexerService { for (IndexSchema schema : schemas) { String index = this.elasticIndexNameResolver.getIndexNameFromKind(schema.getKind()); - // check if index exist + // check if index exist and sync meta attribute schema if required if (this.indicesService.isIndexExist(restClient, index)) { + this.mappingService.syncIndexMappingIfRequired(restClient, index); continue; } // create index Map<String, Object> mapping = this.mappingService.getIndexMappingFromRecordSchema(schema); if (!this.indicesService.createIndex(restClient, index, null, schema.getType(), mapping)) { - throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Elastic error", + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, ELASTIC_ERROR_REASON, "Error creating index.", String.format("Failed to get confirmation from elastic server for index: %s", index)); } @@ -469,10 +481,6 @@ public class IndexerServiceImpl implements IndexerService { bulkRequest.timeout(BULK_REQUEST_TIMEOUT); for (Map.Entry<String, List<String>> record : deleteRecordMap.entrySet()) { - - String[] kindParts = record.getKey().split(":"); - String type = kindParts[2]; - String index = this.elasticIndexNameResolver.getIndexNameFromKind(record.getKey()); for (String id : record.getValue()) { @@ -528,12 +536,12 @@ public class IndexerServiceImpl implements IndexerService { bulkRequest.numberOfActions(), succeededResponses, failedResponses)); } catch (IOException e) { // throw explicit 504 for IOException - throw new AppException(HttpStatus.SC_GATEWAY_TIMEOUT, "Elastic error", + throw new AppException(HttpStatus.SC_GATEWAY_TIMEOUT, ELASTIC_ERROR_REASON, "Request cannot be completed in specified time.", e); } catch (ElasticsearchStatusException e) { - throw new AppException(e.status().getStatus(), "Elastic error", e.getMessage(), e); + throw new AppException(e.status().getStatus(), ELASTIC_ERROR_REASON, e.getMessage(), e); } catch (Exception e) { - throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, "Elastic error", + throw new AppException(HttpStatus.SC_INTERNAL_SERVER_ERROR, ELASTIC_ERROR_REASON, "Error indexing records.", e); } return failureRecordIds; @@ -554,6 +562,8 @@ public class IndexerServiceImpl implements IndexerService { indexerPayload.put(RecordMetaAttribute.ID.getValue(), record.getId()); indexerPayload.put(RecordMetaAttribute.KIND.getValue(), record.getKind()); + indexerPayload.put(RecordMetaAttribute.AUTHORITY.getValue(), record.getAuthority()); + indexerPayload.put(RecordMetaAttribute.SOURCE.getValue(), record.getSource()); indexerPayload.put(RecordMetaAttribute.NAMESPACE.getValue(), record.getNamespace()); indexerPayload.put(RecordMetaAttribute.TYPE.getValue(), record.getType()); indexerPayload.put(RecordMetaAttribute.VERSION.getValue(), record.getVersion()); @@ -565,6 +575,14 @@ public class IndexerServiceImpl implements IndexerService { if (record.getAncestry() != null) { indexerPayload.put(RecordMetaAttribute.ANCESTRY.getValue(), record.getAncestry()); } + indexerPayload.put(RecordMetaAttribute.CREATE_USER.getValue(), record.getCreateUser()); + indexerPayload.put(RecordMetaAttribute.CREATE_TIME.getValue(), record.getCreateTime()); + if (!Strings.isNullOrEmpty(record.getModifyUser())) { + indexerPayload.put(RecordMetaAttribute.MODIFY_USER.getValue(), record.getModifyUser()); + } + if (!Strings.isNullOrEmpty(record.getModifyTime())) { + indexerPayload.put(RecordMetaAttribute.MODIFY_TIME.getValue(), record.getModifyTime()); + } return indexerPayload; } diff --git a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java index 673565941dda7a398bba598aab3945be8ac6126b..86ea46e4c96cd76609581cfeab61e930cc5332b6 100644 --- a/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java +++ b/provider/indexer-reference/src/main/java/org/opengroup/osdu/indexer/util/ServiceAccountJwtGcpClientImpl.java @@ -44,11 +44,9 @@ import org.springframework.web.context.annotation.RequestScope; @RequestScope public class ServiceAccountJwtGcpClientImpl implements IServiceAccountJwtClient { - private static final String JWT_AUDIENCE = "https://www.googleapis.com/oauth2/v4/token"; private static final String SERVICE_ACCOUNT_NAME_FORMAT = "projects/%s/serviceAccounts/%s"; private final IamCredentialsProvider iamCredentialsProvider = new IamCredentialsProvider(); - private final JsonFactory JSON_FACTORY = new JacksonFactory(); private final IndexerConfigurationProperties indexerConfigurationProperties; private final ITenantFactory tenantInfoServiceProvider; private final IJwtCache cacheService; diff --git a/provider/indexer-reference/src/main/resources/application.properties b/provider/indexer-reference/src/main/resources/application.properties index 542569ff56509144da5ba45d9d2208b8345b60a9..4e704e197e435d41c794d996275a1de20f89efcc 100644 --- a/provider/indexer-reference/src/main/resources/application.properties +++ b/provider/indexer-reference/src/main/resources/application.properties @@ -43,8 +43,7 @@ gae-service=indexer key-ring=csqp kms-key=searchservice -elastic-datastore-kind=searchsettings -elastic-datastore-id=indexer-service +elastic-settings-id=indexer-service mongo-db-url=localhost:27017 mongo-db-user= diff --git a/testing/indexer-test-aws/pom.xml b/testing/indexer-test-aws/pom.xml index 9a4521d04c6c9d2c9a56322eb50a82f1c4dafc6e..1fd89ff029cac32e6c9580dd231add4c010c9ec3 100644 --- a/testing/indexer-test-aws/pom.xml +++ b/testing/indexer-test-aws/pom.xml @@ -21,13 +21,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-aws</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -42,7 +42,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <!-- AWS specific packages --> diff --git a/testing/indexer-test-azure/pom.xml b/testing/indexer-test-azure/pom.xml index 749427dee82b1f5f54c17504995a2080464ecb24..2b157b63a7ad882852ac5e43e61e56e8ba39cbc7 100644 --- a/testing/indexer-test-azure/pom.xml +++ b/testing/indexer-test-azure/pom.xml @@ -21,13 +21,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-azure</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -45,7 +45,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> diff --git a/testing/indexer-test-core/pom.xml b/testing/indexer-test-core/pom.xml index 808fab5f5312b64e6083a900189a9ca490560dbf..fcc2b5e81bc27d8f33b10d1ac5a46f1fcbd33e90 100644 --- a/testing/indexer-test-core/pom.xml +++ b/testing/indexer-test-core/pom.xml @@ -5,13 +5,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <properties> <maven.compiler.target>1.8</maven.compiler.target> diff --git a/testing/indexer-test-gcp/pom.xml b/testing/indexer-test-gcp/pom.xml index 7da406de1e06c2f4188a94cb75d3cd381085e8bb..e86a33cbd846f37586836b850bc340f176093c5b 100644 --- a/testing/indexer-test-gcp/pom.xml +++ b/testing/indexer-test-gcp/pom.xml @@ -6,13 +6,13 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-gcp</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> @@ -37,7 +37,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <!-- Cucumber --> diff --git a/testing/indexer-test-ibm/pom.xml b/testing/indexer-test-ibm/pom.xml index b0ad772a3f3e2ada3fdad4496782e6206d880946..5b97986ed2cf43ab29583617f2f1486014e4341f 100644 --- a/testing/indexer-test-ibm/pom.xml +++ b/testing/indexer-test-ibm/pom.xml @@ -6,20 +6,20 @@ <parent> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <relativePath>../pom.xml</relativePath> </parent> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-ibm</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <packaging>jar</packaging> <properties> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.source>1.8</maven.compiler.source> <cucumber.version>1.2.5</cucumber.version> - <os-core-lib-ibm.version>0.7.0</os-core-lib-ibm.version> + <os-core-lib-ibm.version>0.13.0-rc4</os-core-lib-ibm.version> </properties> <dependencies> @@ -38,7 +38,7 @@ <dependency> <groupId>org.opengroup.osdu.indexer</groupId> <artifactId>indexer-test-core</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> </dependency> <dependency> diff --git a/testing/pom.xml b/testing/pom.xml index 183574e5095bd2e311e9fa78a1cecaaf69fada40..679e6dcc19bb2beca2e96243c9cbe5105db0dc47 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -18,7 +18,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.opengroup.osdu</groupId> <artifactId>indexer-test</artifactId> - <version>0.12.0-SNAPSHOT</version> + <version>0.13.0-SNAPSHOT</version> <description>Indexer Service Integration Test Root Project</description> <properties> <spring.version>5.1.19.RELEASE</spring.version>